├── .gitignore
├── www
├── src
│ ├── vite-env.d.ts
│ ├── lib
│ │ └── utils.ts
│ ├── main.tsx
│ ├── App.tsx
│ ├── components
│ │ ├── footer.tsx
│ │ ├── ui
│ │ │ └── button.tsx
│ │ ├── features.tsx
│ │ ├── demo.tsx
│ │ └── landing-page.tsx
│ ├── index.css
│ └── assets
│ │ └── react.svg
├── public
│ ├── og.png
│ └── logo.svg
├── postcss.config.js
├── tsconfig.json
├── vite.config.ts
├── .gitignore
├── components.json
├── tsconfig.node.json
├── index.html
├── eslint.config.js
├── tsconfig.app.json
├── package.json
├── README.md
├── tailwind.config.js
└── pnpm-lock.yaml
├── .npmignore
├── tsup.config.ts
├── tsconfig.json
├── package.json
├── src
├── fileOperation.ts
└── index.ts
└── README.md
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 |
3 | /dist
4 |
--------------------------------------------------------------------------------
/www/src/vite-env.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 |
--------------------------------------------------------------------------------
/www/public/og.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bossadizenith/tidyup/HEAD/www/public/og.png
--------------------------------------------------------------------------------
/www/postcss.config.js:
--------------------------------------------------------------------------------
1 | export default {
2 | plugins: {
3 | tailwindcss: {},
4 | autoprefixer: {},
5 | },
6 | }
7 |
--------------------------------------------------------------------------------
/.npmignore:
--------------------------------------------------------------------------------
1 | /src
2 | /node_modules
3 | /www
4 |
5 |
6 | .env
7 | .DS_Store
8 |
9 | tsconfig.json
10 | tsup.config.ts
11 |
--------------------------------------------------------------------------------
/www/src/lib/utils.ts:
--------------------------------------------------------------------------------
1 | import { clsx, type ClassValue } from "clsx"
2 | import { twMerge } from "tailwind-merge"
3 |
4 | export function cn(...inputs: ClassValue[]) {
5 | return twMerge(clsx(inputs))
6 | }
7 |
--------------------------------------------------------------------------------
/tsup.config.ts:
--------------------------------------------------------------------------------
1 | import { defineConfig } from "tsup";
2 |
3 | export default defineConfig({
4 | format: ["cjs", "esm"],
5 | entry: ["./src/index.ts"],
6 | dts: true,
7 | shims: true,
8 | skipNodeModulesBundle: true,
9 | clean: true,
10 | });
11 |
--------------------------------------------------------------------------------
/www/src/main.tsx:
--------------------------------------------------------------------------------
1 | import { StrictMode } from 'react'
2 | import { createRoot } from 'react-dom/client'
3 | import './index.css'
4 | import App from './App.tsx'
5 |
6 | createRoot(document.getElementById('root')!).render(
7 |
8 |
9 | ,
10 | )
11 |
--------------------------------------------------------------------------------
/www/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "files": [],
3 | "references": [
4 | { "path": "./tsconfig.app.json" },
5 | { "path": "./tsconfig.node.json" }
6 | ],
7 | "compilerOptions": {
8 | "baseUrl": ".",
9 | "paths": {
10 | "@/*": ["./src/*"]
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/www/src/App.tsx:
--------------------------------------------------------------------------------
1 | import Footer from "./components/footer";
2 | import LandingPage from "./components/landing-page";
3 |
4 | function App() {
5 | return (
6 |
7 |
8 |
9 |
10 | );
11 | }
12 |
13 | export default App;
14 |
--------------------------------------------------------------------------------
/www/vite.config.ts:
--------------------------------------------------------------------------------
1 | import path from "path";
2 | import react from "@vitejs/plugin-react";
3 | import { defineConfig } from "vite";
4 |
5 | export default defineConfig({
6 | plugins: [react()],
7 | resolve: {
8 | alias: {
9 | "@": path.resolve(__dirname, "./src"),
10 | },
11 | },
12 | });
13 |
--------------------------------------------------------------------------------
/www/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 | pnpm-debug.log*
8 | lerna-debug.log*
9 |
10 | node_modules
11 | dist
12 | dist-ssr
13 | *.local
14 |
15 | # Editor directories and files
16 | .vscode/*
17 | !.vscode/extensions.json
18 | .idea
19 | .DS_Store
20 | *.suo
21 | *.ntvs*
22 | *.njsproj
23 | *.sln
24 | *.sw?
25 | .vercel
26 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "strict": true,
4 | "noImplicitAny": true,
5 | "esModuleInterop": true,
6 | "strictNullChecks": true,
7 | "target": "ES2022",
8 | "moduleResolution": "Node10",
9 | "module": "CommonJS",
10 | "resolveJsonModule": true,
11 | "declaration": true,
12 | "isolatedModules": true,
13 | "noEmit": true,
14 | "outDir": "dist"
15 | },
16 | "include": ["src"],
17 | "exclude": ["node_modules"]
18 | }
19 |
--------------------------------------------------------------------------------
/www/components.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://ui.shadcn.com/schema.json",
3 | "style": "new-york",
4 | "rsc": false,
5 | "tsx": true,
6 | "tailwind": {
7 | "config": "tailwind.config.js",
8 | "css": "src/index.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 | "iconLibrary": "lucide"
21 | }
--------------------------------------------------------------------------------
/www/tsconfig.node.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo",
4 | "target": "ES2022",
5 | "lib": ["ES2023"],
6 | "module": "ESNext",
7 | "skipLibCheck": true,
8 |
9 | /* Bundler mode */
10 | "moduleResolution": "bundler",
11 | "allowImportingTsExtensions": true,
12 | "isolatedModules": true,
13 | "moduleDetection": "force",
14 | "noEmit": true,
15 |
16 | /* Linting */
17 | "strict": true,
18 | "noUnusedLocals": true,
19 | "noUnusedParameters": true,
20 | "noFallthroughCasesInSwitch": true,
21 | "noUncheckedSideEffectImports": true
22 | },
23 | "include": ["vite.config.ts"]
24 | }
25 |
--------------------------------------------------------------------------------
/www/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
14 |
15 |
16 |
17 | Tidyup
18 |
19 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/www/eslint.config.js:
--------------------------------------------------------------------------------
1 | import js from '@eslint/js'
2 | import globals from 'globals'
3 | import reactHooks from 'eslint-plugin-react-hooks'
4 | import reactRefresh from 'eslint-plugin-react-refresh'
5 | import tseslint from 'typescript-eslint'
6 |
7 | export default tseslint.config(
8 | { ignores: ['dist'] },
9 | {
10 | extends: [js.configs.recommended, ...tseslint.configs.recommended],
11 | files: ['**/*.{ts,tsx}'],
12 | languageOptions: {
13 | ecmaVersion: 2020,
14 | globals: globals.browser,
15 | },
16 | plugins: {
17 | 'react-hooks': reactHooks,
18 | 'react-refresh': reactRefresh,
19 | },
20 | rules: {
21 | ...reactHooks.configs.recommended.rules,
22 | 'react-refresh/only-export-components': [
23 | 'warn',
24 | { allowConstantExport: true },
25 | ],
26 | },
27 | },
28 | )
29 |
--------------------------------------------------------------------------------
/www/tsconfig.app.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
4 | "target": "ES2020",
5 | "useDefineForClassFields": true,
6 | "lib": ["ES2020", "DOM", "DOM.Iterable"],
7 | "module": "ESNext",
8 | "skipLibCheck": true,
9 |
10 | /* Bundler mode */
11 | "moduleResolution": "bundler",
12 | "allowImportingTsExtensions": true,
13 | "isolatedModules": true,
14 | "moduleDetection": "force",
15 | "noEmit": true,
16 | "jsx": "react-jsx",
17 |
18 | /* Linting */
19 | "strict": true,
20 | "noUnusedLocals": true,
21 | "noUnusedParameters": true,
22 | "noFallthroughCasesInSwitch": true,
23 | "noUncheckedSideEffectImports": true,
24 | "baseUrl": ".",
25 | "paths": {
26 | "@/*": ["./src/*"]
27 | }
28 | },
29 | "include": ["src"]
30 | }
31 |
--------------------------------------------------------------------------------
/www/src/components/footer.tsx:
--------------------------------------------------------------------------------
1 | const Footer = () => {
2 | return (
3 |
32 | );
33 | };
34 |
35 | export default Footer;
36 |
--------------------------------------------------------------------------------
/www/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "www",
3 | "private": true,
4 | "version": "0.0.0",
5 | "type": "module",
6 | "scripts": {
7 | "dev": "vite",
8 | "build": "tsc -b && vite build",
9 | "lint": "eslint .",
10 | "preview": "vite preview"
11 | },
12 | "dependencies": {
13 | "@radix-ui/react-slot": "^1.1.1",
14 | "class-variance-authority": "^0.7.1",
15 | "clsx": "^2.1.1",
16 | "lucide-react": "^0.469.0",
17 | "motion": "^11.15.0",
18 | "prism-react-renderer": "^2.4.1",
19 | "react": "^18.3.1",
20 | "react-dom": "^18.3.1",
21 | "react-use-measure": "^2.1.1",
22 | "tailwind-merge": "^2.6.0",
23 | "tailwindcss-animate": "^1.0.7"
24 | },
25 | "devDependencies": {
26 | "@eslint/js": "^9.17.0",
27 | "@types/node": "^22.10.2",
28 | "@types/react": "^18.3.18",
29 | "@types/react-dom": "^18.3.5",
30 | "@vitejs/plugin-react": "^4.3.4",
31 | "autoprefixer": "^10.4.20",
32 | "eslint": "^9.17.0",
33 | "eslint-plugin-react-hooks": "^5.0.0",
34 | "eslint-plugin-react-refresh": "^0.4.16",
35 | "globals": "^15.14.0",
36 | "postcss": "^8.4.49",
37 | "tailwindcss": "^3.4.17",
38 | "typescript": "~5.6.2",
39 | "typescript-eslint": "^8.18.2",
40 | "vite": "^6.0.5"
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "tidyup",
3 | "version": "0.0.7",
4 | "description": "A simple CLI tool to organize files in a directory into categorized subfolders based on file types.",
5 | "main": "./dist/index.js",
6 | "module": "./dist/index.mjs",
7 | "types": "./dist/index.d.ts",
8 | "scripts": {
9 | "build": "tsup",
10 | "start": "node ./dist/index.js",
11 | "dev": "ts-node ./src/index.ts",
12 | "lint": "eslint . --ext .ts",
13 | "test": "jest"
14 | },
15 | "bin": {
16 | "tidyup": "./dist/index.js"
17 | },
18 | "keywords": [
19 | "directory-organizer",
20 | "file-management",
21 | "cli-tool",
22 | "file-organization",
23 | "file-sorter",
24 | "nodejs"
25 | ],
26 | "author": {
27 | "name": "bossadizenith",
28 | "email": "hello@bossadizenith.me",
29 | "url": "https://github.com/code-env"
30 | },
31 | "repository": {
32 | "type": "git",
33 | "url": "https://github.com/code-env/tidyup.git"
34 | },
35 | "bugs": {
36 | "url": "https://github.com/code-env/tidyup/issues"
37 | },
38 | "homepage": "https://tidyup.bossadizenith.me",
39 | "license": "ISC",
40 | "engines": {
41 | "node": ">=16.0.0"
42 | },
43 | "devDependencies": {
44 | "@types/node": "^22.10.0",
45 | "eslint": "^8.54.0",
46 | "jest": "^29.7.0",
47 | "ts-node": "^10.9.2",
48 | "tsup": "^8.3.5",
49 | "typescript": "^5.7.2"
50 | },
51 | "dependencies": {
52 | "commander": "^12.1.0"
53 | }
54 | }
55 |
--------------------------------------------------------------------------------
/src/fileOperation.ts:
--------------------------------------------------------------------------------
1 | import * as fs from 'fs';
2 |
3 | import { promisify } from "util";
4 | const mkdir = promisify(fs.mkdir);
5 | const rename = promisify(fs.rename);
6 |
7 | class Operation {
8 | private dryRun: boolean;
9 | private summary: Record;
10 | /**
11 | *
12 | * @param dryRun - If true, operations will be simulated without making changes.
13 | */
14 | constructor(dryRun: boolean) {
15 | this.dryRun = dryRun;
16 | this.summary = {};
17 |
18 | }
19 |
20 | async rename(oldPath: string, newPath: string): Promise {
21 | if (this.dryRun) {
22 | this.summary[this.extractFileName(oldPath)] = this.extractFileWithParentDir(newPath);
23 | } else {
24 | await rename(oldPath, newPath);
25 | console.log(`Renamed: ${oldPath} -> ${newPath}`);
26 | }
27 | }
28 |
29 | async mkdir(dirPath: string): Promise {
30 | if (this.dryRun) {
31 | console.log(`[Dry Run] directory will be create ${dirPath}`);
32 | } else {
33 | await mkdir(dirPath);
34 | }
35 | }
36 | getSummary() {
37 | return this.summary;
38 | }
39 | private extractFileName(filePath: string): string {
40 | const parts = filePath.split("/");
41 | return parts[parts.length - 1];
42 | }
43 | private extractFileWithParentDir(filePath: string): string {
44 | const parts = filePath.split("/");
45 | return parts[parts.length - 2] + "/" + parts[parts.length - 1];
46 | }
47 | }
48 |
49 | export default Operation;
--------------------------------------------------------------------------------
/www/README.md:
--------------------------------------------------------------------------------
1 | # React + TypeScript + Vite
2 |
3 | This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
4 |
5 | Currently, two official plugins are available:
6 |
7 | - [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh
8 | - [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh
9 |
10 | ## Expanding the ESLint configuration
11 |
12 | If you are developing a production application, we recommend updating the configuration to enable type aware lint rules:
13 |
14 | - Configure the top-level `parserOptions` property like this:
15 |
16 | ```js
17 | export default tseslint.config({
18 | languageOptions: {
19 | // other options...
20 | parserOptions: {
21 | project: ['./tsconfig.node.json', './tsconfig.app.json'],
22 | tsconfigRootDir: import.meta.dirname,
23 | },
24 | },
25 | })
26 | ```
27 |
28 | - Replace `tseslint.configs.recommended` to `tseslint.configs.recommendedTypeChecked` or `tseslint.configs.strictTypeChecked`
29 | - Optionally add `...tseslint.configs.stylisticTypeChecked`
30 | - Install [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) and update the config:
31 |
32 | ```js
33 | // eslint.config.js
34 | import react from 'eslint-plugin-react'
35 |
36 | export default tseslint.config({
37 | // Set the react version
38 | settings: { react: { version: '18.3' } },
39 | plugins: {
40 | // Add the react plugin
41 | react,
42 | },
43 | rules: {
44 | // other rules...
45 | // Enable its recommended rules
46 | ...react.configs.recommended.rules,
47 | ...react.configs['jsx-runtime'].rules,
48 | },
49 | })
50 | ```
51 |
--------------------------------------------------------------------------------
/www/tailwind.config.js:
--------------------------------------------------------------------------------
1 | /** @type {import('tailwindcss').Config} */
2 | export default {
3 | darkMode: ["class"],
4 | content: ["./index.html", "./src/**/*.{js,ts,jsx,tsx}"],
5 | theme: {
6 | extend: {
7 | borderRadius: {
8 | lg: "var(--radius)",
9 | md: "calc(var(--radius) - 2px)",
10 | sm: "calc(var(--radius) - 4px)",
11 | },
12 | colors: {
13 | background: "hsl(var(--background))",
14 | foreground: "hsl(var(--foreground))",
15 | gr1: "var(--gray1)",
16 | gr2: "var(--gray2)",
17 | card: {
18 | DEFAULT: "hsl(var(--card))",
19 | foreground: "hsl(var(--card-foreground))",
20 | },
21 | popover: {
22 | DEFAULT: "hsl(var(--popover))",
23 | foreground: "hsl(var(--popover-foreground))",
24 | },
25 | primary: {
26 | DEFAULT: "hsl(var(--primary))",
27 | foreground: "hsl(var(--primary-foreground))",
28 | },
29 | secondary: {
30 | DEFAULT: "hsl(var(--secondary))",
31 | foreground: "hsl(var(--secondary-foreground))",
32 | },
33 | muted: {
34 | DEFAULT: "hsl(var(--muted))",
35 | foreground: "hsl(var(--muted-foreground))",
36 | },
37 | accent: {
38 | DEFAULT: "hsl(var(--accent))",
39 | foreground: "hsl(var(--accent-foreground))",
40 | },
41 | destructive: {
42 | DEFAULT: "hsl(var(--destructive))",
43 | foreground: "hsl(var(--destructive-foreground))",
44 | },
45 | border: "hsl(var(--border))",
46 | input: "hsl(var(--input))",
47 | ring: "hsl(var(--ring))",
48 | chart: {
49 | 1: "hsl(var(--chart-1))",
50 | 2: "hsl(var(--chart-2))",
51 | 3: "hsl(var(--chart-3))",
52 | 4: "hsl(var(--chart-4))",
53 | 5: "hsl(var(--chart-5))",
54 | },
55 | },
56 | },
57 | },
58 | plugins: [require("tailwindcss-animate")],
59 | };
60 |
--------------------------------------------------------------------------------
/www/src/components/ui/button.tsx:
--------------------------------------------------------------------------------
1 | import * as React from "react"
2 | import { Slot } from "@radix-ui/react-slot"
3 | import { cva, type VariantProps } from "class-variance-authority"
4 |
5 | import { cn } from "@/lib/utils"
6 |
7 | const buttonVariants = cva(
8 | "inline-flex items-center justify-center gap-2 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 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
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 |
--------------------------------------------------------------------------------
/www/src/index.css:
--------------------------------------------------------------------------------
1 | @import url("https://fonts.googleapis.com/css2?family=Hanken+Grotesk:ital,wght@0,100..900;1,100..900&display=swap");
2 | @tailwind base;
3 | @tailwind components;
4 | @tailwind utilities;
5 | @layer base {
6 | :root {
7 | --background: 0 0% 100%;
8 | --foreground: 0 0% 3.9%;
9 | --card: 0 0% 100%;
10 | --card-foreground: 0 0% 3.9%;
11 | --popover: 0 0% 100%;
12 | --popover-foreground: 0 0% 3.9%;
13 | --primary: 0 0% 9%;
14 | --primary-foreground: 0 0% 98%;
15 | --secondary: 0 0% 96.1%;
16 | --secondary-foreground: 0 0% 9%;
17 | --muted: 0 0% 96.1%;
18 | --muted-foreground: 0 0% 45.1%;
19 | --accent: 0 0% 96.1%;
20 | --accent-foreground: 0 0% 9%;
21 | --destructive: 0 84.2% 60.2%;
22 | --destructive-foreground: 0 0% 98%;
23 | --border: 0 0% 89.8%;
24 | --input: 0 0% 89.8%;
25 | --ring: 0 0% 3.9%;
26 | --chart-1: 12 76% 61%;
27 | --chart-2: 173 58% 39%;
28 | --chart-3: 197 37% 24%;
29 | --chart-4: 43 74% 66%;
30 | --chart-5: 27 87% 67%;
31 | --radius: 0.5rem;
32 | --gray1: hsl(0, 0%, 99%);
33 | --gray2: hsl(0, 0%, 97.3%);
34 | }
35 | .dark {
36 | --background: 0 0% 3.9%;
37 | --foreground: 0 0% 98%;
38 | --card: 0 0% 3.9%;
39 | --card-foreground: 0 0% 98%;
40 | --popover: 0 0% 3.9%;
41 | --popover-foreground: 0 0% 98%;
42 | --primary: 0 0% 98%;
43 | --primary-foreground: 0 0% 9%;
44 | --secondary: 0 0% 14.9%;
45 | --secondary-foreground: 0 0% 98%;
46 | --muted: 0 0% 14.9%;
47 | --muted-foreground: 0 0% 63.9%;
48 | --accent: 0 0% 14.9%;
49 | --accent-foreground: 0 0% 98%;
50 | --destructive: 0 62.8% 30.6%;
51 | --destructive-foreground: 0 0% 98%;
52 | --border: 0 0% 14.9%;
53 | --input: 0 0% 14.9%;
54 | --ring: 0 0% 83.1%;
55 | --chart-1: 220 70% 50%;
56 | --chart-2: 160 60% 45%;
57 | --chart-3: 30 80% 55%;
58 | --chart-4: 280 65% 60%;
59 | --chart-5: 340 75% 55%;
60 | }
61 | }
62 | @layer base {
63 | * {
64 | @apply border-border;
65 | /* font-family: "Hanken Grotesk", sans-serif; */
66 | }
67 | body {
68 | @apply bg-background text-foreground;
69 | }
70 | }
71 |
--------------------------------------------------------------------------------
/www/public/logo.svg:
--------------------------------------------------------------------------------
1 |
12 |
--------------------------------------------------------------------------------
/www/src/components/features.tsx:
--------------------------------------------------------------------------------
1 | import { motion } from "motion/react";
2 | import { FolderTree, Zap, Shield, Terminal } from "lucide-react";
3 |
4 | const features = [
5 | {
6 | name: "Smart Categorization",
7 | description:
8 | "Automatically sorts files into appropriate categories based on file types.",
9 | icon: FolderTree,
10 | },
11 | {
12 | name: "Lightning Fast",
13 | description:
14 | "Organize hundreds of files in seconds with efficient processing.",
15 | icon: Zap,
16 | },
17 | {
18 | name: "Non-destructive",
19 | description:
20 | "Safe operation with built-in safeguards to prevent accidental file loss.",
21 | icon: Shield,
22 | },
23 | {
24 | name: "Simple CLI",
25 | description: "Easy to use command-line interface with intuitive commands.",
26 | icon: Terminal,
27 | },
28 | ];
29 |
30 | const containerVariants = {
31 | hidden: { opacity: 0 },
32 | visible: {
33 | opacity: 1,
34 | transition: {
35 | staggerChildren: 0.2,
36 | },
37 | },
38 | };
39 |
40 | const itemVariants = {
41 | hidden: { opacity: 0, y: 20 },
42 | visible: {
43 | opacity: 1,
44 | y: 0,
45 | },
46 | };
47 |
48 | export function Features() {
49 | return (
50 |
51 |
52 |
58 |
59 | Everything you need
60 |
61 |
62 | Powerful file organization made simple
63 |
64 |
65 |
72 |
73 | {features.map((feature) => (
74 |
79 | -
80 |
81 |
85 |
86 | {feature.name}
87 |
88 | -
89 | {feature.description}
90 |
91 |
92 | ))}
93 |
94 |
95 |
96 |
97 | );
98 | }
99 |
--------------------------------------------------------------------------------
/www/src/assets/react.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/www/src/components/demo.tsx:
--------------------------------------------------------------------------------
1 | import { motion } from "motion/react";
2 |
3 | export function Demo() {
4 | return (
5 |
9 |
15 |
20 |
21 |
26 |
27 | → Downloads
28 | tidyup .
29 |
30 |
31 |
37 | 🔍 Scanning directory...
38 |
39 |
44 | 📦 Found 127 files
45 |
46 |
51 | 🎯 Organizing files by type...
52 |
53 |
58 | ✨ Created categories:
59 |
60 |
66 | 📸 Images (43 files)
67 |
68 |
74 | 📄 Documents (35 files)
75 |
76 |
82 | 🎵 Audio (22 files)
83 |
84 |
90 | 🎬 Video (15 files)
91 |
92 |
98 | 💾 Archives (12 files)
99 |
100 |
106 | ✅ All done! Your files are now organized.
107 |
108 |
109 |
110 |
111 | );
112 | }
113 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Tidyup
2 |
3 | **tidyup** is a powerful command-line tool that organizes files in a specified directory into categorized subfolders. It offers multiple options to customize the organization process, ensuring your directories remain clean and structured.
4 |
5 | ---
6 |
7 | ## Features
8 |
9 | - Organizes files into subfolders by:
10 | - **File Extensions** (e.g., `mp4`, `pdf`).
11 | - **Starting Names** (e.g., `project-a`, `report`).
12 | - **Creation Dates** (e.g., `2024-12-24`).
13 | - Handles file naming conflicts automatically.
14 | - Provides a detailed summary of the organization process.
15 | - Compatible with Windows, macOS, and Linux.
16 |
17 | ---
18 |
19 | ## Installation
20 |
21 | First, ensure you have Node.js installed on your system.
22 |
23 | 1. Install `tidyup` globally via npm:
24 |
25 | ```bash
26 | npm install -g tidyup
27 | ```
28 |
29 | 2. Verify the installation:
30 |
31 | ```bash
32 | tidyup --version
33 | ```
34 |
35 | ---
36 |
37 | ## Usage
38 |
39 | Run the `tidyup` command, specifying the directory to organize and the desired options.
40 |
41 | ```bash
42 | tidyup [directory] [options]
43 | ```
44 |
45 | If no directory is specified, the current directory (`.`) is used by default.
46 |
47 | ### Options
48 |
49 | - `--ext`: Organize files into folders based on their **file extensions**.
50 | - `--name`: Group files by their **starting names**.
51 | - `--date`: Group files by their **creation dates**.
52 | - `--ignore-dotfiles`: Ignore dotfiles when organizing.
53 |
54 | > **Note**: Some of these options cannot be used together. For example, you cannot use `--ext` and `--name` simultaneously, but you can use `--ignore-dotfiles` with any one other option.
55 |
56 | ---
57 |
58 | ## Examples
59 |
60 | ### Organize by File Extensions
61 |
62 | ```bash
63 | tidyup /path/to/directory --ext
64 | ```
65 |
66 | Example output:
67 |
68 | ```
69 | Organization Summary for '/path/to/directory':
70 | - Folder: mp4
71 | - Created
72 | - Files added: 3
73 | - Folder: pdf
74 | - Already existed
75 | - Files added: 1
76 | ```
77 |
78 | ### Group Files by Starting Names
79 |
80 | ```bash
81 | tidyup /path/to/directory --name
82 | ```
83 |
84 | Example output:
85 |
86 | ```
87 | Organization Summary for '/path/to/directory':
88 | - Folder: project-a
89 | - Created
90 | - Files added: 4
91 | - Folder: report
92 | - Already existed
93 | - Files added: 2
94 | ```
95 |
96 | ### Organize by Creation Dates
97 |
98 | ```bash
99 | tidyup /path/to/directory --date
100 | ```
101 |
102 | Example output:
103 |
104 | ```
105 | Organization Summary for '/path/to/directory':
106 | - Folder: 2024-12-23
107 | - Created
108 | - Files added: 2
109 | - Folder: 2024-12-24
110 | - Already existed
111 | - Files added: 3
112 | ```
113 |
114 | ### Organize by Name and Ignore Dotfiles
115 | ```bash
116 | tidyup /path/to/directory --name --ignore-dotfiles
117 | ```
118 |
119 | Example output:
120 |
121 | ```
122 | Organization Summary for '/path/to/directory':
123 | - Folder: project-a
124 | - Created
125 | - Files added: 4
126 | - Folder: report
127 | - Already existed
128 | - Files added: 2
129 | ```
130 |
131 | ### Invalid Option Combination
132 |
133 | ```bash
134 | tidyup /path/to/directory --ext --name
135 | ```
136 |
137 | Error output:
138 |
139 | ```
140 | The --ext, --name, and --date options cannot be used together.
141 | ```
142 |
143 | ---
144 |
145 | ## Development
146 |
147 | 1. Clone the repository:
148 |
149 | ```bash
150 | git clone https://github.com/code-env/tidyup.git
151 | ```
152 |
153 | 2. Navigate to the project directory:
154 |
155 | ```bash
156 | cd tidyup
157 | ```
158 |
159 | 3. Install dependencies:
160 |
161 | ```bash
162 | npm install
163 | ```
164 |
165 | 4. Build the project:
166 |
167 | ```bash
168 | npm run build
169 | ```
170 |
171 | 5. Test locally:
172 |
173 | ```bash
174 | node ./dist/index.js [options]
175 | ```
176 |
177 | ---
178 |
179 | ## Contributing
180 |
181 | We welcome contributions! To contribute:
182 |
183 | 1. Fork the repository.
184 | 2. Create a new branch for your feature or bug fix.
185 | 3. Submit a pull request with your changes.
186 |
187 | ---
188 |
189 | ## License
190 |
191 | This project is licensed under the **ISC License**. See the LICENSE file for more details.
192 |
193 | ---
194 |
195 | ## Author
196 |
197 | **tidyup** is developed and maintained by [Bossadi Zenith](https://github.com/code-env).
198 |
199 | ---
200 |
201 | Happy organizing! 🎉
202 |
203 | Let me know if this aligns with your requirements or needs further customization.
204 |
--------------------------------------------------------------------------------
/www/src/components/landing-page.tsx:
--------------------------------------------------------------------------------
1 | import { AnimatePresence, motion, MotionConfig } from "motion/react";
2 | import { useCallback, useState } from "react";
3 | import { Demo } from "./demo";
4 | import { Button } from "./ui/button";
5 |
6 | const LandingPage = () => {
7 | return (
8 |
9 |
10 |
11 |

16 |
Tidyup
17 |
18 |
19 | A simple CLI tool to organize your folders and files.
20 |
21 |
41 |
42 |
43 |
Installation
44 |
45 |
46 |
47 |
Usage
48 |
49 |
50 |
51 |
52 |
53 | );
54 | };
55 |
56 | const Installation = () => {
57 | const [copying, setCopying] = useState(0);
58 | const variants = {
59 | visible: { opacity: 1, scale: 1 },
60 | hidden: { opacity: 0, scale: 0.5 },
61 | };
62 | const onCopy = useCallback(() => {
63 | navigator.clipboard.writeText("npm install -g tidyup");
64 | setCopying((c) => c + 1);
65 | setTimeout(() => {
66 | setCopying((c) => c - 1);
67 | }, 2000);
68 | }, []);
69 |
70 | return (
71 |
72 |
73 | npm install -g tidyup
74 |
130 |
131 |
132 | );
133 | };
134 |
135 | export default LandingPage;
136 |
--------------------------------------------------------------------------------
/src/index.ts:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env node
2 |
3 | import { Command } from "commander";
4 | import fs from "fs";
5 | import path from "path";
6 | import { promisify } from "util";
7 | import { version } from "../package.json";
8 | import Operation from "./fileOperation";
9 |
10 | const readdir = promisify(fs.readdir);
11 | const stat = promisify(fs.stat);
12 |
13 | type Options = {
14 | ext: boolean;
15 | name: boolean;
16 | ignoreDotfiles: boolean;
17 | dryrun: boolean;
18 | };
19 |
20 | // Define mappings for file types to folder names
21 | const FILE_TYPE_MAP: Record = {
22 | ".png": "images-png",
23 | ".jpg": "images-jpg",
24 | ".jpeg": "images-jpeg",
25 | ".mp4": "videos-mp4",
26 | ".avi": "videos-avi",
27 | ".pdf": "documents-pdf",
28 | };
29 |
30 | const program = new Command();
31 | let fileOperation: Operation;
32 | program
33 | .version(version)
34 | .argument("[directory]", "Directory to tidy up", ".") // Default to current directory
35 | .description("Organize files in a directory based on their extensions")
36 | .option("--ext", "Use the file extensions as folder names")
37 | .option("--name", "Group files by starting name")
38 | .option("--dryrun", "Show what would be done without making changes", false)
39 | .option("--ignore-dotfiles", "Ignore dotfiles", true)
40 | .action(async (inputDir: string, options: Options) => {
41 | const dirPath = path.resolve(inputDir);
42 | console.log(`Organizing files in directory: ${dirPath}`);
43 | try {
44 | if (options.dryrun) {
45 | console.log("Running in dry run mode. No changes will be made.");
46 | fileOperation = new Operation(true);
47 | }
48 | else {
49 | console.log("Running in normal mode. Changes will be made.");
50 | fileOperation = new Operation(false);
51 | }
52 |
53 | if (options.ext && options.name) {
54 | console.error("Only one of --ext or --name can be used at a time");
55 | process.exit(1);
56 | }
57 |
58 | const dirStat = await stat(dirPath);
59 | if (!dirStat.isDirectory()) {
60 | console.error(`The provided path is not a directory: ${dirPath}`);
61 | process.exit(1);
62 | }
63 |
64 | await organizeFiles(dirPath, options);
65 | } catch (error: any) {
66 | console.error("An error occurred:", error.message);
67 | process.exit(1);
68 | }
69 | });
70 |
71 | program.parse(process.argv);
72 |
73 | /**
74 | * Check if a file is a dotfile (starts with a dot).
75 | * @param fileName - The name of the file to check.
76 | * @returns True if the file is a dotfile, false otherwise.
77 | */
78 | function isDotFile(fileName: string): boolean {
79 | return fileName.startsWith(".");
80 | }
81 |
82 | /**
83 | * Get all file types present in a directory.
84 | * @param dirPath - The path to the directory.
85 | * @param options - User-specified options.
86 | * @returns A record where keys are file extensions and values are file paths.
87 | */
88 | async function getFileTypes(
89 | dirPath: string,
90 | options: Options
91 | ): Promise> {
92 | const files = await readdir(dirPath);
93 | const fileTypes: Record = {};
94 |
95 | for (const file of files) {
96 | if (options.ignoreDotfiles && isDotFile(file)) {
97 | continue; // Skip hidden files if ignoreDotfiles is true
98 | }
99 |
100 | const filePath = path.join(dirPath, file);
101 | const fileStat = await stat(filePath);
102 |
103 | if (fileStat.isFile()) {
104 | const ext = path.extname(file).toLowerCase();
105 | if (!fileTypes[ext]) {
106 | fileTypes[ext] = [];
107 | }
108 | fileTypes[ext].push(filePath);
109 | }
110 | }
111 |
112 | return fileTypes;
113 | }
114 |
115 | /**
116 | * Get all file name groups based on starting names.
117 | * @param dirPath - The path to the directory.
118 | * @param options - User-specified options.
119 | * @returns A record where keys are base names and values are file paths.
120 | */
121 | async function getFileNameGroups(
122 | dirPath: string,
123 | options: Options
124 | ): Promise> {
125 | const files = await readdir(dirPath);
126 | const nameGroups: Record = {};
127 |
128 | for (const file of files) {
129 | if (options.ignoreDotfiles && isDotFile(file)) {
130 | continue; // Skip hidden files if ignoreDotfiles is true
131 | }
132 |
133 | const filePath = path.join(dirPath, file);
134 | const fileStat = await stat(filePath);
135 |
136 | if (fileStat.isFile()) {
137 | const baseName = path.parse(file).name.slice(0, 10);
138 | if (!nameGroups[baseName]) {
139 | nameGroups[baseName] = [];
140 | }
141 | nameGroups[baseName].push(filePath);
142 | }
143 | }
144 |
145 | return nameGroups;
146 | }
147 |
148 | /**
149 | * Organize files into folders based on their extensions or names.
150 | * @param dirPath - The directory path to organize.
151 | * @param options - User-specified options.
152 | */
153 | async function organizeFiles(dirPath: string, options: Options): Promise {
154 | let fileTypes: Record;
155 | if (options.name) {
156 | fileTypes = await getFileNameGroups(dirPath, options);
157 | } else {
158 | fileTypes = await getFileTypes(dirPath, options);
159 | }
160 |
161 | const summary: { folder: string; created: boolean; filesAdded: number }[] =
162 | [];
163 |
164 | for (const [ext, filePaths] of Object.entries(fileTypes)) {
165 | const newFolder = ext.split(".")[1];
166 |
167 | const folderName = options.ext
168 | ? newFolder
169 | : FILE_TYPE_MAP[ext] || `others-${ext.replace(".", "")}`;
170 | const folderPath = path.join(dirPath, folderName);
171 | let folderCreated = false;
172 |
173 | if (!fs.existsSync(folderPath)) {
174 | await fileOperation.mkdir(folderPath);
175 | folderCreated = true;
176 | }
177 | let filesAdded = 0;
178 | for (const filePath of filePaths) {
179 | const fileName = path.basename(filePath);
180 | let newFilePath = path.join(folderPath, fileName);
181 | // Check if file already exists and resolve conflicts
182 | if (fs.existsSync(newFilePath)) {
183 | const fileBase = path.parse(fileName).name;
184 | const fileExt = path.extname(fileName);
185 | let counter = 1;
186 | while (fs.existsSync(newFilePath)) {
187 | const newFileName = `${fileBase}(${counter})${fileExt}`;
188 | newFilePath = path.join(folderPath, newFileName);
189 | counter++;
190 | }
191 | }
192 | await fileOperation.rename(filePath, newFilePath);
193 | filesAdded++;
194 | }
195 | summary.push({ folder: folderName, created: folderCreated, filesAdded });
196 | }
197 |
198 | const lastPath = dirPath.split("/");
199 | const lastDir = lastPath[lastPath.length - 1];
200 |
201 | console.log(`Organization Summary for '${lastDir}':`);
202 |
203 | if (options.dryrun) {
204 | console.log("Dry Run Output:");
205 | const dryRunFilePath = path.join("dryrun.json");
206 | const data = fileOperation.getSummary();
207 | fs.writeFileSync(dryRunFilePath, JSON.stringify(data, null, 2), "utf-8");
208 | for (const file in data){
209 | console.log(`- ${file} -> ${data[file]}`);
210 |
211 | }
212 | }
213 | else{
214 | for (const { folder, created, filesAdded } of summary) {
215 | console.log(`- Folder: ${folder}`);
216 | console.log(` - ${created ? "Created" : "Already existed"}`);
217 | console.log(` - Files added: ${filesAdded}`);
218 | }
219 | }
220 |
221 | }
222 |
--------------------------------------------------------------------------------
/www/pnpm-lock.yaml:
--------------------------------------------------------------------------------
1 | lockfileVersion: '9.0'
2 |
3 | settings:
4 | autoInstallPeers: true
5 | excludeLinksFromLockfile: false
6 |
7 | importers:
8 |
9 | .:
10 | dependencies:
11 | '@radix-ui/react-slot':
12 | specifier: ^1.1.1
13 | version: 1.1.1(@types/react@18.3.18)(react@18.3.1)
14 | class-variance-authority:
15 | specifier: ^0.7.1
16 | version: 0.7.1
17 | clsx:
18 | specifier: ^2.1.1
19 | version: 2.1.1
20 | lucide-react:
21 | specifier: ^0.469.0
22 | version: 0.469.0(react@18.3.1)
23 | motion:
24 | specifier: ^11.15.0
25 | version: 11.15.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
26 | prism-react-renderer:
27 | specifier: ^2.4.1
28 | version: 2.4.1(react@18.3.1)
29 | react:
30 | specifier: ^18.3.1
31 | version: 18.3.1
32 | react-dom:
33 | specifier: ^18.3.1
34 | version: 18.3.1(react@18.3.1)
35 | react-use-measure:
36 | specifier: ^2.1.1
37 | version: 2.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
38 | tailwind-merge:
39 | specifier: ^2.6.0
40 | version: 2.6.0
41 | tailwindcss-animate:
42 | specifier: ^1.0.7
43 | version: 1.0.7(tailwindcss@3.4.17)
44 | devDependencies:
45 | '@eslint/js':
46 | specifier: ^9.17.0
47 | version: 9.17.0
48 | '@types/node':
49 | specifier: ^22.10.2
50 | version: 22.10.2
51 | '@types/react':
52 | specifier: ^18.3.18
53 | version: 18.3.18
54 | '@types/react-dom':
55 | specifier: ^18.3.5
56 | version: 18.3.5(@types/react@18.3.18)
57 | '@vitejs/plugin-react':
58 | specifier: ^4.3.4
59 | version: 4.3.4(vite@6.0.5(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1))
60 | autoprefixer:
61 | specifier: ^10.4.20
62 | version: 10.4.20(postcss@8.4.49)
63 | eslint:
64 | specifier: ^9.17.0
65 | version: 9.17.0(jiti@1.21.7)
66 | eslint-plugin-react-hooks:
67 | specifier: ^5.0.0
68 | version: 5.1.0(eslint@9.17.0(jiti@1.21.7))
69 | eslint-plugin-react-refresh:
70 | specifier: ^0.4.16
71 | version: 0.4.16(eslint@9.17.0(jiti@1.21.7))
72 | globals:
73 | specifier: ^15.14.0
74 | version: 15.14.0
75 | postcss:
76 | specifier: ^8.4.49
77 | version: 8.4.49
78 | tailwindcss:
79 | specifier: ^3.4.17
80 | version: 3.4.17
81 | typescript:
82 | specifier: ~5.6.2
83 | version: 5.6.3
84 | typescript-eslint:
85 | specifier: ^8.18.2
86 | version: 8.18.2(eslint@9.17.0(jiti@1.21.7))(typescript@5.6.3)
87 | vite:
88 | specifier: ^6.0.5
89 | version: 6.0.5(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)
90 |
91 | packages:
92 |
93 | '@alloc/quick-lru@5.2.0':
94 | resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==}
95 | engines: {node: '>=10'}
96 |
97 | '@ampproject/remapping@2.3.0':
98 | resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
99 | engines: {node: '>=6.0.0'}
100 |
101 | '@babel/code-frame@7.26.2':
102 | resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==}
103 | engines: {node: '>=6.9.0'}
104 |
105 | '@babel/compat-data@7.26.3':
106 | resolution: {integrity: sha512-nHIxvKPniQXpmQLb0vhY3VaFb3S0YrTAwpOWJZh1wn3oJPjJk9Asva204PsBdmAE8vpzfHudT8DB0scYvy9q0g==}
107 | engines: {node: '>=6.9.0'}
108 |
109 | '@babel/core@7.26.0':
110 | resolution: {integrity: sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==}
111 | engines: {node: '>=6.9.0'}
112 |
113 | '@babel/generator@7.26.3':
114 | resolution: {integrity: sha512-6FF/urZvD0sTeO7k6/B15pMLC4CHUv1426lzr3N01aHJTl046uCAh9LXW/fzeXXjPNCJ6iABW5XaWOsIZB93aQ==}
115 | engines: {node: '>=6.9.0'}
116 |
117 | '@babel/helper-compilation-targets@7.25.9':
118 | resolution: {integrity: sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==}
119 | engines: {node: '>=6.9.0'}
120 |
121 | '@babel/helper-module-imports@7.25.9':
122 | resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==}
123 | engines: {node: '>=6.9.0'}
124 |
125 | '@babel/helper-module-transforms@7.26.0':
126 | resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==}
127 | engines: {node: '>=6.9.0'}
128 | peerDependencies:
129 | '@babel/core': ^7.0.0
130 |
131 | '@babel/helper-plugin-utils@7.25.9':
132 | resolution: {integrity: sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==}
133 | engines: {node: '>=6.9.0'}
134 |
135 | '@babel/helper-string-parser@7.25.9':
136 | resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==}
137 | engines: {node: '>=6.9.0'}
138 |
139 | '@babel/helper-validator-identifier@7.25.9':
140 | resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==}
141 | engines: {node: '>=6.9.0'}
142 |
143 | '@babel/helper-validator-option@7.25.9':
144 | resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==}
145 | engines: {node: '>=6.9.0'}
146 |
147 | '@babel/helpers@7.26.0':
148 | resolution: {integrity: sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==}
149 | engines: {node: '>=6.9.0'}
150 |
151 | '@babel/parser@7.26.3':
152 | resolution: {integrity: sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==}
153 | engines: {node: '>=6.0.0'}
154 | hasBin: true
155 |
156 | '@babel/plugin-transform-react-jsx-self@7.25.9':
157 | resolution: {integrity: sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==}
158 | engines: {node: '>=6.9.0'}
159 | peerDependencies:
160 | '@babel/core': ^7.0.0-0
161 |
162 | '@babel/plugin-transform-react-jsx-source@7.25.9':
163 | resolution: {integrity: sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==}
164 | engines: {node: '>=6.9.0'}
165 | peerDependencies:
166 | '@babel/core': ^7.0.0-0
167 |
168 | '@babel/template@7.25.9':
169 | resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==}
170 | engines: {node: '>=6.9.0'}
171 |
172 | '@babel/traverse@7.26.4':
173 | resolution: {integrity: sha512-fH+b7Y4p3yqvApJALCPJcwb0/XaOSgtK4pzV6WVjPR5GLFQBRI7pfoX2V2iM48NXvX07NUxxm1Vw98YjqTcU5w==}
174 | engines: {node: '>=6.9.0'}
175 |
176 | '@babel/types@7.26.3':
177 | resolution: {integrity: sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==}
178 | engines: {node: '>=6.9.0'}
179 |
180 | '@esbuild/aix-ppc64@0.24.0':
181 | resolution: {integrity: sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==}
182 | engines: {node: '>=18'}
183 | cpu: [ppc64]
184 | os: [aix]
185 |
186 | '@esbuild/android-arm64@0.24.0':
187 | resolution: {integrity: sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==}
188 | engines: {node: '>=18'}
189 | cpu: [arm64]
190 | os: [android]
191 |
192 | '@esbuild/android-arm@0.24.0':
193 | resolution: {integrity: sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==}
194 | engines: {node: '>=18'}
195 | cpu: [arm]
196 | os: [android]
197 |
198 | '@esbuild/android-x64@0.24.0':
199 | resolution: {integrity: sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==}
200 | engines: {node: '>=18'}
201 | cpu: [x64]
202 | os: [android]
203 |
204 | '@esbuild/darwin-arm64@0.24.0':
205 | resolution: {integrity: sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==}
206 | engines: {node: '>=18'}
207 | cpu: [arm64]
208 | os: [darwin]
209 |
210 | '@esbuild/darwin-x64@0.24.0':
211 | resolution: {integrity: sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==}
212 | engines: {node: '>=18'}
213 | cpu: [x64]
214 | os: [darwin]
215 |
216 | '@esbuild/freebsd-arm64@0.24.0':
217 | resolution: {integrity: sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==}
218 | engines: {node: '>=18'}
219 | cpu: [arm64]
220 | os: [freebsd]
221 |
222 | '@esbuild/freebsd-x64@0.24.0':
223 | resolution: {integrity: sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==}
224 | engines: {node: '>=18'}
225 | cpu: [x64]
226 | os: [freebsd]
227 |
228 | '@esbuild/linux-arm64@0.24.0':
229 | resolution: {integrity: sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==}
230 | engines: {node: '>=18'}
231 | cpu: [arm64]
232 | os: [linux]
233 |
234 | '@esbuild/linux-arm@0.24.0':
235 | resolution: {integrity: sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==}
236 | engines: {node: '>=18'}
237 | cpu: [arm]
238 | os: [linux]
239 |
240 | '@esbuild/linux-ia32@0.24.0':
241 | resolution: {integrity: sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==}
242 | engines: {node: '>=18'}
243 | cpu: [ia32]
244 | os: [linux]
245 |
246 | '@esbuild/linux-loong64@0.24.0':
247 | resolution: {integrity: sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==}
248 | engines: {node: '>=18'}
249 | cpu: [loong64]
250 | os: [linux]
251 |
252 | '@esbuild/linux-mips64el@0.24.0':
253 | resolution: {integrity: sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==}
254 | engines: {node: '>=18'}
255 | cpu: [mips64el]
256 | os: [linux]
257 |
258 | '@esbuild/linux-ppc64@0.24.0':
259 | resolution: {integrity: sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==}
260 | engines: {node: '>=18'}
261 | cpu: [ppc64]
262 | os: [linux]
263 |
264 | '@esbuild/linux-riscv64@0.24.0':
265 | resolution: {integrity: sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==}
266 | engines: {node: '>=18'}
267 | cpu: [riscv64]
268 | os: [linux]
269 |
270 | '@esbuild/linux-s390x@0.24.0':
271 | resolution: {integrity: sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==}
272 | engines: {node: '>=18'}
273 | cpu: [s390x]
274 | os: [linux]
275 |
276 | '@esbuild/linux-x64@0.24.0':
277 | resolution: {integrity: sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==}
278 | engines: {node: '>=18'}
279 | cpu: [x64]
280 | os: [linux]
281 |
282 | '@esbuild/netbsd-x64@0.24.0':
283 | resolution: {integrity: sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==}
284 | engines: {node: '>=18'}
285 | cpu: [x64]
286 | os: [netbsd]
287 |
288 | '@esbuild/openbsd-arm64@0.24.0':
289 | resolution: {integrity: sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==}
290 | engines: {node: '>=18'}
291 | cpu: [arm64]
292 | os: [openbsd]
293 |
294 | '@esbuild/openbsd-x64@0.24.0':
295 | resolution: {integrity: sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==}
296 | engines: {node: '>=18'}
297 | cpu: [x64]
298 | os: [openbsd]
299 |
300 | '@esbuild/sunos-x64@0.24.0':
301 | resolution: {integrity: sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==}
302 | engines: {node: '>=18'}
303 | cpu: [x64]
304 | os: [sunos]
305 |
306 | '@esbuild/win32-arm64@0.24.0':
307 | resolution: {integrity: sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==}
308 | engines: {node: '>=18'}
309 | cpu: [arm64]
310 | os: [win32]
311 |
312 | '@esbuild/win32-ia32@0.24.0':
313 | resolution: {integrity: sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==}
314 | engines: {node: '>=18'}
315 | cpu: [ia32]
316 | os: [win32]
317 |
318 | '@esbuild/win32-x64@0.24.0':
319 | resolution: {integrity: sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==}
320 | engines: {node: '>=18'}
321 | cpu: [x64]
322 | os: [win32]
323 |
324 | '@eslint-community/eslint-utils@4.4.1':
325 | resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==}
326 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
327 | peerDependencies:
328 | eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
329 |
330 | '@eslint-community/regexpp@4.12.1':
331 | resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==}
332 | engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
333 |
334 | '@eslint/config-array@0.19.1':
335 | resolution: {integrity: sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==}
336 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
337 |
338 | '@eslint/core@0.9.1':
339 | resolution: {integrity: sha512-GuUdqkyyzQI5RMIWkHhvTWLCyLo1jNK3vzkSyaExH5kHPDHcuL2VOpHjmMY+y3+NC69qAKToBqldTBgYeLSr9Q==}
340 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
341 |
342 | '@eslint/eslintrc@3.2.0':
343 | resolution: {integrity: sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==}
344 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
345 |
346 | '@eslint/js@9.17.0':
347 | resolution: {integrity: sha512-Sxc4hqcs1kTu0iID3kcZDW3JHq2a77HO9P8CP6YEA/FpH3Ll8UXE2r/86Rz9YJLKme39S9vU5OWNjC6Xl0Cr3w==}
348 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
349 |
350 | '@eslint/object-schema@2.1.5':
351 | resolution: {integrity: sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==}
352 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
353 |
354 | '@eslint/plugin-kit@0.2.4':
355 | resolution: {integrity: sha512-zSkKow6H5Kdm0ZUQUB2kV5JIXqoG0+uH5YADhaEHswm664N9Db8dXSi0nMJpacpMf+MyyglF1vnZohpEg5yUtg==}
356 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
357 |
358 | '@humanfs/core@0.19.1':
359 | resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==}
360 | engines: {node: '>=18.18.0'}
361 |
362 | '@humanfs/node@0.16.6':
363 | resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==}
364 | engines: {node: '>=18.18.0'}
365 |
366 | '@humanwhocodes/module-importer@1.0.1':
367 | resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
368 | engines: {node: '>=12.22'}
369 |
370 | '@humanwhocodes/retry@0.3.1':
371 | resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==}
372 | engines: {node: '>=18.18'}
373 |
374 | '@humanwhocodes/retry@0.4.1':
375 | resolution: {integrity: sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==}
376 | engines: {node: '>=18.18'}
377 |
378 | '@isaacs/cliui@8.0.2':
379 | resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
380 | engines: {node: '>=12'}
381 |
382 | '@jridgewell/gen-mapping@0.3.8':
383 | resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==}
384 | engines: {node: '>=6.0.0'}
385 |
386 | '@jridgewell/resolve-uri@3.1.2':
387 | resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
388 | engines: {node: '>=6.0.0'}
389 |
390 | '@jridgewell/set-array@1.2.1':
391 | resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==}
392 | engines: {node: '>=6.0.0'}
393 |
394 | '@jridgewell/sourcemap-codec@1.5.0':
395 | resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==}
396 |
397 | '@jridgewell/trace-mapping@0.3.25':
398 | resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==}
399 |
400 | '@nodelib/fs.scandir@2.1.5':
401 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
402 | engines: {node: '>= 8'}
403 |
404 | '@nodelib/fs.stat@2.0.5':
405 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
406 | engines: {node: '>= 8'}
407 |
408 | '@nodelib/fs.walk@1.2.8':
409 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
410 | engines: {node: '>= 8'}
411 |
412 | '@pkgjs/parseargs@0.11.0':
413 | resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
414 | engines: {node: '>=14'}
415 |
416 | '@radix-ui/react-compose-refs@1.1.1':
417 | resolution: {integrity: sha512-Y9VzoRDSJtgFMUCoiZBDVo084VQ5hfpXxVE+NgkdNsjiDBByiImMZKKhxMwCbdHvhlENG6a833CbFkOQvTricw==}
418 | peerDependencies:
419 | '@types/react': '*'
420 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
421 | peerDependenciesMeta:
422 | '@types/react':
423 | optional: true
424 |
425 | '@radix-ui/react-slot@1.1.1':
426 | resolution: {integrity: sha512-RApLLOcINYJA+dMVbOju7MYv1Mb2EBp2nH4HdDzXTSyaR5optlm6Otrz1euW3HbdOR8UmmFK06TD+A9frYWv+g==}
427 | peerDependencies:
428 | '@types/react': '*'
429 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
430 | peerDependenciesMeta:
431 | '@types/react':
432 | optional: true
433 |
434 | '@rollup/rollup-android-arm-eabi@4.29.1':
435 | resolution: {integrity: sha512-ssKhA8RNltTZLpG6/QNkCSge+7mBQGUqJRisZ2MDQcEGaK93QESEgWK2iOpIDZ7k9zPVkG5AS3ksvD5ZWxmItw==}
436 | cpu: [arm]
437 | os: [android]
438 |
439 | '@rollup/rollup-android-arm64@4.29.1':
440 | resolution: {integrity: sha512-CaRfrV0cd+NIIcVVN/jx+hVLN+VRqnuzLRmfmlzpOzB87ajixsN/+9L5xNmkaUUvEbI5BmIKS+XTwXsHEb65Ew==}
441 | cpu: [arm64]
442 | os: [android]
443 |
444 | '@rollup/rollup-darwin-arm64@4.29.1':
445 | resolution: {integrity: sha512-2ORr7T31Y0Mnk6qNuwtyNmy14MunTAMx06VAPI6/Ju52W10zk1i7i5U3vlDRWjhOI5quBcrvhkCHyF76bI7kEw==}
446 | cpu: [arm64]
447 | os: [darwin]
448 |
449 | '@rollup/rollup-darwin-x64@4.29.1':
450 | resolution: {integrity: sha512-j/Ej1oanzPjmN0tirRd5K2/nncAhS9W6ICzgxV+9Y5ZsP0hiGhHJXZ2JQ53iSSjj8m6cRY6oB1GMzNn2EUt6Ng==}
451 | cpu: [x64]
452 | os: [darwin]
453 |
454 | '@rollup/rollup-freebsd-arm64@4.29.1':
455 | resolution: {integrity: sha512-91C//G6Dm/cv724tpt7nTyP+JdN12iqeXGFM1SqnljCmi5yTXriH7B1r8AD9dAZByHpKAumqP1Qy2vVNIdLZqw==}
456 | cpu: [arm64]
457 | os: [freebsd]
458 |
459 | '@rollup/rollup-freebsd-x64@4.29.1':
460 | resolution: {integrity: sha512-hEioiEQ9Dec2nIRoeHUP6hr1PSkXzQaCUyqBDQ9I9ik4gCXQZjJMIVzoNLBRGet+hIUb3CISMh9KXuCcWVW/8w==}
461 | cpu: [x64]
462 | os: [freebsd]
463 |
464 | '@rollup/rollup-linux-arm-gnueabihf@4.29.1':
465 | resolution: {integrity: sha512-Py5vFd5HWYN9zxBv3WMrLAXY3yYJ6Q/aVERoeUFwiDGiMOWsMs7FokXihSOaT/PMWUty/Pj60XDQndK3eAfE6A==}
466 | cpu: [arm]
467 | os: [linux]
468 |
469 | '@rollup/rollup-linux-arm-musleabihf@4.29.1':
470 | resolution: {integrity: sha512-RiWpGgbayf7LUcuSNIbahr0ys2YnEERD4gYdISA06wa0i8RALrnzflh9Wxii7zQJEB2/Eh74dX4y/sHKLWp5uQ==}
471 | cpu: [arm]
472 | os: [linux]
473 |
474 | '@rollup/rollup-linux-arm64-gnu@4.29.1':
475 | resolution: {integrity: sha512-Z80O+taYxTQITWMjm/YqNoe9d10OX6kDh8X5/rFCMuPqsKsSyDilvfg+vd3iXIqtfmp+cnfL1UrYirkaF8SBZA==}
476 | cpu: [arm64]
477 | os: [linux]
478 |
479 | '@rollup/rollup-linux-arm64-musl@4.29.1':
480 | resolution: {integrity: sha512-fOHRtF9gahwJk3QVp01a/GqS4hBEZCV1oKglVVq13kcK3NeVlS4BwIFzOHDbmKzt3i0OuHG4zfRP0YoG5OF/rA==}
481 | cpu: [arm64]
482 | os: [linux]
483 |
484 | '@rollup/rollup-linux-loongarch64-gnu@4.29.1':
485 | resolution: {integrity: sha512-5a7q3tnlbcg0OodyxcAdrrCxFi0DgXJSoOuidFUzHZ2GixZXQs6Tc3CHmlvqKAmOs5eRde+JJxeIf9DonkmYkw==}
486 | cpu: [loong64]
487 | os: [linux]
488 |
489 | '@rollup/rollup-linux-powerpc64le-gnu@4.29.1':
490 | resolution: {integrity: sha512-9b4Mg5Yfz6mRnlSPIdROcfw1BU22FQxmfjlp/CShWwO3LilKQuMISMTtAu/bxmmrE6A902W2cZJuzx8+gJ8e9w==}
491 | cpu: [ppc64]
492 | os: [linux]
493 |
494 | '@rollup/rollup-linux-riscv64-gnu@4.29.1':
495 | resolution: {integrity: sha512-G5pn0NChlbRM8OJWpJFMX4/i8OEU538uiSv0P6roZcbpe/WfhEO+AT8SHVKfp8qhDQzaz7Q+1/ixMy7hBRidnQ==}
496 | cpu: [riscv64]
497 | os: [linux]
498 |
499 | '@rollup/rollup-linux-s390x-gnu@4.29.1':
500 | resolution: {integrity: sha512-WM9lIkNdkhVwiArmLxFXpWndFGuOka4oJOZh8EP3Vb8q5lzdSCBuhjavJsw68Q9AKDGeOOIHYzYm4ZFvmWez5g==}
501 | cpu: [s390x]
502 | os: [linux]
503 |
504 | '@rollup/rollup-linux-x64-gnu@4.29.1':
505 | resolution: {integrity: sha512-87xYCwb0cPGZFoGiErT1eDcssByaLX4fc0z2nRM6eMtV9njAfEE6OW3UniAoDhX4Iq5xQVpE6qO9aJbCFumKYQ==}
506 | cpu: [x64]
507 | os: [linux]
508 |
509 | '@rollup/rollup-linux-x64-musl@4.29.1':
510 | resolution: {integrity: sha512-xufkSNppNOdVRCEC4WKvlR1FBDyqCSCpQeMMgv9ZyXqqtKBfkw1yfGMTUTs9Qsl6WQbJnsGboWCp7pJGkeMhKA==}
511 | cpu: [x64]
512 | os: [linux]
513 |
514 | '@rollup/rollup-win32-arm64-msvc@4.29.1':
515 | resolution: {integrity: sha512-F2OiJ42m77lSkizZQLuC+jiZ2cgueWQL5YC9tjo3AgaEw+KJmVxHGSyQfDUoYR9cci0lAywv2Clmckzulcq6ig==}
516 | cpu: [arm64]
517 | os: [win32]
518 |
519 | '@rollup/rollup-win32-ia32-msvc@4.29.1':
520 | resolution: {integrity: sha512-rYRe5S0FcjlOBZQHgbTKNrqxCBUmgDJem/VQTCcTnA2KCabYSWQDrytOzX7avb79cAAweNmMUb/Zw18RNd4mng==}
521 | cpu: [ia32]
522 | os: [win32]
523 |
524 | '@rollup/rollup-win32-x64-msvc@4.29.1':
525 | resolution: {integrity: sha512-+10CMg9vt1MoHj6x1pxyjPSMjHTIlqs8/tBztXvPAx24SKs9jwVnKqHJumlH/IzhaPUaj3T6T6wfZr8okdXaIg==}
526 | cpu: [x64]
527 | os: [win32]
528 |
529 | '@types/babel__core@7.20.5':
530 | resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}
531 |
532 | '@types/babel__generator@7.6.8':
533 | resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==}
534 |
535 | '@types/babel__template@7.4.4':
536 | resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==}
537 |
538 | '@types/babel__traverse@7.20.6':
539 | resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==}
540 |
541 | '@types/estree@1.0.6':
542 | resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==}
543 |
544 | '@types/json-schema@7.0.15':
545 | resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
546 |
547 | '@types/node@22.10.2':
548 | resolution: {integrity: sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==}
549 |
550 | '@types/prismjs@1.26.5':
551 | resolution: {integrity: sha512-AUZTa7hQ2KY5L7AmtSiqxlhWxb4ina0yd8hNbl4TWuqnv/pFP0nDMb3YrfSBf4hJVGLh2YEIBfKaBW/9UEl6IQ==}
552 |
553 | '@types/prop-types@15.7.14':
554 | resolution: {integrity: sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==}
555 |
556 | '@types/react-dom@18.3.5':
557 | resolution: {integrity: sha512-P4t6saawp+b/dFrUr2cvkVsfvPguwsxtH6dNIYRllMsefqFzkZk5UIjzyDOv5g1dXIPdG4Sp1yCR4Z6RCUsG/Q==}
558 | peerDependencies:
559 | '@types/react': ^18.0.0
560 |
561 | '@types/react@18.3.18':
562 | resolution: {integrity: sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==}
563 |
564 | '@typescript-eslint/eslint-plugin@8.18.2':
565 | resolution: {integrity: sha512-adig4SzPLjeQ0Tm+jvsozSGiCliI2ajeURDGHjZ2llnA+A67HihCQ+a3amtPhUakd1GlwHxSRvzOZktbEvhPPg==}
566 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
567 | peerDependencies:
568 | '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0
569 | eslint: ^8.57.0 || ^9.0.0
570 | typescript: '>=4.8.4 <5.8.0'
571 |
572 | '@typescript-eslint/parser@8.18.2':
573 | resolution: {integrity: sha512-y7tcq4StgxQD4mDr9+Jb26dZ+HTZ/SkfqpXSiqeUXZHxOUyjWDKsmwKhJ0/tApR08DgOhrFAoAhyB80/p3ViuA==}
574 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
575 | peerDependencies:
576 | eslint: ^8.57.0 || ^9.0.0
577 | typescript: '>=4.8.4 <5.8.0'
578 |
579 | '@typescript-eslint/scope-manager@8.18.2':
580 | resolution: {integrity: sha512-YJFSfbd0CJjy14r/EvWapYgV4R5CHzptssoag2M7y3Ra7XNta6GPAJPPP5KGB9j14viYXyrzRO5GkX7CRfo8/g==}
581 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
582 |
583 | '@typescript-eslint/type-utils@8.18.2':
584 | resolution: {integrity: sha512-AB/Wr1Lz31bzHfGm/jgbFR0VB0SML/hd2P1yxzKDM48YmP7vbyJNHRExUE/wZsQj2wUCvbWH8poNHFuxLqCTnA==}
585 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
586 | peerDependencies:
587 | eslint: ^8.57.0 || ^9.0.0
588 | typescript: '>=4.8.4 <5.8.0'
589 |
590 | '@typescript-eslint/types@8.18.2':
591 | resolution: {integrity: sha512-Z/zblEPp8cIvmEn6+tPDIHUbRu/0z5lqZ+NvolL5SvXWT5rQy7+Nch83M0++XzO0XrWRFWECgOAyE8bsJTl1GQ==}
592 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
593 |
594 | '@typescript-eslint/typescript-estree@8.18.2':
595 | resolution: {integrity: sha512-WXAVt595HjpmlfH4crSdM/1bcsqh+1weFRWIa9XMTx/XHZ9TCKMcr725tLYqWOgzKdeDrqVHxFotrvWcEsk2Tg==}
596 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
597 | peerDependencies:
598 | typescript: '>=4.8.4 <5.8.0'
599 |
600 | '@typescript-eslint/utils@8.18.2':
601 | resolution: {integrity: sha512-Cr4A0H7DtVIPkauj4sTSXVl+VBWewE9/o40KcF3TV9aqDEOWoXF3/+oRXNby3DYzZeCATvbdksYsGZzplwnK/Q==}
602 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
603 | peerDependencies:
604 | eslint: ^8.57.0 || ^9.0.0
605 | typescript: '>=4.8.4 <5.8.0'
606 |
607 | '@typescript-eslint/visitor-keys@8.18.2':
608 | resolution: {integrity: sha512-zORcwn4C3trOWiCqFQP1x6G3xTRyZ1LYydnj51cRnJ6hxBlr/cKPckk+PKPUw/fXmvfKTcw7bwY3w9izgx5jZw==}
609 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
610 |
611 | '@vitejs/plugin-react@4.3.4':
612 | resolution: {integrity: sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==}
613 | engines: {node: ^14.18.0 || >=16.0.0}
614 | peerDependencies:
615 | vite: ^4.2.0 || ^5.0.0 || ^6.0.0
616 |
617 | acorn-jsx@5.3.2:
618 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
619 | peerDependencies:
620 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
621 |
622 | acorn@8.14.0:
623 | resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==}
624 | engines: {node: '>=0.4.0'}
625 | hasBin: true
626 |
627 | ajv@6.12.6:
628 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
629 |
630 | ansi-regex@5.0.1:
631 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
632 | engines: {node: '>=8'}
633 |
634 | ansi-regex@6.1.0:
635 | resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==}
636 | engines: {node: '>=12'}
637 |
638 | ansi-styles@4.3.0:
639 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
640 | engines: {node: '>=8'}
641 |
642 | ansi-styles@6.2.1:
643 | resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
644 | engines: {node: '>=12'}
645 |
646 | any-promise@1.3.0:
647 | resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==}
648 |
649 | anymatch@3.1.3:
650 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
651 | engines: {node: '>= 8'}
652 |
653 | arg@5.0.2:
654 | resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
655 |
656 | argparse@2.0.1:
657 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
658 |
659 | autoprefixer@10.4.20:
660 | resolution: {integrity: sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==}
661 | engines: {node: ^10 || ^12 || >=14}
662 | hasBin: true
663 | peerDependencies:
664 | postcss: ^8.1.0
665 |
666 | balanced-match@1.0.2:
667 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
668 |
669 | binary-extensions@2.3.0:
670 | resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
671 | engines: {node: '>=8'}
672 |
673 | brace-expansion@1.1.11:
674 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
675 |
676 | brace-expansion@2.0.1:
677 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
678 |
679 | braces@3.0.3:
680 | resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
681 | engines: {node: '>=8'}
682 |
683 | browserslist@4.24.3:
684 | resolution: {integrity: sha512-1CPmv8iobE2fyRMV97dAcMVegvvWKxmq94hkLiAkUGwKVTyDLw33K+ZxiFrREKmmps4rIw6grcCFCnTMSZ/YiA==}
685 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
686 | hasBin: true
687 |
688 | callsites@3.1.0:
689 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
690 | engines: {node: '>=6'}
691 |
692 | camelcase-css@2.0.1:
693 | resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==}
694 | engines: {node: '>= 6'}
695 |
696 | caniuse-lite@1.0.30001690:
697 | resolution: {integrity: sha512-5ExiE3qQN6oF8Clf8ifIDcMRCRE/dMGcETG/XGMD8/XiXm6HXQgQTh1yZYLXXpSOsEUlJm1Xr7kGULZTuGtP/w==}
698 |
699 | chalk@4.1.2:
700 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
701 | engines: {node: '>=10'}
702 |
703 | chokidar@3.6.0:
704 | resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
705 | engines: {node: '>= 8.10.0'}
706 |
707 | class-variance-authority@0.7.1:
708 | resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==}
709 |
710 | clsx@2.1.1:
711 | resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==}
712 | engines: {node: '>=6'}
713 |
714 | color-convert@2.0.1:
715 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
716 | engines: {node: '>=7.0.0'}
717 |
718 | color-name@1.1.4:
719 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
720 |
721 | commander@4.1.1:
722 | resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
723 | engines: {node: '>= 6'}
724 |
725 | concat-map@0.0.1:
726 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
727 |
728 | convert-source-map@2.0.0:
729 | resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
730 |
731 | cross-spawn@7.0.6:
732 | resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==}
733 | engines: {node: '>= 8'}
734 |
735 | cssesc@3.0.0:
736 | resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
737 | engines: {node: '>=4'}
738 | hasBin: true
739 |
740 | csstype@3.1.3:
741 | resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
742 |
743 | debounce@1.2.1:
744 | resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==}
745 |
746 | debug@4.4.0:
747 | resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==}
748 | engines: {node: '>=6.0'}
749 | peerDependencies:
750 | supports-color: '*'
751 | peerDependenciesMeta:
752 | supports-color:
753 | optional: true
754 |
755 | deep-is@0.1.4:
756 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
757 |
758 | didyoumean@1.2.2:
759 | resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
760 |
761 | dlv@1.1.3:
762 | resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
763 |
764 | eastasianwidth@0.2.0:
765 | resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
766 |
767 | electron-to-chromium@1.5.76:
768 | resolution: {integrity: sha512-CjVQyG7n7Sr+eBXE86HIulnL5N8xZY1sgmOPGuq/F0Rr0FJq63lg0kEtOIDfZBk44FnDLf6FUJ+dsJcuiUDdDQ==}
769 |
770 | emoji-regex@8.0.0:
771 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
772 |
773 | emoji-regex@9.2.2:
774 | resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
775 |
776 | esbuild@0.24.0:
777 | resolution: {integrity: sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==}
778 | engines: {node: '>=18'}
779 | hasBin: true
780 |
781 | escalade@3.2.0:
782 | resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
783 | engines: {node: '>=6'}
784 |
785 | escape-string-regexp@4.0.0:
786 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
787 | engines: {node: '>=10'}
788 |
789 | eslint-plugin-react-hooks@5.1.0:
790 | resolution: {integrity: sha512-mpJRtPgHN2tNAvZ35AMfqeB3Xqeo273QxrHJsbBEPWODRM4r0yB6jfoROqKEYrOn27UtRPpcpHc2UqyBSuUNTw==}
791 | engines: {node: '>=10'}
792 | peerDependencies:
793 | eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0
794 |
795 | eslint-plugin-react-refresh@0.4.16:
796 | resolution: {integrity: sha512-slterMlxAhov/DZO8NScf6mEeMBBXodFUolijDvrtTxyezyLoTQaa73FyYus/VbTdftd8wBgBxPMRk3poleXNQ==}
797 | peerDependencies:
798 | eslint: '>=8.40'
799 |
800 | eslint-scope@8.2.0:
801 | resolution: {integrity: sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==}
802 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
803 |
804 | eslint-visitor-keys@3.4.3:
805 | resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
806 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
807 |
808 | eslint-visitor-keys@4.2.0:
809 | resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==}
810 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
811 |
812 | eslint@9.17.0:
813 | resolution: {integrity: sha512-evtlNcpJg+cZLcnVKwsai8fExnqjGPicK7gnUtlNuzu+Fv9bI0aLpND5T44VLQtoMEnI57LoXO9XAkIXwohKrA==}
814 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
815 | hasBin: true
816 | peerDependencies:
817 | jiti: '*'
818 | peerDependenciesMeta:
819 | jiti:
820 | optional: true
821 |
822 | espree@10.3.0:
823 | resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==}
824 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
825 |
826 | esquery@1.6.0:
827 | resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==}
828 | engines: {node: '>=0.10'}
829 |
830 | esrecurse@4.3.0:
831 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
832 | engines: {node: '>=4.0'}
833 |
834 | estraverse@5.3.0:
835 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
836 | engines: {node: '>=4.0'}
837 |
838 | esutils@2.0.3:
839 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
840 | engines: {node: '>=0.10.0'}
841 |
842 | fast-deep-equal@3.1.3:
843 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
844 |
845 | fast-glob@3.3.2:
846 | resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==}
847 | engines: {node: '>=8.6.0'}
848 |
849 | fast-json-stable-stringify@2.1.0:
850 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
851 |
852 | fast-levenshtein@2.0.6:
853 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
854 |
855 | fastq@1.18.0:
856 | resolution: {integrity: sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==}
857 |
858 | file-entry-cache@8.0.0:
859 | resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==}
860 | engines: {node: '>=16.0.0'}
861 |
862 | fill-range@7.1.1:
863 | resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
864 | engines: {node: '>=8'}
865 |
866 | find-up@5.0.0:
867 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
868 | engines: {node: '>=10'}
869 |
870 | flat-cache@4.0.1:
871 | resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==}
872 | engines: {node: '>=16'}
873 |
874 | flatted@3.3.2:
875 | resolution: {integrity: sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==}
876 |
877 | foreground-child@3.3.0:
878 | resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==}
879 | engines: {node: '>=14'}
880 |
881 | fraction.js@4.3.7:
882 | resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==}
883 |
884 | framer-motion@11.15.0:
885 | resolution: {integrity: sha512-MLk8IvZntxOMg7lDBLw2qgTHHv664bYoYmnFTmE0Gm/FW67aOJk0WM3ctMcG+Xhcv+vh5uyyXwxvxhSeJzSe+w==}
886 | peerDependencies:
887 | '@emotion/is-prop-valid': '*'
888 | react: ^18.0.0 || ^19.0.0
889 | react-dom: ^18.0.0 || ^19.0.0
890 | peerDependenciesMeta:
891 | '@emotion/is-prop-valid':
892 | optional: true
893 | react:
894 | optional: true
895 | react-dom:
896 | optional: true
897 |
898 | fsevents@2.3.3:
899 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
900 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
901 | os: [darwin]
902 |
903 | function-bind@1.1.2:
904 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
905 |
906 | gensync@1.0.0-beta.2:
907 | resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
908 | engines: {node: '>=6.9.0'}
909 |
910 | glob-parent@5.1.2:
911 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
912 | engines: {node: '>= 6'}
913 |
914 | glob-parent@6.0.2:
915 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
916 | engines: {node: '>=10.13.0'}
917 |
918 | glob@10.4.5:
919 | resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==}
920 | hasBin: true
921 |
922 | globals@11.12.0:
923 | resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
924 | engines: {node: '>=4'}
925 |
926 | globals@14.0.0:
927 | resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==}
928 | engines: {node: '>=18'}
929 |
930 | globals@15.14.0:
931 | resolution: {integrity: sha512-OkToC372DtlQeje9/zHIo5CT8lRP/FUgEOKBEhU4e0abL7J7CD24fD9ohiLN5hagG/kWCYj4K5oaxxtj2Z0Dig==}
932 | engines: {node: '>=18'}
933 |
934 | graphemer@1.4.0:
935 | resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
936 |
937 | has-flag@4.0.0:
938 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
939 | engines: {node: '>=8'}
940 |
941 | hasown@2.0.2:
942 | resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
943 | engines: {node: '>= 0.4'}
944 |
945 | ignore@5.3.2:
946 | resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
947 | engines: {node: '>= 4'}
948 |
949 | import-fresh@3.3.0:
950 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
951 | engines: {node: '>=6'}
952 |
953 | imurmurhash@0.1.4:
954 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
955 | engines: {node: '>=0.8.19'}
956 |
957 | is-binary-path@2.1.0:
958 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
959 | engines: {node: '>=8'}
960 |
961 | is-core-module@2.16.1:
962 | resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==}
963 | engines: {node: '>= 0.4'}
964 |
965 | is-extglob@2.1.1:
966 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
967 | engines: {node: '>=0.10.0'}
968 |
969 | is-fullwidth-code-point@3.0.0:
970 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
971 | engines: {node: '>=8'}
972 |
973 | is-glob@4.0.3:
974 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
975 | engines: {node: '>=0.10.0'}
976 |
977 | is-number@7.0.0:
978 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
979 | engines: {node: '>=0.12.0'}
980 |
981 | isexe@2.0.0:
982 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
983 |
984 | jackspeak@3.4.3:
985 | resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==}
986 |
987 | jiti@1.21.7:
988 | resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==}
989 | hasBin: true
990 |
991 | js-tokens@4.0.0:
992 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
993 |
994 | js-yaml@4.1.0:
995 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
996 | hasBin: true
997 |
998 | jsesc@3.1.0:
999 | resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==}
1000 | engines: {node: '>=6'}
1001 | hasBin: true
1002 |
1003 | json-buffer@3.0.1:
1004 | resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
1005 |
1006 | json-schema-traverse@0.4.1:
1007 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
1008 |
1009 | json-stable-stringify-without-jsonify@1.0.1:
1010 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
1011 |
1012 | json5@2.2.3:
1013 | resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
1014 | engines: {node: '>=6'}
1015 | hasBin: true
1016 |
1017 | keyv@4.5.4:
1018 | resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
1019 |
1020 | levn@0.4.1:
1021 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
1022 | engines: {node: '>= 0.8.0'}
1023 |
1024 | lilconfig@3.1.3:
1025 | resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==}
1026 | engines: {node: '>=14'}
1027 |
1028 | lines-and-columns@1.2.4:
1029 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
1030 |
1031 | locate-path@6.0.0:
1032 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
1033 | engines: {node: '>=10'}
1034 |
1035 | lodash.merge@4.6.2:
1036 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
1037 |
1038 | loose-envify@1.4.0:
1039 | resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
1040 | hasBin: true
1041 |
1042 | lru-cache@10.4.3:
1043 | resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==}
1044 |
1045 | lru-cache@5.1.1:
1046 | resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
1047 |
1048 | lucide-react@0.469.0:
1049 | resolution: {integrity: sha512-28vvUnnKQ/dBwiCQtwJw7QauYnE7yd2Cyp4tTTJpvglX4EMpbflcdBgrgToX2j71B3YvugK/NH3BGUk+E/p/Fw==}
1050 | peerDependencies:
1051 | react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0
1052 |
1053 | merge2@1.4.1:
1054 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
1055 | engines: {node: '>= 8'}
1056 |
1057 | micromatch@4.0.8:
1058 | resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
1059 | engines: {node: '>=8.6'}
1060 |
1061 | minimatch@3.1.2:
1062 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
1063 |
1064 | minimatch@9.0.5:
1065 | resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==}
1066 | engines: {node: '>=16 || 14 >=14.17'}
1067 |
1068 | minipass@7.1.2:
1069 | resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==}
1070 | engines: {node: '>=16 || 14 >=14.17'}
1071 |
1072 | motion-dom@11.14.3:
1073 | resolution: {integrity: sha512-lW+D2wBy5vxLJi6aCP0xyxTxlTfiu+b+zcpVbGVFUxotwThqhdpPRSmX8xztAgtZMPMeU0WGVn/k1w4I+TbPqA==}
1074 |
1075 | motion-utils@11.14.3:
1076 | resolution: {integrity: sha512-Xg+8xnqIJTpr0L/cidfTTBFkvRw26ZtGGuIhA94J9PQ2p4mEa06Xx7QVYZH0BP+EpMSaDlu+q0I0mmvwADPsaQ==}
1077 |
1078 | motion@11.15.0:
1079 | resolution: {integrity: sha512-iZ7dwADQJWGsqsSkBhNHdI2LyYWU+hA1Nhy357wCLZq1yHxGImgt3l7Yv0HT/WOskcYDq9nxdedyl4zUv7UFFw==}
1080 | peerDependencies:
1081 | '@emotion/is-prop-valid': '*'
1082 | react: ^18.0.0 || ^19.0.0
1083 | react-dom: ^18.0.0 || ^19.0.0
1084 | peerDependenciesMeta:
1085 | '@emotion/is-prop-valid':
1086 | optional: true
1087 | react:
1088 | optional: true
1089 | react-dom:
1090 | optional: true
1091 |
1092 | ms@2.1.3:
1093 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
1094 |
1095 | mz@2.7.0:
1096 | resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
1097 |
1098 | nanoid@3.3.8:
1099 | resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==}
1100 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
1101 | hasBin: true
1102 |
1103 | natural-compare@1.4.0:
1104 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
1105 |
1106 | node-releases@2.0.19:
1107 | resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==}
1108 |
1109 | normalize-path@3.0.0:
1110 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
1111 | engines: {node: '>=0.10.0'}
1112 |
1113 | normalize-range@0.1.2:
1114 | resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==}
1115 | engines: {node: '>=0.10.0'}
1116 |
1117 | object-assign@4.1.1:
1118 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
1119 | engines: {node: '>=0.10.0'}
1120 |
1121 | object-hash@3.0.0:
1122 | resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==}
1123 | engines: {node: '>= 6'}
1124 |
1125 | optionator@0.9.4:
1126 | resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==}
1127 | engines: {node: '>= 0.8.0'}
1128 |
1129 | p-limit@3.1.0:
1130 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
1131 | engines: {node: '>=10'}
1132 |
1133 | p-locate@5.0.0:
1134 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
1135 | engines: {node: '>=10'}
1136 |
1137 | package-json-from-dist@1.0.1:
1138 | resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==}
1139 |
1140 | parent-module@1.0.1:
1141 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
1142 | engines: {node: '>=6'}
1143 |
1144 | path-exists@4.0.0:
1145 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
1146 | engines: {node: '>=8'}
1147 |
1148 | path-key@3.1.1:
1149 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
1150 | engines: {node: '>=8'}
1151 |
1152 | path-parse@1.0.7:
1153 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
1154 |
1155 | path-scurry@1.11.1:
1156 | resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==}
1157 | engines: {node: '>=16 || 14 >=14.18'}
1158 |
1159 | picocolors@1.1.1:
1160 | resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
1161 |
1162 | picomatch@2.3.1:
1163 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
1164 | engines: {node: '>=8.6'}
1165 |
1166 | pify@2.3.0:
1167 | resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
1168 | engines: {node: '>=0.10.0'}
1169 |
1170 | pirates@4.0.6:
1171 | resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==}
1172 | engines: {node: '>= 6'}
1173 |
1174 | postcss-import@15.1.0:
1175 | resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==}
1176 | engines: {node: '>=14.0.0'}
1177 | peerDependencies:
1178 | postcss: ^8.0.0
1179 |
1180 | postcss-js@4.0.1:
1181 | resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==}
1182 | engines: {node: ^12 || ^14 || >= 16}
1183 | peerDependencies:
1184 | postcss: ^8.4.21
1185 |
1186 | postcss-load-config@4.0.2:
1187 | resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==}
1188 | engines: {node: '>= 14'}
1189 | peerDependencies:
1190 | postcss: '>=8.0.9'
1191 | ts-node: '>=9.0.0'
1192 | peerDependenciesMeta:
1193 | postcss:
1194 | optional: true
1195 | ts-node:
1196 | optional: true
1197 |
1198 | postcss-nested@6.2.0:
1199 | resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==}
1200 | engines: {node: '>=12.0'}
1201 | peerDependencies:
1202 | postcss: ^8.2.14
1203 |
1204 | postcss-selector-parser@6.1.2:
1205 | resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==}
1206 | engines: {node: '>=4'}
1207 |
1208 | postcss-value-parser@4.2.0:
1209 | resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
1210 |
1211 | postcss@8.4.49:
1212 | resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==}
1213 | engines: {node: ^10 || ^12 || >=14}
1214 |
1215 | prelude-ls@1.2.1:
1216 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
1217 | engines: {node: '>= 0.8.0'}
1218 |
1219 | prism-react-renderer@2.4.1:
1220 | resolution: {integrity: sha512-ey8Ls/+Di31eqzUxC46h8MksNuGx/n0AAC8uKpwFau4RPDYLuE3EXTp8N8G2vX2N7UC/+IXeNUnlWBGGcAG+Ig==}
1221 | peerDependencies:
1222 | react: '>=16.0.0'
1223 |
1224 | punycode@2.3.1:
1225 | resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
1226 | engines: {node: '>=6'}
1227 |
1228 | queue-microtask@1.2.3:
1229 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
1230 |
1231 | react-dom@18.3.1:
1232 | resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==}
1233 | peerDependencies:
1234 | react: ^18.3.1
1235 |
1236 | react-refresh@0.14.2:
1237 | resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==}
1238 | engines: {node: '>=0.10.0'}
1239 |
1240 | react-use-measure@2.1.1:
1241 | resolution: {integrity: sha512-nocZhN26cproIiIduswYpV5y5lQpSQS1y/4KuvUCjSKmw7ZWIS/+g3aFnX3WdBkyuGUtTLif3UTqnLLhbDoQig==}
1242 | peerDependencies:
1243 | react: '>=16.13'
1244 | react-dom: '>=16.13'
1245 |
1246 | react@18.3.1:
1247 | resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==}
1248 | engines: {node: '>=0.10.0'}
1249 |
1250 | read-cache@1.0.0:
1251 | resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==}
1252 |
1253 | readdirp@3.6.0:
1254 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
1255 | engines: {node: '>=8.10.0'}
1256 |
1257 | resolve-from@4.0.0:
1258 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
1259 | engines: {node: '>=4'}
1260 |
1261 | resolve@1.22.10:
1262 | resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==}
1263 | engines: {node: '>= 0.4'}
1264 | hasBin: true
1265 |
1266 | reusify@1.0.4:
1267 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
1268 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
1269 |
1270 | rollup@4.29.1:
1271 | resolution: {integrity: sha512-RaJ45M/kmJUzSWDs1Nnd5DdV4eerC98idtUOVr6FfKcgxqvjwHmxc5upLF9qZU9EpsVzzhleFahrT3shLuJzIw==}
1272 | engines: {node: '>=18.0.0', npm: '>=8.0.0'}
1273 | hasBin: true
1274 |
1275 | run-parallel@1.2.0:
1276 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
1277 |
1278 | scheduler@0.23.2:
1279 | resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==}
1280 |
1281 | semver@6.3.1:
1282 | resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
1283 | hasBin: true
1284 |
1285 | semver@7.6.3:
1286 | resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==}
1287 | engines: {node: '>=10'}
1288 | hasBin: true
1289 |
1290 | shebang-command@2.0.0:
1291 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
1292 | engines: {node: '>=8'}
1293 |
1294 | shebang-regex@3.0.0:
1295 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
1296 | engines: {node: '>=8'}
1297 |
1298 | signal-exit@4.1.0:
1299 | resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
1300 | engines: {node: '>=14'}
1301 |
1302 | source-map-js@1.2.1:
1303 | resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
1304 | engines: {node: '>=0.10.0'}
1305 |
1306 | string-width@4.2.3:
1307 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
1308 | engines: {node: '>=8'}
1309 |
1310 | string-width@5.1.2:
1311 | resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
1312 | engines: {node: '>=12'}
1313 |
1314 | strip-ansi@6.0.1:
1315 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
1316 | engines: {node: '>=8'}
1317 |
1318 | strip-ansi@7.1.0:
1319 | resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==}
1320 | engines: {node: '>=12'}
1321 |
1322 | strip-json-comments@3.1.1:
1323 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
1324 | engines: {node: '>=8'}
1325 |
1326 | sucrase@3.35.0:
1327 | resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==}
1328 | engines: {node: '>=16 || 14 >=14.17'}
1329 | hasBin: true
1330 |
1331 | supports-color@7.2.0:
1332 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
1333 | engines: {node: '>=8'}
1334 |
1335 | supports-preserve-symlinks-flag@1.0.0:
1336 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
1337 | engines: {node: '>= 0.4'}
1338 |
1339 | tailwind-merge@2.6.0:
1340 | resolution: {integrity: sha512-P+Vu1qXfzediirmHOC3xKGAYeZtPcV9g76X+xg2FD4tYgR71ewMA35Y3sCz3zhiN/dwefRpJX0yBcgwi1fXNQA==}
1341 |
1342 | tailwindcss-animate@1.0.7:
1343 | resolution: {integrity: sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==}
1344 | peerDependencies:
1345 | tailwindcss: '>=3.0.0 || insiders'
1346 |
1347 | tailwindcss@3.4.17:
1348 | resolution: {integrity: sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==}
1349 | engines: {node: '>=14.0.0'}
1350 | hasBin: true
1351 |
1352 | thenify-all@1.6.0:
1353 | resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==}
1354 | engines: {node: '>=0.8'}
1355 |
1356 | thenify@3.3.1:
1357 | resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==}
1358 |
1359 | to-regex-range@5.0.1:
1360 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
1361 | engines: {node: '>=8.0'}
1362 |
1363 | ts-api-utils@1.4.3:
1364 | resolution: {integrity: sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==}
1365 | engines: {node: '>=16'}
1366 | peerDependencies:
1367 | typescript: '>=4.2.0'
1368 |
1369 | ts-interface-checker@0.1.13:
1370 | resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
1371 |
1372 | tslib@2.8.1:
1373 | resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
1374 |
1375 | type-check@0.4.0:
1376 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
1377 | engines: {node: '>= 0.8.0'}
1378 |
1379 | typescript-eslint@8.18.2:
1380 | resolution: {integrity: sha512-KuXezG6jHkvC3MvizeXgupZzaG5wjhU3yE8E7e6viOvAvD9xAWYp8/vy0WULTGe9DYDWcQu7aW03YIV3mSitrQ==}
1381 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
1382 | peerDependencies:
1383 | eslint: ^8.57.0 || ^9.0.0
1384 | typescript: '>=4.8.4 <5.8.0'
1385 |
1386 | typescript@5.6.3:
1387 | resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==}
1388 | engines: {node: '>=14.17'}
1389 | hasBin: true
1390 |
1391 | undici-types@6.20.0:
1392 | resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==}
1393 |
1394 | update-browserslist-db@1.1.1:
1395 | resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==}
1396 | hasBin: true
1397 | peerDependencies:
1398 | browserslist: '>= 4.21.0'
1399 |
1400 | uri-js@4.4.1:
1401 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
1402 |
1403 | util-deprecate@1.0.2:
1404 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
1405 |
1406 | vite@6.0.5:
1407 | resolution: {integrity: sha512-akD5IAH/ID5imgue2DYhzsEwCi0/4VKY31uhMLEYJwPP4TiUp8pL5PIK+Wo7H8qT8JY9i+pVfPydcFPYD1EL7g==}
1408 | engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
1409 | hasBin: true
1410 | peerDependencies:
1411 | '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0
1412 | jiti: '>=1.21.0'
1413 | less: '*'
1414 | lightningcss: ^1.21.0
1415 | sass: '*'
1416 | sass-embedded: '*'
1417 | stylus: '*'
1418 | sugarss: '*'
1419 | terser: ^5.16.0
1420 | tsx: ^4.8.1
1421 | yaml: ^2.4.2
1422 | peerDependenciesMeta:
1423 | '@types/node':
1424 | optional: true
1425 | jiti:
1426 | optional: true
1427 | less:
1428 | optional: true
1429 | lightningcss:
1430 | optional: true
1431 | sass:
1432 | optional: true
1433 | sass-embedded:
1434 | optional: true
1435 | stylus:
1436 | optional: true
1437 | sugarss:
1438 | optional: true
1439 | terser:
1440 | optional: true
1441 | tsx:
1442 | optional: true
1443 | yaml:
1444 | optional: true
1445 |
1446 | which@2.0.2:
1447 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
1448 | engines: {node: '>= 8'}
1449 | hasBin: true
1450 |
1451 | word-wrap@1.2.5:
1452 | resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==}
1453 | engines: {node: '>=0.10.0'}
1454 |
1455 | wrap-ansi@7.0.0:
1456 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
1457 | engines: {node: '>=10'}
1458 |
1459 | wrap-ansi@8.1.0:
1460 | resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==}
1461 | engines: {node: '>=12'}
1462 |
1463 | yallist@3.1.1:
1464 | resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
1465 |
1466 | yaml@2.6.1:
1467 | resolution: {integrity: sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==}
1468 | engines: {node: '>= 14'}
1469 | hasBin: true
1470 |
1471 | yocto-queue@0.1.0:
1472 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
1473 | engines: {node: '>=10'}
1474 |
1475 | snapshots:
1476 |
1477 | '@alloc/quick-lru@5.2.0': {}
1478 |
1479 | '@ampproject/remapping@2.3.0':
1480 | dependencies:
1481 | '@jridgewell/gen-mapping': 0.3.8
1482 | '@jridgewell/trace-mapping': 0.3.25
1483 |
1484 | '@babel/code-frame@7.26.2':
1485 | dependencies:
1486 | '@babel/helper-validator-identifier': 7.25.9
1487 | js-tokens: 4.0.0
1488 | picocolors: 1.1.1
1489 |
1490 | '@babel/compat-data@7.26.3': {}
1491 |
1492 | '@babel/core@7.26.0':
1493 | dependencies:
1494 | '@ampproject/remapping': 2.3.0
1495 | '@babel/code-frame': 7.26.2
1496 | '@babel/generator': 7.26.3
1497 | '@babel/helper-compilation-targets': 7.25.9
1498 | '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0)
1499 | '@babel/helpers': 7.26.0
1500 | '@babel/parser': 7.26.3
1501 | '@babel/template': 7.25.9
1502 | '@babel/traverse': 7.26.4
1503 | '@babel/types': 7.26.3
1504 | convert-source-map: 2.0.0
1505 | debug: 4.4.0
1506 | gensync: 1.0.0-beta.2
1507 | json5: 2.2.3
1508 | semver: 6.3.1
1509 | transitivePeerDependencies:
1510 | - supports-color
1511 |
1512 | '@babel/generator@7.26.3':
1513 | dependencies:
1514 | '@babel/parser': 7.26.3
1515 | '@babel/types': 7.26.3
1516 | '@jridgewell/gen-mapping': 0.3.8
1517 | '@jridgewell/trace-mapping': 0.3.25
1518 | jsesc: 3.1.0
1519 |
1520 | '@babel/helper-compilation-targets@7.25.9':
1521 | dependencies:
1522 | '@babel/compat-data': 7.26.3
1523 | '@babel/helper-validator-option': 7.25.9
1524 | browserslist: 4.24.3
1525 | lru-cache: 5.1.1
1526 | semver: 6.3.1
1527 |
1528 | '@babel/helper-module-imports@7.25.9':
1529 | dependencies:
1530 | '@babel/traverse': 7.26.4
1531 | '@babel/types': 7.26.3
1532 | transitivePeerDependencies:
1533 | - supports-color
1534 |
1535 | '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.0)':
1536 | dependencies:
1537 | '@babel/core': 7.26.0
1538 | '@babel/helper-module-imports': 7.25.9
1539 | '@babel/helper-validator-identifier': 7.25.9
1540 | '@babel/traverse': 7.26.4
1541 | transitivePeerDependencies:
1542 | - supports-color
1543 |
1544 | '@babel/helper-plugin-utils@7.25.9': {}
1545 |
1546 | '@babel/helper-string-parser@7.25.9': {}
1547 |
1548 | '@babel/helper-validator-identifier@7.25.9': {}
1549 |
1550 | '@babel/helper-validator-option@7.25.9': {}
1551 |
1552 | '@babel/helpers@7.26.0':
1553 | dependencies:
1554 | '@babel/template': 7.25.9
1555 | '@babel/types': 7.26.3
1556 |
1557 | '@babel/parser@7.26.3':
1558 | dependencies:
1559 | '@babel/types': 7.26.3
1560 |
1561 | '@babel/plugin-transform-react-jsx-self@7.25.9(@babel/core@7.26.0)':
1562 | dependencies:
1563 | '@babel/core': 7.26.0
1564 | '@babel/helper-plugin-utils': 7.25.9
1565 |
1566 | '@babel/plugin-transform-react-jsx-source@7.25.9(@babel/core@7.26.0)':
1567 | dependencies:
1568 | '@babel/core': 7.26.0
1569 | '@babel/helper-plugin-utils': 7.25.9
1570 |
1571 | '@babel/template@7.25.9':
1572 | dependencies:
1573 | '@babel/code-frame': 7.26.2
1574 | '@babel/parser': 7.26.3
1575 | '@babel/types': 7.26.3
1576 |
1577 | '@babel/traverse@7.26.4':
1578 | dependencies:
1579 | '@babel/code-frame': 7.26.2
1580 | '@babel/generator': 7.26.3
1581 | '@babel/parser': 7.26.3
1582 | '@babel/template': 7.25.9
1583 | '@babel/types': 7.26.3
1584 | debug: 4.4.0
1585 | globals: 11.12.0
1586 | transitivePeerDependencies:
1587 | - supports-color
1588 |
1589 | '@babel/types@7.26.3':
1590 | dependencies:
1591 | '@babel/helper-string-parser': 7.25.9
1592 | '@babel/helper-validator-identifier': 7.25.9
1593 |
1594 | '@esbuild/aix-ppc64@0.24.0':
1595 | optional: true
1596 |
1597 | '@esbuild/android-arm64@0.24.0':
1598 | optional: true
1599 |
1600 | '@esbuild/android-arm@0.24.0':
1601 | optional: true
1602 |
1603 | '@esbuild/android-x64@0.24.0':
1604 | optional: true
1605 |
1606 | '@esbuild/darwin-arm64@0.24.0':
1607 | optional: true
1608 |
1609 | '@esbuild/darwin-x64@0.24.0':
1610 | optional: true
1611 |
1612 | '@esbuild/freebsd-arm64@0.24.0':
1613 | optional: true
1614 |
1615 | '@esbuild/freebsd-x64@0.24.0':
1616 | optional: true
1617 |
1618 | '@esbuild/linux-arm64@0.24.0':
1619 | optional: true
1620 |
1621 | '@esbuild/linux-arm@0.24.0':
1622 | optional: true
1623 |
1624 | '@esbuild/linux-ia32@0.24.0':
1625 | optional: true
1626 |
1627 | '@esbuild/linux-loong64@0.24.0':
1628 | optional: true
1629 |
1630 | '@esbuild/linux-mips64el@0.24.0':
1631 | optional: true
1632 |
1633 | '@esbuild/linux-ppc64@0.24.0':
1634 | optional: true
1635 |
1636 | '@esbuild/linux-riscv64@0.24.0':
1637 | optional: true
1638 |
1639 | '@esbuild/linux-s390x@0.24.0':
1640 | optional: true
1641 |
1642 | '@esbuild/linux-x64@0.24.0':
1643 | optional: true
1644 |
1645 | '@esbuild/netbsd-x64@0.24.0':
1646 | optional: true
1647 |
1648 | '@esbuild/openbsd-arm64@0.24.0':
1649 | optional: true
1650 |
1651 | '@esbuild/openbsd-x64@0.24.0':
1652 | optional: true
1653 |
1654 | '@esbuild/sunos-x64@0.24.0':
1655 | optional: true
1656 |
1657 | '@esbuild/win32-arm64@0.24.0':
1658 | optional: true
1659 |
1660 | '@esbuild/win32-ia32@0.24.0':
1661 | optional: true
1662 |
1663 | '@esbuild/win32-x64@0.24.0':
1664 | optional: true
1665 |
1666 | '@eslint-community/eslint-utils@4.4.1(eslint@9.17.0(jiti@1.21.7))':
1667 | dependencies:
1668 | eslint: 9.17.0(jiti@1.21.7)
1669 | eslint-visitor-keys: 3.4.3
1670 |
1671 | '@eslint-community/regexpp@4.12.1': {}
1672 |
1673 | '@eslint/config-array@0.19.1':
1674 | dependencies:
1675 | '@eslint/object-schema': 2.1.5
1676 | debug: 4.4.0
1677 | minimatch: 3.1.2
1678 | transitivePeerDependencies:
1679 | - supports-color
1680 |
1681 | '@eslint/core@0.9.1':
1682 | dependencies:
1683 | '@types/json-schema': 7.0.15
1684 |
1685 | '@eslint/eslintrc@3.2.0':
1686 | dependencies:
1687 | ajv: 6.12.6
1688 | debug: 4.4.0
1689 | espree: 10.3.0
1690 | globals: 14.0.0
1691 | ignore: 5.3.2
1692 | import-fresh: 3.3.0
1693 | js-yaml: 4.1.0
1694 | minimatch: 3.1.2
1695 | strip-json-comments: 3.1.1
1696 | transitivePeerDependencies:
1697 | - supports-color
1698 |
1699 | '@eslint/js@9.17.0': {}
1700 |
1701 | '@eslint/object-schema@2.1.5': {}
1702 |
1703 | '@eslint/plugin-kit@0.2.4':
1704 | dependencies:
1705 | levn: 0.4.1
1706 |
1707 | '@humanfs/core@0.19.1': {}
1708 |
1709 | '@humanfs/node@0.16.6':
1710 | dependencies:
1711 | '@humanfs/core': 0.19.1
1712 | '@humanwhocodes/retry': 0.3.1
1713 |
1714 | '@humanwhocodes/module-importer@1.0.1': {}
1715 |
1716 | '@humanwhocodes/retry@0.3.1': {}
1717 |
1718 | '@humanwhocodes/retry@0.4.1': {}
1719 |
1720 | '@isaacs/cliui@8.0.2':
1721 | dependencies:
1722 | string-width: 5.1.2
1723 | string-width-cjs: string-width@4.2.3
1724 | strip-ansi: 7.1.0
1725 | strip-ansi-cjs: strip-ansi@6.0.1
1726 | wrap-ansi: 8.1.0
1727 | wrap-ansi-cjs: wrap-ansi@7.0.0
1728 |
1729 | '@jridgewell/gen-mapping@0.3.8':
1730 | dependencies:
1731 | '@jridgewell/set-array': 1.2.1
1732 | '@jridgewell/sourcemap-codec': 1.5.0
1733 | '@jridgewell/trace-mapping': 0.3.25
1734 |
1735 | '@jridgewell/resolve-uri@3.1.2': {}
1736 |
1737 | '@jridgewell/set-array@1.2.1': {}
1738 |
1739 | '@jridgewell/sourcemap-codec@1.5.0': {}
1740 |
1741 | '@jridgewell/trace-mapping@0.3.25':
1742 | dependencies:
1743 | '@jridgewell/resolve-uri': 3.1.2
1744 | '@jridgewell/sourcemap-codec': 1.5.0
1745 |
1746 | '@nodelib/fs.scandir@2.1.5':
1747 | dependencies:
1748 | '@nodelib/fs.stat': 2.0.5
1749 | run-parallel: 1.2.0
1750 |
1751 | '@nodelib/fs.stat@2.0.5': {}
1752 |
1753 | '@nodelib/fs.walk@1.2.8':
1754 | dependencies:
1755 | '@nodelib/fs.scandir': 2.1.5
1756 | fastq: 1.18.0
1757 |
1758 | '@pkgjs/parseargs@0.11.0':
1759 | optional: true
1760 |
1761 | '@radix-ui/react-compose-refs@1.1.1(@types/react@18.3.18)(react@18.3.1)':
1762 | dependencies:
1763 | react: 18.3.1
1764 | optionalDependencies:
1765 | '@types/react': 18.3.18
1766 |
1767 | '@radix-ui/react-slot@1.1.1(@types/react@18.3.18)(react@18.3.1)':
1768 | dependencies:
1769 | '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1)
1770 | react: 18.3.1
1771 | optionalDependencies:
1772 | '@types/react': 18.3.18
1773 |
1774 | '@rollup/rollup-android-arm-eabi@4.29.1':
1775 | optional: true
1776 |
1777 | '@rollup/rollup-android-arm64@4.29.1':
1778 | optional: true
1779 |
1780 | '@rollup/rollup-darwin-arm64@4.29.1':
1781 | optional: true
1782 |
1783 | '@rollup/rollup-darwin-x64@4.29.1':
1784 | optional: true
1785 |
1786 | '@rollup/rollup-freebsd-arm64@4.29.1':
1787 | optional: true
1788 |
1789 | '@rollup/rollup-freebsd-x64@4.29.1':
1790 | optional: true
1791 |
1792 | '@rollup/rollup-linux-arm-gnueabihf@4.29.1':
1793 | optional: true
1794 |
1795 | '@rollup/rollup-linux-arm-musleabihf@4.29.1':
1796 | optional: true
1797 |
1798 | '@rollup/rollup-linux-arm64-gnu@4.29.1':
1799 | optional: true
1800 |
1801 | '@rollup/rollup-linux-arm64-musl@4.29.1':
1802 | optional: true
1803 |
1804 | '@rollup/rollup-linux-loongarch64-gnu@4.29.1':
1805 | optional: true
1806 |
1807 | '@rollup/rollup-linux-powerpc64le-gnu@4.29.1':
1808 | optional: true
1809 |
1810 | '@rollup/rollup-linux-riscv64-gnu@4.29.1':
1811 | optional: true
1812 |
1813 | '@rollup/rollup-linux-s390x-gnu@4.29.1':
1814 | optional: true
1815 |
1816 | '@rollup/rollup-linux-x64-gnu@4.29.1':
1817 | optional: true
1818 |
1819 | '@rollup/rollup-linux-x64-musl@4.29.1':
1820 | optional: true
1821 |
1822 | '@rollup/rollup-win32-arm64-msvc@4.29.1':
1823 | optional: true
1824 |
1825 | '@rollup/rollup-win32-ia32-msvc@4.29.1':
1826 | optional: true
1827 |
1828 | '@rollup/rollup-win32-x64-msvc@4.29.1':
1829 | optional: true
1830 |
1831 | '@types/babel__core@7.20.5':
1832 | dependencies:
1833 | '@babel/parser': 7.26.3
1834 | '@babel/types': 7.26.3
1835 | '@types/babel__generator': 7.6.8
1836 | '@types/babel__template': 7.4.4
1837 | '@types/babel__traverse': 7.20.6
1838 |
1839 | '@types/babel__generator@7.6.8':
1840 | dependencies:
1841 | '@babel/types': 7.26.3
1842 |
1843 | '@types/babel__template@7.4.4':
1844 | dependencies:
1845 | '@babel/parser': 7.26.3
1846 | '@babel/types': 7.26.3
1847 |
1848 | '@types/babel__traverse@7.20.6':
1849 | dependencies:
1850 | '@babel/types': 7.26.3
1851 |
1852 | '@types/estree@1.0.6': {}
1853 |
1854 | '@types/json-schema@7.0.15': {}
1855 |
1856 | '@types/node@22.10.2':
1857 | dependencies:
1858 | undici-types: 6.20.0
1859 |
1860 | '@types/prismjs@1.26.5': {}
1861 |
1862 | '@types/prop-types@15.7.14': {}
1863 |
1864 | '@types/react-dom@18.3.5(@types/react@18.3.18)':
1865 | dependencies:
1866 | '@types/react': 18.3.18
1867 |
1868 | '@types/react@18.3.18':
1869 | dependencies:
1870 | '@types/prop-types': 15.7.14
1871 | csstype: 3.1.3
1872 |
1873 | '@typescript-eslint/eslint-plugin@8.18.2(@typescript-eslint/parser@8.18.2(eslint@9.17.0(jiti@1.21.7))(typescript@5.6.3))(eslint@9.17.0(jiti@1.21.7))(typescript@5.6.3)':
1874 | dependencies:
1875 | '@eslint-community/regexpp': 4.12.1
1876 | '@typescript-eslint/parser': 8.18.2(eslint@9.17.0(jiti@1.21.7))(typescript@5.6.3)
1877 | '@typescript-eslint/scope-manager': 8.18.2
1878 | '@typescript-eslint/type-utils': 8.18.2(eslint@9.17.0(jiti@1.21.7))(typescript@5.6.3)
1879 | '@typescript-eslint/utils': 8.18.2(eslint@9.17.0(jiti@1.21.7))(typescript@5.6.3)
1880 | '@typescript-eslint/visitor-keys': 8.18.2
1881 | eslint: 9.17.0(jiti@1.21.7)
1882 | graphemer: 1.4.0
1883 | ignore: 5.3.2
1884 | natural-compare: 1.4.0
1885 | ts-api-utils: 1.4.3(typescript@5.6.3)
1886 | typescript: 5.6.3
1887 | transitivePeerDependencies:
1888 | - supports-color
1889 |
1890 | '@typescript-eslint/parser@8.18.2(eslint@9.17.0(jiti@1.21.7))(typescript@5.6.3)':
1891 | dependencies:
1892 | '@typescript-eslint/scope-manager': 8.18.2
1893 | '@typescript-eslint/types': 8.18.2
1894 | '@typescript-eslint/typescript-estree': 8.18.2(typescript@5.6.3)
1895 | '@typescript-eslint/visitor-keys': 8.18.2
1896 | debug: 4.4.0
1897 | eslint: 9.17.0(jiti@1.21.7)
1898 | typescript: 5.6.3
1899 | transitivePeerDependencies:
1900 | - supports-color
1901 |
1902 | '@typescript-eslint/scope-manager@8.18.2':
1903 | dependencies:
1904 | '@typescript-eslint/types': 8.18.2
1905 | '@typescript-eslint/visitor-keys': 8.18.2
1906 |
1907 | '@typescript-eslint/type-utils@8.18.2(eslint@9.17.0(jiti@1.21.7))(typescript@5.6.3)':
1908 | dependencies:
1909 | '@typescript-eslint/typescript-estree': 8.18.2(typescript@5.6.3)
1910 | '@typescript-eslint/utils': 8.18.2(eslint@9.17.0(jiti@1.21.7))(typescript@5.6.3)
1911 | debug: 4.4.0
1912 | eslint: 9.17.0(jiti@1.21.7)
1913 | ts-api-utils: 1.4.3(typescript@5.6.3)
1914 | typescript: 5.6.3
1915 | transitivePeerDependencies:
1916 | - supports-color
1917 |
1918 | '@typescript-eslint/types@8.18.2': {}
1919 |
1920 | '@typescript-eslint/typescript-estree@8.18.2(typescript@5.6.3)':
1921 | dependencies:
1922 | '@typescript-eslint/types': 8.18.2
1923 | '@typescript-eslint/visitor-keys': 8.18.2
1924 | debug: 4.4.0
1925 | fast-glob: 3.3.2
1926 | is-glob: 4.0.3
1927 | minimatch: 9.0.5
1928 | semver: 7.6.3
1929 | ts-api-utils: 1.4.3(typescript@5.6.3)
1930 | typescript: 5.6.3
1931 | transitivePeerDependencies:
1932 | - supports-color
1933 |
1934 | '@typescript-eslint/utils@8.18.2(eslint@9.17.0(jiti@1.21.7))(typescript@5.6.3)':
1935 | dependencies:
1936 | '@eslint-community/eslint-utils': 4.4.1(eslint@9.17.0(jiti@1.21.7))
1937 | '@typescript-eslint/scope-manager': 8.18.2
1938 | '@typescript-eslint/types': 8.18.2
1939 | '@typescript-eslint/typescript-estree': 8.18.2(typescript@5.6.3)
1940 | eslint: 9.17.0(jiti@1.21.7)
1941 | typescript: 5.6.3
1942 | transitivePeerDependencies:
1943 | - supports-color
1944 |
1945 | '@typescript-eslint/visitor-keys@8.18.2':
1946 | dependencies:
1947 | '@typescript-eslint/types': 8.18.2
1948 | eslint-visitor-keys: 4.2.0
1949 |
1950 | '@vitejs/plugin-react@4.3.4(vite@6.0.5(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1))':
1951 | dependencies:
1952 | '@babel/core': 7.26.0
1953 | '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.0)
1954 | '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.0)
1955 | '@types/babel__core': 7.20.5
1956 | react-refresh: 0.14.2
1957 | vite: 6.0.5(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1)
1958 | transitivePeerDependencies:
1959 | - supports-color
1960 |
1961 | acorn-jsx@5.3.2(acorn@8.14.0):
1962 | dependencies:
1963 | acorn: 8.14.0
1964 |
1965 | acorn@8.14.0: {}
1966 |
1967 | ajv@6.12.6:
1968 | dependencies:
1969 | fast-deep-equal: 3.1.3
1970 | fast-json-stable-stringify: 2.1.0
1971 | json-schema-traverse: 0.4.1
1972 | uri-js: 4.4.1
1973 |
1974 | ansi-regex@5.0.1: {}
1975 |
1976 | ansi-regex@6.1.0: {}
1977 |
1978 | ansi-styles@4.3.0:
1979 | dependencies:
1980 | color-convert: 2.0.1
1981 |
1982 | ansi-styles@6.2.1: {}
1983 |
1984 | any-promise@1.3.0: {}
1985 |
1986 | anymatch@3.1.3:
1987 | dependencies:
1988 | normalize-path: 3.0.0
1989 | picomatch: 2.3.1
1990 |
1991 | arg@5.0.2: {}
1992 |
1993 | argparse@2.0.1: {}
1994 |
1995 | autoprefixer@10.4.20(postcss@8.4.49):
1996 | dependencies:
1997 | browserslist: 4.24.3
1998 | caniuse-lite: 1.0.30001690
1999 | fraction.js: 4.3.7
2000 | normalize-range: 0.1.2
2001 | picocolors: 1.1.1
2002 | postcss: 8.4.49
2003 | postcss-value-parser: 4.2.0
2004 |
2005 | balanced-match@1.0.2: {}
2006 |
2007 | binary-extensions@2.3.0: {}
2008 |
2009 | brace-expansion@1.1.11:
2010 | dependencies:
2011 | balanced-match: 1.0.2
2012 | concat-map: 0.0.1
2013 |
2014 | brace-expansion@2.0.1:
2015 | dependencies:
2016 | balanced-match: 1.0.2
2017 |
2018 | braces@3.0.3:
2019 | dependencies:
2020 | fill-range: 7.1.1
2021 |
2022 | browserslist@4.24.3:
2023 | dependencies:
2024 | caniuse-lite: 1.0.30001690
2025 | electron-to-chromium: 1.5.76
2026 | node-releases: 2.0.19
2027 | update-browserslist-db: 1.1.1(browserslist@4.24.3)
2028 |
2029 | callsites@3.1.0: {}
2030 |
2031 | camelcase-css@2.0.1: {}
2032 |
2033 | caniuse-lite@1.0.30001690: {}
2034 |
2035 | chalk@4.1.2:
2036 | dependencies:
2037 | ansi-styles: 4.3.0
2038 | supports-color: 7.2.0
2039 |
2040 | chokidar@3.6.0:
2041 | dependencies:
2042 | anymatch: 3.1.3
2043 | braces: 3.0.3
2044 | glob-parent: 5.1.2
2045 | is-binary-path: 2.1.0
2046 | is-glob: 4.0.3
2047 | normalize-path: 3.0.0
2048 | readdirp: 3.6.0
2049 | optionalDependencies:
2050 | fsevents: 2.3.3
2051 |
2052 | class-variance-authority@0.7.1:
2053 | dependencies:
2054 | clsx: 2.1.1
2055 |
2056 | clsx@2.1.1: {}
2057 |
2058 | color-convert@2.0.1:
2059 | dependencies:
2060 | color-name: 1.1.4
2061 |
2062 | color-name@1.1.4: {}
2063 |
2064 | commander@4.1.1: {}
2065 |
2066 | concat-map@0.0.1: {}
2067 |
2068 | convert-source-map@2.0.0: {}
2069 |
2070 | cross-spawn@7.0.6:
2071 | dependencies:
2072 | path-key: 3.1.1
2073 | shebang-command: 2.0.0
2074 | which: 2.0.2
2075 |
2076 | cssesc@3.0.0: {}
2077 |
2078 | csstype@3.1.3: {}
2079 |
2080 | debounce@1.2.1: {}
2081 |
2082 | debug@4.4.0:
2083 | dependencies:
2084 | ms: 2.1.3
2085 |
2086 | deep-is@0.1.4: {}
2087 |
2088 | didyoumean@1.2.2: {}
2089 |
2090 | dlv@1.1.3: {}
2091 |
2092 | eastasianwidth@0.2.0: {}
2093 |
2094 | electron-to-chromium@1.5.76: {}
2095 |
2096 | emoji-regex@8.0.0: {}
2097 |
2098 | emoji-regex@9.2.2: {}
2099 |
2100 | esbuild@0.24.0:
2101 | optionalDependencies:
2102 | '@esbuild/aix-ppc64': 0.24.0
2103 | '@esbuild/android-arm': 0.24.0
2104 | '@esbuild/android-arm64': 0.24.0
2105 | '@esbuild/android-x64': 0.24.0
2106 | '@esbuild/darwin-arm64': 0.24.0
2107 | '@esbuild/darwin-x64': 0.24.0
2108 | '@esbuild/freebsd-arm64': 0.24.0
2109 | '@esbuild/freebsd-x64': 0.24.0
2110 | '@esbuild/linux-arm': 0.24.0
2111 | '@esbuild/linux-arm64': 0.24.0
2112 | '@esbuild/linux-ia32': 0.24.0
2113 | '@esbuild/linux-loong64': 0.24.0
2114 | '@esbuild/linux-mips64el': 0.24.0
2115 | '@esbuild/linux-ppc64': 0.24.0
2116 | '@esbuild/linux-riscv64': 0.24.0
2117 | '@esbuild/linux-s390x': 0.24.0
2118 | '@esbuild/linux-x64': 0.24.0
2119 | '@esbuild/netbsd-x64': 0.24.0
2120 | '@esbuild/openbsd-arm64': 0.24.0
2121 | '@esbuild/openbsd-x64': 0.24.0
2122 | '@esbuild/sunos-x64': 0.24.0
2123 | '@esbuild/win32-arm64': 0.24.0
2124 | '@esbuild/win32-ia32': 0.24.0
2125 | '@esbuild/win32-x64': 0.24.0
2126 |
2127 | escalade@3.2.0: {}
2128 |
2129 | escape-string-regexp@4.0.0: {}
2130 |
2131 | eslint-plugin-react-hooks@5.1.0(eslint@9.17.0(jiti@1.21.7)):
2132 | dependencies:
2133 | eslint: 9.17.0(jiti@1.21.7)
2134 |
2135 | eslint-plugin-react-refresh@0.4.16(eslint@9.17.0(jiti@1.21.7)):
2136 | dependencies:
2137 | eslint: 9.17.0(jiti@1.21.7)
2138 |
2139 | eslint-scope@8.2.0:
2140 | dependencies:
2141 | esrecurse: 4.3.0
2142 | estraverse: 5.3.0
2143 |
2144 | eslint-visitor-keys@3.4.3: {}
2145 |
2146 | eslint-visitor-keys@4.2.0: {}
2147 |
2148 | eslint@9.17.0(jiti@1.21.7):
2149 | dependencies:
2150 | '@eslint-community/eslint-utils': 4.4.1(eslint@9.17.0(jiti@1.21.7))
2151 | '@eslint-community/regexpp': 4.12.1
2152 | '@eslint/config-array': 0.19.1
2153 | '@eslint/core': 0.9.1
2154 | '@eslint/eslintrc': 3.2.0
2155 | '@eslint/js': 9.17.0
2156 | '@eslint/plugin-kit': 0.2.4
2157 | '@humanfs/node': 0.16.6
2158 | '@humanwhocodes/module-importer': 1.0.1
2159 | '@humanwhocodes/retry': 0.4.1
2160 | '@types/estree': 1.0.6
2161 | '@types/json-schema': 7.0.15
2162 | ajv: 6.12.6
2163 | chalk: 4.1.2
2164 | cross-spawn: 7.0.6
2165 | debug: 4.4.0
2166 | escape-string-regexp: 4.0.0
2167 | eslint-scope: 8.2.0
2168 | eslint-visitor-keys: 4.2.0
2169 | espree: 10.3.0
2170 | esquery: 1.6.0
2171 | esutils: 2.0.3
2172 | fast-deep-equal: 3.1.3
2173 | file-entry-cache: 8.0.0
2174 | find-up: 5.0.0
2175 | glob-parent: 6.0.2
2176 | ignore: 5.3.2
2177 | imurmurhash: 0.1.4
2178 | is-glob: 4.0.3
2179 | json-stable-stringify-without-jsonify: 1.0.1
2180 | lodash.merge: 4.6.2
2181 | minimatch: 3.1.2
2182 | natural-compare: 1.4.0
2183 | optionator: 0.9.4
2184 | optionalDependencies:
2185 | jiti: 1.21.7
2186 | transitivePeerDependencies:
2187 | - supports-color
2188 |
2189 | espree@10.3.0:
2190 | dependencies:
2191 | acorn: 8.14.0
2192 | acorn-jsx: 5.3.2(acorn@8.14.0)
2193 | eslint-visitor-keys: 4.2.0
2194 |
2195 | esquery@1.6.0:
2196 | dependencies:
2197 | estraverse: 5.3.0
2198 |
2199 | esrecurse@4.3.0:
2200 | dependencies:
2201 | estraverse: 5.3.0
2202 |
2203 | estraverse@5.3.0: {}
2204 |
2205 | esutils@2.0.3: {}
2206 |
2207 | fast-deep-equal@3.1.3: {}
2208 |
2209 | fast-glob@3.3.2:
2210 | dependencies:
2211 | '@nodelib/fs.stat': 2.0.5
2212 | '@nodelib/fs.walk': 1.2.8
2213 | glob-parent: 5.1.2
2214 | merge2: 1.4.1
2215 | micromatch: 4.0.8
2216 |
2217 | fast-json-stable-stringify@2.1.0: {}
2218 |
2219 | fast-levenshtein@2.0.6: {}
2220 |
2221 | fastq@1.18.0:
2222 | dependencies:
2223 | reusify: 1.0.4
2224 |
2225 | file-entry-cache@8.0.0:
2226 | dependencies:
2227 | flat-cache: 4.0.1
2228 |
2229 | fill-range@7.1.1:
2230 | dependencies:
2231 | to-regex-range: 5.0.1
2232 |
2233 | find-up@5.0.0:
2234 | dependencies:
2235 | locate-path: 6.0.0
2236 | path-exists: 4.0.0
2237 |
2238 | flat-cache@4.0.1:
2239 | dependencies:
2240 | flatted: 3.3.2
2241 | keyv: 4.5.4
2242 |
2243 | flatted@3.3.2: {}
2244 |
2245 | foreground-child@3.3.0:
2246 | dependencies:
2247 | cross-spawn: 7.0.6
2248 | signal-exit: 4.1.0
2249 |
2250 | fraction.js@4.3.7: {}
2251 |
2252 | framer-motion@11.15.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
2253 | dependencies:
2254 | motion-dom: 11.14.3
2255 | motion-utils: 11.14.3
2256 | tslib: 2.8.1
2257 | optionalDependencies:
2258 | react: 18.3.1
2259 | react-dom: 18.3.1(react@18.3.1)
2260 |
2261 | fsevents@2.3.3:
2262 | optional: true
2263 |
2264 | function-bind@1.1.2: {}
2265 |
2266 | gensync@1.0.0-beta.2: {}
2267 |
2268 | glob-parent@5.1.2:
2269 | dependencies:
2270 | is-glob: 4.0.3
2271 |
2272 | glob-parent@6.0.2:
2273 | dependencies:
2274 | is-glob: 4.0.3
2275 |
2276 | glob@10.4.5:
2277 | dependencies:
2278 | foreground-child: 3.3.0
2279 | jackspeak: 3.4.3
2280 | minimatch: 9.0.5
2281 | minipass: 7.1.2
2282 | package-json-from-dist: 1.0.1
2283 | path-scurry: 1.11.1
2284 |
2285 | globals@11.12.0: {}
2286 |
2287 | globals@14.0.0: {}
2288 |
2289 | globals@15.14.0: {}
2290 |
2291 | graphemer@1.4.0: {}
2292 |
2293 | has-flag@4.0.0: {}
2294 |
2295 | hasown@2.0.2:
2296 | dependencies:
2297 | function-bind: 1.1.2
2298 |
2299 | ignore@5.3.2: {}
2300 |
2301 | import-fresh@3.3.0:
2302 | dependencies:
2303 | parent-module: 1.0.1
2304 | resolve-from: 4.0.0
2305 |
2306 | imurmurhash@0.1.4: {}
2307 |
2308 | is-binary-path@2.1.0:
2309 | dependencies:
2310 | binary-extensions: 2.3.0
2311 |
2312 | is-core-module@2.16.1:
2313 | dependencies:
2314 | hasown: 2.0.2
2315 |
2316 | is-extglob@2.1.1: {}
2317 |
2318 | is-fullwidth-code-point@3.0.0: {}
2319 |
2320 | is-glob@4.0.3:
2321 | dependencies:
2322 | is-extglob: 2.1.1
2323 |
2324 | is-number@7.0.0: {}
2325 |
2326 | isexe@2.0.0: {}
2327 |
2328 | jackspeak@3.4.3:
2329 | dependencies:
2330 | '@isaacs/cliui': 8.0.2
2331 | optionalDependencies:
2332 | '@pkgjs/parseargs': 0.11.0
2333 |
2334 | jiti@1.21.7: {}
2335 |
2336 | js-tokens@4.0.0: {}
2337 |
2338 | js-yaml@4.1.0:
2339 | dependencies:
2340 | argparse: 2.0.1
2341 |
2342 | jsesc@3.1.0: {}
2343 |
2344 | json-buffer@3.0.1: {}
2345 |
2346 | json-schema-traverse@0.4.1: {}
2347 |
2348 | json-stable-stringify-without-jsonify@1.0.1: {}
2349 |
2350 | json5@2.2.3: {}
2351 |
2352 | keyv@4.5.4:
2353 | dependencies:
2354 | json-buffer: 3.0.1
2355 |
2356 | levn@0.4.1:
2357 | dependencies:
2358 | prelude-ls: 1.2.1
2359 | type-check: 0.4.0
2360 |
2361 | lilconfig@3.1.3: {}
2362 |
2363 | lines-and-columns@1.2.4: {}
2364 |
2365 | locate-path@6.0.0:
2366 | dependencies:
2367 | p-locate: 5.0.0
2368 |
2369 | lodash.merge@4.6.2: {}
2370 |
2371 | loose-envify@1.4.0:
2372 | dependencies:
2373 | js-tokens: 4.0.0
2374 |
2375 | lru-cache@10.4.3: {}
2376 |
2377 | lru-cache@5.1.1:
2378 | dependencies:
2379 | yallist: 3.1.1
2380 |
2381 | lucide-react@0.469.0(react@18.3.1):
2382 | dependencies:
2383 | react: 18.3.1
2384 |
2385 | merge2@1.4.1: {}
2386 |
2387 | micromatch@4.0.8:
2388 | dependencies:
2389 | braces: 3.0.3
2390 | picomatch: 2.3.1
2391 |
2392 | minimatch@3.1.2:
2393 | dependencies:
2394 | brace-expansion: 1.1.11
2395 |
2396 | minimatch@9.0.5:
2397 | dependencies:
2398 | brace-expansion: 2.0.1
2399 |
2400 | minipass@7.1.2: {}
2401 |
2402 | motion-dom@11.14.3: {}
2403 |
2404 | motion-utils@11.14.3: {}
2405 |
2406 | motion@11.15.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
2407 | dependencies:
2408 | framer-motion: 11.15.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
2409 | tslib: 2.8.1
2410 | optionalDependencies:
2411 | react: 18.3.1
2412 | react-dom: 18.3.1(react@18.3.1)
2413 |
2414 | ms@2.1.3: {}
2415 |
2416 | mz@2.7.0:
2417 | dependencies:
2418 | any-promise: 1.3.0
2419 | object-assign: 4.1.1
2420 | thenify-all: 1.6.0
2421 |
2422 | nanoid@3.3.8: {}
2423 |
2424 | natural-compare@1.4.0: {}
2425 |
2426 | node-releases@2.0.19: {}
2427 |
2428 | normalize-path@3.0.0: {}
2429 |
2430 | normalize-range@0.1.2: {}
2431 |
2432 | object-assign@4.1.1: {}
2433 |
2434 | object-hash@3.0.0: {}
2435 |
2436 | optionator@0.9.4:
2437 | dependencies:
2438 | deep-is: 0.1.4
2439 | fast-levenshtein: 2.0.6
2440 | levn: 0.4.1
2441 | prelude-ls: 1.2.1
2442 | type-check: 0.4.0
2443 | word-wrap: 1.2.5
2444 |
2445 | p-limit@3.1.0:
2446 | dependencies:
2447 | yocto-queue: 0.1.0
2448 |
2449 | p-locate@5.0.0:
2450 | dependencies:
2451 | p-limit: 3.1.0
2452 |
2453 | package-json-from-dist@1.0.1: {}
2454 |
2455 | parent-module@1.0.1:
2456 | dependencies:
2457 | callsites: 3.1.0
2458 |
2459 | path-exists@4.0.0: {}
2460 |
2461 | path-key@3.1.1: {}
2462 |
2463 | path-parse@1.0.7: {}
2464 |
2465 | path-scurry@1.11.1:
2466 | dependencies:
2467 | lru-cache: 10.4.3
2468 | minipass: 7.1.2
2469 |
2470 | picocolors@1.1.1: {}
2471 |
2472 | picomatch@2.3.1: {}
2473 |
2474 | pify@2.3.0: {}
2475 |
2476 | pirates@4.0.6: {}
2477 |
2478 | postcss-import@15.1.0(postcss@8.4.49):
2479 | dependencies:
2480 | postcss: 8.4.49
2481 | postcss-value-parser: 4.2.0
2482 | read-cache: 1.0.0
2483 | resolve: 1.22.10
2484 |
2485 | postcss-js@4.0.1(postcss@8.4.49):
2486 | dependencies:
2487 | camelcase-css: 2.0.1
2488 | postcss: 8.4.49
2489 |
2490 | postcss-load-config@4.0.2(postcss@8.4.49):
2491 | dependencies:
2492 | lilconfig: 3.1.3
2493 | yaml: 2.6.1
2494 | optionalDependencies:
2495 | postcss: 8.4.49
2496 |
2497 | postcss-nested@6.2.0(postcss@8.4.49):
2498 | dependencies:
2499 | postcss: 8.4.49
2500 | postcss-selector-parser: 6.1.2
2501 |
2502 | postcss-selector-parser@6.1.2:
2503 | dependencies:
2504 | cssesc: 3.0.0
2505 | util-deprecate: 1.0.2
2506 |
2507 | postcss-value-parser@4.2.0: {}
2508 |
2509 | postcss@8.4.49:
2510 | dependencies:
2511 | nanoid: 3.3.8
2512 | picocolors: 1.1.1
2513 | source-map-js: 1.2.1
2514 |
2515 | prelude-ls@1.2.1: {}
2516 |
2517 | prism-react-renderer@2.4.1(react@18.3.1):
2518 | dependencies:
2519 | '@types/prismjs': 1.26.5
2520 | clsx: 2.1.1
2521 | react: 18.3.1
2522 |
2523 | punycode@2.3.1: {}
2524 |
2525 | queue-microtask@1.2.3: {}
2526 |
2527 | react-dom@18.3.1(react@18.3.1):
2528 | dependencies:
2529 | loose-envify: 1.4.0
2530 | react: 18.3.1
2531 | scheduler: 0.23.2
2532 |
2533 | react-refresh@0.14.2: {}
2534 |
2535 | react-use-measure@2.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
2536 | dependencies:
2537 | debounce: 1.2.1
2538 | react: 18.3.1
2539 | react-dom: 18.3.1(react@18.3.1)
2540 |
2541 | react@18.3.1:
2542 | dependencies:
2543 | loose-envify: 1.4.0
2544 |
2545 | read-cache@1.0.0:
2546 | dependencies:
2547 | pify: 2.3.0
2548 |
2549 | readdirp@3.6.0:
2550 | dependencies:
2551 | picomatch: 2.3.1
2552 |
2553 | resolve-from@4.0.0: {}
2554 |
2555 | resolve@1.22.10:
2556 | dependencies:
2557 | is-core-module: 2.16.1
2558 | path-parse: 1.0.7
2559 | supports-preserve-symlinks-flag: 1.0.0
2560 |
2561 | reusify@1.0.4: {}
2562 |
2563 | rollup@4.29.1:
2564 | dependencies:
2565 | '@types/estree': 1.0.6
2566 | optionalDependencies:
2567 | '@rollup/rollup-android-arm-eabi': 4.29.1
2568 | '@rollup/rollup-android-arm64': 4.29.1
2569 | '@rollup/rollup-darwin-arm64': 4.29.1
2570 | '@rollup/rollup-darwin-x64': 4.29.1
2571 | '@rollup/rollup-freebsd-arm64': 4.29.1
2572 | '@rollup/rollup-freebsd-x64': 4.29.1
2573 | '@rollup/rollup-linux-arm-gnueabihf': 4.29.1
2574 | '@rollup/rollup-linux-arm-musleabihf': 4.29.1
2575 | '@rollup/rollup-linux-arm64-gnu': 4.29.1
2576 | '@rollup/rollup-linux-arm64-musl': 4.29.1
2577 | '@rollup/rollup-linux-loongarch64-gnu': 4.29.1
2578 | '@rollup/rollup-linux-powerpc64le-gnu': 4.29.1
2579 | '@rollup/rollup-linux-riscv64-gnu': 4.29.1
2580 | '@rollup/rollup-linux-s390x-gnu': 4.29.1
2581 | '@rollup/rollup-linux-x64-gnu': 4.29.1
2582 | '@rollup/rollup-linux-x64-musl': 4.29.1
2583 | '@rollup/rollup-win32-arm64-msvc': 4.29.1
2584 | '@rollup/rollup-win32-ia32-msvc': 4.29.1
2585 | '@rollup/rollup-win32-x64-msvc': 4.29.1
2586 | fsevents: 2.3.3
2587 |
2588 | run-parallel@1.2.0:
2589 | dependencies:
2590 | queue-microtask: 1.2.3
2591 |
2592 | scheduler@0.23.2:
2593 | dependencies:
2594 | loose-envify: 1.4.0
2595 |
2596 | semver@6.3.1: {}
2597 |
2598 | semver@7.6.3: {}
2599 |
2600 | shebang-command@2.0.0:
2601 | dependencies:
2602 | shebang-regex: 3.0.0
2603 |
2604 | shebang-regex@3.0.0: {}
2605 |
2606 | signal-exit@4.1.0: {}
2607 |
2608 | source-map-js@1.2.1: {}
2609 |
2610 | string-width@4.2.3:
2611 | dependencies:
2612 | emoji-regex: 8.0.0
2613 | is-fullwidth-code-point: 3.0.0
2614 | strip-ansi: 6.0.1
2615 |
2616 | string-width@5.1.2:
2617 | dependencies:
2618 | eastasianwidth: 0.2.0
2619 | emoji-regex: 9.2.2
2620 | strip-ansi: 7.1.0
2621 |
2622 | strip-ansi@6.0.1:
2623 | dependencies:
2624 | ansi-regex: 5.0.1
2625 |
2626 | strip-ansi@7.1.0:
2627 | dependencies:
2628 | ansi-regex: 6.1.0
2629 |
2630 | strip-json-comments@3.1.1: {}
2631 |
2632 | sucrase@3.35.0:
2633 | dependencies:
2634 | '@jridgewell/gen-mapping': 0.3.8
2635 | commander: 4.1.1
2636 | glob: 10.4.5
2637 | lines-and-columns: 1.2.4
2638 | mz: 2.7.0
2639 | pirates: 4.0.6
2640 | ts-interface-checker: 0.1.13
2641 |
2642 | supports-color@7.2.0:
2643 | dependencies:
2644 | has-flag: 4.0.0
2645 |
2646 | supports-preserve-symlinks-flag@1.0.0: {}
2647 |
2648 | tailwind-merge@2.6.0: {}
2649 |
2650 | tailwindcss-animate@1.0.7(tailwindcss@3.4.17):
2651 | dependencies:
2652 | tailwindcss: 3.4.17
2653 |
2654 | tailwindcss@3.4.17:
2655 | dependencies:
2656 | '@alloc/quick-lru': 5.2.0
2657 | arg: 5.0.2
2658 | chokidar: 3.6.0
2659 | didyoumean: 1.2.2
2660 | dlv: 1.1.3
2661 | fast-glob: 3.3.2
2662 | glob-parent: 6.0.2
2663 | is-glob: 4.0.3
2664 | jiti: 1.21.7
2665 | lilconfig: 3.1.3
2666 | micromatch: 4.0.8
2667 | normalize-path: 3.0.0
2668 | object-hash: 3.0.0
2669 | picocolors: 1.1.1
2670 | postcss: 8.4.49
2671 | postcss-import: 15.1.0(postcss@8.4.49)
2672 | postcss-js: 4.0.1(postcss@8.4.49)
2673 | postcss-load-config: 4.0.2(postcss@8.4.49)
2674 | postcss-nested: 6.2.0(postcss@8.4.49)
2675 | postcss-selector-parser: 6.1.2
2676 | resolve: 1.22.10
2677 | sucrase: 3.35.0
2678 | transitivePeerDependencies:
2679 | - ts-node
2680 |
2681 | thenify-all@1.6.0:
2682 | dependencies:
2683 | thenify: 3.3.1
2684 |
2685 | thenify@3.3.1:
2686 | dependencies:
2687 | any-promise: 1.3.0
2688 |
2689 | to-regex-range@5.0.1:
2690 | dependencies:
2691 | is-number: 7.0.0
2692 |
2693 | ts-api-utils@1.4.3(typescript@5.6.3):
2694 | dependencies:
2695 | typescript: 5.6.3
2696 |
2697 | ts-interface-checker@0.1.13: {}
2698 |
2699 | tslib@2.8.1: {}
2700 |
2701 | type-check@0.4.0:
2702 | dependencies:
2703 | prelude-ls: 1.2.1
2704 |
2705 | typescript-eslint@8.18.2(eslint@9.17.0(jiti@1.21.7))(typescript@5.6.3):
2706 | dependencies:
2707 | '@typescript-eslint/eslint-plugin': 8.18.2(@typescript-eslint/parser@8.18.2(eslint@9.17.0(jiti@1.21.7))(typescript@5.6.3))(eslint@9.17.0(jiti@1.21.7))(typescript@5.6.3)
2708 | '@typescript-eslint/parser': 8.18.2(eslint@9.17.0(jiti@1.21.7))(typescript@5.6.3)
2709 | '@typescript-eslint/utils': 8.18.2(eslint@9.17.0(jiti@1.21.7))(typescript@5.6.3)
2710 | eslint: 9.17.0(jiti@1.21.7)
2711 | typescript: 5.6.3
2712 | transitivePeerDependencies:
2713 | - supports-color
2714 |
2715 | typescript@5.6.3: {}
2716 |
2717 | undici-types@6.20.0: {}
2718 |
2719 | update-browserslist-db@1.1.1(browserslist@4.24.3):
2720 | dependencies:
2721 | browserslist: 4.24.3
2722 | escalade: 3.2.0
2723 | picocolors: 1.1.1
2724 |
2725 | uri-js@4.4.1:
2726 | dependencies:
2727 | punycode: 2.3.1
2728 |
2729 | util-deprecate@1.0.2: {}
2730 |
2731 | vite@6.0.5(@types/node@22.10.2)(jiti@1.21.7)(yaml@2.6.1):
2732 | dependencies:
2733 | esbuild: 0.24.0
2734 | postcss: 8.4.49
2735 | rollup: 4.29.1
2736 | optionalDependencies:
2737 | '@types/node': 22.10.2
2738 | fsevents: 2.3.3
2739 | jiti: 1.21.7
2740 | yaml: 2.6.1
2741 |
2742 | which@2.0.2:
2743 | dependencies:
2744 | isexe: 2.0.0
2745 |
2746 | word-wrap@1.2.5: {}
2747 |
2748 | wrap-ansi@7.0.0:
2749 | dependencies:
2750 | ansi-styles: 4.3.0
2751 | string-width: 4.2.3
2752 | strip-ansi: 6.0.1
2753 |
2754 | wrap-ansi@8.1.0:
2755 | dependencies:
2756 | ansi-styles: 6.2.1
2757 | string-width: 5.1.2
2758 | strip-ansi: 7.1.0
2759 |
2760 | yallist@3.1.1: {}
2761 |
2762 | yaml@2.6.1: {}
2763 |
2764 | yocto-queue@0.1.0: {}
2765 |
--------------------------------------------------------------------------------