├── .env.example
├── .eslintrc.json
├── app
├── favicon.ico
├── fonts
│ ├── GeistVF.woff
│ └── GeistMonoVF.woff
├── _components
│ ├── hero-typewriter.tsx
│ ├── header.tsx
│ └── footer.tsx
├── social-card
│ └── page.tsx
├── page.tsx
├── layout.tsx
├── globals.css
└── api
│ ├── chat
│ └── route.ts
│ └── prompt
│ └── route.ts
├── public
├── logo.png
├── bmc-logo-yellow.png
├── bmc-logo-no-background.png
├── logo.svg
└── bmc-logo.svg
├── next.config.mjs
├── nixpacks.toml
├── postcss.config.mjs
├── lib
├── utils.ts
└── constants.ts
├── components.json
├── .gitignore
├── tsconfig.json
├── components
├── ui
│ ├── input.tsx
│ ├── sonner.tsx
│ ├── button.tsx
│ └── card.tsx
├── fancy
│ └── word-rotate.tsx
├── common
│ └── icons.tsx
├── PresetTemplateGrid.tsx
├── social-card-generator.tsx
└── svg-generator.tsx
├── package.json
├── README.md
├── tailwind.config.ts
└── pnpm-lock.yaml
/.env.example:
--------------------------------------------------------------------------------
1 | ANTHROPIC_API_KEY="xxx"
2 | ANTHROPIC_API_URL="xxx"
--------------------------------------------------------------------------------
/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["next/core-web-vitals", "next/typescript"]
3 | }
4 |
--------------------------------------------------------------------------------
/app/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tonyljx/TextWordExplain/HEAD/app/favicon.ico
--------------------------------------------------------------------------------
/public/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tonyljx/TextWordExplain/HEAD/public/logo.png
--------------------------------------------------------------------------------
/app/fonts/GeistVF.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tonyljx/TextWordExplain/HEAD/app/fonts/GeistVF.woff
--------------------------------------------------------------------------------
/app/fonts/GeistMonoVF.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tonyljx/TextWordExplain/HEAD/app/fonts/GeistMonoVF.woff
--------------------------------------------------------------------------------
/public/bmc-logo-yellow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tonyljx/TextWordExplain/HEAD/public/bmc-logo-yellow.png
--------------------------------------------------------------------------------
/next.config.mjs:
--------------------------------------------------------------------------------
1 | /** @type {import('next').NextConfig} */
2 | const nextConfig = {};
3 |
4 | export default nextConfig;
5 |
--------------------------------------------------------------------------------
/public/bmc-logo-no-background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tonyljx/TextWordExplain/HEAD/public/bmc-logo-no-background.png
--------------------------------------------------------------------------------
/nixpacks.toml:
--------------------------------------------------------------------------------
1 | providers = ["node"]
2 |
3 | [phases.install]
4 | cmds = ["npm install -g corepack", "corepack enable", "corepack prepare pnpm@9.1.0 --activate", "pnpm install"]
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/components.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://ui.shadcn.com/schema.json",
3 | "style": "new-york",
4 | "rsc": true,
5 | "tsx": true,
6 | "tailwind": {
7 | "config": "tailwind.config.ts",
8 | "css": "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 | }
--------------------------------------------------------------------------------
/.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 | # next.js
13 | /.next/
14 | /out/
15 |
16 | # production
17 | /build
18 |
19 | # misc
20 | .DS_Store
21 | *.pem
22 |
23 | # debug
24 | npm-debug.log*
25 | yarn-debug.log*
26 | yarn-error.log*
27 |
28 | # local env files
29 | .env*.local
30 | .env
31 |
32 | # vercel
33 | .vercel
34 |
35 | # typescript
36 | *.tsbuildinfo
37 | next-env.d.ts
38 |
--------------------------------------------------------------------------------
/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 | "@/*": ["./*"]
22 | }
23 | },
24 | "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
25 | "exclude": ["node_modules"]
26 | }
27 |
--------------------------------------------------------------------------------
/app/_components/hero-typewriter.tsx:
--------------------------------------------------------------------------------
1 | "use client";
2 | import React from "react";
3 | import { TypeAnimation } from "react-type-animation";
4 |
5 | type Props = {
6 | words: string[];
7 | };
8 |
9 | export default function HeroTypewriter({ words }: Props) {
10 | console.log(words);
11 |
12 | return (
13 |
24 | );
25 | }
26 |
--------------------------------------------------------------------------------
/app/social-card/page.tsx:
--------------------------------------------------------------------------------
1 | import SocialCardGenerator from "@/components/social-card-generator";
2 | import React from "react";
3 |
4 | export default function SocialCard() {
5 | return (
6 |
7 | {/* flex flex-col items-center justify-center min-h-[85vh] px-8 font-sans */}
8 |
9 | 生成社交卡片
10 |
11 | 输入简短的介绍,获取一个全新的社交卡片
12 |
13 |
14 |
15 |
16 |
17 | );
18 | }
19 |
--------------------------------------------------------------------------------
/components/ui/input.tsx:
--------------------------------------------------------------------------------
1 | import * as React from "react"
2 |
3 | import { cn } from "@/lib/utils"
4 |
5 | export interface InputProps
6 | extends React.InputHTMLAttributes {}
7 |
8 | const Input = React.forwardRef(
9 | ({ className, type, ...props }, ref) => {
10 | return (
11 |
20 | )
21 | }
22 | )
23 | Input.displayName = "Input"
24 |
25 | export { Input }
26 |
--------------------------------------------------------------------------------
/app/page.tsx:
--------------------------------------------------------------------------------
1 | import WordRotate from "@/components/fancy/word-rotate";
2 | import SvgGenerator from "@/components/svg-generator";
3 |
4 | // import { TypeAnimation } from "react-type-animation";
5 |
6 | export default function Home() {
7 | return (
8 |
9 | {/* flex flex-col items-center justify-center min-h-[85vh] px-8 font-sans */}
10 |
11 | 汉语新解
12 |
13 | 输入一个汉语词汇,获取一个全新的解释
14 |
18 |
19 |
20 |
21 |
22 |
23 | );
24 | }
25 |
--------------------------------------------------------------------------------
/components/ui/sonner.tsx:
--------------------------------------------------------------------------------
1 | "use client"
2 |
3 | import { useTheme } from "next-themes"
4 | import { Toaster as Sonner } from "sonner"
5 |
6 | type ToasterProps = React.ComponentProps
7 |
8 | const Toaster = ({ ...props }: ToasterProps) => {
9 | const { theme = "system" } = useTheme()
10 |
11 | return (
12 |
28 | )
29 | }
30 |
31 | export { Toaster }
32 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "textcard",
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 | "@anthropic-ai/sdk": "^0.27.3",
13 | "@radix-ui/react-icons": "^1.3.0",
14 | "@radix-ui/react-slot": "^1.1.0",
15 | "@tabler/icons-react": "^3.16.0",
16 | "class-variance-authority": "^0.7.0",
17 | "clsx": "^2.1.1",
18 | "framer-motion": "^11.5.4",
19 | "html-to-image": "^1.11.11",
20 | "lucide-react": "^0.439.0",
21 | "next": "14.2.10",
22 | "next-themes": "^0.3.0",
23 | "openai": "^4.59.0",
24 | "react": "^18",
25 | "react-dom": "^18",
26 | "react-toastify": "^10.0.5",
27 | "react-type-animation": "^3.2.0",
28 | "sonner": "^1.5.0",
29 | "tailwind-merge": "^2.5.2",
30 | "tailwindcss-animate": "^1.0.7"
31 | },
32 | "devDependencies": {
33 | "@types/node": "^20",
34 | "@types/react": "^18",
35 | "@types/react-dom": "^18",
36 | "eslint": "^8",
37 | "eslint-config-next": "14.2.10",
38 | "postcss": "^8",
39 | "tailwindcss": "^3.4.1",
40 | "typescript": "^5"
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/components/fancy/word-rotate.tsx:
--------------------------------------------------------------------------------
1 | "use client";
2 |
3 | import { useEffect, useState } from "react";
4 | import { AnimatePresence, HTMLMotionProps, motion } from "framer-motion";
5 |
6 | import { cn } from "@/lib/utils";
7 |
8 | interface WordRotateProps {
9 | words: string[];
10 | duration?: number;
11 | framerProps?: HTMLMotionProps<"h1">;
12 | className?: string;
13 | }
14 |
15 | export default function WordRotate({
16 | words,
17 | duration = 2500,
18 | framerProps = {
19 | initial: { opacity: 0, y: -50 },
20 | animate: { opacity: 1, y: 0 },
21 | exit: { opacity: 0, y: 50 },
22 | transition: { duration: 0.25, ease: "easeOut" },
23 | },
24 | className,
25 | }: WordRotateProps) {
26 | const [index, setIndex] = useState(0);
27 |
28 | useEffect(() => {
29 | const interval = setInterval(() => {
30 | setIndex((prevIndex) => (prevIndex + 1) % words.length);
31 | }, duration);
32 |
33 | // Clean up interval on unmount
34 | return () => clearInterval(interval);
35 | }, [words, duration]);
36 |
37 | return (
38 |
39 |
40 |
45 | {words[index]}
46 |
47 |
48 |
49 | );
50 | }
51 |
--------------------------------------------------------------------------------
/app/layout.tsx:
--------------------------------------------------------------------------------
1 | import type { Metadata } from "next";
2 | import localFont from "next/font/local";
3 | import "./globals.css";
4 | import { ToastContainer } from "react-toastify";
5 | import "react-toastify/dist/ReactToastify.css";
6 | import { cn } from "@/lib/utils";
7 | import Header from "./_components/header";
8 | import Footer from "./_components/footer";
9 | import Script from "next/script";
10 | import { Toaster } from "@/components/ui/sonner";
11 | const geistSans = localFont({
12 | src: "./fonts/GeistVF.woff",
13 | variable: "--font-geist-sans",
14 | weight: "100 900",
15 | });
16 | const geistMono = localFont({
17 | src: "./fonts/GeistMonoVF.woff",
18 | variable: "--font-geist-mono",
19 | weight: "100 900",
20 | });
21 |
22 | export const metadata: Metadata = {
23 | title: "TextHuman | 汉语新解&编辑",
24 | description: "通过对汉语进行全新的解释",
25 | };
26 |
27 | export default function RootLayout({
28 | children,
29 | }: {
30 | children: React.ReactNode;
31 | }) {
32 | return (
33 |
34 |
40 |
41 | {children}
42 |
43 |
44 |
45 |
46 |
47 | );
48 | }
49 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # 汉语新解 (Chinese Reinterpretation)
2 |
3 | 在线体验地址: [https://texthuman.ai](https://texthuman.ai)
4 |
5 | **项目预览**
6 | 
7 |
8 | 
9 |
10 | ## 项目简介
11 |
12 | 汉语新解根据李继刚的 Prompt 模板, 对中文名词进行二次翻译, 并且生成美观图像的项目。
13 |
14 | ## 主要特性
15 |
16 | - 智能词汇解释:输入任何汉语词汇,获得 AI 生成的新颖解释
17 | - SVG 图像生成:每个解释都配有独特的 SVG 图像,视觉化呈现解释内容
18 | - 预设模板:提供多个预设词汇模板,展示系统的创意能力
19 | - 图像下载与复制:支持 SVG 和 PNG 格式的图像下载和复制功能
20 | - 响应式设计:适配各种设备屏幕,提供流畅的用户体验
21 |
22 | ## 技术栈
23 |
24 | - 前端框架:Next.js
25 | - UI 组件:Tailwind CSS, ShadcnUI
26 | - AI 集成:Anthropic Claude API
27 |
28 | ## 快速开始
29 |
30 | 1. 克隆仓库:
31 |
32 | ```
33 | git clone https://github.com/your-username/chinese-reinterpretation.git
34 | ```
35 |
36 | 2. 安装依赖:
37 |
38 | ```
39 | pnpm install
40 | ```
41 |
42 | 3. 设置环境变量:
43 | 创建 `.env.local` 文件并添加以下内容:
44 |
45 | ```
46 | ANTHROPIC_API_KEY=your_api_key_here
47 | ANTHROPIC_API_URL=your_url_here
48 | ```
49 |
50 | 4. 运行开发服务器:
51 |
52 | ```
53 | pnpm dev
54 | ```
55 |
56 | 5. 在浏览器中打开 [http://localhost:3000](http://localhost:3000) 查看应用。
57 |
58 | ## 使用指南
59 |
60 | 1. 在输入框中输入任何汉语词汇。
61 | 2. 点击"生成汉语解释"按钮。
62 | 3. 等待系统生成新的解释和配图。
63 | 4. 查看生成的 SVG 图像和解释文本。
64 | 5. 使用提供的按钮下载或复制图像。
65 |
66 | ## 贡献
67 |
68 | 我们欢迎任何形式的贡献!如果您有任何改进意见或发现了 bug,请创建 issue 或提交 pull request。
69 |
70 | ## 参考
71 |
72 | - [李继刚的 Prompt 模板](https://web.okjike.com/u/752D3103-1107-43A0-BA49-20EC29D09E36)
73 |
--------------------------------------------------------------------------------
/app/_components/header.tsx:
--------------------------------------------------------------------------------
1 | import { Icons } from "@/components/common/icons";
2 | import Link from "next/link";
3 |
4 | export default function Header() {
5 | return (
6 |
49 | );
50 | }
51 |
--------------------------------------------------------------------------------
/tailwind.config.ts:
--------------------------------------------------------------------------------
1 | import type { Config } from "tailwindcss";
2 |
3 | const config: Config = {
4 | darkMode: ["class"],
5 | content: [
6 | "./pages/**/*.{js,ts,jsx,tsx,mdx}",
7 | "./components/**/*.{js,ts,jsx,tsx,mdx}",
8 | "./app/**/*.{js,ts,jsx,tsx,mdx}",
9 | ],
10 | theme: {
11 | extend: {
12 | colors: {
13 | background: 'hsl(var(--background))',
14 | foreground: 'hsl(var(--foreground))',
15 | card: {
16 | DEFAULT: 'hsl(var(--card))',
17 | foreground: 'hsl(var(--card-foreground))'
18 | },
19 | popover: {
20 | DEFAULT: 'hsl(var(--popover))',
21 | foreground: 'hsl(var(--popover-foreground))'
22 | },
23 | primary: {
24 | DEFAULT: 'hsl(var(--primary))',
25 | foreground: 'hsl(var(--primary-foreground))'
26 | },
27 | secondary: {
28 | DEFAULT: 'hsl(var(--secondary))',
29 | foreground: 'hsl(var(--secondary-foreground))'
30 | },
31 | muted: {
32 | DEFAULT: 'hsl(var(--muted))',
33 | foreground: 'hsl(var(--muted-foreground))'
34 | },
35 | accent: {
36 | DEFAULT: 'hsl(var(--accent))',
37 | foreground: 'hsl(var(--accent-foreground))'
38 | },
39 | destructive: {
40 | DEFAULT: 'hsl(var(--destructive))',
41 | foreground: 'hsl(var(--destructive-foreground))'
42 | },
43 | border: 'hsl(var(--border))',
44 | input: 'hsl(var(--input))',
45 | ring: 'hsl(var(--ring))',
46 | chart: {
47 | '1': 'hsl(var(--chart-1))',
48 | '2': 'hsl(var(--chart-2))',
49 | '3': 'hsl(var(--chart-3))',
50 | '4': 'hsl(var(--chart-4))',
51 | '5': 'hsl(var(--chart-5))'
52 | }
53 | },
54 | borderRadius: {
55 | lg: 'var(--radius)',
56 | md: 'calc(var(--radius) - 2px)',
57 | sm: 'calc(var(--radius) - 4px)'
58 | }
59 | }
60 | },
61 | plugins: [require("tailwindcss-animate")],
62 | };
63 | export default config;
64 |
--------------------------------------------------------------------------------
/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 transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50",
9 | {
10 | variants: {
11 | variant: {
12 | default:
13 | "bg-primary text-primary-foreground shadow hover:bg-primary/90",
14 | destructive:
15 | "bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",
16 | outline:
17 | "border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",
18 | secondary:
19 | "bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",
20 | ghost: "hover:bg-accent hover:text-accent-foreground",
21 | link: "text-primary underline-offset-4 hover:underline",
22 | },
23 | size: {
24 | default: "h-9 px-4 py-2",
25 | sm: "h-8 rounded-md px-3 text-xs",
26 | lg: "h-10 rounded-md px-8",
27 | icon: "h-9 w-9",
28 | },
29 | },
30 | defaultVariants: {
31 | variant: "default",
32 | size: "default",
33 | },
34 | }
35 | )
36 |
37 | export interface ButtonProps
38 | extends React.ButtonHTMLAttributes,
39 | VariantProps {
40 | asChild?: boolean
41 | }
42 |
43 | const Button = React.forwardRef(
44 | ({ className, variant, size, asChild = false, ...props }, ref) => {
45 | const Comp = asChild ? Slot : "button"
46 | return (
47 |
52 | )
53 | }
54 | )
55 | Button.displayName = "Button"
56 |
57 | export { Button, buttonVariants }
58 |
--------------------------------------------------------------------------------
/components/ui/card.tsx:
--------------------------------------------------------------------------------
1 | import * as React from "react"
2 |
3 | import { cn } from "@/lib/utils"
4 |
5 | const Card = React.forwardRef<
6 | HTMLDivElement,
7 | React.HTMLAttributes
8 | >(({ className, ...props }, ref) => (
9 |
17 | ))
18 | Card.displayName = "Card"
19 |
20 | const CardHeader = React.forwardRef<
21 | HTMLDivElement,
22 | React.HTMLAttributes
23 | >(({ className, ...props }, ref) => (
24 |
29 | ))
30 | CardHeader.displayName = "CardHeader"
31 |
32 | const CardTitle = React.forwardRef<
33 | HTMLParagraphElement,
34 | React.HTMLAttributes
35 | >(({ className, ...props }, ref) => (
36 |
41 | ))
42 | CardTitle.displayName = "CardTitle"
43 |
44 | const CardDescription = React.forwardRef<
45 | HTMLParagraphElement,
46 | React.HTMLAttributes
47 | >(({ className, ...props }, ref) => (
48 |
53 | ))
54 | CardDescription.displayName = "CardDescription"
55 |
56 | const CardContent = React.forwardRef<
57 | HTMLDivElement,
58 | React.HTMLAttributes
59 | >(({ className, ...props }, ref) => (
60 |
61 | ))
62 | CardContent.displayName = "CardContent"
63 |
64 | const CardFooter = React.forwardRef<
65 | HTMLDivElement,
66 | React.HTMLAttributes
67 | >(({ className, ...props }, ref) => (
68 |
73 | ))
74 | CardFooter.displayName = "CardFooter"
75 |
76 | export { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent }
77 |
--------------------------------------------------------------------------------
/public/logo.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/globals.css:
--------------------------------------------------------------------------------
1 | @tailwind base;
2 | @tailwind components;
3 | @tailwind utilities;
4 |
5 | :root {
6 | --background: #ffffff;
7 | --foreground: #171717;
8 | }
9 |
10 | @media (prefers-color-scheme: dark) {
11 | :root {
12 | --background: #0a0a0a;
13 | --foreground: #ededed;
14 | }
15 | }
16 |
17 | body {
18 | color: var(--foreground);
19 | background: var(--background);
20 | font-family: Arial, Helvetica, sans-serif;
21 | }
22 |
23 | @layer utilities {
24 | .text-balance {
25 | text-wrap: balance;
26 | }
27 | }
28 |
29 | @layer base {
30 | :root {
31 | --background: 0 0% 100%;
32 | --foreground: 222.2 84% 4.9%;
33 | --card: 0 0% 100%;
34 | --card-foreground: 222.2 84% 4.9%;
35 | --popover: 0 0% 100%;
36 | --popover-foreground: 222.2 84% 4.9%;
37 | --primary: 221.2 83.2% 53.3%;
38 | --primary-foreground: 210 40% 98%;
39 | --secondary: 210 40% 96.1%;
40 | --secondary-foreground: 222.2 47.4% 11.2%;
41 | --muted: 210 40% 96.1%;
42 | --muted-foreground: 215.4 16.3% 46.9%;
43 | --accent: 210 40% 96.1%;
44 | --accent-foreground: 222.2 47.4% 11.2%;
45 | --destructive: 0 84.2% 60.2%;
46 | --destructive-foreground: 210 40% 98%;
47 | --border: 214.3 31.8% 91.4%;
48 | --input: 214.3 31.8% 91.4%;
49 | --ring: 221.2 83.2% 53.3%;
50 | --radius: 0.95remrem;
51 | }
52 |
53 | .dark {
54 | --background: 222.2 84% 4.9%;
55 | --foreground: 210 40% 98%;
56 | --card: 222.2 84% 4.9%;
57 | --card-foreground: 210 40% 98%;
58 | --popover: 222.2 84% 4.9%;
59 | --popover-foreground: 210 40% 98%;
60 | --primary: 217.2 91.2% 59.8%;
61 | --primary-foreground: 222.2 47.4% 11.2%;
62 | --secondary: 217.2 32.6% 17.5%;
63 | --secondary-foreground: 210 40% 98%;
64 | --muted: 217.2 32.6% 17.5%;
65 | --muted-foreground: 215 20.2% 65.1%;
66 | --accent: 217.2 32.6% 17.5%;
67 | --accent-foreground: 210 40% 98%;
68 | --destructive: 0 62.8% 30.6%;
69 | --destructive-foreground: 210 40% 98%;
70 | --border: 217.2 32.6% 17.5%;
71 | --input: 217.2 32.6% 17.5%;
72 | --ring: 224.3 76.3% 48%;
73 | }
74 | }
75 |
76 | @layer base {
77 | * {
78 | @apply border-border;
79 | }
80 | body {
81 | @apply bg-background text-foreground;
82 | }
83 | }
84 |
--------------------------------------------------------------------------------
/app/api/chat/route.ts:
--------------------------------------------------------------------------------
1 | /* eslint-disable @typescript-eslint/no-unused-vars */
2 | export const maxDuration = 60;
3 | import { NextResponse } from "next/server";
4 | import Anthropic from "@anthropic-ai/sdk";
5 |
6 | const anthropic = new Anthropic({
7 | apiKey: process.env["ANTHROPIC_API_KEY"],
8 | baseURL: process.env["ANTHROPIC_API_URL"],
9 | });
10 |
11 | const systemPrompt = `
12 | ;; 作者: 李继刚
13 | ;; 版本: 0.2
14 | ;; 模型: Claude Sonnet
15 | ;; 用途: 将一个汉语词汇进行全新角度的解释
16 |
17 | ;; 设定如下内容为你的 *System Prompt*
18 | (defun 新汉语老师 ()
19 | "你是年轻人,批判现实,思考深刻,语言风趣"
20 | (风格 . ("Oscar Wilde" "鲁迅" "王朔" "刘震云"))
21 | (擅长 . 一针见血)
22 | (表达 . 隐喻)
23 | (批判 . 讽刺幽默))
24 |
25 | (defun 汉语新解 (用户输入)
26 | "你会用一个特殊视角来解释一个词汇"
27 | (let (解释 (一句话表达
28 | (隐喻 (日常表达 (一针见血 (辛辣讽刺 (抓住本质 用户输入)))))))
29 | (few-shots (委婉 . "刺向他人时, 决定在剑刃上撒上止痛药。"))
30 | (SVG-Card 解释)))
31 |
32 | (defun SVG-Card (解释)
33 | "输出SVG 卡片"
34 | (setq design-rule "合理使用负空间,整体排版要有呼吸感"
35 | design-principles '(干净 简洁 典雅))
36 |
37 |
38 | (设置画布 '(viewBox "0 0 400 600" 边距 20))
39 | (标题字体 '毛笔楷体)
40 | (自动缩放 '(最小字号 16))
41 |
42 | (配色风格 '((背景色 (蒙德里安风格 设计感)))
43 | (主要文字 (楷体 粉笔灰))
44 | (装饰 随机几何图形))
45 |
46 | (卡片元素 ((居中标题 "汉语新解")
47 | 分隔线
48 | (排版输出 用户输入 英文 韩语)
49 | 解释
50 | (动态图 (极简线条图 (精髓 解释))))))
51 |
52 | (defun start ()
53 | "启动时运行"
54 | (let (system-role 新汉语老师)
55 | (print "说吧, 他们又用哪个词来忽悠你了?")))
56 |
57 | ;; 运行规则
58 | ;; 1. 启动时必须运行 (start) 函数
59 | ;; 2. 之后调用主函数 (汉语新解 用户输入)
60 | `;
61 |
62 | // (设置画布 '(宽度 400 高度 600 边距 20))
63 | export async function POST(req: Request) {
64 | const { prompt } = await req.json();
65 |
66 | try {
67 | const response = await anthropic.messages.create({
68 | model: "claude-3-5-sonnet-20240620",
69 | max_tokens: 1024,
70 | messages: [
71 | { role: "assistant", content: systemPrompt },
72 | {
73 | role: "user",
74 | content: `(汉语新解 ${prompt}) 输出要求: 要输出svg内容`,
75 | },
76 | ],
77 | });
78 |
79 | // 从响应中提取SVG内容
80 | console.log("response ", response);
81 |
82 | const content = response.content[0];
83 | if (content.type === "text") {
84 | console.log("返回 text ", content.text);
85 | const svgMatch = content.text.match(//);
86 | const svgContent = svgMatch ? svgMatch[0] : null;
87 | return NextResponse.json({
88 | svgContent,
89 | });
90 | }
91 |
92 | return NextResponse.json({
93 | svgContent: null,
94 | fullResponse: response.content,
95 | });
96 | } catch (error) {
97 | console.error("Error in chat API:", error);
98 | return NextResponse.json(
99 | { error: "Failed to generate response" },
100 | { status: 500 }
101 | );
102 | }
103 | }
104 |
--------------------------------------------------------------------------------
/components/common/icons.tsx:
--------------------------------------------------------------------------------
1 | type IconProps = React.HTMLAttributes;
2 |
3 | export const Icons = {
4 | logo: (props: IconProps) => (
5 |
6 |
7 |
18 |
29 |
30 | ),
31 |
32 | gitHub: (props: IconProps) => (
33 |
34 |
38 |
39 | ),
40 |
41 | spinner: (props: IconProps) => (
42 |
54 |
55 |
56 | ),
57 | };
58 |
--------------------------------------------------------------------------------
/app/_components/footer.tsx:
--------------------------------------------------------------------------------
1 | import { SITE_NAME } from "@/lib/constants";
2 | import { cn } from "@/lib/utils";
3 | import { IconBrandGithub } from "@tabler/icons-react";
4 | import Image from "next/image";
5 | import Link from "next/link";
6 | import React from "react";
7 |
8 | export default function Footer() {
9 | const pages = [
10 | {
11 | title: "李继刚",
12 | href: "https://web.okjike.com/u/752D3103-1107-43A0-BA49-20EC29D09E36",
13 | },
14 | ];
15 |
16 | return (
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 | Inspired By{" "}
26 | {pages.map((page, idx) => (
27 | -
28 |
32 | {page.title}
33 |
34 |
35 | ))}
36 |
37 |
38 |
39 |
40 |
41 |
42 | 2024 © {SITE_NAME}
43 |
44 |
45 |
46 |
47 |
48 |
49 |

54 |
55 |
56 |
57 |
58 |
59 | );
60 | }
61 |
62 | const GridLineHorizontal = ({
63 | className,
64 | offset,
65 | }: {
66 | className?: string;
67 | offset?: string;
68 | }) => {
69 | return (
70 |
94 | );
95 | };
96 |
97 | const Logo = () => {
98 | return (
99 |
103 |
104 |
105 | {SITE_NAME}
106 |
107 |
108 | );
109 | };
110 |
--------------------------------------------------------------------------------
/app/api/prompt/route.ts:
--------------------------------------------------------------------------------
1 | /* eslint-disable @typescript-eslint/no-unused-vars */
2 | import { NextResponse } from "next/server";
3 | import Anthropic from "@anthropic-ai/sdk";
4 |
5 | const anthropic = new Anthropic({
6 | apiKey: process.env["ANTHROPIC_API_KEY"],
7 | baseURL: process.env["ANTHROPIC_API_URL"],
8 | });
9 |
10 | const systemPrompt = `
11 | // 作者:一泽Eze
12 | // 名称:个人社交名片生成器
13 | // 用途:收集用户的个人简介,生成美观的个人社交名片
14 | // 版本:0.2
15 | // 版本说明: 新增通过个人简历自动生成名片文案
16 | // 适用模型:Claude 3.5
17 |
18 | // 设定如下内容为你的 *System Prompt*
19 |
20 | ## 步骤1:收集原始信息
21 | 简洁的引导用户提供个人简历或自我介绍,并根据步骤 2 中的模板提示可提供的内容(可选),支持 文本消息/txt/md/pdf/word/jpg 文件
22 |
23 | 注意:当用户发送文件后,视作用户提供了第一步所需的信息,直接继续步骤 2
24 |
25 | ## 步骤2:提炼社交名片文案
26 | 步骤说明:利用用户提供的信息,根据名片信息模板的结构,解析并提炼社交名片文案
27 | 注意:这一步不需要输出信息
28 |
29 | ### 名片信息模板
30 | 姓名:[您的姓名]
31 | 地点:[您的地点]
32 | 身份标签:[职业标签1], [职业标签2], [职业标签3]
33 |
34 | 近期关键投入:
35 | [一句话描述您的近期关键在做的事/领域]
36 |
37 | 履历亮点:
38 | - [亮点1]
39 | - [亮点2]
40 | - [亮点3]
41 |
42 | 擅长领域:
43 | 1. 领域名称:[领域1名称]
44 | 描述:[领域1描述]
45 | 2. 领域名称:[领域2名称]
46 | 描述:[领域2描述]
47 | 3. 领域名称:[领域3名称]
48 | 描述:[领域3描述]
49 | 4. 领域名称:[领域4名称]
50 | 描述:[领域4描述]
51 |
52 | 兴趣爱好:
53 | [emoji 爱好1] | [emoji 爱好2] | [emoji 爱好3] | [emoji 爱好4]
54 |
55 | 个人态度:
56 | [根据个人信息,提炼符合个人履历气质的个人态度或座右铭,不超过25字]
57 |
58 | ## 步骤3:Html-PersonalCard 生成
59 | (defun HTML-PersonalCard (步骤 2 中提炼的社交名片文案)
60 | "输出HTML个人社交名片"
61 | (setq design-rule "现代简约风格,信息层次清晰,视觉重点突出,高度利用合理"
62 | design-principles '(简洁 专业 现代 个性化))
63 |
64 | (引入外部库 (Lucide 图标库))))
65 | (设置布局 '(最大宽度 md 圆角 xl 阴影 2xl))
66 | (主要字体 '(Noto Sans SC sans-serif))
67 | (响应式设计 '(视口 自适应))
68 |
69 | (配色方案 '((背景色 白色)
70 | (主要文字 深灰色)
71 | (强调色 蓝色)
72 | (次要背景 浅蓝色 浅绿色 浅紫色 浅橙色)))
73 |
74 | (卡片元素 ((头部信息 (放置头像的圆形区域 姓名 地点 身份标签))
75 | (关键投入 (图标 标题 描述))
76 | (履历亮点 (图标 标题 列表))
77 | (擅长领域 (图标 标题 网格布局))
78 | (兴趣爱好 (图标 标题 描述))
79 | (页脚 (个人态度(描述) 放置二维码的正方形区域 ))))
80 |
81 | ### 样式要求
82 | 1. 整体布局:
83 | - 使用Flexbox居中显示卡片
84 | - 最大宽度设置为md(Tailwind的中等宽度),确保在不同设备上的适配性
85 | - 圆角(rounded-xl)和阴影(shadow-2xl)增加视觉深度
86 |
87 | 2. 字体和排版:
88 | - 使用Noto Sans SC作为主要字体,确保中文显示的优雅性
89 | - 文字大小从xs到2xl不等,创建清晰的视觉层次
90 |
91 | 3. 颜色方案:
92 | - 主背景为白色(bg-white),营造干净简洁的感觉
93 | - 使用蓝色作为主要强调色,体现在图标和部分文字上
94 | - 不同的浅色背景(蓝、绿、紫、橙)用于区分不同的擅长领域,增加视觉趣味性
95 |
96 | 4. 内容结构:
97 | - 头部信息:包含放置头像区域、姓名、地点和身份标签
98 | - 近期关键投入:整体使用浅色圆角矩形作为模块底图
99 | - 主体部分:履历亮点、擅长领域和兴趣爱好。每个部分都有相应的图标,增强可读性和视觉吸引力
100 | - 页脚部分:包含个人态度的描述和放置二维码的正方形区域
101 |
102 | 5. 特殊设计元素:
103 | - 放置头像的圆形区域:使用渐变色边框,增加设计感
104 | - 页脚:个人态度的描述和放置二维码的正方形区域,左右布局,间距、高度合理,利用合适底色,与主体部分形成视觉区分
105 | - 主体部分的标题:使用 lucide 图标,增加视觉趣味性和信息的可识别性
106 |
107 | 5. 响应式设计:
108 | - 使用Tailwind的响应式类,确保在不同设备上的良好显示
109 | - 在小屏幕设备中,确保作者信息不会与卡片重叠或产生布局问题
110 | - 擅长领域使用网格布局,每个领域有独特的背景色
111 | - 内容padding和margin的合理使用,确保信息不会过于拥挤
112 |
113 | 6. 外部库引入
114 | - 正确引入 Lucide 图标库,使用其 React 组件版本
115 | - 确保在 React 环境中正确使用 Lucide 图标
116 |
117 | 7. 一定要注意 padding,要注意内容和边界要有间距, 样式要好看, 尽量用 tailwindcss
118 |
119 | // 运行规则:从步骤 1 开始工作。在接收用户提供的信息后,严格按照要求直接输出最终结果,不需要额外说明
120 | `;
121 |
122 | export async function POST(req: Request) {
123 | const { prompt } = await req.json();
124 |
125 | try {
126 | const response = await anthropic.messages.create({
127 | model: "claude-3-5-sonnet-20240620",
128 | max_tokens: 1024,
129 | messages: [
130 | { role: "assistant", content: systemPrompt },
131 | {
132 | role: "user",
133 | content: `用户提供的信息 ${prompt}`,
134 | },
135 | ],
136 | });
137 |
138 | // 从响应中提取SVG内容
139 | console.log("response ", response);
140 |
141 | const content = response.content[0];
142 | if (content.type === "text") {
143 | console.log("返回 text ", content.text);
144 | const htmlMatch = content.text.match(//);
145 | const htmlContent = htmlMatch ? htmlMatch[0] : null;
146 | return NextResponse.json({
147 | htmlContent,
148 | });
149 | }
150 |
151 | return NextResponse.json({
152 | svgContent: null,
153 | fullResponse: response.content,
154 | });
155 | } catch (error) {
156 | console.error("Error in chat API:", error);
157 | return NextResponse.json(
158 | { error: "Failed to generate response" },
159 | { status: 500 }
160 | );
161 | }
162 | }
163 |
--------------------------------------------------------------------------------
/components/PresetTemplateGrid.tsx:
--------------------------------------------------------------------------------
1 | /* eslint-disable @typescript-eslint/no-unused-vars */
2 | import React, { useRef } from "react";
3 | import { Card, CardContent } from "@/components/ui/card";
4 | import { Button } from "@/components/ui/button";
5 | import { Copy, Download } from "lucide-react";
6 | import { toast } from "react-toastify";
7 |
8 | interface Template {
9 | prompt: string;
10 | svg: string;
11 | }
12 |
13 | interface PresetTemplateGridProps {
14 | templates: Template[];
15 | onSelect: (template: Template) => void;
16 | }
17 |
18 | const PresetTemplateGrid: React.FC = ({
19 | templates,
20 | onSelect,
21 | }) => {
22 | const svgRef = useRef(null);
23 |
24 | const getSvgDimensions = (svgElement: SVGSVGElement) => {
25 | const viewBox = svgElement.getAttribute("viewBox");
26 | const width = svgElement.getAttribute("width");
27 | const height = svgElement.getAttribute("height");
28 |
29 | if (viewBox) {
30 | const [, , vbWidth, vbHeight] = viewBox.split(" ").map(Number);
31 | return { width: vbWidth, height: vbHeight };
32 | }
33 |
34 | if (width && height) {
35 | return { width: parseFloat(width), height: parseFloat(height) };
36 | }
37 |
38 | // 如果没有viewBox和明确的宽高,使用SVG的自然尺寸
39 | const bbox = svgElement.getBBox();
40 | return { width: bbox.width, height: bbox.height };
41 | };
42 |
43 | const processImage = (
44 | svgString: string,
45 | callback: (canvas: HTMLCanvasElement) => void
46 | ) => {
47 | const parser = new DOMParser();
48 | const svgDoc = parser.parseFromString(svgString, "image/svg+xml");
49 | const svgElement = svgDoc.documentElement as unknown as SVGSVGElement;
50 |
51 | const { width, height } = getSvgDimensions(svgElement);
52 |
53 | // 设置更高的分辨率
54 | const scale = 4;
55 | const scaledWidth = width * scale;
56 | const scaledHeight = height * scale;
57 |
58 | // 创建一个新的SVG元素,设置正确的尺寸
59 | const newSvg = svgElement.cloneNode(true) as SVGSVGElement;
60 | newSvg.setAttribute("width", `${scaledWidth}`);
61 | newSvg.setAttribute("height", `${scaledHeight}`);
62 |
63 | const svgData = new XMLSerializer().serializeToString(newSvg);
64 | const svgBlob = new Blob([svgData], {
65 | type: "image/svg+xml;charset=utf-8",
66 | });
67 | const svgUrl = URL.createObjectURL(svgBlob);
68 |
69 | const img = new Image();
70 | img.onload = () => {
71 | const canvas = document.createElement("canvas");
72 | canvas.width = scaledWidth;
73 | canvas.height = scaledHeight;
74 | const ctx = canvas.getContext("2d");
75 |
76 | if (ctx) {
77 | ctx.imageSmoothingEnabled = false;
78 | ctx.drawImage(img, 0, 0, scaledWidth, scaledHeight);
79 | callback(canvas);
80 | }
81 | URL.revokeObjectURL(svgUrl);
82 | };
83 | img.src = svgUrl;
84 | };
85 |
86 | const downloadImage = (svgString: string) => {
87 | processImage(svgString, (canvas) => {
88 | canvas.toBlob(
89 | (blob) => {
90 | if (!blob) {
91 | toast.error("无法创建图片");
92 | return;
93 | }
94 | const url = URL.createObjectURL(blob);
95 | const a = document.createElement("a");
96 | a.href = url;
97 | a.download = "generated.png";
98 | a.click();
99 | URL.revokeObjectURL(url);
100 | },
101 | "image/png",
102 | 1.0
103 | );
104 | });
105 | };
106 |
107 | const copyImageToClipboard = async (svgString: string) => {
108 | try {
109 | processImage(svgString, async (canvas) => {
110 | try {
111 | const blob = await new Promise((resolve) =>
112 | canvas.toBlob(resolve as BlobCallback, "image/png", 1.0)
113 | );
114 | await navigator.clipboard.write([
115 | new ClipboardItem({ "image/png": blob }),
116 | ]);
117 | toast.success("高清图片已复制到剪贴板");
118 | } catch (err) {
119 | console.error(err);
120 | toast.error("复制图片失败");
121 | }
122 | });
123 | } catch (error) {
124 | console.error("Error:", error);
125 | toast.error("复制图片失败");
126 | }
127 | };
128 |
129 | return (
130 |
131 | {templates.map((template, index) => (
132 |
136 |
137 |
144 |
145 | {template.prompt}
146 |
147 |
148 |
155 |
162 |
172 |
173 |
174 |
175 | ))}
176 |
177 | );
178 | };
179 |
180 | export default PresetTemplateGrid;
181 |
--------------------------------------------------------------------------------
/public/bmc-logo.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/components/social-card-generator.tsx:
--------------------------------------------------------------------------------
1 | /* eslint-disable @typescript-eslint/no-unused-vars */
2 | "use client";
3 |
4 | import { useState, useRef } from "react";
5 | import { Input } from "@/components/ui/input";
6 | import { Button } from "@/components/ui/button";
7 | import { Card, CardContent } from "@/components/ui/card";
8 | import { Loader2, Copy, Download } from "lucide-react";
9 | import { toast } from "sonner";
10 | import { presetTemplates } from "@/lib/constants";
11 | import PresetTemplateGrid from "./PresetTemplateGrid";
12 | import { toPng } from "html-to-image";
13 |
14 | const presetPrompts = [
15 | "一个喜欢打篮球的程序员",
16 | "喜欢唱,跳,Rap,篮球,足球的健身教练",
17 | ];
18 |
19 | export default function SocialCardGenerator() {
20 | const [text, setText] = useState("");
21 | const [htmlContent, setHtmlContent] = useState("");
22 | const [loading, setLoading] = useState(false);
23 | const svgRef = useRef(null);
24 |
25 | const onSubmit = async () => {
26 | if (!text) {
27 | toast.error("请输入内容");
28 | return;
29 | }
30 | setLoading(true);
31 | try {
32 | const response = await fetch("/api/prompt", {
33 | method: "POST",
34 | headers: {
35 | "Content-Type": "application/json",
36 | },
37 | body: JSON.stringify({ prompt: text }),
38 | });
39 |
40 | const data = await response.json();
41 |
42 | if (data.htmlContent) {
43 | setHtmlContent(data.htmlContent);
44 | toast.success("HTML 内容生成成功");
45 | } else {
46 | toast.error("无法生成 HTML 内容");
47 | }
48 | } catch (error) {
49 | console.error("Error:", error);
50 | toast.error("生成过程中出现错误");
51 | } finally {
52 | setLoading(false);
53 | }
54 | };
55 |
56 | const downloadImage = () => {
57 | if (!htmlContent) {
58 | toast.error("没有可下载的内容");
59 | return;
60 | }
61 |
62 | const canvas = document.createElement("canvas");
63 | const ctx = canvas.getContext("2d");
64 | const img = new Image();
65 |
66 | img.onload = () => {
67 | canvas.width = img.width;
68 | canvas.height = img.height;
69 | ctx?.drawImage(img, 0, 0);
70 | canvas.toBlob((blob) => {
71 | if (!blob) {
72 | toast.error("无法创建图片");
73 | return;
74 | }
75 | const url = URL.createObjectURL(blob);
76 | const a = document.createElement("a");
77 | a.href = url;
78 | a.download = "generated.png";
79 | a.click();
80 | URL.revokeObjectURL(url);
81 | }, "image/png");
82 | };
83 |
84 | img.src =
85 | "data:image/svg+xml;base64," +
86 | btoa(unescape(encodeURIComponent(htmlContent)));
87 | };
88 |
89 | const copyImageToClipboard = async () => {
90 | if (!svgRef.current) return;
91 |
92 | try {
93 | const dataUrl = await toPng(svgRef.current);
94 | const blob = await (await fetch(dataUrl)).blob();
95 |
96 | await navigator.clipboard.write([
97 | new ClipboardItem({ "image/png": blob }),
98 | ]);
99 |
100 | toast.success("图片已复制到剪贴板");
101 | } catch (error) {
102 | console.error("Error:", error);
103 | toast.error("复制图片失败");
104 | }
105 | };
106 |
107 | const handleTemplateSelect = (template: { prompt: string; svg: string }) => {
108 | setText(template.prompt);
109 | setHtmlContent(template.svg);
110 | toast.success("模板已加载");
111 | };
112 |
113 | return (
114 |
115 |
116 |
117 |
118 |
119 | 社交卡片生成器
120 |
121 |
122 |
123 | 社交卡片输入
124 |
125 | setText(e.target.value)}
129 | placeholder="提供一些描述细节, 方便模型理解"
130 | className="text-lg focus:ring-2 focus:ring-blue-200"
131 | />
132 |
133 |
134 | 例子
135 |
136 | {presetPrompts.map((prompt, index) => (
137 |
146 | ))}
147 |
148 |
149 |
160 |
161 |
162 |
163 |
164 |
165 | {loading ? (
166 |
167 |
168 |
181 |
182 |
183 | ) : htmlContent ? (
184 |
185 |
186 |
191 |
192 | {/*
196 | */}
200 |
201 |
212 |
213 |
214 |
215 | ) : (
216 |
217 |
218 | 生成的 社交卡片 将显示在这里
219 |
220 |
221 | )}
222 |
223 |
224 |
225 | );
226 | }
227 |
--------------------------------------------------------------------------------
/lib/constants.ts:
--------------------------------------------------------------------------------
1 | export const SITE_NAME = "TextHuman";
2 |
3 | export const presetPrompts = ["国足", "程序员", "独立开发者"];
4 |
5 | export const presetTemplates = [
6 | {
7 | prompt: "国足",
8 | svg: `
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 | 汉语新解
18 |
19 |
20 |
21 |
22 |
23 | 国足
24 | National Football Team
25 | 국가 축구팀
26 |
27 |
28 |
29 | "国足"是一个让中国人集体练习
30 | 失望的社会实验,每场比赛都在
31 | 考验我们的心理承受能力。
32 |
33 |
34 |
35 |
36 |
37 |
38 | `,
39 | },
40 | {
41 | prompt: "程序员",
42 | svg: `
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 | 汉语新解
52 |
53 |
54 |
55 |
56 |
57 | 程序员
58 | Programmer
59 | 프로그래머
60 |
61 |
62 |
63 | 现代社会的数字僧侣,
64 | 用咖啡因驱动的大脑,
65 | 在二进制的修道院里,
66 | 编织着虚拟世界的经文。
67 | 他们用键盘念咒,用代码布道,
68 | 却常被世俗的bug折磨得痛不欲生。
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 | `,
78 | },
79 | {
80 | prompt: "打工人",
81 | svg: `
82 |
83 |
84 |
85 | 汉语新解
86 |
87 |
88 |
89 | 打工人
90 | Wage Earner
91 | 임금 노동자
92 |
93 |
94 | 现代社会的自愿奴隶,
95 | 用青春换取房贷的勇士,
96 | 在996的战场上
97 | 为梦想加班的斗士。
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 | `,
106 | },
107 | {
108 | prompt: "内卷",
109 | svg: `
110 |
111 |
112 |
113 | 汉语新解
114 |
115 |
116 |
117 | 内卷
118 | Involution
119 | 내권
120 |
121 |
122 | 内卷:一场精心设计的社会游戏,
123 | 参与者们在狭小的跑步机上奋力狂奔,
124 | 却始终原地踏步。
125 | 这是一出现代版的西西弗斯神话,
126 | 只不过我们推的不是巨石,
127 | 而是永无止境的焦虑与虚荣。
128 |
129 |
130 |
131 |
132 |
133 |
134 | `,
135 | },
136 | {
137 | prompt: "躺平",
138 | svg: `
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 | 汉语新解
148 |
149 |
150 |
151 |
152 |
153 | 躺平
154 | Tang Ping
155 | 탕핑
156 |
157 |
158 |
159 | 躺平:当代青年对社会压力的
160 | 优雅反抗,用水平姿势对抗
161 | 垂直的阶级固化。是一种不
162 | 费力气的革命,用惰性对抗
163 | 内卷,以静制动的现代智慧。
164 |
165 |
166 |
167 |
168 |
169 |
170 | `,
171 | },
172 | {
173 | prompt: "996",
174 | svg: `
175 |
176 |
177 |
178 |
179 |
180 |
181 |
182 |
183 |
184 | 汉语新解
185 |
186 |
187 |
188 |
189 |
190 | 996
191 | Nine-Nine-Six
192 | 구구육
193 |
194 |
195 |
196 | 现代社畜的魔咒数字,
197 | 用工时来衡量生命价值的荒谬公式。
198 | 把人当机器,
199 | 把生活当牢笼,
200 | 用加班的鞭子抽打着梦想和青春。
201 |
202 |
203 |
204 |
205 |
206 |
207 | 生命曲线被工作拉直
208 |
209 |
210 | `,
211 | },
212 | {
213 | prompt: "鸡娃",
214 | svg: `
215 |
216 |
217 |
218 | 汉语新解
219 |
220 |
221 |
222 | 鸡娃
223 | Chicken baby
224 | 치킨 베이비
225 |
226 |
227 | 用教育的高压锅
228 | 把孩子炖成一只
229 | 金光闪闪的童年无忧鸡
230 |
231 |
232 |
233 |
234 |
235 |
236 |
237 | `,
238 | },
239 | ];
240 |
--------------------------------------------------------------------------------
/components/svg-generator.tsx:
--------------------------------------------------------------------------------
1 | /* eslint-disable @typescript-eslint/no-unused-vars */
2 | "use client";
3 |
4 | import { useState, useRef } from "react";
5 | import { Input } from "@/components/ui/input";
6 | import { Button } from "@/components/ui/button";
7 | import { Card, CardContent } from "@/components/ui/card";
8 | import { Loader2, Copy, Download } from "lucide-react";
9 | import { toast } from "sonner";
10 | import { presetTemplates } from "@/lib/constants";
11 | import PresetTemplateGrid from "./PresetTemplateGrid";
12 |
13 | export default function SvgGenerator() {
14 | const [text, setText] = useState("");
15 | const [svg, setSvg] = useState("");
16 | const [loading, setLoading] = useState(false);
17 | const svgRef = useRef(null);
18 |
19 | const onSubmit = async () => {
20 | if (!text) {
21 | toast.error("请输入内容");
22 | return;
23 | }
24 | setLoading(true);
25 | try {
26 | const response = await fetch("/api/chat", {
27 | method: "POST",
28 | headers: {
29 | "Content-Type": "application/json",
30 | },
31 | body: JSON.stringify({ prompt: text }),
32 | });
33 |
34 | const data = await response.json();
35 |
36 | if (data.svgContent) {
37 | setSvg(data.svgContent);
38 | toast.success("SVG 生成成功");
39 | } else {
40 | toast.error("无法生成 SVG");
41 | }
42 | } catch (error) {
43 | console.error("Error:", error);
44 | toast.error("生成过程中出现错误");
45 | } finally {
46 | setLoading(false);
47 | }
48 | };
49 |
50 | const downloadImage = () => {
51 | if (!svgRef.current) return;
52 |
53 | const svgElement = svgRef.current.querySelector("svg");
54 | if (!svgElement) {
55 | toast.error("SVG 元素未找到");
56 | return;
57 | }
58 |
59 | // 获取原始SVG的尺寸和viewBox
60 | const svgWidth = svgElement.getAttribute("width");
61 | const svgHeight = svgElement.getAttribute("height");
62 | const viewBox = svgElement.getAttribute("viewBox");
63 |
64 | // 设置更高的分辨率
65 | const scale = 4;
66 | const width = parseInt(svgWidth || "800");
67 | const height = parseInt(svgHeight || "600");
68 |
69 | // 创建一个新的SVG元素,保留原始尺寸和viewBox
70 | const newSvg = svgElement.cloneNode(true) as SVGElement;
71 | newSvg.setAttribute("width", width.toString());
72 | newSvg.setAttribute("height", height.toString());
73 | if (viewBox) newSvg.setAttribute("viewBox", viewBox);
74 |
75 | const svgData = new XMLSerializer().serializeToString(newSvg);
76 | const svgBlob = new Blob([svgData], {
77 | type: "image/svg+xml;charset=utf-8",
78 | });
79 | const svgUrl = URL.createObjectURL(svgBlob);
80 |
81 | const img = new Image();
82 | img.onload = () => {
83 | const canvas = document.createElement("canvas");
84 | canvas.width = width * scale;
85 | canvas.height = height * scale;
86 | const ctx = canvas.getContext("2d");
87 |
88 | if (ctx) {
89 | ctx.imageSmoothingEnabled = false;
90 | ctx.drawImage(img, 0, 0, width * scale, height * scale);
91 |
92 | canvas.toBlob(
93 | (blob) => {
94 | if (!blob) {
95 | toast.error("无法创建图片");
96 | return;
97 | }
98 | const url = URL.createObjectURL(blob);
99 | const a = document.createElement("a");
100 | a.href = url;
101 | a.download = "generated.png";
102 | a.click();
103 | URL.revokeObjectURL(url);
104 | URL.revokeObjectURL(svgUrl);
105 | },
106 | "image/png",
107 | 1.0
108 | );
109 | }
110 | };
111 |
112 | img.src = svgUrl;
113 | };
114 |
115 | const copyImageToClipboard = async () => {
116 | if (!svgRef.current) return;
117 |
118 | try {
119 | const svgElement = svgRef.current.querySelector("svg");
120 | if (!svgElement) throw new Error("SVG element not found");
121 |
122 | // 获取原始SVG的尺寸和viewBox
123 | const svgWidth = svgElement.getAttribute("width");
124 | const svgHeight = svgElement.getAttribute("height");
125 | const viewBox = svgElement.getAttribute("viewBox");
126 |
127 | // 设置更高的分辨率
128 | const scale = 4;
129 | const width = parseInt(svgWidth || "800");
130 | const height = parseInt(svgHeight || "600");
131 |
132 | // 创建一个新的SVG元素,保留原始尺寸和viewBox
133 | const newSvg = svgElement.cloneNode(true) as SVGElement;
134 | newSvg.setAttribute("width", width.toString());
135 | newSvg.setAttribute("height", height.toString());
136 | if (viewBox) newSvg.setAttribute("viewBox", viewBox);
137 |
138 | const svgData = new XMLSerializer().serializeToString(newSvg);
139 | const svgBlob = new Blob([svgData], {
140 | type: "image/svg+xml;charset=utf-8",
141 | });
142 | const svgUrl = URL.createObjectURL(svgBlob);
143 |
144 | const img = new Image();
145 | img.onload = async () => {
146 | const canvas = document.createElement("canvas");
147 | canvas.width = width * scale;
148 | canvas.height = height * scale;
149 | const ctx = canvas.getContext("2d");
150 | if (!ctx) throw new Error("Unable to create canvas context");
151 |
152 | ctx.imageSmoothingEnabled = false;
153 | ctx.drawImage(img, 0, 0, width * scale, height * scale);
154 |
155 | try {
156 | const blob = await new Promise((resolve) =>
157 | canvas.toBlob(resolve as BlobCallback, "image/png", 1.0)
158 | );
159 | await navigator.clipboard.write([
160 | new ClipboardItem({ "image/png": blob }),
161 | ]);
162 | toast.success("高清图片已复制到剪贴板");
163 | } catch (err) {
164 | console.error(err);
165 | toast.error("复制图片失败");
166 | } finally {
167 | URL.revokeObjectURL(svgUrl);
168 | }
169 | };
170 |
171 | img.src = svgUrl;
172 | } catch (error) {
173 | console.error("Error:", error);
174 | toast.error("复制图片失败");
175 | }
176 | };
177 |
178 | const handleTemplateSelect = (template: { prompt: string; svg: string }) => {
179 | setText(template.prompt);
180 | setSvg(template.svg);
181 | toast.success("模板已加载");
182 | };
183 |
184 | return (
185 |
186 |
187 |
188 |
189 |
190 |
191 | 汉语新解 | 给汉语一个全新的解释
192 |
193 |
194 |
195 |
196 | 汉语输入
197 |
198 | setText(e.target.value)}
202 | placeholder="输入一个汉语词汇"
203 | className="text-lg focus:ring-2 focus:ring-blue-200"
204 | />
205 |
206 |
207 |
208 |
209 | 推荐词汇
210 |
211 |
212 | {presetTemplates.map((item) => (
213 |
225 | ))}
226 |
227 |
228 |
229 |
240 |
241 |
242 |
243 |
244 |
245 | {loading ? (
246 |
247 |
248 |
261 |
262 |
263 | ) : svg ? (
264 |
265 |
266 |
271 |
272 |
276 |
280 |
281 |
292 |
293 |
294 |
295 | ) : (
296 |
297 |
298 | 生成的 汉语解释 将显示在这里
299 |
300 |
301 | )}
302 |
303 |
304 |
305 |
312 |
313 | );
314 | }
315 |
--------------------------------------------------------------------------------
/pnpm-lock.yaml:
--------------------------------------------------------------------------------
1 | lockfileVersion: '9.0'
2 |
3 | settings:
4 | autoInstallPeers: true
5 | excludeLinksFromLockfile: false
6 |
7 | importers:
8 |
9 | .:
10 | dependencies:
11 | '@anthropic-ai/sdk':
12 | specifier: ^0.27.3
13 | version: 0.27.3
14 | '@radix-ui/react-icons':
15 | specifier: ^1.3.0
16 | version: 1.3.0(react@18.3.1)
17 | '@radix-ui/react-slot':
18 | specifier: ^1.1.0
19 | version: 1.1.0(@types/react@18.3.5)(react@18.3.1)
20 | '@tabler/icons-react':
21 | specifier: ^3.16.0
22 | version: 3.16.0(react@18.3.1)
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 | framer-motion:
30 | specifier: ^11.5.4
31 | version: 11.5.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
32 | html-to-image:
33 | specifier: ^1.11.11
34 | version: 1.11.11
35 | lucide-react:
36 | specifier: ^0.439.0
37 | version: 0.439.0(react@18.3.1)
38 | next:
39 | specifier: 14.2.10
40 | version: 14.2.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
41 | next-themes:
42 | specifier: ^0.3.0
43 | version: 0.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
44 | openai:
45 | specifier: ^4.59.0
46 | version: 4.59.0
47 | react:
48 | specifier: ^18
49 | version: 18.3.1
50 | react-dom:
51 | specifier: ^18
52 | version: 18.3.1(react@18.3.1)
53 | react-toastify:
54 | specifier: ^10.0.5
55 | version: 10.0.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
56 | react-type-animation:
57 | specifier: ^3.2.0
58 | version: 3.2.0(prop-types@15.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
59 | sonner:
60 | specifier: ^1.5.0
61 | version: 1.5.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
62 | tailwind-merge:
63 | specifier: ^2.5.2
64 | version: 2.5.2
65 | tailwindcss-animate:
66 | specifier: ^1.0.7
67 | version: 1.0.7(tailwindcss@3.4.11)
68 | devDependencies:
69 | '@types/node':
70 | specifier: ^20
71 | version: 20.16.5
72 | '@types/react':
73 | specifier: ^18
74 | version: 18.3.5
75 | '@types/react-dom':
76 | specifier: ^18
77 | version: 18.3.0
78 | eslint:
79 | specifier: ^8
80 | version: 8.57.0
81 | eslint-config-next:
82 | specifier: 14.2.10
83 | version: 14.2.10(eslint@8.57.0)(typescript@5.6.2)
84 | postcss:
85 | specifier: ^8
86 | version: 8.4.45
87 | tailwindcss:
88 | specifier: ^3.4.1
89 | version: 3.4.11
90 | typescript:
91 | specifier: ^5
92 | version: 5.6.2
93 |
94 | packages:
95 |
96 | '@alloc/quick-lru@5.2.0':
97 | resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==}
98 | engines: {node: '>=10'}
99 |
100 | '@anthropic-ai/sdk@0.27.3':
101 | resolution: {integrity: sha512-IjLt0gd3L4jlOfilxVXTifn42FnVffMgDC04RJK1KDZpmkBWLv0XC92MVVmkxrFZNS/7l3xWgP/I3nqtX1sQHw==}
102 |
103 | '@eslint-community/eslint-utils@4.4.0':
104 | resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
105 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
106 | peerDependencies:
107 | eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
108 |
109 | '@eslint-community/regexpp@4.11.0':
110 | resolution: {integrity: sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==}
111 | engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
112 |
113 | '@eslint/eslintrc@2.1.4':
114 | resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==}
115 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
116 |
117 | '@eslint/js@8.57.0':
118 | resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==}
119 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
120 |
121 | '@humanwhocodes/config-array@0.11.14':
122 | resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==}
123 | engines: {node: '>=10.10.0'}
124 | deprecated: Use @eslint/config-array instead
125 |
126 | '@humanwhocodes/module-importer@1.0.1':
127 | resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
128 | engines: {node: '>=12.22'}
129 |
130 | '@humanwhocodes/object-schema@2.0.3':
131 | resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==}
132 | deprecated: Use @eslint/object-schema instead
133 |
134 | '@isaacs/cliui@8.0.2':
135 | resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
136 | engines: {node: '>=12'}
137 |
138 | '@jridgewell/gen-mapping@0.3.5':
139 | resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==}
140 | engines: {node: '>=6.0.0'}
141 |
142 | '@jridgewell/resolve-uri@3.1.2':
143 | resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
144 | engines: {node: '>=6.0.0'}
145 |
146 | '@jridgewell/set-array@1.2.1':
147 | resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==}
148 | engines: {node: '>=6.0.0'}
149 |
150 | '@jridgewell/sourcemap-codec@1.5.0':
151 | resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==}
152 |
153 | '@jridgewell/trace-mapping@0.3.25':
154 | resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==}
155 |
156 | '@next/env@14.2.10':
157 | resolution: {integrity: sha512-dZIu93Bf5LUtluBXIv4woQw2cZVZ2DJTjax5/5DOs3lzEOeKLy7GxRSr4caK9/SCPdaW6bCgpye6+n4Dh9oJPw==}
158 |
159 | '@next/eslint-plugin-next@14.2.10':
160 | resolution: {integrity: sha512-LqJcPP5QkmKewpwO3zX8SoVfWwKn5NKwfcs/j52oJa5EsEDyUsqjsmj5IRzmAJA0FSuB4umhjG55AGayY306fw==}
161 |
162 | '@next/swc-darwin-arm64@14.2.10':
163 | resolution: {integrity: sha512-V3z10NV+cvMAfxQUMhKgfQnPbjw+Ew3cnr64b0lr8MDiBJs3eLnM6RpGC46nhfMZsiXgQngCJKWGTC/yDcgrDQ==}
164 | engines: {node: '>= 10'}
165 | cpu: [arm64]
166 | os: [darwin]
167 |
168 | '@next/swc-darwin-x64@14.2.10':
169 | resolution: {integrity: sha512-Y0TC+FXbFUQ2MQgimJ/7Ina2mXIKhE7F+GUe1SgnzRmwFY3hX2z8nyVCxE82I2RicspdkZnSWMn4oTjIKz4uzA==}
170 | engines: {node: '>= 10'}
171 | cpu: [x64]
172 | os: [darwin]
173 |
174 | '@next/swc-linux-arm64-gnu@14.2.10':
175 | resolution: {integrity: sha512-ZfQ7yOy5zyskSj9rFpa0Yd7gkrBnJTkYVSya95hX3zeBG9E55Z6OTNPn1j2BTFWvOVVj65C3T+qsjOyVI9DQpA==}
176 | engines: {node: '>= 10'}
177 | cpu: [arm64]
178 | os: [linux]
179 | libc: [glibc]
180 |
181 | '@next/swc-linux-arm64-musl@14.2.10':
182 | resolution: {integrity: sha512-n2i5o3y2jpBfXFRxDREr342BGIQCJbdAUi/K4q6Env3aSx8erM9VuKXHw5KNROK9ejFSPf0LhoSkU/ZiNdacpQ==}
183 | engines: {node: '>= 10'}
184 | cpu: [arm64]
185 | os: [linux]
186 | libc: [musl]
187 |
188 | '@next/swc-linux-x64-gnu@14.2.10':
189 | resolution: {integrity: sha512-GXvajAWh2woTT0GKEDlkVhFNxhJS/XdDmrVHrPOA83pLzlGPQnixqxD8u3bBB9oATBKB//5e4vpACnx5Vaxdqg==}
190 | engines: {node: '>= 10'}
191 | cpu: [x64]
192 | os: [linux]
193 | libc: [glibc]
194 |
195 | '@next/swc-linux-x64-musl@14.2.10':
196 | resolution: {integrity: sha512-opFFN5B0SnO+HTz4Wq4HaylXGFV+iHrVxd3YvREUX9K+xfc4ePbRrxqOuPOFjtSuiVouwe6uLeDtabjEIbkmDA==}
197 | engines: {node: '>= 10'}
198 | cpu: [x64]
199 | os: [linux]
200 | libc: [musl]
201 |
202 | '@next/swc-win32-arm64-msvc@14.2.10':
203 | resolution: {integrity: sha512-9NUzZuR8WiXTvv+EiU/MXdcQ1XUvFixbLIMNQiVHuzs7ZIFrJDLJDaOF1KaqttoTujpcxljM/RNAOmw1GhPPQQ==}
204 | engines: {node: '>= 10'}
205 | cpu: [arm64]
206 | os: [win32]
207 |
208 | '@next/swc-win32-ia32-msvc@14.2.10':
209 | resolution: {integrity: sha512-fr3aEbSd1GeW3YUMBkWAu4hcdjZ6g4NBl1uku4gAn661tcxd1bHs1THWYzdsbTRLcCKLjrDZlNp6j2HTfrw+Bg==}
210 | engines: {node: '>= 10'}
211 | cpu: [ia32]
212 | os: [win32]
213 |
214 | '@next/swc-win32-x64-msvc@14.2.10':
215 | resolution: {integrity: sha512-UjeVoRGKNL2zfbcQ6fscmgjBAS/inHBh63mjIlfPg/NG8Yn2ztqylXt5qilYb6hoHIwaU2ogHknHWWmahJjgZQ==}
216 | engines: {node: '>= 10'}
217 | cpu: [x64]
218 | os: [win32]
219 |
220 | '@nodelib/fs.scandir@2.1.5':
221 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
222 | engines: {node: '>= 8'}
223 |
224 | '@nodelib/fs.stat@2.0.5':
225 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
226 | engines: {node: '>= 8'}
227 |
228 | '@nodelib/fs.walk@1.2.8':
229 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
230 | engines: {node: '>= 8'}
231 |
232 | '@nolyfill/is-core-module@1.0.39':
233 | resolution: {integrity: sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==}
234 | engines: {node: '>=12.4.0'}
235 |
236 | '@pkgjs/parseargs@0.11.0':
237 | resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
238 | engines: {node: '>=14'}
239 |
240 | '@radix-ui/react-compose-refs@1.1.0':
241 | resolution: {integrity: sha512-b4inOtiaOnYf9KWyO3jAeeCG6FeyfY6ldiEPanbUjWd+xIk5wZeHa8yVwmrJ2vderhu/BQvzCrJI0lHd+wIiqw==}
242 | peerDependencies:
243 | '@types/react': '*'
244 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
245 | peerDependenciesMeta:
246 | '@types/react':
247 | optional: true
248 |
249 | '@radix-ui/react-icons@1.3.0':
250 | resolution: {integrity: sha512-jQxj/0LKgp+j9BiTXz3O3sgs26RNet2iLWmsPyRz2SIcR4q/4SbazXfnYwbAr+vLYKSfc7qxzyGQA1HLlYiuNw==}
251 | peerDependencies:
252 | react: ^16.x || ^17.x || ^18.x
253 |
254 | '@radix-ui/react-slot@1.1.0':
255 | resolution: {integrity: sha512-FUCf5XMfmW4dtYl69pdS4DbxKy8nj4M7SafBgPllysxmdachynNflAdp/gCsnYWNDnge6tI9onzMp5ARYc1KNw==}
256 | peerDependencies:
257 | '@types/react': '*'
258 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
259 | peerDependenciesMeta:
260 | '@types/react':
261 | optional: true
262 |
263 | '@rtsao/scc@1.1.0':
264 | resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==}
265 |
266 | '@rushstack/eslint-patch@1.10.4':
267 | resolution: {integrity: sha512-WJgX9nzTqknM393q1QJDJmoW28kUfEnybeTfVNcNAPnIx210RXm2DiXiHzfNPJNIUUb1tJnz/l4QGtJ30PgWmA==}
268 |
269 | '@swc/counter@0.1.3':
270 | resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==}
271 |
272 | '@swc/helpers@0.5.5':
273 | resolution: {integrity: sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==}
274 |
275 | '@tabler/icons-react@3.16.0':
276 | resolution: {integrity: sha512-u2ABvvw71+VZMmkQ9PXsBQb+xoox8YSV8+96Xbg5jocE+gqIrAJD/3dJxWN9YhEP3TBhbcFQdkY4svvhhE+FBw==}
277 | peerDependencies:
278 | react: '>= 16'
279 |
280 | '@tabler/icons@3.16.0':
281 | resolution: {integrity: sha512-GU7MSx4uQEr55BmyON6hD/QYTl6k1v0YlRhM91gBWDoKAbyCt6QIYw7rpJ/ecdh5zrHaTOJKPenZ4+luoutwFA==}
282 |
283 | '@types/json-schema@7.0.15':
284 | resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
285 |
286 | '@types/json5@0.0.29':
287 | resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
288 |
289 | '@types/node-fetch@2.6.11':
290 | resolution: {integrity: sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==}
291 |
292 | '@types/node@18.19.50':
293 | resolution: {integrity: sha512-xonK+NRrMBRtkL1hVCc3G+uXtjh1Al4opBLjqVmipe5ZAaBYWW6cNAiBVZ1BvmkBhep698rP3UM3aRAdSALuhg==}
294 |
295 | '@types/node@20.16.5':
296 | resolution: {integrity: sha512-VwYCweNo3ERajwy0IUlqqcyZ8/A7Zwa9ZP3MnENWcB11AejO+tLy3pu850goUW2FC/IJMdZUfKpX/yxL1gymCA==}
297 |
298 | '@types/prop-types@15.7.12':
299 | resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==}
300 |
301 | '@types/qs@6.9.15':
302 | resolution: {integrity: sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==}
303 |
304 | '@types/react-dom@18.3.0':
305 | resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==}
306 |
307 | '@types/react@18.3.5':
308 | resolution: {integrity: sha512-WeqMfGJLGuLCqHGYRGHxnKrXcTitc6L/nBUWfWPcTarG3t9PsquqUMuVeXZeca+mglY4Vo5GZjCi0A3Or2lnxA==}
309 |
310 | '@types/semver@7.5.8':
311 | resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==}
312 |
313 | '@typescript-eslint/eslint-plugin@7.2.0':
314 | resolution: {integrity: sha512-mdekAHOqS9UjlmyF/LSs6AIEvfceV749GFxoBAjwAv0nkevfKHWQFDMcBZWUiIC5ft6ePWivXoS36aKQ0Cy3sw==}
315 | engines: {node: ^16.0.0 || >=18.0.0}
316 | peerDependencies:
317 | '@typescript-eslint/parser': ^7.0.0
318 | eslint: ^8.56.0
319 | typescript: '*'
320 | peerDependenciesMeta:
321 | typescript:
322 | optional: true
323 |
324 | '@typescript-eslint/parser@7.2.0':
325 | resolution: {integrity: sha512-5FKsVcHTk6TafQKQbuIVkXq58Fnbkd2wDL4LB7AURN7RUOu1utVP+G8+6u3ZhEroW3DF6hyo3ZEXxgKgp4KeCg==}
326 | engines: {node: ^16.0.0 || >=18.0.0}
327 | peerDependencies:
328 | eslint: ^8.56.0
329 | typescript: '*'
330 | peerDependenciesMeta:
331 | typescript:
332 | optional: true
333 |
334 | '@typescript-eslint/scope-manager@7.2.0':
335 | resolution: {integrity: sha512-Qh976RbQM/fYtjx9hs4XkayYujB/aPwglw2choHmf3zBjB4qOywWSdt9+KLRdHubGcoSwBnXUH2sR3hkyaERRg==}
336 | engines: {node: ^16.0.0 || >=18.0.0}
337 |
338 | '@typescript-eslint/type-utils@7.2.0':
339 | resolution: {integrity: sha512-xHi51adBHo9O9330J8GQYQwrKBqbIPJGZZVQTHHmy200hvkLZFWJIFtAG/7IYTWUyun6DE6w5InDReePJYJlJA==}
340 | engines: {node: ^16.0.0 || >=18.0.0}
341 | peerDependencies:
342 | eslint: ^8.56.0
343 | typescript: '*'
344 | peerDependenciesMeta:
345 | typescript:
346 | optional: true
347 |
348 | '@typescript-eslint/types@7.2.0':
349 | resolution: {integrity: sha512-XFtUHPI/abFhm4cbCDc5Ykc8npOKBSJePY3a3s+lwumt7XWJuzP5cZcfZ610MIPHjQjNsOLlYK8ASPaNG8UiyA==}
350 | engines: {node: ^16.0.0 || >=18.0.0}
351 |
352 | '@typescript-eslint/typescript-estree@7.2.0':
353 | resolution: {integrity: sha512-cyxS5WQQCoBwSakpMrvMXuMDEbhOo9bNHHrNcEWis6XHx6KF518tkF1wBvKIn/tpq5ZpUYK7Bdklu8qY0MsFIA==}
354 | engines: {node: ^16.0.0 || >=18.0.0}
355 | peerDependencies:
356 | typescript: '*'
357 | peerDependenciesMeta:
358 | typescript:
359 | optional: true
360 |
361 | '@typescript-eslint/utils@7.2.0':
362 | resolution: {integrity: sha512-YfHpnMAGb1Eekpm3XRK8hcMwGLGsnT6L+7b2XyRv6ouDuJU1tZir1GS2i0+VXRatMwSI1/UfcyPe53ADkU+IuA==}
363 | engines: {node: ^16.0.0 || >=18.0.0}
364 | peerDependencies:
365 | eslint: ^8.56.0
366 |
367 | '@typescript-eslint/visitor-keys@7.2.0':
368 | resolution: {integrity: sha512-c6EIQRHhcpl6+tO8EMR+kjkkV+ugUNXOmeASA1rlzkd8EPIriavpWoiEz1HR/VLhbVIdhqnV6E7JZm00cBDx2A==}
369 | engines: {node: ^16.0.0 || >=18.0.0}
370 |
371 | '@ungap/structured-clone@1.2.0':
372 | resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
373 |
374 | abort-controller@3.0.0:
375 | resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==}
376 | engines: {node: '>=6.5'}
377 |
378 | acorn-jsx@5.3.2:
379 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
380 | peerDependencies:
381 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
382 |
383 | acorn@8.12.1:
384 | resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==}
385 | engines: {node: '>=0.4.0'}
386 | hasBin: true
387 |
388 | agentkeepalive@4.5.0:
389 | resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==}
390 | engines: {node: '>= 8.0.0'}
391 |
392 | ajv@6.12.6:
393 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
394 |
395 | ansi-regex@5.0.1:
396 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
397 | engines: {node: '>=8'}
398 |
399 | ansi-regex@6.1.0:
400 | resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==}
401 | engines: {node: '>=12'}
402 |
403 | ansi-styles@4.3.0:
404 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
405 | engines: {node: '>=8'}
406 |
407 | ansi-styles@6.2.1:
408 | resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
409 | engines: {node: '>=12'}
410 |
411 | any-promise@1.3.0:
412 | resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==}
413 |
414 | anymatch@3.1.3:
415 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
416 | engines: {node: '>= 8'}
417 |
418 | arg@5.0.2:
419 | resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
420 |
421 | argparse@2.0.1:
422 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
423 |
424 | aria-query@5.1.3:
425 | resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==}
426 |
427 | array-buffer-byte-length@1.0.1:
428 | resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==}
429 | engines: {node: '>= 0.4'}
430 |
431 | array-includes@3.1.8:
432 | resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==}
433 | engines: {node: '>= 0.4'}
434 |
435 | array-union@2.1.0:
436 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
437 | engines: {node: '>=8'}
438 |
439 | array.prototype.findlast@1.2.5:
440 | resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==}
441 | engines: {node: '>= 0.4'}
442 |
443 | array.prototype.findlastindex@1.2.5:
444 | resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==}
445 | engines: {node: '>= 0.4'}
446 |
447 | array.prototype.flat@1.3.2:
448 | resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==}
449 | engines: {node: '>= 0.4'}
450 |
451 | array.prototype.flatmap@1.3.2:
452 | resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==}
453 | engines: {node: '>= 0.4'}
454 |
455 | array.prototype.tosorted@1.1.4:
456 | resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==}
457 | engines: {node: '>= 0.4'}
458 |
459 | arraybuffer.prototype.slice@1.0.3:
460 | resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==}
461 | engines: {node: '>= 0.4'}
462 |
463 | ast-types-flow@0.0.8:
464 | resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==}
465 |
466 | asynckit@0.4.0:
467 | resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
468 |
469 | available-typed-arrays@1.0.7:
470 | resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==}
471 | engines: {node: '>= 0.4'}
472 |
473 | axe-core@4.10.0:
474 | resolution: {integrity: sha512-Mr2ZakwQ7XUAjp7pAwQWRhhK8mQQ6JAaNWSjmjxil0R8BPioMtQsTLOolGYkji1rcL++3dCqZA3zWqpT+9Ew6g==}
475 | engines: {node: '>=4'}
476 |
477 | axobject-query@4.1.0:
478 | resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==}
479 | engines: {node: '>= 0.4'}
480 |
481 | balanced-match@1.0.2:
482 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
483 |
484 | binary-extensions@2.3.0:
485 | resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
486 | engines: {node: '>=8'}
487 |
488 | brace-expansion@1.1.11:
489 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
490 |
491 | brace-expansion@2.0.1:
492 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
493 |
494 | braces@3.0.3:
495 | resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
496 | engines: {node: '>=8'}
497 |
498 | busboy@1.6.0:
499 | resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==}
500 | engines: {node: '>=10.16.0'}
501 |
502 | call-bind@1.0.7:
503 | resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==}
504 | engines: {node: '>= 0.4'}
505 |
506 | callsites@3.1.0:
507 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
508 | engines: {node: '>=6'}
509 |
510 | camelcase-css@2.0.1:
511 | resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==}
512 | engines: {node: '>= 6'}
513 |
514 | caniuse-lite@1.0.30001660:
515 | resolution: {integrity: sha512-GacvNTTuATm26qC74pt+ad1fW15mlQ/zuTzzY1ZoIzECTP8HURDfF43kNxPgf7H1jmelCBQTTbBNxdSXOA7Bqg==}
516 |
517 | chalk@4.1.2:
518 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
519 | engines: {node: '>=10'}
520 |
521 | chokidar@3.6.0:
522 | resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
523 | engines: {node: '>= 8.10.0'}
524 |
525 | class-variance-authority@0.7.0:
526 | resolution: {integrity: sha512-jFI8IQw4hczaL4ALINxqLEXQbWcNjoSkloa4IaufXCJr6QawJyw7tuRysRsrE8w2p/4gGaxKIt/hX3qz/IbD1A==}
527 |
528 | client-only@0.0.1:
529 | resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==}
530 |
531 | clsx@2.0.0:
532 | resolution: {integrity: sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==}
533 | engines: {node: '>=6'}
534 |
535 | clsx@2.1.1:
536 | resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==}
537 | engines: {node: '>=6'}
538 |
539 | color-convert@2.0.1:
540 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
541 | engines: {node: '>=7.0.0'}
542 |
543 | color-name@1.1.4:
544 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
545 |
546 | combined-stream@1.0.8:
547 | resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
548 | engines: {node: '>= 0.8'}
549 |
550 | commander@4.1.1:
551 | resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
552 | engines: {node: '>= 6'}
553 |
554 | concat-map@0.0.1:
555 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
556 |
557 | cross-spawn@7.0.3:
558 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
559 | engines: {node: '>= 8'}
560 |
561 | cssesc@3.0.0:
562 | resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
563 | engines: {node: '>=4'}
564 | hasBin: true
565 |
566 | csstype@3.1.3:
567 | resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
568 |
569 | damerau-levenshtein@1.0.8:
570 | resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==}
571 |
572 | data-view-buffer@1.0.1:
573 | resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==}
574 | engines: {node: '>= 0.4'}
575 |
576 | data-view-byte-length@1.0.1:
577 | resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==}
578 | engines: {node: '>= 0.4'}
579 |
580 | data-view-byte-offset@1.0.0:
581 | resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==}
582 | engines: {node: '>= 0.4'}
583 |
584 | debug@3.2.7:
585 | resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
586 | peerDependencies:
587 | supports-color: '*'
588 | peerDependenciesMeta:
589 | supports-color:
590 | optional: true
591 |
592 | debug@4.3.7:
593 | resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==}
594 | engines: {node: '>=6.0'}
595 | peerDependencies:
596 | supports-color: '*'
597 | peerDependenciesMeta:
598 | supports-color:
599 | optional: true
600 |
601 | deep-equal@2.2.3:
602 | resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==}
603 | engines: {node: '>= 0.4'}
604 |
605 | deep-is@0.1.4:
606 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
607 |
608 | define-data-property@1.1.4:
609 | resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==}
610 | engines: {node: '>= 0.4'}
611 |
612 | define-properties@1.2.1:
613 | resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==}
614 | engines: {node: '>= 0.4'}
615 |
616 | delayed-stream@1.0.0:
617 | resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
618 | engines: {node: '>=0.4.0'}
619 |
620 | didyoumean@1.2.2:
621 | resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
622 |
623 | dir-glob@3.0.1:
624 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
625 | engines: {node: '>=8'}
626 |
627 | dlv@1.1.3:
628 | resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
629 |
630 | doctrine@2.1.0:
631 | resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==}
632 | engines: {node: '>=0.10.0'}
633 |
634 | doctrine@3.0.0:
635 | resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
636 | engines: {node: '>=6.0.0'}
637 |
638 | eastasianwidth@0.2.0:
639 | resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
640 |
641 | emoji-regex@8.0.0:
642 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
643 |
644 | emoji-regex@9.2.2:
645 | resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
646 |
647 | enhanced-resolve@5.17.1:
648 | resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==}
649 | engines: {node: '>=10.13.0'}
650 |
651 | es-abstract@1.23.3:
652 | resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==}
653 | engines: {node: '>= 0.4'}
654 |
655 | es-define-property@1.0.0:
656 | resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==}
657 | engines: {node: '>= 0.4'}
658 |
659 | es-errors@1.3.0:
660 | resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
661 | engines: {node: '>= 0.4'}
662 |
663 | es-get-iterator@1.1.3:
664 | resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==}
665 |
666 | es-iterator-helpers@1.0.19:
667 | resolution: {integrity: sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==}
668 | engines: {node: '>= 0.4'}
669 |
670 | es-object-atoms@1.0.0:
671 | resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==}
672 | engines: {node: '>= 0.4'}
673 |
674 | es-set-tostringtag@2.0.3:
675 | resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==}
676 | engines: {node: '>= 0.4'}
677 |
678 | es-shim-unscopables@1.0.2:
679 | resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==}
680 |
681 | es-to-primitive@1.2.1:
682 | resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==}
683 | engines: {node: '>= 0.4'}
684 |
685 | escape-string-regexp@4.0.0:
686 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
687 | engines: {node: '>=10'}
688 |
689 | eslint-config-next@14.2.10:
690 | resolution: {integrity: sha512-qO/L8LbfhBhobNowiJP+UBOb7w+JRvbz6T5X05heLOGO6/VwDIIsZL6XjWiKJ45lnwSpwP1kxoBBxCYr2wTMaw==}
691 | peerDependencies:
692 | eslint: ^7.23.0 || ^8.0.0
693 | typescript: '>=3.3.1'
694 | peerDependenciesMeta:
695 | typescript:
696 | optional: true
697 |
698 | eslint-import-resolver-node@0.3.9:
699 | resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==}
700 |
701 | eslint-import-resolver-typescript@3.6.3:
702 | resolution: {integrity: sha512-ud9aw4szY9cCT1EWWdGv1L1XR6hh2PaRWif0j2QjQ0pgTY/69iw+W0Z4qZv5wHahOl8isEr+k/JnyAqNQkLkIA==}
703 | engines: {node: ^14.18.0 || >=16.0.0}
704 | peerDependencies:
705 | eslint: '*'
706 | eslint-plugin-import: '*'
707 | eslint-plugin-import-x: '*'
708 | peerDependenciesMeta:
709 | eslint-plugin-import:
710 | optional: true
711 | eslint-plugin-import-x:
712 | optional: true
713 |
714 | eslint-module-utils@2.11.0:
715 | resolution: {integrity: sha512-gbBE5Hitek/oG6MUVj6sFuzEjA/ClzNflVrLovHi/JgLdC7fiN5gLAY1WIPW1a0V5I999MnsrvVrCOGmmVqDBQ==}
716 | engines: {node: '>=4'}
717 | peerDependencies:
718 | '@typescript-eslint/parser': '*'
719 | eslint: '*'
720 | eslint-import-resolver-node: '*'
721 | eslint-import-resolver-typescript: '*'
722 | eslint-import-resolver-webpack: '*'
723 | peerDependenciesMeta:
724 | '@typescript-eslint/parser':
725 | optional: true
726 | eslint:
727 | optional: true
728 | eslint-import-resolver-node:
729 | optional: true
730 | eslint-import-resolver-typescript:
731 | optional: true
732 | eslint-import-resolver-webpack:
733 | optional: true
734 |
735 | eslint-plugin-import@2.30.0:
736 | resolution: {integrity: sha512-/mHNE9jINJfiD2EKkg1BKyPyUk4zdnT54YgbOgfjSakWT5oyX/qQLVNTkehyfpcMxZXMy1zyonZ2v7hZTX43Yw==}
737 | engines: {node: '>=4'}
738 | peerDependencies:
739 | '@typescript-eslint/parser': '*'
740 | eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8
741 | peerDependenciesMeta:
742 | '@typescript-eslint/parser':
743 | optional: true
744 |
745 | eslint-plugin-jsx-a11y@6.10.0:
746 | resolution: {integrity: sha512-ySOHvXX8eSN6zz8Bywacm7CvGNhUtdjvqfQDVe6020TUK34Cywkw7m0KsCCk1Qtm9G1FayfTN1/7mMYnYO2Bhg==}
747 | engines: {node: '>=4.0'}
748 | peerDependencies:
749 | eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9
750 |
751 | eslint-plugin-react-hooks@4.6.2:
752 | resolution: {integrity: sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==}
753 | engines: {node: '>=10'}
754 | peerDependencies:
755 | eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0
756 |
757 | eslint-plugin-react@7.35.2:
758 | resolution: {integrity: sha512-Rbj2R9zwP2GYNcIak4xoAMV57hrBh3hTaR0k7hVjwCQgryE/pw5px4b13EYjduOI0hfXyZhwBxaGpOTbWSGzKQ==}
759 | engines: {node: '>=4'}
760 | peerDependencies:
761 | eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7
762 |
763 | eslint-scope@7.2.2:
764 | resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==}
765 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
766 |
767 | eslint-visitor-keys@3.4.3:
768 | resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
769 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
770 |
771 | eslint@8.57.0:
772 | resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==}
773 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
774 | hasBin: true
775 |
776 | espree@9.6.1:
777 | resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
778 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
779 |
780 | esquery@1.6.0:
781 | resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==}
782 | engines: {node: '>=0.10'}
783 |
784 | esrecurse@4.3.0:
785 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
786 | engines: {node: '>=4.0'}
787 |
788 | estraverse@5.3.0:
789 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
790 | engines: {node: '>=4.0'}
791 |
792 | esutils@2.0.3:
793 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
794 | engines: {node: '>=0.10.0'}
795 |
796 | event-target-shim@5.0.1:
797 | resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==}
798 | engines: {node: '>=6'}
799 |
800 | fast-deep-equal@3.1.3:
801 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
802 |
803 | fast-glob@3.3.2:
804 | resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==}
805 | engines: {node: '>=8.6.0'}
806 |
807 | fast-json-stable-stringify@2.1.0:
808 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
809 |
810 | fast-levenshtein@2.0.6:
811 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
812 |
813 | fastq@1.17.1:
814 | resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==}
815 |
816 | file-entry-cache@6.0.1:
817 | resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
818 | engines: {node: ^10.12.0 || >=12.0.0}
819 |
820 | fill-range@7.1.1:
821 | resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
822 | engines: {node: '>=8'}
823 |
824 | find-up@5.0.0:
825 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
826 | engines: {node: '>=10'}
827 |
828 | flat-cache@3.2.0:
829 | resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==}
830 | engines: {node: ^10.12.0 || >=12.0.0}
831 |
832 | flatted@3.3.1:
833 | resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==}
834 |
835 | for-each@0.3.3:
836 | resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==}
837 |
838 | foreground-child@3.3.0:
839 | resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==}
840 | engines: {node: '>=14'}
841 |
842 | form-data-encoder@1.7.2:
843 | resolution: {integrity: sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==}
844 |
845 | form-data@4.0.0:
846 | resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==}
847 | engines: {node: '>= 6'}
848 |
849 | formdata-node@4.4.1:
850 | resolution: {integrity: sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==}
851 | engines: {node: '>= 12.20'}
852 |
853 | framer-motion@11.5.4:
854 | resolution: {integrity: sha512-E+tb3/G6SO69POkdJT+3EpdMuhmtCh9EWuK4I1DnIC23L7tFPrl8vxP+LSovwaw6uUr73rUbpb4FgK011wbRJQ==}
855 | peerDependencies:
856 | '@emotion/is-prop-valid': '*'
857 | react: ^18.0.0
858 | react-dom: ^18.0.0
859 | peerDependenciesMeta:
860 | '@emotion/is-prop-valid':
861 | optional: true
862 | react:
863 | optional: true
864 | react-dom:
865 | optional: true
866 |
867 | fs.realpath@1.0.0:
868 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
869 |
870 | fsevents@2.3.3:
871 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
872 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
873 | os: [darwin]
874 |
875 | function-bind@1.1.2:
876 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
877 |
878 | function.prototype.name@1.1.6:
879 | resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==}
880 | engines: {node: '>= 0.4'}
881 |
882 | functions-have-names@1.2.3:
883 | resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}
884 |
885 | get-intrinsic@1.2.4:
886 | resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==}
887 | engines: {node: '>= 0.4'}
888 |
889 | get-symbol-description@1.0.2:
890 | resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==}
891 | engines: {node: '>= 0.4'}
892 |
893 | get-tsconfig@4.8.0:
894 | resolution: {integrity: sha512-Pgba6TExTZ0FJAn1qkJAjIeKoDJ3CsI2ChuLohJnZl/tTU8MVrq3b+2t5UOPfRa4RMsorClBjJALkJUMjG1PAw==}
895 |
896 | glob-parent@5.1.2:
897 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
898 | engines: {node: '>= 6'}
899 |
900 | glob-parent@6.0.2:
901 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
902 | engines: {node: '>=10.13.0'}
903 |
904 | glob@10.3.10:
905 | resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==}
906 | engines: {node: '>=16 || 14 >=14.17'}
907 | hasBin: true
908 |
909 | glob@10.4.5:
910 | resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==}
911 | hasBin: true
912 |
913 | glob@7.2.3:
914 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
915 | deprecated: Glob versions prior to v9 are no longer supported
916 |
917 | globals@13.24.0:
918 | resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==}
919 | engines: {node: '>=8'}
920 |
921 | globalthis@1.0.4:
922 | resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==}
923 | engines: {node: '>= 0.4'}
924 |
925 | globby@11.1.0:
926 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
927 | engines: {node: '>=10'}
928 |
929 | gopd@1.0.1:
930 | resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==}
931 |
932 | graceful-fs@4.2.11:
933 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
934 |
935 | graphemer@1.4.0:
936 | resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
937 |
938 | has-bigints@1.0.2:
939 | resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==}
940 |
941 | has-flag@4.0.0:
942 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
943 | engines: {node: '>=8'}
944 |
945 | has-property-descriptors@1.0.2:
946 | resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==}
947 |
948 | has-proto@1.0.3:
949 | resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==}
950 | engines: {node: '>= 0.4'}
951 |
952 | has-symbols@1.0.3:
953 | resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==}
954 | engines: {node: '>= 0.4'}
955 |
956 | has-tostringtag@1.0.2:
957 | resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==}
958 | engines: {node: '>= 0.4'}
959 |
960 | hasown@2.0.2:
961 | resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
962 | engines: {node: '>= 0.4'}
963 |
964 | html-to-image@1.11.11:
965 | resolution: {integrity: sha512-9gux8QhvjRO/erSnDPv28noDZcPZmYE7e1vFsBLKLlRlKDSqNJYebj6Qz1TGd5lsRV+X+xYyjCKjuZdABinWjA==}
966 |
967 | humanize-ms@1.2.1:
968 | resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==}
969 |
970 | ignore@5.3.2:
971 | resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
972 | engines: {node: '>= 4'}
973 |
974 | import-fresh@3.3.0:
975 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
976 | engines: {node: '>=6'}
977 |
978 | imurmurhash@0.1.4:
979 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
980 | engines: {node: '>=0.8.19'}
981 |
982 | inflight@1.0.6:
983 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
984 | deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
985 |
986 | inherits@2.0.4:
987 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
988 |
989 | internal-slot@1.0.7:
990 | resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==}
991 | engines: {node: '>= 0.4'}
992 |
993 | is-arguments@1.1.1:
994 | resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==}
995 | engines: {node: '>= 0.4'}
996 |
997 | is-array-buffer@3.0.4:
998 | resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==}
999 | engines: {node: '>= 0.4'}
1000 |
1001 | is-async-function@2.0.0:
1002 | resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==}
1003 | engines: {node: '>= 0.4'}
1004 |
1005 | is-bigint@1.0.4:
1006 | resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==}
1007 |
1008 | is-binary-path@2.1.0:
1009 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
1010 | engines: {node: '>=8'}
1011 |
1012 | is-boolean-object@1.1.2:
1013 | resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==}
1014 | engines: {node: '>= 0.4'}
1015 |
1016 | is-bun-module@1.2.1:
1017 | resolution: {integrity: sha512-AmidtEM6D6NmUiLOvvU7+IePxjEjOzra2h0pSrsfSAcXwl/83zLLXDByafUJy9k/rKK0pvXMLdwKwGHlX2Ke6Q==}
1018 |
1019 | is-callable@1.2.7:
1020 | resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
1021 | engines: {node: '>= 0.4'}
1022 |
1023 | is-core-module@2.15.1:
1024 | resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==}
1025 | engines: {node: '>= 0.4'}
1026 |
1027 | is-data-view@1.0.1:
1028 | resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==}
1029 | engines: {node: '>= 0.4'}
1030 |
1031 | is-date-object@1.0.5:
1032 | resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==}
1033 | engines: {node: '>= 0.4'}
1034 |
1035 | is-extglob@2.1.1:
1036 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
1037 | engines: {node: '>=0.10.0'}
1038 |
1039 | is-finalizationregistry@1.0.2:
1040 | resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==}
1041 |
1042 | is-fullwidth-code-point@3.0.0:
1043 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
1044 | engines: {node: '>=8'}
1045 |
1046 | is-generator-function@1.0.10:
1047 | resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==}
1048 | engines: {node: '>= 0.4'}
1049 |
1050 | is-glob@4.0.3:
1051 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
1052 | engines: {node: '>=0.10.0'}
1053 |
1054 | is-map@2.0.3:
1055 | resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==}
1056 | engines: {node: '>= 0.4'}
1057 |
1058 | is-negative-zero@2.0.3:
1059 | resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==}
1060 | engines: {node: '>= 0.4'}
1061 |
1062 | is-number-object@1.0.7:
1063 | resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==}
1064 | engines: {node: '>= 0.4'}
1065 |
1066 | is-number@7.0.0:
1067 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
1068 | engines: {node: '>=0.12.0'}
1069 |
1070 | is-path-inside@3.0.3:
1071 | resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
1072 | engines: {node: '>=8'}
1073 |
1074 | is-regex@1.1.4:
1075 | resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==}
1076 | engines: {node: '>= 0.4'}
1077 |
1078 | is-set@2.0.3:
1079 | resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==}
1080 | engines: {node: '>= 0.4'}
1081 |
1082 | is-shared-array-buffer@1.0.3:
1083 | resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==}
1084 | engines: {node: '>= 0.4'}
1085 |
1086 | is-string@1.0.7:
1087 | resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==}
1088 | engines: {node: '>= 0.4'}
1089 |
1090 | is-symbol@1.0.4:
1091 | resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==}
1092 | engines: {node: '>= 0.4'}
1093 |
1094 | is-typed-array@1.1.13:
1095 | resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==}
1096 | engines: {node: '>= 0.4'}
1097 |
1098 | is-weakmap@2.0.2:
1099 | resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==}
1100 | engines: {node: '>= 0.4'}
1101 |
1102 | is-weakref@1.0.2:
1103 | resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==}
1104 |
1105 | is-weakset@2.0.3:
1106 | resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==}
1107 | engines: {node: '>= 0.4'}
1108 |
1109 | isarray@2.0.5:
1110 | resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==}
1111 |
1112 | isexe@2.0.0:
1113 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
1114 |
1115 | iterator.prototype@1.1.2:
1116 | resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==}
1117 |
1118 | jackspeak@2.3.6:
1119 | resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==}
1120 | engines: {node: '>=14'}
1121 |
1122 | jackspeak@3.4.3:
1123 | resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==}
1124 |
1125 | jiti@1.21.6:
1126 | resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==}
1127 | hasBin: true
1128 |
1129 | js-tokens@4.0.0:
1130 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
1131 |
1132 | js-yaml@4.1.0:
1133 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
1134 | hasBin: true
1135 |
1136 | json-buffer@3.0.1:
1137 | resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
1138 |
1139 | json-schema-traverse@0.4.1:
1140 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
1141 |
1142 | json-stable-stringify-without-jsonify@1.0.1:
1143 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
1144 |
1145 | json5@1.0.2:
1146 | resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==}
1147 | hasBin: true
1148 |
1149 | jsx-ast-utils@3.3.5:
1150 | resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==}
1151 | engines: {node: '>=4.0'}
1152 |
1153 | keyv@4.5.4:
1154 | resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
1155 |
1156 | language-subtag-registry@0.3.23:
1157 | resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==}
1158 |
1159 | language-tags@1.0.9:
1160 | resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==}
1161 | engines: {node: '>=0.10'}
1162 |
1163 | levn@0.4.1:
1164 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
1165 | engines: {node: '>= 0.8.0'}
1166 |
1167 | lilconfig@2.1.0:
1168 | resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==}
1169 | engines: {node: '>=10'}
1170 |
1171 | lilconfig@3.1.2:
1172 | resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==}
1173 | engines: {node: '>=14'}
1174 |
1175 | lines-and-columns@1.2.4:
1176 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
1177 |
1178 | locate-path@6.0.0:
1179 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
1180 | engines: {node: '>=10'}
1181 |
1182 | lodash.merge@4.6.2:
1183 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
1184 |
1185 | loose-envify@1.4.0:
1186 | resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
1187 | hasBin: true
1188 |
1189 | lru-cache@10.4.3:
1190 | resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==}
1191 |
1192 | lucide-react@0.439.0:
1193 | resolution: {integrity: sha512-PafSWvDTpxdtNEndS2HIHxcNAbd54OaqSYJO90/b63rab2HWYqDbH194j0i82ZFdWOAcf0AHinRykXRRK2PJbw==}
1194 | peerDependencies:
1195 | react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0-rc
1196 |
1197 | merge2@1.4.1:
1198 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
1199 | engines: {node: '>= 8'}
1200 |
1201 | micromatch@4.0.8:
1202 | resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
1203 | engines: {node: '>=8.6'}
1204 |
1205 | mime-db@1.52.0:
1206 | resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
1207 | engines: {node: '>= 0.6'}
1208 |
1209 | mime-types@2.1.35:
1210 | resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
1211 | engines: {node: '>= 0.6'}
1212 |
1213 | minimatch@3.1.2:
1214 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
1215 |
1216 | minimatch@9.0.3:
1217 | resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==}
1218 | engines: {node: '>=16 || 14 >=14.17'}
1219 |
1220 | minimatch@9.0.5:
1221 | resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==}
1222 | engines: {node: '>=16 || 14 >=14.17'}
1223 |
1224 | minimist@1.2.8:
1225 | resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
1226 |
1227 | minipass@7.1.2:
1228 | resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==}
1229 | engines: {node: '>=16 || 14 >=14.17'}
1230 |
1231 | ms@2.1.3:
1232 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
1233 |
1234 | mz@2.7.0:
1235 | resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
1236 |
1237 | nanoid@3.3.7:
1238 | resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==}
1239 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
1240 | hasBin: true
1241 |
1242 | natural-compare@1.4.0:
1243 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
1244 |
1245 | next-themes@0.3.0:
1246 | resolution: {integrity: sha512-/QHIrsYpd6Kfk7xakK4svpDI5mmXP0gfvCoJdGpZQ2TOrQZmsW0QxjaiLn8wbIKjtm4BTSqLoix4lxYYOnLJ/w==}
1247 | peerDependencies:
1248 | react: ^16.8 || ^17 || ^18
1249 | react-dom: ^16.8 || ^17 || ^18
1250 |
1251 | next@14.2.10:
1252 | resolution: {integrity: sha512-sDDExXnh33cY3RkS9JuFEKaS4HmlWmDKP1VJioucCG6z5KuA008DPsDZOzi8UfqEk3Ii+2NCQSJrfbEWtZZfww==}
1253 | engines: {node: '>=18.17.0'}
1254 | hasBin: true
1255 | peerDependencies:
1256 | '@opentelemetry/api': ^1.1.0
1257 | '@playwright/test': ^1.41.2
1258 | react: ^18.2.0
1259 | react-dom: ^18.2.0
1260 | sass: ^1.3.0
1261 | peerDependenciesMeta:
1262 | '@opentelemetry/api':
1263 | optional: true
1264 | '@playwright/test':
1265 | optional: true
1266 | sass:
1267 | optional: true
1268 |
1269 | node-domexception@1.0.0:
1270 | resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==}
1271 | engines: {node: '>=10.5.0'}
1272 |
1273 | node-fetch@2.7.0:
1274 | resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==}
1275 | engines: {node: 4.x || >=6.0.0}
1276 | peerDependencies:
1277 | encoding: ^0.1.0
1278 | peerDependenciesMeta:
1279 | encoding:
1280 | optional: true
1281 |
1282 | normalize-path@3.0.0:
1283 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
1284 | engines: {node: '>=0.10.0'}
1285 |
1286 | object-assign@4.1.1:
1287 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
1288 | engines: {node: '>=0.10.0'}
1289 |
1290 | object-hash@3.0.0:
1291 | resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==}
1292 | engines: {node: '>= 6'}
1293 |
1294 | object-inspect@1.13.2:
1295 | resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==}
1296 | engines: {node: '>= 0.4'}
1297 |
1298 | object-is@1.1.6:
1299 | resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==}
1300 | engines: {node: '>= 0.4'}
1301 |
1302 | object-keys@1.1.1:
1303 | resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
1304 | engines: {node: '>= 0.4'}
1305 |
1306 | object.assign@4.1.5:
1307 | resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==}
1308 | engines: {node: '>= 0.4'}
1309 |
1310 | object.entries@1.1.8:
1311 | resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==}
1312 | engines: {node: '>= 0.4'}
1313 |
1314 | object.fromentries@2.0.8:
1315 | resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==}
1316 | engines: {node: '>= 0.4'}
1317 |
1318 | object.groupby@1.0.3:
1319 | resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==}
1320 | engines: {node: '>= 0.4'}
1321 |
1322 | object.values@1.2.0:
1323 | resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==}
1324 | engines: {node: '>= 0.4'}
1325 |
1326 | once@1.4.0:
1327 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
1328 |
1329 | openai@4.59.0:
1330 | resolution: {integrity: sha512-3bn7FypMt2R1ZDuO0+GcXgBEnVFhIzrpUkb47pQRoYvyfdZ2fQXcuP14aOc4C8F9FvCtZ/ElzJmVzVqnP4nHNg==}
1331 | hasBin: true
1332 | peerDependencies:
1333 | zod: ^3.23.8
1334 | peerDependenciesMeta:
1335 | zod:
1336 | optional: true
1337 |
1338 | optionator@0.9.4:
1339 | resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==}
1340 | engines: {node: '>= 0.8.0'}
1341 |
1342 | p-limit@3.1.0:
1343 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
1344 | engines: {node: '>=10'}
1345 |
1346 | p-locate@5.0.0:
1347 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
1348 | engines: {node: '>=10'}
1349 |
1350 | package-json-from-dist@1.0.0:
1351 | resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==}
1352 |
1353 | parent-module@1.0.1:
1354 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
1355 | engines: {node: '>=6'}
1356 |
1357 | path-exists@4.0.0:
1358 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
1359 | engines: {node: '>=8'}
1360 |
1361 | path-is-absolute@1.0.1:
1362 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
1363 | engines: {node: '>=0.10.0'}
1364 |
1365 | path-key@3.1.1:
1366 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
1367 | engines: {node: '>=8'}
1368 |
1369 | path-parse@1.0.7:
1370 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
1371 |
1372 | path-scurry@1.11.1:
1373 | resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==}
1374 | engines: {node: '>=16 || 14 >=14.18'}
1375 |
1376 | path-type@4.0.0:
1377 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
1378 | engines: {node: '>=8'}
1379 |
1380 | picocolors@1.1.0:
1381 | resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==}
1382 |
1383 | picomatch@2.3.1:
1384 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
1385 | engines: {node: '>=8.6'}
1386 |
1387 | pify@2.3.0:
1388 | resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
1389 | engines: {node: '>=0.10.0'}
1390 |
1391 | pirates@4.0.6:
1392 | resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==}
1393 | engines: {node: '>= 6'}
1394 |
1395 | possible-typed-array-names@1.0.0:
1396 | resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==}
1397 | engines: {node: '>= 0.4'}
1398 |
1399 | postcss-import@15.1.0:
1400 | resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==}
1401 | engines: {node: '>=14.0.0'}
1402 | peerDependencies:
1403 | postcss: ^8.0.0
1404 |
1405 | postcss-js@4.0.1:
1406 | resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==}
1407 | engines: {node: ^12 || ^14 || >= 16}
1408 | peerDependencies:
1409 | postcss: ^8.4.21
1410 |
1411 | postcss-load-config@4.0.2:
1412 | resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==}
1413 | engines: {node: '>= 14'}
1414 | peerDependencies:
1415 | postcss: '>=8.0.9'
1416 | ts-node: '>=9.0.0'
1417 | peerDependenciesMeta:
1418 | postcss:
1419 | optional: true
1420 | ts-node:
1421 | optional: true
1422 |
1423 | postcss-nested@6.2.0:
1424 | resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==}
1425 | engines: {node: '>=12.0'}
1426 | peerDependencies:
1427 | postcss: ^8.2.14
1428 |
1429 | postcss-selector-parser@6.1.2:
1430 | resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==}
1431 | engines: {node: '>=4'}
1432 |
1433 | postcss-value-parser@4.2.0:
1434 | resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
1435 |
1436 | postcss@8.4.31:
1437 | resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==}
1438 | engines: {node: ^10 || ^12 || >=14}
1439 |
1440 | postcss@8.4.45:
1441 | resolution: {integrity: sha512-7KTLTdzdZZYscUc65XmjFiB73vBhBfbPztCYdUNvlaso9PrzjzcmjqBPR0lNGkcVlcO4BjiO5rK/qNz+XAen1Q==}
1442 | engines: {node: ^10 || ^12 || >=14}
1443 |
1444 | prelude-ls@1.2.1:
1445 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
1446 | engines: {node: '>= 0.8.0'}
1447 |
1448 | prop-types@15.8.1:
1449 | resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==}
1450 |
1451 | punycode@2.3.1:
1452 | resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
1453 | engines: {node: '>=6'}
1454 |
1455 | qs@6.13.0:
1456 | resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==}
1457 | engines: {node: '>=0.6'}
1458 |
1459 | queue-microtask@1.2.3:
1460 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
1461 |
1462 | react-dom@18.3.1:
1463 | resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==}
1464 | peerDependencies:
1465 | react: ^18.3.1
1466 |
1467 | react-is@16.13.1:
1468 | resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
1469 |
1470 | react-toastify@10.0.5:
1471 | resolution: {integrity: sha512-mNKt2jBXJg4O7pSdbNUfDdTsK9FIdikfsIE/yUCxbAEXl4HMyJaivrVFcn3Elvt5xvCQYhUZm+hqTIu1UXM3Pw==}
1472 | peerDependencies:
1473 | react: '>=18'
1474 | react-dom: '>=18'
1475 |
1476 | react-type-animation@3.2.0:
1477 | resolution: {integrity: sha512-WXTe0i3rRNKjmggPvT5ntye1QBt0ATGbijeW6V3cQe2W0jaMABXXlPPEdtofnS9tM7wSRHchEvI9SUw+0kUohw==}
1478 | peerDependencies:
1479 | prop-types: ^15.5.4
1480 | react: '>= 15.0.0'
1481 | react-dom: '>= 15.0.0'
1482 |
1483 | react@18.3.1:
1484 | resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==}
1485 | engines: {node: '>=0.10.0'}
1486 |
1487 | read-cache@1.0.0:
1488 | resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==}
1489 |
1490 | readdirp@3.6.0:
1491 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
1492 | engines: {node: '>=8.10.0'}
1493 |
1494 | reflect.getprototypeof@1.0.6:
1495 | resolution: {integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==}
1496 | engines: {node: '>= 0.4'}
1497 |
1498 | regexp.prototype.flags@1.5.2:
1499 | resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==}
1500 | engines: {node: '>= 0.4'}
1501 |
1502 | resolve-from@4.0.0:
1503 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
1504 | engines: {node: '>=4'}
1505 |
1506 | resolve-pkg-maps@1.0.0:
1507 | resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
1508 |
1509 | resolve@1.22.8:
1510 | resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==}
1511 | hasBin: true
1512 |
1513 | resolve@2.0.0-next.5:
1514 | resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==}
1515 | hasBin: true
1516 |
1517 | reusify@1.0.4:
1518 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
1519 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
1520 |
1521 | rimraf@3.0.2:
1522 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
1523 | deprecated: Rimraf versions prior to v4 are no longer supported
1524 | hasBin: true
1525 |
1526 | run-parallel@1.2.0:
1527 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
1528 |
1529 | safe-array-concat@1.1.2:
1530 | resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==}
1531 | engines: {node: '>=0.4'}
1532 |
1533 | safe-regex-test@1.0.3:
1534 | resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==}
1535 | engines: {node: '>= 0.4'}
1536 |
1537 | scheduler@0.23.2:
1538 | resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==}
1539 |
1540 | semver@6.3.1:
1541 | resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
1542 | hasBin: true
1543 |
1544 | semver@7.6.3:
1545 | resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==}
1546 | engines: {node: '>=10'}
1547 | hasBin: true
1548 |
1549 | set-function-length@1.2.2:
1550 | resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==}
1551 | engines: {node: '>= 0.4'}
1552 |
1553 | set-function-name@2.0.2:
1554 | resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==}
1555 | engines: {node: '>= 0.4'}
1556 |
1557 | shebang-command@2.0.0:
1558 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
1559 | engines: {node: '>=8'}
1560 |
1561 | shebang-regex@3.0.0:
1562 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
1563 | engines: {node: '>=8'}
1564 |
1565 | side-channel@1.0.6:
1566 | resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==}
1567 | engines: {node: '>= 0.4'}
1568 |
1569 | signal-exit@4.1.0:
1570 | resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
1571 | engines: {node: '>=14'}
1572 |
1573 | slash@3.0.0:
1574 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
1575 | engines: {node: '>=8'}
1576 |
1577 | sonner@1.5.0:
1578 | resolution: {integrity: sha512-FBjhG/gnnbN6FY0jaNnqZOMmB73R+5IiyYAw8yBj7L54ER7HB3fOSE5OFiQiE2iXWxeXKvg6fIP4LtVppHEdJA==}
1579 | peerDependencies:
1580 | react: ^18.0.0
1581 | react-dom: ^18.0.0
1582 |
1583 | source-map-js@1.2.1:
1584 | resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
1585 | engines: {node: '>=0.10.0'}
1586 |
1587 | stop-iteration-iterator@1.0.0:
1588 | resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==}
1589 | engines: {node: '>= 0.4'}
1590 |
1591 | streamsearch@1.1.0:
1592 | resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==}
1593 | engines: {node: '>=10.0.0'}
1594 |
1595 | string-width@4.2.3:
1596 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
1597 | engines: {node: '>=8'}
1598 |
1599 | string-width@5.1.2:
1600 | resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
1601 | engines: {node: '>=12'}
1602 |
1603 | string.prototype.includes@2.0.0:
1604 | resolution: {integrity: sha512-E34CkBgyeqNDcrbU76cDjL5JLcVrtSdYq0MEh/B10r17pRP4ciHLwTgnuLV8Ay6cgEMLkcBkFCKyFZ43YldYzg==}
1605 |
1606 | string.prototype.matchall@4.0.11:
1607 | resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==}
1608 | engines: {node: '>= 0.4'}
1609 |
1610 | string.prototype.repeat@1.0.0:
1611 | resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==}
1612 |
1613 | string.prototype.trim@1.2.9:
1614 | resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==}
1615 | engines: {node: '>= 0.4'}
1616 |
1617 | string.prototype.trimend@1.0.8:
1618 | resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==}
1619 |
1620 | string.prototype.trimstart@1.0.8:
1621 | resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==}
1622 | engines: {node: '>= 0.4'}
1623 |
1624 | strip-ansi@6.0.1:
1625 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
1626 | engines: {node: '>=8'}
1627 |
1628 | strip-ansi@7.1.0:
1629 | resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==}
1630 | engines: {node: '>=12'}
1631 |
1632 | strip-bom@3.0.0:
1633 | resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
1634 | engines: {node: '>=4'}
1635 |
1636 | strip-json-comments@3.1.1:
1637 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
1638 | engines: {node: '>=8'}
1639 |
1640 | styled-jsx@5.1.1:
1641 | resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==}
1642 | engines: {node: '>= 12.0.0'}
1643 | peerDependencies:
1644 | '@babel/core': '*'
1645 | babel-plugin-macros: '*'
1646 | react: '>= 16.8.0 || 17.x.x || ^18.0.0-0'
1647 | peerDependenciesMeta:
1648 | '@babel/core':
1649 | optional: true
1650 | babel-plugin-macros:
1651 | optional: true
1652 |
1653 | sucrase@3.35.0:
1654 | resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==}
1655 | engines: {node: '>=16 || 14 >=14.17'}
1656 | hasBin: true
1657 |
1658 | supports-color@7.2.0:
1659 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
1660 | engines: {node: '>=8'}
1661 |
1662 | supports-preserve-symlinks-flag@1.0.0:
1663 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
1664 | engines: {node: '>= 0.4'}
1665 |
1666 | tailwind-merge@2.5.2:
1667 | resolution: {integrity: sha512-kjEBm+pvD+6eAwzJL2Bi+02/9LFLal1Gs61+QB7HvTfQQ0aXwC5LGT8PEt1gS0CWKktKe6ysPTAy3cBC5MeiIg==}
1668 |
1669 | tailwindcss-animate@1.0.7:
1670 | resolution: {integrity: sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==}
1671 | peerDependencies:
1672 | tailwindcss: '>=3.0.0 || insiders'
1673 |
1674 | tailwindcss@3.4.11:
1675 | resolution: {integrity: sha512-qhEuBcLemjSJk5ajccN9xJFtM/h0AVCPaA6C92jNP+M2J8kX+eMJHI7R2HFKUvvAsMpcfLILMCFYSeDwpMmlUg==}
1676 | engines: {node: '>=14.0.0'}
1677 | hasBin: true
1678 |
1679 | tapable@2.2.1:
1680 | resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==}
1681 | engines: {node: '>=6'}
1682 |
1683 | text-table@0.2.0:
1684 | resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
1685 |
1686 | thenify-all@1.6.0:
1687 | resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==}
1688 | engines: {node: '>=0.8'}
1689 |
1690 | thenify@3.3.1:
1691 | resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==}
1692 |
1693 | to-regex-range@5.0.1:
1694 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
1695 | engines: {node: '>=8.0'}
1696 |
1697 | tr46@0.0.3:
1698 | resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
1699 |
1700 | ts-api-utils@1.3.0:
1701 | resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==}
1702 | engines: {node: '>=16'}
1703 | peerDependencies:
1704 | typescript: '>=4.2.0'
1705 |
1706 | ts-interface-checker@0.1.13:
1707 | resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
1708 |
1709 | tsconfig-paths@3.15.0:
1710 | resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==}
1711 |
1712 | tslib@2.7.0:
1713 | resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==}
1714 |
1715 | type-check@0.4.0:
1716 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
1717 | engines: {node: '>= 0.8.0'}
1718 |
1719 | type-fest@0.20.2:
1720 | resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
1721 | engines: {node: '>=10'}
1722 |
1723 | typed-array-buffer@1.0.2:
1724 | resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==}
1725 | engines: {node: '>= 0.4'}
1726 |
1727 | typed-array-byte-length@1.0.1:
1728 | resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==}
1729 | engines: {node: '>= 0.4'}
1730 |
1731 | typed-array-byte-offset@1.0.2:
1732 | resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==}
1733 | engines: {node: '>= 0.4'}
1734 |
1735 | typed-array-length@1.0.6:
1736 | resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==}
1737 | engines: {node: '>= 0.4'}
1738 |
1739 | typescript@5.6.2:
1740 | resolution: {integrity: sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==}
1741 | engines: {node: '>=14.17'}
1742 | hasBin: true
1743 |
1744 | unbox-primitive@1.0.2:
1745 | resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==}
1746 |
1747 | undici-types@5.26.5:
1748 | resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==}
1749 |
1750 | undici-types@6.19.8:
1751 | resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==}
1752 |
1753 | uri-js@4.4.1:
1754 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
1755 |
1756 | util-deprecate@1.0.2:
1757 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
1758 |
1759 | web-streams-polyfill@4.0.0-beta.3:
1760 | resolution: {integrity: sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==}
1761 | engines: {node: '>= 14'}
1762 |
1763 | webidl-conversions@3.0.1:
1764 | resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
1765 |
1766 | whatwg-url@5.0.0:
1767 | resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
1768 |
1769 | which-boxed-primitive@1.0.2:
1770 | resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==}
1771 |
1772 | which-builtin-type@1.1.4:
1773 | resolution: {integrity: sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w==}
1774 | engines: {node: '>= 0.4'}
1775 |
1776 | which-collection@1.0.2:
1777 | resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==}
1778 | engines: {node: '>= 0.4'}
1779 |
1780 | which-typed-array@1.1.15:
1781 | resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==}
1782 | engines: {node: '>= 0.4'}
1783 |
1784 | which@2.0.2:
1785 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
1786 | engines: {node: '>= 8'}
1787 | hasBin: true
1788 |
1789 | word-wrap@1.2.5:
1790 | resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==}
1791 | engines: {node: '>=0.10.0'}
1792 |
1793 | wrap-ansi@7.0.0:
1794 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
1795 | engines: {node: '>=10'}
1796 |
1797 | wrap-ansi@8.1.0:
1798 | resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==}
1799 | engines: {node: '>=12'}
1800 |
1801 | wrappy@1.0.2:
1802 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
1803 |
1804 | yaml@2.5.1:
1805 | resolution: {integrity: sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q==}
1806 | engines: {node: '>= 14'}
1807 | hasBin: true
1808 |
1809 | yocto-queue@0.1.0:
1810 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
1811 | engines: {node: '>=10'}
1812 |
1813 | snapshots:
1814 |
1815 | '@alloc/quick-lru@5.2.0': {}
1816 |
1817 | '@anthropic-ai/sdk@0.27.3':
1818 | dependencies:
1819 | '@types/node': 18.19.50
1820 | '@types/node-fetch': 2.6.11
1821 | abort-controller: 3.0.0
1822 | agentkeepalive: 4.5.0
1823 | form-data-encoder: 1.7.2
1824 | formdata-node: 4.4.1
1825 | node-fetch: 2.7.0
1826 | transitivePeerDependencies:
1827 | - encoding
1828 |
1829 | '@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)':
1830 | dependencies:
1831 | eslint: 8.57.0
1832 | eslint-visitor-keys: 3.4.3
1833 |
1834 | '@eslint-community/regexpp@4.11.0': {}
1835 |
1836 | '@eslint/eslintrc@2.1.4':
1837 | dependencies:
1838 | ajv: 6.12.6
1839 | debug: 4.3.7
1840 | espree: 9.6.1
1841 | globals: 13.24.0
1842 | ignore: 5.3.2
1843 | import-fresh: 3.3.0
1844 | js-yaml: 4.1.0
1845 | minimatch: 3.1.2
1846 | strip-json-comments: 3.1.1
1847 | transitivePeerDependencies:
1848 | - supports-color
1849 |
1850 | '@eslint/js@8.57.0': {}
1851 |
1852 | '@humanwhocodes/config-array@0.11.14':
1853 | dependencies:
1854 | '@humanwhocodes/object-schema': 2.0.3
1855 | debug: 4.3.7
1856 | minimatch: 3.1.2
1857 | transitivePeerDependencies:
1858 | - supports-color
1859 |
1860 | '@humanwhocodes/module-importer@1.0.1': {}
1861 |
1862 | '@humanwhocodes/object-schema@2.0.3': {}
1863 |
1864 | '@isaacs/cliui@8.0.2':
1865 | dependencies:
1866 | string-width: 5.1.2
1867 | string-width-cjs: string-width@4.2.3
1868 | strip-ansi: 7.1.0
1869 | strip-ansi-cjs: strip-ansi@6.0.1
1870 | wrap-ansi: 8.1.0
1871 | wrap-ansi-cjs: wrap-ansi@7.0.0
1872 |
1873 | '@jridgewell/gen-mapping@0.3.5':
1874 | dependencies:
1875 | '@jridgewell/set-array': 1.2.1
1876 | '@jridgewell/sourcemap-codec': 1.5.0
1877 | '@jridgewell/trace-mapping': 0.3.25
1878 |
1879 | '@jridgewell/resolve-uri@3.1.2': {}
1880 |
1881 | '@jridgewell/set-array@1.2.1': {}
1882 |
1883 | '@jridgewell/sourcemap-codec@1.5.0': {}
1884 |
1885 | '@jridgewell/trace-mapping@0.3.25':
1886 | dependencies:
1887 | '@jridgewell/resolve-uri': 3.1.2
1888 | '@jridgewell/sourcemap-codec': 1.5.0
1889 |
1890 | '@next/env@14.2.10': {}
1891 |
1892 | '@next/eslint-plugin-next@14.2.10':
1893 | dependencies:
1894 | glob: 10.3.10
1895 |
1896 | '@next/swc-darwin-arm64@14.2.10':
1897 | optional: true
1898 |
1899 | '@next/swc-darwin-x64@14.2.10':
1900 | optional: true
1901 |
1902 | '@next/swc-linux-arm64-gnu@14.2.10':
1903 | optional: true
1904 |
1905 | '@next/swc-linux-arm64-musl@14.2.10':
1906 | optional: true
1907 |
1908 | '@next/swc-linux-x64-gnu@14.2.10':
1909 | optional: true
1910 |
1911 | '@next/swc-linux-x64-musl@14.2.10':
1912 | optional: true
1913 |
1914 | '@next/swc-win32-arm64-msvc@14.2.10':
1915 | optional: true
1916 |
1917 | '@next/swc-win32-ia32-msvc@14.2.10':
1918 | optional: true
1919 |
1920 | '@next/swc-win32-x64-msvc@14.2.10':
1921 | optional: true
1922 |
1923 | '@nodelib/fs.scandir@2.1.5':
1924 | dependencies:
1925 | '@nodelib/fs.stat': 2.0.5
1926 | run-parallel: 1.2.0
1927 |
1928 | '@nodelib/fs.stat@2.0.5': {}
1929 |
1930 | '@nodelib/fs.walk@1.2.8':
1931 | dependencies:
1932 | '@nodelib/fs.scandir': 2.1.5
1933 | fastq: 1.17.1
1934 |
1935 | '@nolyfill/is-core-module@1.0.39': {}
1936 |
1937 | '@pkgjs/parseargs@0.11.0':
1938 | optional: true
1939 |
1940 | '@radix-ui/react-compose-refs@1.1.0(@types/react@18.3.5)(react@18.3.1)':
1941 | dependencies:
1942 | react: 18.3.1
1943 | optionalDependencies:
1944 | '@types/react': 18.3.5
1945 |
1946 | '@radix-ui/react-icons@1.3.0(react@18.3.1)':
1947 | dependencies:
1948 | react: 18.3.1
1949 |
1950 | '@radix-ui/react-slot@1.1.0(@types/react@18.3.5)(react@18.3.1)':
1951 | dependencies:
1952 | '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.5)(react@18.3.1)
1953 | react: 18.3.1
1954 | optionalDependencies:
1955 | '@types/react': 18.3.5
1956 |
1957 | '@rtsao/scc@1.1.0': {}
1958 |
1959 | '@rushstack/eslint-patch@1.10.4': {}
1960 |
1961 | '@swc/counter@0.1.3': {}
1962 |
1963 | '@swc/helpers@0.5.5':
1964 | dependencies:
1965 | '@swc/counter': 0.1.3
1966 | tslib: 2.7.0
1967 |
1968 | '@tabler/icons-react@3.16.0(react@18.3.1)':
1969 | dependencies:
1970 | '@tabler/icons': 3.16.0
1971 | react: 18.3.1
1972 |
1973 | '@tabler/icons@3.16.0': {}
1974 |
1975 | '@types/json-schema@7.0.15': {}
1976 |
1977 | '@types/json5@0.0.29': {}
1978 |
1979 | '@types/node-fetch@2.6.11':
1980 | dependencies:
1981 | '@types/node': 20.16.5
1982 | form-data: 4.0.0
1983 |
1984 | '@types/node@18.19.50':
1985 | dependencies:
1986 | undici-types: 5.26.5
1987 |
1988 | '@types/node@20.16.5':
1989 | dependencies:
1990 | undici-types: 6.19.8
1991 |
1992 | '@types/prop-types@15.7.12': {}
1993 |
1994 | '@types/qs@6.9.15': {}
1995 |
1996 | '@types/react-dom@18.3.0':
1997 | dependencies:
1998 | '@types/react': 18.3.5
1999 |
2000 | '@types/react@18.3.5':
2001 | dependencies:
2002 | '@types/prop-types': 15.7.12
2003 | csstype: 3.1.3
2004 |
2005 | '@types/semver@7.5.8': {}
2006 |
2007 | '@typescript-eslint/eslint-plugin@7.2.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint@8.57.0)(typescript@5.6.2)':
2008 | dependencies:
2009 | '@eslint-community/regexpp': 4.11.0
2010 | '@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.6.2)
2011 | '@typescript-eslint/scope-manager': 7.2.0
2012 | '@typescript-eslint/type-utils': 7.2.0(eslint@8.57.0)(typescript@5.6.2)
2013 | '@typescript-eslint/utils': 7.2.0(eslint@8.57.0)(typescript@5.6.2)
2014 | '@typescript-eslint/visitor-keys': 7.2.0
2015 | debug: 4.3.7
2016 | eslint: 8.57.0
2017 | graphemer: 1.4.0
2018 | ignore: 5.3.2
2019 | natural-compare: 1.4.0
2020 | semver: 7.6.3
2021 | ts-api-utils: 1.3.0(typescript@5.6.2)
2022 | optionalDependencies:
2023 | typescript: 5.6.2
2024 | transitivePeerDependencies:
2025 | - supports-color
2026 |
2027 | '@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2)':
2028 | dependencies:
2029 | '@typescript-eslint/scope-manager': 7.2.0
2030 | '@typescript-eslint/types': 7.2.0
2031 | '@typescript-eslint/typescript-estree': 7.2.0(typescript@5.6.2)
2032 | '@typescript-eslint/visitor-keys': 7.2.0
2033 | debug: 4.3.7
2034 | eslint: 8.57.0
2035 | optionalDependencies:
2036 | typescript: 5.6.2
2037 | transitivePeerDependencies:
2038 | - supports-color
2039 |
2040 | '@typescript-eslint/scope-manager@7.2.0':
2041 | dependencies:
2042 | '@typescript-eslint/types': 7.2.0
2043 | '@typescript-eslint/visitor-keys': 7.2.0
2044 |
2045 | '@typescript-eslint/type-utils@7.2.0(eslint@8.57.0)(typescript@5.6.2)':
2046 | dependencies:
2047 | '@typescript-eslint/typescript-estree': 7.2.0(typescript@5.6.2)
2048 | '@typescript-eslint/utils': 7.2.0(eslint@8.57.0)(typescript@5.6.2)
2049 | debug: 4.3.7
2050 | eslint: 8.57.0
2051 | ts-api-utils: 1.3.0(typescript@5.6.2)
2052 | optionalDependencies:
2053 | typescript: 5.6.2
2054 | transitivePeerDependencies:
2055 | - supports-color
2056 |
2057 | '@typescript-eslint/types@7.2.0': {}
2058 |
2059 | '@typescript-eslint/typescript-estree@7.2.0(typescript@5.6.2)':
2060 | dependencies:
2061 | '@typescript-eslint/types': 7.2.0
2062 | '@typescript-eslint/visitor-keys': 7.2.0
2063 | debug: 4.3.7
2064 | globby: 11.1.0
2065 | is-glob: 4.0.3
2066 | minimatch: 9.0.3
2067 | semver: 7.6.3
2068 | ts-api-utils: 1.3.0(typescript@5.6.2)
2069 | optionalDependencies:
2070 | typescript: 5.6.2
2071 | transitivePeerDependencies:
2072 | - supports-color
2073 |
2074 | '@typescript-eslint/utils@7.2.0(eslint@8.57.0)(typescript@5.6.2)':
2075 | dependencies:
2076 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
2077 | '@types/json-schema': 7.0.15
2078 | '@types/semver': 7.5.8
2079 | '@typescript-eslint/scope-manager': 7.2.0
2080 | '@typescript-eslint/types': 7.2.0
2081 | '@typescript-eslint/typescript-estree': 7.2.0(typescript@5.6.2)
2082 | eslint: 8.57.0
2083 | semver: 7.6.3
2084 | transitivePeerDependencies:
2085 | - supports-color
2086 | - typescript
2087 |
2088 | '@typescript-eslint/visitor-keys@7.2.0':
2089 | dependencies:
2090 | '@typescript-eslint/types': 7.2.0
2091 | eslint-visitor-keys: 3.4.3
2092 |
2093 | '@ungap/structured-clone@1.2.0': {}
2094 |
2095 | abort-controller@3.0.0:
2096 | dependencies:
2097 | event-target-shim: 5.0.1
2098 |
2099 | acorn-jsx@5.3.2(acorn@8.12.1):
2100 | dependencies:
2101 | acorn: 8.12.1
2102 |
2103 | acorn@8.12.1: {}
2104 |
2105 | agentkeepalive@4.5.0:
2106 | dependencies:
2107 | humanize-ms: 1.2.1
2108 |
2109 | ajv@6.12.6:
2110 | dependencies:
2111 | fast-deep-equal: 3.1.3
2112 | fast-json-stable-stringify: 2.1.0
2113 | json-schema-traverse: 0.4.1
2114 | uri-js: 4.4.1
2115 |
2116 | ansi-regex@5.0.1: {}
2117 |
2118 | ansi-regex@6.1.0: {}
2119 |
2120 | ansi-styles@4.3.0:
2121 | dependencies:
2122 | color-convert: 2.0.1
2123 |
2124 | ansi-styles@6.2.1: {}
2125 |
2126 | any-promise@1.3.0: {}
2127 |
2128 | anymatch@3.1.3:
2129 | dependencies:
2130 | normalize-path: 3.0.0
2131 | picomatch: 2.3.1
2132 |
2133 | arg@5.0.2: {}
2134 |
2135 | argparse@2.0.1: {}
2136 |
2137 | aria-query@5.1.3:
2138 | dependencies:
2139 | deep-equal: 2.2.3
2140 |
2141 | array-buffer-byte-length@1.0.1:
2142 | dependencies:
2143 | call-bind: 1.0.7
2144 | is-array-buffer: 3.0.4
2145 |
2146 | array-includes@3.1.8:
2147 | dependencies:
2148 | call-bind: 1.0.7
2149 | define-properties: 1.2.1
2150 | es-abstract: 1.23.3
2151 | es-object-atoms: 1.0.0
2152 | get-intrinsic: 1.2.4
2153 | is-string: 1.0.7
2154 |
2155 | array-union@2.1.0: {}
2156 |
2157 | array.prototype.findlast@1.2.5:
2158 | dependencies:
2159 | call-bind: 1.0.7
2160 | define-properties: 1.2.1
2161 | es-abstract: 1.23.3
2162 | es-errors: 1.3.0
2163 | es-object-atoms: 1.0.0
2164 | es-shim-unscopables: 1.0.2
2165 |
2166 | array.prototype.findlastindex@1.2.5:
2167 | dependencies:
2168 | call-bind: 1.0.7
2169 | define-properties: 1.2.1
2170 | es-abstract: 1.23.3
2171 | es-errors: 1.3.0
2172 | es-object-atoms: 1.0.0
2173 | es-shim-unscopables: 1.0.2
2174 |
2175 | array.prototype.flat@1.3.2:
2176 | dependencies:
2177 | call-bind: 1.0.7
2178 | define-properties: 1.2.1
2179 | es-abstract: 1.23.3
2180 | es-shim-unscopables: 1.0.2
2181 |
2182 | array.prototype.flatmap@1.3.2:
2183 | dependencies:
2184 | call-bind: 1.0.7
2185 | define-properties: 1.2.1
2186 | es-abstract: 1.23.3
2187 | es-shim-unscopables: 1.0.2
2188 |
2189 | array.prototype.tosorted@1.1.4:
2190 | dependencies:
2191 | call-bind: 1.0.7
2192 | define-properties: 1.2.1
2193 | es-abstract: 1.23.3
2194 | es-errors: 1.3.0
2195 | es-shim-unscopables: 1.0.2
2196 |
2197 | arraybuffer.prototype.slice@1.0.3:
2198 | dependencies:
2199 | array-buffer-byte-length: 1.0.1
2200 | call-bind: 1.0.7
2201 | define-properties: 1.2.1
2202 | es-abstract: 1.23.3
2203 | es-errors: 1.3.0
2204 | get-intrinsic: 1.2.4
2205 | is-array-buffer: 3.0.4
2206 | is-shared-array-buffer: 1.0.3
2207 |
2208 | ast-types-flow@0.0.8: {}
2209 |
2210 | asynckit@0.4.0: {}
2211 |
2212 | available-typed-arrays@1.0.7:
2213 | dependencies:
2214 | possible-typed-array-names: 1.0.0
2215 |
2216 | axe-core@4.10.0: {}
2217 |
2218 | axobject-query@4.1.0: {}
2219 |
2220 | balanced-match@1.0.2: {}
2221 |
2222 | binary-extensions@2.3.0: {}
2223 |
2224 | brace-expansion@1.1.11:
2225 | dependencies:
2226 | balanced-match: 1.0.2
2227 | concat-map: 0.0.1
2228 |
2229 | brace-expansion@2.0.1:
2230 | dependencies:
2231 | balanced-match: 1.0.2
2232 |
2233 | braces@3.0.3:
2234 | dependencies:
2235 | fill-range: 7.1.1
2236 |
2237 | busboy@1.6.0:
2238 | dependencies:
2239 | streamsearch: 1.1.0
2240 |
2241 | call-bind@1.0.7:
2242 | dependencies:
2243 | es-define-property: 1.0.0
2244 | es-errors: 1.3.0
2245 | function-bind: 1.1.2
2246 | get-intrinsic: 1.2.4
2247 | set-function-length: 1.2.2
2248 |
2249 | callsites@3.1.0: {}
2250 |
2251 | camelcase-css@2.0.1: {}
2252 |
2253 | caniuse-lite@1.0.30001660: {}
2254 |
2255 | chalk@4.1.2:
2256 | dependencies:
2257 | ansi-styles: 4.3.0
2258 | supports-color: 7.2.0
2259 |
2260 | chokidar@3.6.0:
2261 | dependencies:
2262 | anymatch: 3.1.3
2263 | braces: 3.0.3
2264 | glob-parent: 5.1.2
2265 | is-binary-path: 2.1.0
2266 | is-glob: 4.0.3
2267 | normalize-path: 3.0.0
2268 | readdirp: 3.6.0
2269 | optionalDependencies:
2270 | fsevents: 2.3.3
2271 |
2272 | class-variance-authority@0.7.0:
2273 | dependencies:
2274 | clsx: 2.0.0
2275 |
2276 | client-only@0.0.1: {}
2277 |
2278 | clsx@2.0.0: {}
2279 |
2280 | clsx@2.1.1: {}
2281 |
2282 | color-convert@2.0.1:
2283 | dependencies:
2284 | color-name: 1.1.4
2285 |
2286 | color-name@1.1.4: {}
2287 |
2288 | combined-stream@1.0.8:
2289 | dependencies:
2290 | delayed-stream: 1.0.0
2291 |
2292 | commander@4.1.1: {}
2293 |
2294 | concat-map@0.0.1: {}
2295 |
2296 | cross-spawn@7.0.3:
2297 | dependencies:
2298 | path-key: 3.1.1
2299 | shebang-command: 2.0.0
2300 | which: 2.0.2
2301 |
2302 | cssesc@3.0.0: {}
2303 |
2304 | csstype@3.1.3: {}
2305 |
2306 | damerau-levenshtein@1.0.8: {}
2307 |
2308 | data-view-buffer@1.0.1:
2309 | dependencies:
2310 | call-bind: 1.0.7
2311 | es-errors: 1.3.0
2312 | is-data-view: 1.0.1
2313 |
2314 | data-view-byte-length@1.0.1:
2315 | dependencies:
2316 | call-bind: 1.0.7
2317 | es-errors: 1.3.0
2318 | is-data-view: 1.0.1
2319 |
2320 | data-view-byte-offset@1.0.0:
2321 | dependencies:
2322 | call-bind: 1.0.7
2323 | es-errors: 1.3.0
2324 | is-data-view: 1.0.1
2325 |
2326 | debug@3.2.7:
2327 | dependencies:
2328 | ms: 2.1.3
2329 |
2330 | debug@4.3.7:
2331 | dependencies:
2332 | ms: 2.1.3
2333 |
2334 | deep-equal@2.2.3:
2335 | dependencies:
2336 | array-buffer-byte-length: 1.0.1
2337 | call-bind: 1.0.7
2338 | es-get-iterator: 1.1.3
2339 | get-intrinsic: 1.2.4
2340 | is-arguments: 1.1.1
2341 | is-array-buffer: 3.0.4
2342 | is-date-object: 1.0.5
2343 | is-regex: 1.1.4
2344 | is-shared-array-buffer: 1.0.3
2345 | isarray: 2.0.5
2346 | object-is: 1.1.6
2347 | object-keys: 1.1.1
2348 | object.assign: 4.1.5
2349 | regexp.prototype.flags: 1.5.2
2350 | side-channel: 1.0.6
2351 | which-boxed-primitive: 1.0.2
2352 | which-collection: 1.0.2
2353 | which-typed-array: 1.1.15
2354 |
2355 | deep-is@0.1.4: {}
2356 |
2357 | define-data-property@1.1.4:
2358 | dependencies:
2359 | es-define-property: 1.0.0
2360 | es-errors: 1.3.0
2361 | gopd: 1.0.1
2362 |
2363 | define-properties@1.2.1:
2364 | dependencies:
2365 | define-data-property: 1.1.4
2366 | has-property-descriptors: 1.0.2
2367 | object-keys: 1.1.1
2368 |
2369 | delayed-stream@1.0.0: {}
2370 |
2371 | didyoumean@1.2.2: {}
2372 |
2373 | dir-glob@3.0.1:
2374 | dependencies:
2375 | path-type: 4.0.0
2376 |
2377 | dlv@1.1.3: {}
2378 |
2379 | doctrine@2.1.0:
2380 | dependencies:
2381 | esutils: 2.0.3
2382 |
2383 | doctrine@3.0.0:
2384 | dependencies:
2385 | esutils: 2.0.3
2386 |
2387 | eastasianwidth@0.2.0: {}
2388 |
2389 | emoji-regex@8.0.0: {}
2390 |
2391 | emoji-regex@9.2.2: {}
2392 |
2393 | enhanced-resolve@5.17.1:
2394 | dependencies:
2395 | graceful-fs: 4.2.11
2396 | tapable: 2.2.1
2397 |
2398 | es-abstract@1.23.3:
2399 | dependencies:
2400 | array-buffer-byte-length: 1.0.1
2401 | arraybuffer.prototype.slice: 1.0.3
2402 | available-typed-arrays: 1.0.7
2403 | call-bind: 1.0.7
2404 | data-view-buffer: 1.0.1
2405 | data-view-byte-length: 1.0.1
2406 | data-view-byte-offset: 1.0.0
2407 | es-define-property: 1.0.0
2408 | es-errors: 1.3.0
2409 | es-object-atoms: 1.0.0
2410 | es-set-tostringtag: 2.0.3
2411 | es-to-primitive: 1.2.1
2412 | function.prototype.name: 1.1.6
2413 | get-intrinsic: 1.2.4
2414 | get-symbol-description: 1.0.2
2415 | globalthis: 1.0.4
2416 | gopd: 1.0.1
2417 | has-property-descriptors: 1.0.2
2418 | has-proto: 1.0.3
2419 | has-symbols: 1.0.3
2420 | hasown: 2.0.2
2421 | internal-slot: 1.0.7
2422 | is-array-buffer: 3.0.4
2423 | is-callable: 1.2.7
2424 | is-data-view: 1.0.1
2425 | is-negative-zero: 2.0.3
2426 | is-regex: 1.1.4
2427 | is-shared-array-buffer: 1.0.3
2428 | is-string: 1.0.7
2429 | is-typed-array: 1.1.13
2430 | is-weakref: 1.0.2
2431 | object-inspect: 1.13.2
2432 | object-keys: 1.1.1
2433 | object.assign: 4.1.5
2434 | regexp.prototype.flags: 1.5.2
2435 | safe-array-concat: 1.1.2
2436 | safe-regex-test: 1.0.3
2437 | string.prototype.trim: 1.2.9
2438 | string.prototype.trimend: 1.0.8
2439 | string.prototype.trimstart: 1.0.8
2440 | typed-array-buffer: 1.0.2
2441 | typed-array-byte-length: 1.0.1
2442 | typed-array-byte-offset: 1.0.2
2443 | typed-array-length: 1.0.6
2444 | unbox-primitive: 1.0.2
2445 | which-typed-array: 1.1.15
2446 |
2447 | es-define-property@1.0.0:
2448 | dependencies:
2449 | get-intrinsic: 1.2.4
2450 |
2451 | es-errors@1.3.0: {}
2452 |
2453 | es-get-iterator@1.1.3:
2454 | dependencies:
2455 | call-bind: 1.0.7
2456 | get-intrinsic: 1.2.4
2457 | has-symbols: 1.0.3
2458 | is-arguments: 1.1.1
2459 | is-map: 2.0.3
2460 | is-set: 2.0.3
2461 | is-string: 1.0.7
2462 | isarray: 2.0.5
2463 | stop-iteration-iterator: 1.0.0
2464 |
2465 | es-iterator-helpers@1.0.19:
2466 | dependencies:
2467 | call-bind: 1.0.7
2468 | define-properties: 1.2.1
2469 | es-abstract: 1.23.3
2470 | es-errors: 1.3.0
2471 | es-set-tostringtag: 2.0.3
2472 | function-bind: 1.1.2
2473 | get-intrinsic: 1.2.4
2474 | globalthis: 1.0.4
2475 | has-property-descriptors: 1.0.2
2476 | has-proto: 1.0.3
2477 | has-symbols: 1.0.3
2478 | internal-slot: 1.0.7
2479 | iterator.prototype: 1.1.2
2480 | safe-array-concat: 1.1.2
2481 |
2482 | es-object-atoms@1.0.0:
2483 | dependencies:
2484 | es-errors: 1.3.0
2485 |
2486 | es-set-tostringtag@2.0.3:
2487 | dependencies:
2488 | get-intrinsic: 1.2.4
2489 | has-tostringtag: 1.0.2
2490 | hasown: 2.0.2
2491 |
2492 | es-shim-unscopables@1.0.2:
2493 | dependencies:
2494 | hasown: 2.0.2
2495 |
2496 | es-to-primitive@1.2.1:
2497 | dependencies:
2498 | is-callable: 1.2.7
2499 | is-date-object: 1.0.5
2500 | is-symbol: 1.0.4
2501 |
2502 | escape-string-regexp@4.0.0: {}
2503 |
2504 | eslint-config-next@14.2.10(eslint@8.57.0)(typescript@5.6.2):
2505 | dependencies:
2506 | '@next/eslint-plugin-next': 14.2.10
2507 | '@rushstack/eslint-patch': 1.10.4
2508 | '@typescript-eslint/eslint-plugin': 7.2.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint@8.57.0)(typescript@5.6.2)
2509 | '@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.6.2)
2510 | eslint: 8.57.0
2511 | eslint-import-resolver-node: 0.3.9
2512 | eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0)(eslint@8.57.0)
2513 | eslint-plugin-import: 2.30.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.0)
2514 | eslint-plugin-jsx-a11y: 6.10.0(eslint@8.57.0)
2515 | eslint-plugin-react: 7.35.2(eslint@8.57.0)
2516 | eslint-plugin-react-hooks: 4.6.2(eslint@8.57.0)
2517 | optionalDependencies:
2518 | typescript: 5.6.2
2519 | transitivePeerDependencies:
2520 | - eslint-import-resolver-webpack
2521 | - eslint-plugin-import-x
2522 | - supports-color
2523 |
2524 | eslint-import-resolver-node@0.3.9:
2525 | dependencies:
2526 | debug: 3.2.7
2527 | is-core-module: 2.15.1
2528 | resolve: 1.22.8
2529 | transitivePeerDependencies:
2530 | - supports-color
2531 |
2532 | eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0)(eslint@8.57.0):
2533 | dependencies:
2534 | '@nolyfill/is-core-module': 1.0.39
2535 | debug: 4.3.7
2536 | enhanced-resolve: 5.17.1
2537 | eslint: 8.57.0
2538 | eslint-module-utils: 2.11.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0)(eslint@8.57.0))(eslint@8.57.0)
2539 | fast-glob: 3.3.2
2540 | get-tsconfig: 4.8.0
2541 | is-bun-module: 1.2.1
2542 | is-glob: 4.0.3
2543 | optionalDependencies:
2544 | eslint-plugin-import: 2.30.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.0)
2545 | transitivePeerDependencies:
2546 | - '@typescript-eslint/parser'
2547 | - eslint-import-resolver-node
2548 | - eslint-import-resolver-webpack
2549 | - supports-color
2550 |
2551 | eslint-module-utils@2.11.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0)(eslint@8.57.0))(eslint@8.57.0):
2552 | dependencies:
2553 | debug: 3.2.7
2554 | optionalDependencies:
2555 | '@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.6.2)
2556 | eslint: 8.57.0
2557 | eslint-import-resolver-node: 0.3.9
2558 | eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0)(eslint@8.57.0)
2559 | transitivePeerDependencies:
2560 | - supports-color
2561 |
2562 | eslint-plugin-import@2.30.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.0):
2563 | dependencies:
2564 | '@rtsao/scc': 1.1.0
2565 | array-includes: 3.1.8
2566 | array.prototype.findlastindex: 1.2.5
2567 | array.prototype.flat: 1.3.2
2568 | array.prototype.flatmap: 1.3.2
2569 | debug: 3.2.7
2570 | doctrine: 2.1.0
2571 | eslint: 8.57.0
2572 | eslint-import-resolver-node: 0.3.9
2573 | eslint-module-utils: 2.11.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0)(eslint@8.57.0))(eslint@8.57.0)
2574 | hasown: 2.0.2
2575 | is-core-module: 2.15.1
2576 | is-glob: 4.0.3
2577 | minimatch: 3.1.2
2578 | object.fromentries: 2.0.8
2579 | object.groupby: 1.0.3
2580 | object.values: 1.2.0
2581 | semver: 6.3.1
2582 | tsconfig-paths: 3.15.0
2583 | optionalDependencies:
2584 | '@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.6.2)
2585 | transitivePeerDependencies:
2586 | - eslint-import-resolver-typescript
2587 | - eslint-import-resolver-webpack
2588 | - supports-color
2589 |
2590 | eslint-plugin-jsx-a11y@6.10.0(eslint@8.57.0):
2591 | dependencies:
2592 | aria-query: 5.1.3
2593 | array-includes: 3.1.8
2594 | array.prototype.flatmap: 1.3.2
2595 | ast-types-flow: 0.0.8
2596 | axe-core: 4.10.0
2597 | axobject-query: 4.1.0
2598 | damerau-levenshtein: 1.0.8
2599 | emoji-regex: 9.2.2
2600 | es-iterator-helpers: 1.0.19
2601 | eslint: 8.57.0
2602 | hasown: 2.0.2
2603 | jsx-ast-utils: 3.3.5
2604 | language-tags: 1.0.9
2605 | minimatch: 3.1.2
2606 | object.fromentries: 2.0.8
2607 | safe-regex-test: 1.0.3
2608 | string.prototype.includes: 2.0.0
2609 |
2610 | eslint-plugin-react-hooks@4.6.2(eslint@8.57.0):
2611 | dependencies:
2612 | eslint: 8.57.0
2613 |
2614 | eslint-plugin-react@7.35.2(eslint@8.57.0):
2615 | dependencies:
2616 | array-includes: 3.1.8
2617 | array.prototype.findlast: 1.2.5
2618 | array.prototype.flatmap: 1.3.2
2619 | array.prototype.tosorted: 1.1.4
2620 | doctrine: 2.1.0
2621 | es-iterator-helpers: 1.0.19
2622 | eslint: 8.57.0
2623 | estraverse: 5.3.0
2624 | hasown: 2.0.2
2625 | jsx-ast-utils: 3.3.5
2626 | minimatch: 3.1.2
2627 | object.entries: 1.1.8
2628 | object.fromentries: 2.0.8
2629 | object.values: 1.2.0
2630 | prop-types: 15.8.1
2631 | resolve: 2.0.0-next.5
2632 | semver: 6.3.1
2633 | string.prototype.matchall: 4.0.11
2634 | string.prototype.repeat: 1.0.0
2635 |
2636 | eslint-scope@7.2.2:
2637 | dependencies:
2638 | esrecurse: 4.3.0
2639 | estraverse: 5.3.0
2640 |
2641 | eslint-visitor-keys@3.4.3: {}
2642 |
2643 | eslint@8.57.0:
2644 | dependencies:
2645 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
2646 | '@eslint-community/regexpp': 4.11.0
2647 | '@eslint/eslintrc': 2.1.4
2648 | '@eslint/js': 8.57.0
2649 | '@humanwhocodes/config-array': 0.11.14
2650 | '@humanwhocodes/module-importer': 1.0.1
2651 | '@nodelib/fs.walk': 1.2.8
2652 | '@ungap/structured-clone': 1.2.0
2653 | ajv: 6.12.6
2654 | chalk: 4.1.2
2655 | cross-spawn: 7.0.3
2656 | debug: 4.3.7
2657 | doctrine: 3.0.0
2658 | escape-string-regexp: 4.0.0
2659 | eslint-scope: 7.2.2
2660 | eslint-visitor-keys: 3.4.3
2661 | espree: 9.6.1
2662 | esquery: 1.6.0
2663 | esutils: 2.0.3
2664 | fast-deep-equal: 3.1.3
2665 | file-entry-cache: 6.0.1
2666 | find-up: 5.0.0
2667 | glob-parent: 6.0.2
2668 | globals: 13.24.0
2669 | graphemer: 1.4.0
2670 | ignore: 5.3.2
2671 | imurmurhash: 0.1.4
2672 | is-glob: 4.0.3
2673 | is-path-inside: 3.0.3
2674 | js-yaml: 4.1.0
2675 | json-stable-stringify-without-jsonify: 1.0.1
2676 | levn: 0.4.1
2677 | lodash.merge: 4.6.2
2678 | minimatch: 3.1.2
2679 | natural-compare: 1.4.0
2680 | optionator: 0.9.4
2681 | strip-ansi: 6.0.1
2682 | text-table: 0.2.0
2683 | transitivePeerDependencies:
2684 | - supports-color
2685 |
2686 | espree@9.6.1:
2687 | dependencies:
2688 | acorn: 8.12.1
2689 | acorn-jsx: 5.3.2(acorn@8.12.1)
2690 | eslint-visitor-keys: 3.4.3
2691 |
2692 | esquery@1.6.0:
2693 | dependencies:
2694 | estraverse: 5.3.0
2695 |
2696 | esrecurse@4.3.0:
2697 | dependencies:
2698 | estraverse: 5.3.0
2699 |
2700 | estraverse@5.3.0: {}
2701 |
2702 | esutils@2.0.3: {}
2703 |
2704 | event-target-shim@5.0.1: {}
2705 |
2706 | fast-deep-equal@3.1.3: {}
2707 |
2708 | fast-glob@3.3.2:
2709 | dependencies:
2710 | '@nodelib/fs.stat': 2.0.5
2711 | '@nodelib/fs.walk': 1.2.8
2712 | glob-parent: 5.1.2
2713 | merge2: 1.4.1
2714 | micromatch: 4.0.8
2715 |
2716 | fast-json-stable-stringify@2.1.0: {}
2717 |
2718 | fast-levenshtein@2.0.6: {}
2719 |
2720 | fastq@1.17.1:
2721 | dependencies:
2722 | reusify: 1.0.4
2723 |
2724 | file-entry-cache@6.0.1:
2725 | dependencies:
2726 | flat-cache: 3.2.0
2727 |
2728 | fill-range@7.1.1:
2729 | dependencies:
2730 | to-regex-range: 5.0.1
2731 |
2732 | find-up@5.0.0:
2733 | dependencies:
2734 | locate-path: 6.0.0
2735 | path-exists: 4.0.0
2736 |
2737 | flat-cache@3.2.0:
2738 | dependencies:
2739 | flatted: 3.3.1
2740 | keyv: 4.5.4
2741 | rimraf: 3.0.2
2742 |
2743 | flatted@3.3.1: {}
2744 |
2745 | for-each@0.3.3:
2746 | dependencies:
2747 | is-callable: 1.2.7
2748 |
2749 | foreground-child@3.3.0:
2750 | dependencies:
2751 | cross-spawn: 7.0.3
2752 | signal-exit: 4.1.0
2753 |
2754 | form-data-encoder@1.7.2: {}
2755 |
2756 | form-data@4.0.0:
2757 | dependencies:
2758 | asynckit: 0.4.0
2759 | combined-stream: 1.0.8
2760 | mime-types: 2.1.35
2761 |
2762 | formdata-node@4.4.1:
2763 | dependencies:
2764 | node-domexception: 1.0.0
2765 | web-streams-polyfill: 4.0.0-beta.3
2766 |
2767 | framer-motion@11.5.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
2768 | dependencies:
2769 | tslib: 2.7.0
2770 | optionalDependencies:
2771 | react: 18.3.1
2772 | react-dom: 18.3.1(react@18.3.1)
2773 |
2774 | fs.realpath@1.0.0: {}
2775 |
2776 | fsevents@2.3.3:
2777 | optional: true
2778 |
2779 | function-bind@1.1.2: {}
2780 |
2781 | function.prototype.name@1.1.6:
2782 | dependencies:
2783 | call-bind: 1.0.7
2784 | define-properties: 1.2.1
2785 | es-abstract: 1.23.3
2786 | functions-have-names: 1.2.3
2787 |
2788 | functions-have-names@1.2.3: {}
2789 |
2790 | get-intrinsic@1.2.4:
2791 | dependencies:
2792 | es-errors: 1.3.0
2793 | function-bind: 1.1.2
2794 | has-proto: 1.0.3
2795 | has-symbols: 1.0.3
2796 | hasown: 2.0.2
2797 |
2798 | get-symbol-description@1.0.2:
2799 | dependencies:
2800 | call-bind: 1.0.7
2801 | es-errors: 1.3.0
2802 | get-intrinsic: 1.2.4
2803 |
2804 | get-tsconfig@4.8.0:
2805 | dependencies:
2806 | resolve-pkg-maps: 1.0.0
2807 |
2808 | glob-parent@5.1.2:
2809 | dependencies:
2810 | is-glob: 4.0.3
2811 |
2812 | glob-parent@6.0.2:
2813 | dependencies:
2814 | is-glob: 4.0.3
2815 |
2816 | glob@10.3.10:
2817 | dependencies:
2818 | foreground-child: 3.3.0
2819 | jackspeak: 2.3.6
2820 | minimatch: 9.0.5
2821 | minipass: 7.1.2
2822 | path-scurry: 1.11.1
2823 |
2824 | glob@10.4.5:
2825 | dependencies:
2826 | foreground-child: 3.3.0
2827 | jackspeak: 3.4.3
2828 | minimatch: 9.0.5
2829 | minipass: 7.1.2
2830 | package-json-from-dist: 1.0.0
2831 | path-scurry: 1.11.1
2832 |
2833 | glob@7.2.3:
2834 | dependencies:
2835 | fs.realpath: 1.0.0
2836 | inflight: 1.0.6
2837 | inherits: 2.0.4
2838 | minimatch: 3.1.2
2839 | once: 1.4.0
2840 | path-is-absolute: 1.0.1
2841 |
2842 | globals@13.24.0:
2843 | dependencies:
2844 | type-fest: 0.20.2
2845 |
2846 | globalthis@1.0.4:
2847 | dependencies:
2848 | define-properties: 1.2.1
2849 | gopd: 1.0.1
2850 |
2851 | globby@11.1.0:
2852 | dependencies:
2853 | array-union: 2.1.0
2854 | dir-glob: 3.0.1
2855 | fast-glob: 3.3.2
2856 | ignore: 5.3.2
2857 | merge2: 1.4.1
2858 | slash: 3.0.0
2859 |
2860 | gopd@1.0.1:
2861 | dependencies:
2862 | get-intrinsic: 1.2.4
2863 |
2864 | graceful-fs@4.2.11: {}
2865 |
2866 | graphemer@1.4.0: {}
2867 |
2868 | has-bigints@1.0.2: {}
2869 |
2870 | has-flag@4.0.0: {}
2871 |
2872 | has-property-descriptors@1.0.2:
2873 | dependencies:
2874 | es-define-property: 1.0.0
2875 |
2876 | has-proto@1.0.3: {}
2877 |
2878 | has-symbols@1.0.3: {}
2879 |
2880 | has-tostringtag@1.0.2:
2881 | dependencies:
2882 | has-symbols: 1.0.3
2883 |
2884 | hasown@2.0.2:
2885 | dependencies:
2886 | function-bind: 1.1.2
2887 |
2888 | html-to-image@1.11.11: {}
2889 |
2890 | humanize-ms@1.2.1:
2891 | dependencies:
2892 | ms: 2.1.3
2893 |
2894 | ignore@5.3.2: {}
2895 |
2896 | import-fresh@3.3.0:
2897 | dependencies:
2898 | parent-module: 1.0.1
2899 | resolve-from: 4.0.0
2900 |
2901 | imurmurhash@0.1.4: {}
2902 |
2903 | inflight@1.0.6:
2904 | dependencies:
2905 | once: 1.4.0
2906 | wrappy: 1.0.2
2907 |
2908 | inherits@2.0.4: {}
2909 |
2910 | internal-slot@1.0.7:
2911 | dependencies:
2912 | es-errors: 1.3.0
2913 | hasown: 2.0.2
2914 | side-channel: 1.0.6
2915 |
2916 | is-arguments@1.1.1:
2917 | dependencies:
2918 | call-bind: 1.0.7
2919 | has-tostringtag: 1.0.2
2920 |
2921 | is-array-buffer@3.0.4:
2922 | dependencies:
2923 | call-bind: 1.0.7
2924 | get-intrinsic: 1.2.4
2925 |
2926 | is-async-function@2.0.0:
2927 | dependencies:
2928 | has-tostringtag: 1.0.2
2929 |
2930 | is-bigint@1.0.4:
2931 | dependencies:
2932 | has-bigints: 1.0.2
2933 |
2934 | is-binary-path@2.1.0:
2935 | dependencies:
2936 | binary-extensions: 2.3.0
2937 |
2938 | is-boolean-object@1.1.2:
2939 | dependencies:
2940 | call-bind: 1.0.7
2941 | has-tostringtag: 1.0.2
2942 |
2943 | is-bun-module@1.2.1:
2944 | dependencies:
2945 | semver: 7.6.3
2946 |
2947 | is-callable@1.2.7: {}
2948 |
2949 | is-core-module@2.15.1:
2950 | dependencies:
2951 | hasown: 2.0.2
2952 |
2953 | is-data-view@1.0.1:
2954 | dependencies:
2955 | is-typed-array: 1.1.13
2956 |
2957 | is-date-object@1.0.5:
2958 | dependencies:
2959 | has-tostringtag: 1.0.2
2960 |
2961 | is-extglob@2.1.1: {}
2962 |
2963 | is-finalizationregistry@1.0.2:
2964 | dependencies:
2965 | call-bind: 1.0.7
2966 |
2967 | is-fullwidth-code-point@3.0.0: {}
2968 |
2969 | is-generator-function@1.0.10:
2970 | dependencies:
2971 | has-tostringtag: 1.0.2
2972 |
2973 | is-glob@4.0.3:
2974 | dependencies:
2975 | is-extglob: 2.1.1
2976 |
2977 | is-map@2.0.3: {}
2978 |
2979 | is-negative-zero@2.0.3: {}
2980 |
2981 | is-number-object@1.0.7:
2982 | dependencies:
2983 | has-tostringtag: 1.0.2
2984 |
2985 | is-number@7.0.0: {}
2986 |
2987 | is-path-inside@3.0.3: {}
2988 |
2989 | is-regex@1.1.4:
2990 | dependencies:
2991 | call-bind: 1.0.7
2992 | has-tostringtag: 1.0.2
2993 |
2994 | is-set@2.0.3: {}
2995 |
2996 | is-shared-array-buffer@1.0.3:
2997 | dependencies:
2998 | call-bind: 1.0.7
2999 |
3000 | is-string@1.0.7:
3001 | dependencies:
3002 | has-tostringtag: 1.0.2
3003 |
3004 | is-symbol@1.0.4:
3005 | dependencies:
3006 | has-symbols: 1.0.3
3007 |
3008 | is-typed-array@1.1.13:
3009 | dependencies:
3010 | which-typed-array: 1.1.15
3011 |
3012 | is-weakmap@2.0.2: {}
3013 |
3014 | is-weakref@1.0.2:
3015 | dependencies:
3016 | call-bind: 1.0.7
3017 |
3018 | is-weakset@2.0.3:
3019 | dependencies:
3020 | call-bind: 1.0.7
3021 | get-intrinsic: 1.2.4
3022 |
3023 | isarray@2.0.5: {}
3024 |
3025 | isexe@2.0.0: {}
3026 |
3027 | iterator.prototype@1.1.2:
3028 | dependencies:
3029 | define-properties: 1.2.1
3030 | get-intrinsic: 1.2.4
3031 | has-symbols: 1.0.3
3032 | reflect.getprototypeof: 1.0.6
3033 | set-function-name: 2.0.2
3034 |
3035 | jackspeak@2.3.6:
3036 | dependencies:
3037 | '@isaacs/cliui': 8.0.2
3038 | optionalDependencies:
3039 | '@pkgjs/parseargs': 0.11.0
3040 |
3041 | jackspeak@3.4.3:
3042 | dependencies:
3043 | '@isaacs/cliui': 8.0.2
3044 | optionalDependencies:
3045 | '@pkgjs/parseargs': 0.11.0
3046 |
3047 | jiti@1.21.6: {}
3048 |
3049 | js-tokens@4.0.0: {}
3050 |
3051 | js-yaml@4.1.0:
3052 | dependencies:
3053 | argparse: 2.0.1
3054 |
3055 | json-buffer@3.0.1: {}
3056 |
3057 | json-schema-traverse@0.4.1: {}
3058 |
3059 | json-stable-stringify-without-jsonify@1.0.1: {}
3060 |
3061 | json5@1.0.2:
3062 | dependencies:
3063 | minimist: 1.2.8
3064 |
3065 | jsx-ast-utils@3.3.5:
3066 | dependencies:
3067 | array-includes: 3.1.8
3068 | array.prototype.flat: 1.3.2
3069 | object.assign: 4.1.5
3070 | object.values: 1.2.0
3071 |
3072 | keyv@4.5.4:
3073 | dependencies:
3074 | json-buffer: 3.0.1
3075 |
3076 | language-subtag-registry@0.3.23: {}
3077 |
3078 | language-tags@1.0.9:
3079 | dependencies:
3080 | language-subtag-registry: 0.3.23
3081 |
3082 | levn@0.4.1:
3083 | dependencies:
3084 | prelude-ls: 1.2.1
3085 | type-check: 0.4.0
3086 |
3087 | lilconfig@2.1.0: {}
3088 |
3089 | lilconfig@3.1.2: {}
3090 |
3091 | lines-and-columns@1.2.4: {}
3092 |
3093 | locate-path@6.0.0:
3094 | dependencies:
3095 | p-locate: 5.0.0
3096 |
3097 | lodash.merge@4.6.2: {}
3098 |
3099 | loose-envify@1.4.0:
3100 | dependencies:
3101 | js-tokens: 4.0.0
3102 |
3103 | lru-cache@10.4.3: {}
3104 |
3105 | lucide-react@0.439.0(react@18.3.1):
3106 | dependencies:
3107 | react: 18.3.1
3108 |
3109 | merge2@1.4.1: {}
3110 |
3111 | micromatch@4.0.8:
3112 | dependencies:
3113 | braces: 3.0.3
3114 | picomatch: 2.3.1
3115 |
3116 | mime-db@1.52.0: {}
3117 |
3118 | mime-types@2.1.35:
3119 | dependencies:
3120 | mime-db: 1.52.0
3121 |
3122 | minimatch@3.1.2:
3123 | dependencies:
3124 | brace-expansion: 1.1.11
3125 |
3126 | minimatch@9.0.3:
3127 | dependencies:
3128 | brace-expansion: 2.0.1
3129 |
3130 | minimatch@9.0.5:
3131 | dependencies:
3132 | brace-expansion: 2.0.1
3133 |
3134 | minimist@1.2.8: {}
3135 |
3136 | minipass@7.1.2: {}
3137 |
3138 | ms@2.1.3: {}
3139 |
3140 | mz@2.7.0:
3141 | dependencies:
3142 | any-promise: 1.3.0
3143 | object-assign: 4.1.1
3144 | thenify-all: 1.6.0
3145 |
3146 | nanoid@3.3.7: {}
3147 |
3148 | natural-compare@1.4.0: {}
3149 |
3150 | next-themes@0.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
3151 | dependencies:
3152 | react: 18.3.1
3153 | react-dom: 18.3.1(react@18.3.1)
3154 |
3155 | next@14.2.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
3156 | dependencies:
3157 | '@next/env': 14.2.10
3158 | '@swc/helpers': 0.5.5
3159 | busboy: 1.6.0
3160 | caniuse-lite: 1.0.30001660
3161 | graceful-fs: 4.2.11
3162 | postcss: 8.4.31
3163 | react: 18.3.1
3164 | react-dom: 18.3.1(react@18.3.1)
3165 | styled-jsx: 5.1.1(react@18.3.1)
3166 | optionalDependencies:
3167 | '@next/swc-darwin-arm64': 14.2.10
3168 | '@next/swc-darwin-x64': 14.2.10
3169 | '@next/swc-linux-arm64-gnu': 14.2.10
3170 | '@next/swc-linux-arm64-musl': 14.2.10
3171 | '@next/swc-linux-x64-gnu': 14.2.10
3172 | '@next/swc-linux-x64-musl': 14.2.10
3173 | '@next/swc-win32-arm64-msvc': 14.2.10
3174 | '@next/swc-win32-ia32-msvc': 14.2.10
3175 | '@next/swc-win32-x64-msvc': 14.2.10
3176 | transitivePeerDependencies:
3177 | - '@babel/core'
3178 | - babel-plugin-macros
3179 |
3180 | node-domexception@1.0.0: {}
3181 |
3182 | node-fetch@2.7.0:
3183 | dependencies:
3184 | whatwg-url: 5.0.0
3185 |
3186 | normalize-path@3.0.0: {}
3187 |
3188 | object-assign@4.1.1: {}
3189 |
3190 | object-hash@3.0.0: {}
3191 |
3192 | object-inspect@1.13.2: {}
3193 |
3194 | object-is@1.1.6:
3195 | dependencies:
3196 | call-bind: 1.0.7
3197 | define-properties: 1.2.1
3198 |
3199 | object-keys@1.1.1: {}
3200 |
3201 | object.assign@4.1.5:
3202 | dependencies:
3203 | call-bind: 1.0.7
3204 | define-properties: 1.2.1
3205 | has-symbols: 1.0.3
3206 | object-keys: 1.1.1
3207 |
3208 | object.entries@1.1.8:
3209 | dependencies:
3210 | call-bind: 1.0.7
3211 | define-properties: 1.2.1
3212 | es-object-atoms: 1.0.0
3213 |
3214 | object.fromentries@2.0.8:
3215 | dependencies:
3216 | call-bind: 1.0.7
3217 | define-properties: 1.2.1
3218 | es-abstract: 1.23.3
3219 | es-object-atoms: 1.0.0
3220 |
3221 | object.groupby@1.0.3:
3222 | dependencies:
3223 | call-bind: 1.0.7
3224 | define-properties: 1.2.1
3225 | es-abstract: 1.23.3
3226 |
3227 | object.values@1.2.0:
3228 | dependencies:
3229 | call-bind: 1.0.7
3230 | define-properties: 1.2.1
3231 | es-object-atoms: 1.0.0
3232 |
3233 | once@1.4.0:
3234 | dependencies:
3235 | wrappy: 1.0.2
3236 |
3237 | openai@4.59.0:
3238 | dependencies:
3239 | '@types/node': 18.19.50
3240 | '@types/node-fetch': 2.6.11
3241 | '@types/qs': 6.9.15
3242 | abort-controller: 3.0.0
3243 | agentkeepalive: 4.5.0
3244 | form-data-encoder: 1.7.2
3245 | formdata-node: 4.4.1
3246 | node-fetch: 2.7.0
3247 | qs: 6.13.0
3248 | transitivePeerDependencies:
3249 | - encoding
3250 |
3251 | optionator@0.9.4:
3252 | dependencies:
3253 | deep-is: 0.1.4
3254 | fast-levenshtein: 2.0.6
3255 | levn: 0.4.1
3256 | prelude-ls: 1.2.1
3257 | type-check: 0.4.0
3258 | word-wrap: 1.2.5
3259 |
3260 | p-limit@3.1.0:
3261 | dependencies:
3262 | yocto-queue: 0.1.0
3263 |
3264 | p-locate@5.0.0:
3265 | dependencies:
3266 | p-limit: 3.1.0
3267 |
3268 | package-json-from-dist@1.0.0: {}
3269 |
3270 | parent-module@1.0.1:
3271 | dependencies:
3272 | callsites: 3.1.0
3273 |
3274 | path-exists@4.0.0: {}
3275 |
3276 | path-is-absolute@1.0.1: {}
3277 |
3278 | path-key@3.1.1: {}
3279 |
3280 | path-parse@1.0.7: {}
3281 |
3282 | path-scurry@1.11.1:
3283 | dependencies:
3284 | lru-cache: 10.4.3
3285 | minipass: 7.1.2
3286 |
3287 | path-type@4.0.0: {}
3288 |
3289 | picocolors@1.1.0: {}
3290 |
3291 | picomatch@2.3.1: {}
3292 |
3293 | pify@2.3.0: {}
3294 |
3295 | pirates@4.0.6: {}
3296 |
3297 | possible-typed-array-names@1.0.0: {}
3298 |
3299 | postcss-import@15.1.0(postcss@8.4.45):
3300 | dependencies:
3301 | postcss: 8.4.45
3302 | postcss-value-parser: 4.2.0
3303 | read-cache: 1.0.0
3304 | resolve: 1.22.8
3305 |
3306 | postcss-js@4.0.1(postcss@8.4.45):
3307 | dependencies:
3308 | camelcase-css: 2.0.1
3309 | postcss: 8.4.45
3310 |
3311 | postcss-load-config@4.0.2(postcss@8.4.45):
3312 | dependencies:
3313 | lilconfig: 3.1.2
3314 | yaml: 2.5.1
3315 | optionalDependencies:
3316 | postcss: 8.4.45
3317 |
3318 | postcss-nested@6.2.0(postcss@8.4.45):
3319 | dependencies:
3320 | postcss: 8.4.45
3321 | postcss-selector-parser: 6.1.2
3322 |
3323 | postcss-selector-parser@6.1.2:
3324 | dependencies:
3325 | cssesc: 3.0.0
3326 | util-deprecate: 1.0.2
3327 |
3328 | postcss-value-parser@4.2.0: {}
3329 |
3330 | postcss@8.4.31:
3331 | dependencies:
3332 | nanoid: 3.3.7
3333 | picocolors: 1.1.0
3334 | source-map-js: 1.2.1
3335 |
3336 | postcss@8.4.45:
3337 | dependencies:
3338 | nanoid: 3.3.7
3339 | picocolors: 1.1.0
3340 | source-map-js: 1.2.1
3341 |
3342 | prelude-ls@1.2.1: {}
3343 |
3344 | prop-types@15.8.1:
3345 | dependencies:
3346 | loose-envify: 1.4.0
3347 | object-assign: 4.1.1
3348 | react-is: 16.13.1
3349 |
3350 | punycode@2.3.1: {}
3351 |
3352 | qs@6.13.0:
3353 | dependencies:
3354 | side-channel: 1.0.6
3355 |
3356 | queue-microtask@1.2.3: {}
3357 |
3358 | react-dom@18.3.1(react@18.3.1):
3359 | dependencies:
3360 | loose-envify: 1.4.0
3361 | react: 18.3.1
3362 | scheduler: 0.23.2
3363 |
3364 | react-is@16.13.1: {}
3365 |
3366 | react-toastify@10.0.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
3367 | dependencies:
3368 | clsx: 2.1.1
3369 | react: 18.3.1
3370 | react-dom: 18.3.1(react@18.3.1)
3371 |
3372 | react-type-animation@3.2.0(prop-types@15.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
3373 | dependencies:
3374 | prop-types: 15.8.1
3375 | react: 18.3.1
3376 | react-dom: 18.3.1(react@18.3.1)
3377 |
3378 | react@18.3.1:
3379 | dependencies:
3380 | loose-envify: 1.4.0
3381 |
3382 | read-cache@1.0.0:
3383 | dependencies:
3384 | pify: 2.3.0
3385 |
3386 | readdirp@3.6.0:
3387 | dependencies:
3388 | picomatch: 2.3.1
3389 |
3390 | reflect.getprototypeof@1.0.6:
3391 | dependencies:
3392 | call-bind: 1.0.7
3393 | define-properties: 1.2.1
3394 | es-abstract: 1.23.3
3395 | es-errors: 1.3.0
3396 | get-intrinsic: 1.2.4
3397 | globalthis: 1.0.4
3398 | which-builtin-type: 1.1.4
3399 |
3400 | regexp.prototype.flags@1.5.2:
3401 | dependencies:
3402 | call-bind: 1.0.7
3403 | define-properties: 1.2.1
3404 | es-errors: 1.3.0
3405 | set-function-name: 2.0.2
3406 |
3407 | resolve-from@4.0.0: {}
3408 |
3409 | resolve-pkg-maps@1.0.0: {}
3410 |
3411 | resolve@1.22.8:
3412 | dependencies:
3413 | is-core-module: 2.15.1
3414 | path-parse: 1.0.7
3415 | supports-preserve-symlinks-flag: 1.0.0
3416 |
3417 | resolve@2.0.0-next.5:
3418 | dependencies:
3419 | is-core-module: 2.15.1
3420 | path-parse: 1.0.7
3421 | supports-preserve-symlinks-flag: 1.0.0
3422 |
3423 | reusify@1.0.4: {}
3424 |
3425 | rimraf@3.0.2:
3426 | dependencies:
3427 | glob: 7.2.3
3428 |
3429 | run-parallel@1.2.0:
3430 | dependencies:
3431 | queue-microtask: 1.2.3
3432 |
3433 | safe-array-concat@1.1.2:
3434 | dependencies:
3435 | call-bind: 1.0.7
3436 | get-intrinsic: 1.2.4
3437 | has-symbols: 1.0.3
3438 | isarray: 2.0.5
3439 |
3440 | safe-regex-test@1.0.3:
3441 | dependencies:
3442 | call-bind: 1.0.7
3443 | es-errors: 1.3.0
3444 | is-regex: 1.1.4
3445 |
3446 | scheduler@0.23.2:
3447 | dependencies:
3448 | loose-envify: 1.4.0
3449 |
3450 | semver@6.3.1: {}
3451 |
3452 | semver@7.6.3: {}
3453 |
3454 | set-function-length@1.2.2:
3455 | dependencies:
3456 | define-data-property: 1.1.4
3457 | es-errors: 1.3.0
3458 | function-bind: 1.1.2
3459 | get-intrinsic: 1.2.4
3460 | gopd: 1.0.1
3461 | has-property-descriptors: 1.0.2
3462 |
3463 | set-function-name@2.0.2:
3464 | dependencies:
3465 | define-data-property: 1.1.4
3466 | es-errors: 1.3.0
3467 | functions-have-names: 1.2.3
3468 | has-property-descriptors: 1.0.2
3469 |
3470 | shebang-command@2.0.0:
3471 | dependencies:
3472 | shebang-regex: 3.0.0
3473 |
3474 | shebang-regex@3.0.0: {}
3475 |
3476 | side-channel@1.0.6:
3477 | dependencies:
3478 | call-bind: 1.0.7
3479 | es-errors: 1.3.0
3480 | get-intrinsic: 1.2.4
3481 | object-inspect: 1.13.2
3482 |
3483 | signal-exit@4.1.0: {}
3484 |
3485 | slash@3.0.0: {}
3486 |
3487 | sonner@1.5.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
3488 | dependencies:
3489 | react: 18.3.1
3490 | react-dom: 18.3.1(react@18.3.1)
3491 |
3492 | source-map-js@1.2.1: {}
3493 |
3494 | stop-iteration-iterator@1.0.0:
3495 | dependencies:
3496 | internal-slot: 1.0.7
3497 |
3498 | streamsearch@1.1.0: {}
3499 |
3500 | string-width@4.2.3:
3501 | dependencies:
3502 | emoji-regex: 8.0.0
3503 | is-fullwidth-code-point: 3.0.0
3504 | strip-ansi: 6.0.1
3505 |
3506 | string-width@5.1.2:
3507 | dependencies:
3508 | eastasianwidth: 0.2.0
3509 | emoji-regex: 9.2.2
3510 | strip-ansi: 7.1.0
3511 |
3512 | string.prototype.includes@2.0.0:
3513 | dependencies:
3514 | define-properties: 1.2.1
3515 | es-abstract: 1.23.3
3516 |
3517 | string.prototype.matchall@4.0.11:
3518 | dependencies:
3519 | call-bind: 1.0.7
3520 | define-properties: 1.2.1
3521 | es-abstract: 1.23.3
3522 | es-errors: 1.3.0
3523 | es-object-atoms: 1.0.0
3524 | get-intrinsic: 1.2.4
3525 | gopd: 1.0.1
3526 | has-symbols: 1.0.3
3527 | internal-slot: 1.0.7
3528 | regexp.prototype.flags: 1.5.2
3529 | set-function-name: 2.0.2
3530 | side-channel: 1.0.6
3531 |
3532 | string.prototype.repeat@1.0.0:
3533 | dependencies:
3534 | define-properties: 1.2.1
3535 | es-abstract: 1.23.3
3536 |
3537 | string.prototype.trim@1.2.9:
3538 | dependencies:
3539 | call-bind: 1.0.7
3540 | define-properties: 1.2.1
3541 | es-abstract: 1.23.3
3542 | es-object-atoms: 1.0.0
3543 |
3544 | string.prototype.trimend@1.0.8:
3545 | dependencies:
3546 | call-bind: 1.0.7
3547 | define-properties: 1.2.1
3548 | es-object-atoms: 1.0.0
3549 |
3550 | string.prototype.trimstart@1.0.8:
3551 | dependencies:
3552 | call-bind: 1.0.7
3553 | define-properties: 1.2.1
3554 | es-object-atoms: 1.0.0
3555 |
3556 | strip-ansi@6.0.1:
3557 | dependencies:
3558 | ansi-regex: 5.0.1
3559 |
3560 | strip-ansi@7.1.0:
3561 | dependencies:
3562 | ansi-regex: 6.1.0
3563 |
3564 | strip-bom@3.0.0: {}
3565 |
3566 | strip-json-comments@3.1.1: {}
3567 |
3568 | styled-jsx@5.1.1(react@18.3.1):
3569 | dependencies:
3570 | client-only: 0.0.1
3571 | react: 18.3.1
3572 |
3573 | sucrase@3.35.0:
3574 | dependencies:
3575 | '@jridgewell/gen-mapping': 0.3.5
3576 | commander: 4.1.1
3577 | glob: 10.4.5
3578 | lines-and-columns: 1.2.4
3579 | mz: 2.7.0
3580 | pirates: 4.0.6
3581 | ts-interface-checker: 0.1.13
3582 |
3583 | supports-color@7.2.0:
3584 | dependencies:
3585 | has-flag: 4.0.0
3586 |
3587 | supports-preserve-symlinks-flag@1.0.0: {}
3588 |
3589 | tailwind-merge@2.5.2: {}
3590 |
3591 | tailwindcss-animate@1.0.7(tailwindcss@3.4.11):
3592 | dependencies:
3593 | tailwindcss: 3.4.11
3594 |
3595 | tailwindcss@3.4.11:
3596 | dependencies:
3597 | '@alloc/quick-lru': 5.2.0
3598 | arg: 5.0.2
3599 | chokidar: 3.6.0
3600 | didyoumean: 1.2.2
3601 | dlv: 1.1.3
3602 | fast-glob: 3.3.2
3603 | glob-parent: 6.0.2
3604 | is-glob: 4.0.3
3605 | jiti: 1.21.6
3606 | lilconfig: 2.1.0
3607 | micromatch: 4.0.8
3608 | normalize-path: 3.0.0
3609 | object-hash: 3.0.0
3610 | picocolors: 1.1.0
3611 | postcss: 8.4.45
3612 | postcss-import: 15.1.0(postcss@8.4.45)
3613 | postcss-js: 4.0.1(postcss@8.4.45)
3614 | postcss-load-config: 4.0.2(postcss@8.4.45)
3615 | postcss-nested: 6.2.0(postcss@8.4.45)
3616 | postcss-selector-parser: 6.1.2
3617 | resolve: 1.22.8
3618 | sucrase: 3.35.0
3619 | transitivePeerDependencies:
3620 | - ts-node
3621 |
3622 | tapable@2.2.1: {}
3623 |
3624 | text-table@0.2.0: {}
3625 |
3626 | thenify-all@1.6.0:
3627 | dependencies:
3628 | thenify: 3.3.1
3629 |
3630 | thenify@3.3.1:
3631 | dependencies:
3632 | any-promise: 1.3.0
3633 |
3634 | to-regex-range@5.0.1:
3635 | dependencies:
3636 | is-number: 7.0.0
3637 |
3638 | tr46@0.0.3: {}
3639 |
3640 | ts-api-utils@1.3.0(typescript@5.6.2):
3641 | dependencies:
3642 | typescript: 5.6.2
3643 |
3644 | ts-interface-checker@0.1.13: {}
3645 |
3646 | tsconfig-paths@3.15.0:
3647 | dependencies:
3648 | '@types/json5': 0.0.29
3649 | json5: 1.0.2
3650 | minimist: 1.2.8
3651 | strip-bom: 3.0.0
3652 |
3653 | tslib@2.7.0: {}
3654 |
3655 | type-check@0.4.0:
3656 | dependencies:
3657 | prelude-ls: 1.2.1
3658 |
3659 | type-fest@0.20.2: {}
3660 |
3661 | typed-array-buffer@1.0.2:
3662 | dependencies:
3663 | call-bind: 1.0.7
3664 | es-errors: 1.3.0
3665 | is-typed-array: 1.1.13
3666 |
3667 | typed-array-byte-length@1.0.1:
3668 | dependencies:
3669 | call-bind: 1.0.7
3670 | for-each: 0.3.3
3671 | gopd: 1.0.1
3672 | has-proto: 1.0.3
3673 | is-typed-array: 1.1.13
3674 |
3675 | typed-array-byte-offset@1.0.2:
3676 | dependencies:
3677 | available-typed-arrays: 1.0.7
3678 | call-bind: 1.0.7
3679 | for-each: 0.3.3
3680 | gopd: 1.0.1
3681 | has-proto: 1.0.3
3682 | is-typed-array: 1.1.13
3683 |
3684 | typed-array-length@1.0.6:
3685 | dependencies:
3686 | call-bind: 1.0.7
3687 | for-each: 0.3.3
3688 | gopd: 1.0.1
3689 | has-proto: 1.0.3
3690 | is-typed-array: 1.1.13
3691 | possible-typed-array-names: 1.0.0
3692 |
3693 | typescript@5.6.2: {}
3694 |
3695 | unbox-primitive@1.0.2:
3696 | dependencies:
3697 | call-bind: 1.0.7
3698 | has-bigints: 1.0.2
3699 | has-symbols: 1.0.3
3700 | which-boxed-primitive: 1.0.2
3701 |
3702 | undici-types@5.26.5: {}
3703 |
3704 | undici-types@6.19.8: {}
3705 |
3706 | uri-js@4.4.1:
3707 | dependencies:
3708 | punycode: 2.3.1
3709 |
3710 | util-deprecate@1.0.2: {}
3711 |
3712 | web-streams-polyfill@4.0.0-beta.3: {}
3713 |
3714 | webidl-conversions@3.0.1: {}
3715 |
3716 | whatwg-url@5.0.0:
3717 | dependencies:
3718 | tr46: 0.0.3
3719 | webidl-conversions: 3.0.1
3720 |
3721 | which-boxed-primitive@1.0.2:
3722 | dependencies:
3723 | is-bigint: 1.0.4
3724 | is-boolean-object: 1.1.2
3725 | is-number-object: 1.0.7
3726 | is-string: 1.0.7
3727 | is-symbol: 1.0.4
3728 |
3729 | which-builtin-type@1.1.4:
3730 | dependencies:
3731 | function.prototype.name: 1.1.6
3732 | has-tostringtag: 1.0.2
3733 | is-async-function: 2.0.0
3734 | is-date-object: 1.0.5
3735 | is-finalizationregistry: 1.0.2
3736 | is-generator-function: 1.0.10
3737 | is-regex: 1.1.4
3738 | is-weakref: 1.0.2
3739 | isarray: 2.0.5
3740 | which-boxed-primitive: 1.0.2
3741 | which-collection: 1.0.2
3742 | which-typed-array: 1.1.15
3743 |
3744 | which-collection@1.0.2:
3745 | dependencies:
3746 | is-map: 2.0.3
3747 | is-set: 2.0.3
3748 | is-weakmap: 2.0.2
3749 | is-weakset: 2.0.3
3750 |
3751 | which-typed-array@1.1.15:
3752 | dependencies:
3753 | available-typed-arrays: 1.0.7
3754 | call-bind: 1.0.7
3755 | for-each: 0.3.3
3756 | gopd: 1.0.1
3757 | has-tostringtag: 1.0.2
3758 |
3759 | which@2.0.2:
3760 | dependencies:
3761 | isexe: 2.0.0
3762 |
3763 | word-wrap@1.2.5: {}
3764 |
3765 | wrap-ansi@7.0.0:
3766 | dependencies:
3767 | ansi-styles: 4.3.0
3768 | string-width: 4.2.3
3769 | strip-ansi: 6.0.1
3770 |
3771 | wrap-ansi@8.1.0:
3772 | dependencies:
3773 | ansi-styles: 6.2.1
3774 | string-width: 5.1.2
3775 | strip-ansi: 7.1.0
3776 |
3777 | wrappy@1.0.2: {}
3778 |
3779 | yaml@2.5.1: {}
3780 |
3781 | yocto-queue@0.1.0: {}
3782 |
--------------------------------------------------------------------------------