├── .gitignore ├── .npmrc ├── .prettierignore ├── .prettierrc ├── LICENSE ├── README.md ├── apps └── nextjs │ ├── README.md │ ├── eslint.config.mjs │ ├── next-env.d.ts │ ├── next.config.ts │ ├── package.json │ ├── postcss.config.mjs │ ├── src │ └── app │ │ ├── favicon.ico │ │ ├── globals.css │ │ ├── layout.tsx │ │ └── page.tsx │ └── tsconfig.json ├── package.json ├── packages ├── eslint-config │ ├── README.md │ ├── base.js │ ├── next.js │ ├── package.json │ └── react-internal.js ├── typescript-config │ ├── README.md │ ├── base.json │ ├── nextjs.json │ ├── package.json │ └── react-library.json └── ui │ ├── README.md │ ├── components.json │ ├── eslint.config.mjs │ ├── package.json │ ├── postcss.config.mjs │ ├── src │ ├── components │ │ └── base │ │ │ └── button.tsx │ ├── lib │ │ └── utils.ts │ └── styles │ │ └── default.css │ └── tsconfig.json ├── pnpm-lock.yaml ├── pnpm-workspace.yaml └── turbo.json /.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # Dependencies 4 | node_modules 5 | .pnp 6 | .pnp.js 7 | 8 | # Local env files 9 | .env 10 | .env.local 11 | .env.development.local 12 | .env.test.local 13 | .env.production.local 14 | 15 | # Testing 16 | coverage 17 | 18 | # Turbo 19 | .turbo 20 | 21 | # Vercel 22 | .vercel 23 | 24 | # Build Outputs 25 | .next/ 26 | out/ 27 | build 28 | dist 29 | 30 | 31 | # Debug 32 | npm-debug.log* 33 | yarn-debug.log* 34 | yarn-error.log* 35 | 36 | # Misc 37 | .DS_Store 38 | *.pem 39 | .vscode 40 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bytaesu/turborepo-shadcn-tailwind-v4/6c0a28f7ead979e9f7f6cba03aa10e26f7a40d55/.npmrc -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | .expo 2 | .next 3 | node_modules 4 | package-lock.json 5 | docker* 6 | apps/**/out -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "printWidth": 100, 3 | "tabWidth": 2, 4 | "useTabs": false, 5 | "semi": true, 6 | "singleQuote": true, 7 | "trailingComma": "es5", 8 | "bracketSpacing": true, 9 | "arrowParens": "always", 10 | "endOfLine": "lf" 11 | } -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2025 Taesu 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Boilerplate: Turborepo + Shadcn/ui + Tailwind CSS v4 + Next.js 2 | 3 | ## Introduction 4 | 5 | - I created this setup to share after completing the migration process from Tailwind CSS v3 to v4 in a monorepo structure, as I found it difficult to find documentation on this. It offers a ready-to-use configuration with Turborepo, Tailwind CSS v4, Shadcn/ui, and Next.js. 6 | 7 | - Since I can’t always keep this up to date, please adjust versions like `react`, `next` and others as needed. 8 | 9 | - Please use this with a basic understanding of Monorepo concepts using Turborepo. 10 | [-> Turborepo Docs](https://turborepo.com/docs) 11 | 12 | ## Getting Started 13 | 14 | ```bash 15 | # Clone the repository 16 | git clone https://github.com/bytaesu/turborepo-shadcn-tailwind-v4.git 17 | 18 | # Install dependencies 19 | pnpm install 20 | 21 | # Run the development server 22 | turbo dev --filter nextjs 23 | 24 | # Add new shadcn component 25 | cd packages/ui 26 | pnpm dlx shadcn@latest add [component] 27 | ``` 28 | 29 | or 30 | 31 | Use this button: 32 | 33 | [img](https://github.com/new?template_name=turborepo-shadcn-tailwind-v4&template_owner=bytaesu) 34 | 35 | ## Structure 36 | 37 | ``` 38 | . 39 | ├── apps 40 | │ └── nextjs # Next.js application 41 | │ ├── src 42 | │ │ ├── app 43 | │ │ │ └── globals.css # Critical configuration here 44 | │ │ └── ... 45 | │ └── ... 46 | ├── packages 47 | │ ├── eslint-config # ESLint configuration 48 | │ ├── typescript-config # TypeScript configuration 49 | │ ├── ui # Internal UI package (including shadcn) 50 | │ ├── src 51 | │ │ ├── components 52 | │ │ ├── hooks 53 | │ │ ├── lib 54 | │ │ └── styles 55 | │ │── components.json # Shadcn CLI configuration 56 | │ └── ... 57 | │ └── ... 58 | └── ... 59 | ``` 60 | 61 | ## Critical Configuration 62 | 63 | [-> Tailwind CSS Docs](https://tailwindcss.com/docs/detecting-classes-in-source-files) 64 | 65 | The most important part of this setup is the `/src/app/globals.css` file in the Next.js application. Proper configuration of the `@source` directive is essential for the UI package to work correctly: 66 | 67 | ```css 68 | @import 'tailwindcss'; 69 | @import '@repo/ui/styles/default.css'; 70 | 71 | @source '../../node_modules/@repo/ui'; 72 | ``` 73 | 74 | ## License 75 | 76 | MIT 77 | -------------------------------------------------------------------------------- /apps/nextjs/README.md: -------------------------------------------------------------------------------- 1 | `nextjs` 2 | -------------------------------------------------------------------------------- /apps/nextjs/eslint.config.mjs: -------------------------------------------------------------------------------- 1 | import { nextJsConfig } from "@repo/eslint-config/next"; 2 | 3 | /** @type {import("eslint").Linter.Config} */ 4 | export default nextJsConfig; 5 | -------------------------------------------------------------------------------- /apps/nextjs/next-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | 4 | // NOTE: This file should not be edited 5 | // see https://nextjs.org/docs/app/api-reference/config/typescript for more information. 6 | -------------------------------------------------------------------------------- /apps/nextjs/next.config.ts: -------------------------------------------------------------------------------- 1 | import type { NextConfig } from 'next'; 2 | 3 | const nextConfig: NextConfig = { 4 | /* config options here */ 5 | }; 6 | 7 | export default nextConfig; 8 | -------------------------------------------------------------------------------- /apps/nextjs/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nextjs", 3 | "version": "0.1.0", 4 | "type": "module", 5 | "private": true, 6 | "scripts": { 7 | "dev": "next dev --turbopack", 8 | "build": "next build", 9 | "start": "next start", 10 | "lint": "next lint --max-warnings 0", 11 | "check-types": "tsc --noEmit" 12 | }, 13 | "dependencies": { 14 | "@repo/ui": "workspace:*", 15 | "next": "^15.2.4", 16 | "react": "^19.0.0", 17 | "react-dom": "^19.0.0" 18 | }, 19 | "devDependencies": { 20 | "@repo/eslint-config": "workspace:*", 21 | "@repo/typescript-config": "workspace:*", 22 | "@tailwindcss/postcss": "^4", 23 | "@types/node": "^22", 24 | "@types/react": "^19", 25 | "@types/react-dom": "19", 26 | "eslint": "^9", 27 | "tailwindcss": "^4", 28 | "typescript": "^5" 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /apps/nextjs/postcss.config.mjs: -------------------------------------------------------------------------------- 1 | export { default } from "@repo/ui/postcss.config"; -------------------------------------------------------------------------------- /apps/nextjs/src/app/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bytaesu/turborepo-shadcn-tailwind-v4/6c0a28f7ead979e9f7f6cba03aa10e26f7a40d55/apps/nextjs/src/app/favicon.ico -------------------------------------------------------------------------------- /apps/nextjs/src/app/globals.css: -------------------------------------------------------------------------------- 1 | @import 'tailwindcss'; 2 | @import '@repo/ui/styles/default.css'; 3 | 4 | /** 5 | * Tailwind CSS official document: 6 | * https://tailwindcss.com/docs/detecting-classes-in-source-files 7 | * 8 | * if you ever need to explicitly add a source that's excluded by default, 9 | * you can always add it with the @source directive. 10 | */ 11 | @source '../../node_modules/@repo/ui'; 12 | -------------------------------------------------------------------------------- /apps/nextjs/src/app/layout.tsx: -------------------------------------------------------------------------------- 1 | import type { Metadata } from 'next'; 2 | import './globals.css'; 3 | 4 | export const metadata: Metadata = { 5 | title: 'turborepo-shadcn-tailwind-v4', 6 | description: 'Turborepo-Shadcn-Tailwind CSS v4 Boilerplate', 7 | }; 8 | 9 | export default function RootLayout({ 10 | children, 11 | }: Readonly<{ 12 | children: React.ReactNode; 13 | }>) { 14 | return ( 15 | 16 | {children} 17 | 18 | ); 19 | } 20 | -------------------------------------------------------------------------------- /apps/nextjs/src/app/page.tsx: -------------------------------------------------------------------------------- 1 | 'use client'; 2 | 3 | import { useEffect, useRef, useState } from 'react'; 4 | import { Button } from '@repo/ui/components/base/button'; 5 | import { cn } from '@repo/ui/lib/utils'; 6 | 7 | export default function DemoPage() { 8 | return ( 9 | <> 10 | 17 | 18 |
19 | 20 |
21 | 22 | ); 23 | } 24 | 25 | /*------------------------------------------ 26 | Internal components 27 | ------------------------------------------*/ 28 | const DemoCard = () => { 29 | return ( 30 |
31 |

32 | Turborepo 33 | Shadcn/ui 34 | Tailwind CSS v4 35 |

36 | 37 |

Here is your shadcn button.

38 | 39 |
40 | ); 41 | }; 42 | 43 | interface MousePosition { 44 | x: number; 45 | y: number; 46 | } 47 | 48 | function MousePosition(): MousePosition { 49 | const [mousePosition, setMousePosition] = useState({ 50 | x: 0, 51 | y: 0, 52 | }); 53 | 54 | useEffect(() => { 55 | const handleMouseMove = (event: MouseEvent) => { 56 | setMousePosition({ x: event.clientX, y: event.clientY }); 57 | }; 58 | 59 | window.addEventListener('mousemove', handleMouseMove); 60 | 61 | return () => { 62 | window.removeEventListener('mousemove', handleMouseMove); 63 | }; 64 | }, []); 65 | 66 | return mousePosition; 67 | } 68 | 69 | interface ParticlesProps { 70 | className?: string; 71 | quantity?: number; 72 | staticity?: number; 73 | ease?: number; 74 | size?: number; 75 | refresh?: boolean; 76 | color?: string; 77 | vx?: number; 78 | vy?: number; 79 | } 80 | function hexToRgb(hex: string): number[] { 81 | hex = hex.replace('#', ''); 82 | 83 | if (hex.length === 3) { 84 | hex = hex 85 | .split('') 86 | .map((char) => char + char) 87 | .join(''); 88 | } 89 | 90 | const hexInt = parseInt(hex, 16); 91 | const red = (hexInt >> 16) & 255; 92 | const green = (hexInt >> 8) & 255; 93 | const blue = hexInt & 255; 94 | return [red, green, blue]; 95 | } 96 | 97 | const Particles: React.FC = ({ 98 | className = '', 99 | quantity = 100, 100 | staticity = 50, 101 | ease = 50, 102 | size = 0.4, 103 | refresh = false, 104 | color = '#ffffff', 105 | vx = 0, 106 | vy = 0, 107 | }) => { 108 | const canvasRef = useRef(null); 109 | const canvasContainerRef = useRef(null); 110 | const context = useRef(null); 111 | const circles = useRef([]); 112 | const mousePosition = MousePosition(); 113 | const mouse = useRef<{ x: number; y: number }>({ x: 0, y: 0 }); 114 | const canvasSize = useRef<{ w: number; h: number }>({ w: 0, h: 0 }); 115 | const dpr = typeof window !== 'undefined' ? window.devicePixelRatio : 1; 116 | 117 | useEffect(() => { 118 | if (canvasRef.current) { 119 | context.current = canvasRef.current.getContext('2d'); 120 | } 121 | initCanvas(); 122 | animate(); 123 | window.addEventListener('resize', initCanvas); 124 | 125 | return () => { 126 | window.removeEventListener('resize', initCanvas); 127 | }; 128 | }, [color]); 129 | 130 | useEffect(() => { 131 | onMouseMove(); 132 | }, [mousePosition.x, mousePosition.y]); 133 | 134 | useEffect(() => { 135 | initCanvas(); 136 | }, [refresh]); 137 | 138 | const initCanvas = () => { 139 | resizeCanvas(); 140 | drawParticles(); 141 | }; 142 | 143 | const onMouseMove = () => { 144 | if (canvasRef.current) { 145 | const rect = canvasRef.current.getBoundingClientRect(); 146 | const { w, h } = canvasSize.current; 147 | const x = mousePosition.x - rect.left - w / 2; 148 | const y = mousePosition.y - rect.top - h / 2; 149 | const inside = x < w / 2 && x > -w / 2 && y < h / 2 && y > -h / 2; 150 | if (inside) { 151 | mouse.current.x = x; 152 | mouse.current.y = y; 153 | } 154 | } 155 | }; 156 | 157 | type Circle = { 158 | x: number; 159 | y: number; 160 | translateX: number; 161 | translateY: number; 162 | size: number; 163 | alpha: number; 164 | targetAlpha: number; 165 | dx: number; 166 | dy: number; 167 | magnetism: number; 168 | }; 169 | 170 | const resizeCanvas = () => { 171 | if (canvasContainerRef.current && canvasRef.current && context.current) { 172 | circles.current.length = 0; 173 | canvasSize.current.w = canvasContainerRef.current.offsetWidth; 174 | canvasSize.current.h = canvasContainerRef.current.offsetHeight; 175 | canvasRef.current.width = canvasSize.current.w * dpr; 176 | canvasRef.current.height = canvasSize.current.h * dpr; 177 | canvasRef.current.style.width = `${canvasSize.current.w}px`; 178 | canvasRef.current.style.height = `${canvasSize.current.h}px`; 179 | context.current.scale(dpr, dpr); 180 | } 181 | }; 182 | 183 | const circleParams = (): Circle => { 184 | const x = Math.floor(Math.random() * canvasSize.current.w); 185 | const y = Math.floor(Math.random() * canvasSize.current.h); 186 | const translateX = 0; 187 | const translateY = 0; 188 | const pSize = Math.floor(Math.random() * 2) + size; 189 | const alpha = 0; 190 | const targetAlpha = parseFloat((Math.random() * 0.6 + 0.1).toFixed(1)); 191 | const dx = (Math.random() - 0.5) * 0.1; 192 | const dy = (Math.random() - 0.5) * 0.1; 193 | const magnetism = 0.1 + Math.random() * 4; 194 | return { 195 | x, 196 | y, 197 | translateX, 198 | translateY, 199 | size: pSize, 200 | alpha, 201 | targetAlpha, 202 | dx, 203 | dy, 204 | magnetism, 205 | }; 206 | }; 207 | 208 | const rgb = hexToRgb(color); 209 | 210 | const drawCircle = (circle: Circle, update = false) => { 211 | if (context.current) { 212 | const { x, y, translateX, translateY, size, alpha } = circle; 213 | context.current.translate(translateX, translateY); 214 | context.current.beginPath(); 215 | context.current.arc(x, y, size, 0, 2 * Math.PI); 216 | context.current.fillStyle = `rgba(${rgb.join(', ')}, ${alpha})`; 217 | context.current.fill(); 218 | context.current.setTransform(dpr, 0, 0, dpr, 0, 0); 219 | 220 | if (!update) { 221 | circles.current.push(circle); 222 | } 223 | } 224 | }; 225 | 226 | const clearContext = () => { 227 | if (context.current) { 228 | context.current.clearRect(0, 0, canvasSize.current.w, canvasSize.current.h); 229 | } 230 | }; 231 | 232 | const drawParticles = () => { 233 | clearContext(); 234 | const particleCount = quantity; 235 | for (let i = 0; i < particleCount; i++) { 236 | const circle = circleParams(); 237 | drawCircle(circle); 238 | } 239 | }; 240 | 241 | const remapValue = ( 242 | value: number, 243 | start1: number, 244 | end1: number, 245 | start2: number, 246 | end2: number 247 | ): number => { 248 | const remapped = ((value - start1) * (end2 - start2)) / (end1 - start1) + start2; 249 | return remapped > 0 ? remapped : 0; 250 | }; 251 | 252 | const animate = () => { 253 | clearContext(); 254 | circles.current.forEach((circle: Circle, i: number) => { 255 | // Handle the alpha value 256 | const edge = [ 257 | circle.x + circle.translateX - circle.size, // distance from left edge 258 | canvasSize.current.w - circle.x - circle.translateX - circle.size, // distance from right edge 259 | circle.y + circle.translateY - circle.size, // distance from top edge 260 | canvasSize.current.h - circle.y - circle.translateY - circle.size, // distance from bottom edge 261 | ]; 262 | const closestEdge = edge.reduce((a, b) => Math.min(a, b)); 263 | const remapClosestEdge = parseFloat(remapValue(closestEdge, 0, 20, 0, 1).toFixed(2)); 264 | if (remapClosestEdge > 1) { 265 | circle.alpha += 0.02; 266 | if (circle.alpha > circle.targetAlpha) { 267 | circle.alpha = circle.targetAlpha; 268 | } 269 | } else { 270 | circle.alpha = circle.targetAlpha * remapClosestEdge; 271 | } 272 | circle.x += circle.dx + vx; 273 | circle.y += circle.dy + vy; 274 | circle.translateX += 275 | (mouse.current.x / (staticity / circle.magnetism) - circle.translateX) / ease; 276 | circle.translateY += 277 | (mouse.current.y / (staticity / circle.magnetism) - circle.translateY) / ease; 278 | 279 | drawCircle(circle, true); 280 | 281 | // circle gets out of the canvas 282 | if ( 283 | circle.x < -circle.size || 284 | circle.x > canvasSize.current.w + circle.size || 285 | circle.y < -circle.size || 286 | circle.y > canvasSize.current.h + circle.size 287 | ) { 288 | // remove the circle from the array 289 | circles.current.splice(i, 1); 290 | // create a new circle 291 | const newCircle = circleParams(); 292 | drawCircle(newCircle); 293 | // update the circle position 294 | } 295 | }); 296 | window.requestAnimationFrame(animate); 297 | }; 298 | 299 | return ( 300 | 307 | ); 308 | }; 309 | -------------------------------------------------------------------------------- /apps/nextjs/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@repo/typescript-config/nextjs.json", 3 | "compilerOptions": { 4 | "plugins": [ 5 | { 6 | "name": "next" 7 | } 8 | ], 9 | "paths": { 10 | "@/*": ["./src/*"] 11 | } 12 | }, 13 | "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], 14 | "exclude": ["node_modules"] 15 | } 16 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "turborepo-shadcn-tailwind-v4", 3 | "private": true, 4 | "scripts": { 5 | "build": "turbo run build", 6 | "dev": "turbo run dev", 7 | "lint": "turbo run lint", 8 | "format": "prettier --write \"**/*.{ts,tsx,md,json}\"", 9 | "check-types": "turbo run check-types" 10 | }, 11 | "devDependencies": { 12 | "prettier": "^3.5.0", 13 | "turbo": "^2.4.4", 14 | "typescript": "5.7.3" 15 | }, 16 | "packageManager": "pnpm@9.15.5", 17 | "engines": { 18 | "pnpm": ">=9", 19 | "node": ">=22" 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /packages/eslint-config/README.md: -------------------------------------------------------------------------------- 1 | # `@repo/eslint-config` 2 | -------------------------------------------------------------------------------- /packages/eslint-config/base.js: -------------------------------------------------------------------------------- 1 | import js from "@eslint/js"; 2 | import eslintConfigPrettier from "eslint-config-prettier"; 3 | import turboPlugin from "eslint-plugin-turbo"; 4 | import tseslint from "typescript-eslint"; 5 | import onlyWarn from "eslint-plugin-only-warn"; 6 | 7 | /** 8 | * A shared ESLint configuration for the repository. 9 | * 10 | * @type {import("eslint").Linter.Config} 11 | * */ 12 | export const config = [ 13 | js.configs.recommended, 14 | eslintConfigPrettier, 15 | ...tseslint.configs.recommended, 16 | { 17 | plugins: { 18 | turbo: turboPlugin, 19 | }, 20 | rules: { 21 | "turbo/no-undeclared-env-vars": "warn", 22 | }, 23 | }, 24 | { 25 | plugins: { 26 | onlyWarn, 27 | }, 28 | }, 29 | { 30 | ignores: ["dist/**"], 31 | }, 32 | ]; 33 | -------------------------------------------------------------------------------- /packages/eslint-config/next.js: -------------------------------------------------------------------------------- 1 | import js from "@eslint/js"; 2 | import eslintConfigPrettier from "eslint-config-prettier"; 3 | import tseslint from "typescript-eslint"; 4 | import pluginReactHooks from "eslint-plugin-react-hooks"; 5 | import pluginReact from "eslint-plugin-react"; 6 | import globals from "globals"; 7 | import pluginNext from "@next/eslint-plugin-next"; 8 | import { config as baseConfig } from "./base.js"; 9 | 10 | /** 11 | * A custom ESLint configuration for libraries that use Next.js. 12 | * 13 | * @type {import("eslint").Linter.Config} 14 | * */ 15 | export const nextJsConfig = [ 16 | ...baseConfig, 17 | js.configs.recommended, 18 | eslintConfigPrettier, 19 | ...tseslint.configs.recommended, 20 | { 21 | ...pluginReact.configs.flat.recommended, 22 | languageOptions: { 23 | ...pluginReact.configs.flat.recommended.languageOptions, 24 | globals: { 25 | ...globals.serviceworker, 26 | }, 27 | }, 28 | }, 29 | { 30 | plugins: { 31 | "@next/next": pluginNext, 32 | }, 33 | rules: { 34 | ...pluginNext.configs.recommended.rules, 35 | ...pluginNext.configs["core-web-vitals"].rules, 36 | }, 37 | }, 38 | { 39 | plugins: { 40 | "react-hooks": pluginReactHooks, 41 | }, 42 | settings: { react: { version: "detect" } }, 43 | rules: { 44 | ...pluginReactHooks.configs.recommended.rules, 45 | // React scope no longer necessary with new JSX transform. 46 | "react/react-in-jsx-scope": "off", 47 | }, 48 | }, 49 | ]; 50 | -------------------------------------------------------------------------------- /packages/eslint-config/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@repo/eslint-config", 3 | "version": "0.0.0", 4 | "type": "module", 5 | "private": true, 6 | "exports": { 7 | "./base": "./base.js", 8 | "./next": "./next.js", 9 | "./react-internal": "./react-internal.js" 10 | }, 11 | "devDependencies": { 12 | "@eslint/js": "^9.21.0", 13 | "@next/eslint-plugin-next": "^15.1.6", 14 | "eslint": "^9.21.0", 15 | "eslint-config-prettier": "^10.0.1", 16 | "eslint-plugin-only-warn": "^1.1.0", 17 | "eslint-plugin-react": "^7.37.4", 18 | "eslint-plugin-react-hooks": "^5.1.0", 19 | "eslint-plugin-turbo": "^2.4.0", 20 | "globals": "^15.15.0", 21 | "typescript": "^5.7.3", 22 | "typescript-eslint": "^8.24.0" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /packages/eslint-config/react-internal.js: -------------------------------------------------------------------------------- 1 | import js from "@eslint/js"; 2 | import eslintConfigPrettier from "eslint-config-prettier"; 3 | import tseslint from "typescript-eslint"; 4 | import pluginReactHooks from "eslint-plugin-react-hooks"; 5 | import pluginReact from "eslint-plugin-react"; 6 | import globals from "globals"; 7 | import { config as baseConfig } from "./base.js"; 8 | 9 | /** 10 | * A custom ESLint configuration for libraries that use React. 11 | * 12 | * @type {import("eslint").Linter.Config} */ 13 | export const config = [ 14 | ...baseConfig, 15 | js.configs.recommended, 16 | eslintConfigPrettier, 17 | ...tseslint.configs.recommended, 18 | pluginReact.configs.flat.recommended, 19 | { 20 | languageOptions: { 21 | ...pluginReact.configs.flat.recommended.languageOptions, 22 | globals: { 23 | ...globals.serviceworker, 24 | ...globals.browser, 25 | }, 26 | }, 27 | }, 28 | { 29 | plugins: { 30 | "react-hooks": pluginReactHooks, 31 | }, 32 | settings: { react: { version: "detect" } }, 33 | rules: { 34 | ...pluginReactHooks.configs.recommended.rules, 35 | // React scope no longer necessary with new JSX transform. 36 | "react/react-in-jsx-scope": "off", 37 | }, 38 | }, 39 | ]; 40 | -------------------------------------------------------------------------------- /packages/typescript-config/README.md: -------------------------------------------------------------------------------- 1 | # `@repo/typescript-config` 2 | -------------------------------------------------------------------------------- /packages/typescript-config/base.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json.schemastore.org/tsconfig", 3 | "compilerOptions": { 4 | "declaration": true, 5 | "declarationMap": true, 6 | "esModuleInterop": true, 7 | "incremental": false, 8 | "isolatedModules": true, 9 | "lib": ["es2022", "DOM", "DOM.Iterable"], 10 | "module": "NodeNext", 11 | "moduleDetection": "force", 12 | "moduleResolution": "NodeNext", 13 | "noUncheckedIndexedAccess": true, 14 | "resolveJsonModule": true, 15 | "skipLibCheck": true, 16 | "strict": true, 17 | "target": "ES2022" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /packages/typescript-config/nextjs.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json.schemastore.org/tsconfig", 3 | "extends": "./base.json", 4 | "compilerOptions": { 5 | "plugins": [{ "name": "next" }], 6 | "module": "ESNext", 7 | "moduleResolution": "Bundler", 8 | "allowJs": true, 9 | "jsx": "preserve", 10 | "noEmit": true 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /packages/typescript-config/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@repo/typescript-config", 3 | "version": "0.0.0", 4 | "private": true, 5 | "license": "MIT", 6 | "publishConfig": { 7 | "access": "public" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/typescript-config/react-library.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json.schemastore.org/tsconfig", 3 | "extends": "./base.json", 4 | "compilerOptions": { 5 | "jsx": "react-jsx" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/ui/README.md: -------------------------------------------------------------------------------- 1 | # `@repo/ui` 2 | -------------------------------------------------------------------------------- /packages/ui/components.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://ui.shadcn.com/schema.json", 3 | "style": "new-york", 4 | "rsc": true, 5 | "tsx": true, 6 | "tailwind": { 7 | "config": "", 8 | "prefix": "", 9 | "cssVariables": true, 10 | "baseColor": "neutral", 11 | "css": "src/styles/default.css" 12 | }, 13 | "aliases": { 14 | "components": "@repo/ui/components", 15 | "ui": "@repo/ui/components/base", 16 | "utils": "@repo/ui/lib/utils", 17 | "hooks": "@repo/ui/hooks", 18 | "lib": "@repo/ui/lib" 19 | }, 20 | "iconLibrary": "lucide" 21 | } 22 | -------------------------------------------------------------------------------- /packages/ui/eslint.config.mjs: -------------------------------------------------------------------------------- 1 | import { nextJsConfig } from "@repo/eslint-config/next"; 2 | 3 | /** @type {import("eslint").Linter.Config} */ 4 | export default nextJsConfig; 5 | -------------------------------------------------------------------------------- /packages/ui/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@repo/ui", 3 | "version": "0.0.0", 4 | "private": true, 5 | "scripts": {}, 6 | "peerDependencies": { 7 | "react": "^18 || ^19", 8 | "react-dom": "^18 || ^19" 9 | }, 10 | "devDependencies": { 11 | "@repo/eslint-config": "workspace:*", 12 | "@repo/typescript-config": "workspace:*", 13 | "@types/node": "^20", 14 | "@types/react": "^19", 15 | "@types/react-dom": "^19", 16 | "@tailwindcss/postcss": "^4", 17 | "tailwindcss": "^4", 18 | "typescript": "^5" 19 | }, 20 | "dependencies": { 21 | "clsx": "^2.1.1", 22 | "react": "^19", 23 | "react-dom": "^19", 24 | "lucide-react": "^0.476.0", 25 | "tailwind-merge": "^3.0.2", 26 | "tw-animate-css": "^1.2.4", 27 | "@radix-ui/react-slot": "^1.1.2", 28 | "class-variance-authority": "^0.7.1" 29 | }, 30 | "exports": { 31 | "./postcss.config": "./postcss.config.mjs", 32 | "./components/*": "./src/components/*.tsx", 33 | "./lib/*": "./src/lib/*.ts", 34 | "./styles/*": "./src/styles/*", 35 | "./hooks/*": [ 36 | "./src/hooks/*.ts", 37 | "./src/hooks/*.tsx" 38 | ] 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /packages/ui/postcss.config.mjs: -------------------------------------------------------------------------------- 1 | const config = { 2 | plugins: ["@tailwindcss/postcss"], 3 | }; 4 | 5 | export default config; 6 | -------------------------------------------------------------------------------- /packages/ui/src/components/base/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 '@repo/ui/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-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive", 9 | { 10 | variants: { 11 | variant: { 12 | default: 'bg-primary text-primary-foreground shadow-xs hover:bg-primary/90', 13 | destructive: 14 | 'bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60', 15 | outline: 16 | 'border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50', 17 | secondary: 'bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80', 18 | ghost: 'hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50', 19 | link: 'text-primary underline-offset-4 hover:underline', 20 | }, 21 | size: { 22 | default: 'h-9 px-4 py-2 has-[>svg]:px-3', 23 | sm: 'h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5', 24 | lg: 'h-10 rounded-md px-6 has-[>svg]:px-4', 25 | icon: 'size-9', 26 | }, 27 | }, 28 | defaultVariants: { 29 | variant: 'default', 30 | size: 'default', 31 | }, 32 | } 33 | ); 34 | 35 | function Button({ 36 | className, 37 | variant, 38 | size, 39 | asChild = false, 40 | ...props 41 | }: React.ComponentProps<'button'> & 42 | VariantProps & { 43 | asChild?: boolean; 44 | }) { 45 | const Comp = asChild ? Slot : 'button'; 46 | 47 | return ( 48 | 53 | ); 54 | } 55 | 56 | export { Button, buttonVariants }; 57 | -------------------------------------------------------------------------------- /packages/ui/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 | -------------------------------------------------------------------------------- /packages/ui/src/styles/default.css: -------------------------------------------------------------------------------- 1 | @import 'tailwindcss'; 2 | @import 'tw-animate-css'; 3 | 4 | @custom-variant dark (&:is(.dark *)); 5 | 6 | @theme inline { 7 | --color-background: var(--background); 8 | --color-foreground: var(--foreground); 9 | --color-sidebar-ring: var(--sidebar-ring); 10 | --color-sidebar-border: var(--sidebar-border); 11 | --color-sidebar-accent-foreground: var(--sidebar-accent-foreground); 12 | --color-sidebar-accent: var(--sidebar-accent); 13 | --color-sidebar-primary-foreground: var(--sidebar-primary-foreground); 14 | --color-sidebar-primary: var(--sidebar-primary); 15 | --color-sidebar-foreground: var(--sidebar-foreground); 16 | --color-sidebar: var(--sidebar); 17 | --color-chart-5: var(--chart-5); 18 | --color-chart-4: var(--chart-4); 19 | --color-chart-3: var(--chart-3); 20 | --color-chart-2: var(--chart-2); 21 | --color-chart-1: var(--chart-1); 22 | --color-ring: var(--ring); 23 | --color-input: var(--input); 24 | --color-border: var(--border); 25 | --color-destructive: var(--destructive); 26 | --color-accent-foreground: var(--accent-foreground); 27 | --color-accent: var(--accent); 28 | --color-muted-foreground: var(--muted-foreground); 29 | --color-muted: var(--muted); 30 | --color-secondary-foreground: var(--secondary-foreground); 31 | --color-secondary: var(--secondary); 32 | --color-primary-foreground: var(--primary-foreground); 33 | --color-primary: var(--primary); 34 | --color-popover-foreground: var(--popover-foreground); 35 | --color-popover: var(--popover); 36 | --color-card-foreground: var(--card-foreground); 37 | --color-card: var(--card); 38 | --radius-sm: calc(var(--radius) - 4px); 39 | --radius-md: calc(var(--radius) - 2px); 40 | --radius-lg: var(--radius); 41 | --radius-xl: calc(var(--radius) + 4px); 42 | --font-sans: var(--font-geist-sans); 43 | --font-mono: var(--font-geist-mono); 44 | } 45 | 46 | :root { 47 | --radius: 0.625rem; 48 | --background: oklch(1 0 0); 49 | --foreground: oklch(0.145 0 0); 50 | --card: oklch(1 0 0); 51 | --card-foreground: oklch(0.145 0 0); 52 | --popover: oklch(1 0 0); 53 | --popover-foreground: oklch(0.145 0 0); 54 | --primary: oklch(0.205 0 0); 55 | --primary-foreground: oklch(0.985 0 0); 56 | --secondary: oklch(0.97 0 0); 57 | --secondary-foreground: oklch(0.205 0 0); 58 | --muted: oklch(0.97 0 0); 59 | --muted-foreground: oklch(0.556 0 0); 60 | --accent: oklch(0.97 0 0); 61 | --accent-foreground: oklch(0.205 0 0); 62 | --destructive: oklch(0.577 0.245 27.325); 63 | --border: oklch(0.922 0 0); 64 | --input: oklch(0.922 0 0); 65 | --ring: oklch(0.708 0 0); 66 | --chart-1: oklch(0.646 0.222 41.116); 67 | --chart-2: oklch(0.6 0.118 184.704); 68 | --chart-3: oklch(0.398 0.07 227.392); 69 | --chart-4: oklch(0.828 0.189 84.429); 70 | --chart-5: oklch(0.769 0.188 70.08); 71 | --sidebar: oklch(0.985 0 0); 72 | --sidebar-foreground: oklch(0.145 0 0); 73 | --sidebar-primary: oklch(0.205 0 0); 74 | --sidebar-primary-foreground: oklch(0.985 0 0); 75 | --sidebar-accent: oklch(0.97 0 0); 76 | --sidebar-accent-foreground: oklch(0.205 0 0); 77 | --sidebar-border: oklch(0.922 0 0); 78 | --sidebar-ring: oklch(0.708 0 0); 79 | } 80 | 81 | .dark { 82 | --background: oklch(0.145 0 0); 83 | --foreground: oklch(0.985 0 0); 84 | --card: oklch(0.205 0 0); 85 | --card-foreground: oklch(0.985 0 0); 86 | --popover: oklch(0.205 0 0); 87 | --popover-foreground: oklch(0.985 0 0); 88 | --primary: oklch(0.922 0 0); 89 | --primary-foreground: oklch(0.205 0 0); 90 | --secondary: oklch(0.269 0 0); 91 | --secondary-foreground: oklch(0.985 0 0); 92 | --muted: oklch(0.269 0 0); 93 | --muted-foreground: oklch(0.708 0 0); 94 | --accent: oklch(0.269 0 0); 95 | --accent-foreground: oklch(0.985 0 0); 96 | --destructive: oklch(0.704 0.191 22.216); 97 | --border: oklch(1 0 0 / 10%); 98 | --input: oklch(1 0 0 / 15%); 99 | --ring: oklch(0.556 0 0); 100 | --chart-1: oklch(0.488 0.243 264.376); 101 | --chart-2: oklch(0.696 0.17 162.48); 102 | --chart-3: oklch(0.769 0.188 70.08); 103 | --chart-4: oklch(0.627 0.265 303.9); 104 | --chart-5: oklch(0.645 0.246 16.439); 105 | --sidebar: oklch(0.205 0 0); 106 | --sidebar-foreground: oklch(0.985 0 0); 107 | --sidebar-primary: oklch(0.488 0.243 264.376); 108 | --sidebar-primary-foreground: oklch(0.985 0 0); 109 | --sidebar-accent: oklch(0.269 0 0); 110 | --sidebar-accent-foreground: oklch(0.985 0 0); 111 | --sidebar-border: oklch(1 0 0 / 10%); 112 | --sidebar-ring: oklch(0.556 0 0); 113 | } 114 | 115 | @layer base { 116 | * { 117 | @apply border-border outline-ring/50; 118 | } 119 | body { 120 | @apply bg-background text-foreground; 121 | } 122 | } 123 | -------------------------------------------------------------------------------- /packages/ui/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@repo/typescript-config/react-library.json", 3 | "compilerOptions": { 4 | "baseUrl": ".", 5 | "paths": { 6 | "@repo/ui/*": ["./src/*"] 7 | } 8 | }, 9 | "include": ["src"], 10 | "exclude": ["node_modules"] 11 | } 12 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '9.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | importers: 8 | 9 | .: 10 | devDependencies: 11 | prettier: 12 | specifier: ^3.5.0 13 | version: 3.5.0 14 | turbo: 15 | specifier: ^2.4.4 16 | version: 2.4.4 17 | typescript: 18 | specifier: 5.7.3 19 | version: 5.7.3 20 | 21 | apps/nextjs: 22 | dependencies: 23 | '@repo/ui': 24 | specifier: workspace:* 25 | version: link:../../packages/ui 26 | next: 27 | specifier: ^15.2.4 28 | version: 15.2.4(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 29 | react: 30 | specifier: ^19.0.0 31 | version: 19.0.0 32 | react-dom: 33 | specifier: ^19.0.0 34 | version: 19.0.0(react@19.0.0) 35 | devDependencies: 36 | '@repo/eslint-config': 37 | specifier: workspace:* 38 | version: link:../../packages/eslint-config 39 | '@repo/typescript-config': 40 | specifier: workspace:* 41 | version: link:../../packages/typescript-config 42 | '@tailwindcss/postcss': 43 | specifier: ^4 44 | version: 4.0.9 45 | '@types/node': 46 | specifier: ^22 47 | version: 22.13.0 48 | '@types/react': 49 | specifier: ^19 50 | version: 19.0.8 51 | '@types/react-dom': 52 | specifier: '19' 53 | version: 19.0.3(@types/react@19.0.8) 54 | eslint: 55 | specifier: ^9 56 | version: 9.21.0(jiti@2.4.2) 57 | tailwindcss: 58 | specifier: ^4 59 | version: 4.0.9 60 | typescript: 61 | specifier: ^5 62 | version: 5.7.3 63 | 64 | packages/eslint-config: 65 | devDependencies: 66 | '@eslint/js': 67 | specifier: ^9.21.0 68 | version: 9.21.0 69 | '@next/eslint-plugin-next': 70 | specifier: ^15.1.6 71 | version: 15.1.6 72 | eslint: 73 | specifier: ^9.21.0 74 | version: 9.21.0(jiti@2.4.2) 75 | eslint-config-prettier: 76 | specifier: ^10.0.1 77 | version: 10.0.1(eslint@9.21.0(jiti@2.4.2)) 78 | eslint-plugin-only-warn: 79 | specifier: ^1.1.0 80 | version: 1.1.0 81 | eslint-plugin-react: 82 | specifier: ^7.37.4 83 | version: 7.37.4(eslint@9.21.0(jiti@2.4.2)) 84 | eslint-plugin-react-hooks: 85 | specifier: ^5.1.0 86 | version: 5.1.0(eslint@9.21.0(jiti@2.4.2)) 87 | eslint-plugin-turbo: 88 | specifier: ^2.4.0 89 | version: 2.4.0(eslint@9.21.0(jiti@2.4.2))(turbo@2.4.4) 90 | globals: 91 | specifier: ^15.15.0 92 | version: 15.15.0 93 | typescript: 94 | specifier: ^5.7.3 95 | version: 5.7.3 96 | typescript-eslint: 97 | specifier: ^8.24.0 98 | version: 8.24.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) 99 | 100 | packages/typescript-config: {} 101 | 102 | packages/ui: 103 | dependencies: 104 | '@radix-ui/react-slot': 105 | specifier: ^1.1.2 106 | version: 1.1.2(@types/react@19.0.8)(react@19.0.0) 107 | class-variance-authority: 108 | specifier: ^0.7.1 109 | version: 0.7.1 110 | clsx: 111 | specifier: ^2.1.1 112 | version: 2.1.1 113 | lucide-react: 114 | specifier: ^0.476.0 115 | version: 0.476.0(react@19.0.0) 116 | react: 117 | specifier: ^19 118 | version: 19.0.0 119 | react-dom: 120 | specifier: ^19 121 | version: 19.0.0(react@19.0.0) 122 | tailwind-merge: 123 | specifier: ^3.0.2 124 | version: 3.0.2 125 | tw-animate-css: 126 | specifier: ^1.2.4 127 | version: 1.2.4 128 | devDependencies: 129 | '@repo/eslint-config': 130 | specifier: workspace:* 131 | version: link:../eslint-config 132 | '@repo/typescript-config': 133 | specifier: workspace:* 134 | version: link:../typescript-config 135 | '@tailwindcss/postcss': 136 | specifier: ^4 137 | version: 4.0.9 138 | '@types/node': 139 | specifier: ^20 140 | version: 20.17.19 141 | '@types/react': 142 | specifier: ^19 143 | version: 19.0.8 144 | '@types/react-dom': 145 | specifier: ^19 146 | version: 19.0.3(@types/react@19.0.8) 147 | tailwindcss: 148 | specifier: ^4 149 | version: 4.0.9 150 | typescript: 151 | specifier: ^5 152 | version: 5.7.3 153 | 154 | packages: 155 | 156 | '@alloc/quick-lru@5.2.0': 157 | resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} 158 | engines: {node: '>=10'} 159 | 160 | '@emnapi/runtime@1.3.1': 161 | resolution: {integrity: sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==} 162 | 163 | '@eslint-community/eslint-utils@4.4.1': 164 | resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==} 165 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 166 | peerDependencies: 167 | eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 168 | 169 | '@eslint-community/regexpp@4.12.1': 170 | resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} 171 | engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} 172 | 173 | '@eslint/config-array@0.19.2': 174 | resolution: {integrity: sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==} 175 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 176 | 177 | '@eslint/core@0.12.0': 178 | resolution: {integrity: sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==} 179 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 180 | 181 | '@eslint/eslintrc@3.3.0': 182 | resolution: {integrity: sha512-yaVPAiNAalnCZedKLdR21GOGILMLKPyqSLWaAjQFvYA2i/ciDi8ArYVr69Anohb6cH2Ukhqti4aFnYyPm8wdwQ==} 183 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 184 | 185 | '@eslint/js@9.21.0': 186 | resolution: {integrity: sha512-BqStZ3HX8Yz6LvsF5ByXYrtigrV5AXADWLAGc7PH/1SxOb7/FIYYMszZZWiUou/GB9P2lXWk2SV4d+Z8h0nknw==} 187 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 188 | 189 | '@eslint/object-schema@2.1.6': 190 | resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==} 191 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 192 | 193 | '@eslint/plugin-kit@0.2.7': 194 | resolution: {integrity: sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g==} 195 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 196 | 197 | '@humanfs/core@0.19.1': 198 | resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} 199 | engines: {node: '>=18.18.0'} 200 | 201 | '@humanfs/node@0.16.6': 202 | resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==} 203 | engines: {node: '>=18.18.0'} 204 | 205 | '@humanwhocodes/module-importer@1.0.1': 206 | resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} 207 | engines: {node: '>=12.22'} 208 | 209 | '@humanwhocodes/retry@0.3.1': 210 | resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} 211 | engines: {node: '>=18.18'} 212 | 213 | '@humanwhocodes/retry@0.4.2': 214 | resolution: {integrity: sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==} 215 | engines: {node: '>=18.18'} 216 | 217 | '@img/sharp-darwin-arm64@0.33.5': 218 | resolution: {integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==} 219 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 220 | cpu: [arm64] 221 | os: [darwin] 222 | 223 | '@img/sharp-darwin-x64@0.33.5': 224 | resolution: {integrity: sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==} 225 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 226 | cpu: [x64] 227 | os: [darwin] 228 | 229 | '@img/sharp-libvips-darwin-arm64@1.0.4': 230 | resolution: {integrity: sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==} 231 | cpu: [arm64] 232 | os: [darwin] 233 | 234 | '@img/sharp-libvips-darwin-x64@1.0.4': 235 | resolution: {integrity: sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==} 236 | cpu: [x64] 237 | os: [darwin] 238 | 239 | '@img/sharp-libvips-linux-arm64@1.0.4': 240 | resolution: {integrity: sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==} 241 | cpu: [arm64] 242 | os: [linux] 243 | 244 | '@img/sharp-libvips-linux-arm@1.0.5': 245 | resolution: {integrity: sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==} 246 | cpu: [arm] 247 | os: [linux] 248 | 249 | '@img/sharp-libvips-linux-s390x@1.0.4': 250 | resolution: {integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==} 251 | cpu: [s390x] 252 | os: [linux] 253 | 254 | '@img/sharp-libvips-linux-x64@1.0.4': 255 | resolution: {integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==} 256 | cpu: [x64] 257 | os: [linux] 258 | 259 | '@img/sharp-libvips-linuxmusl-arm64@1.0.4': 260 | resolution: {integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==} 261 | cpu: [arm64] 262 | os: [linux] 263 | 264 | '@img/sharp-libvips-linuxmusl-x64@1.0.4': 265 | resolution: {integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==} 266 | cpu: [x64] 267 | os: [linux] 268 | 269 | '@img/sharp-linux-arm64@0.33.5': 270 | resolution: {integrity: sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==} 271 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 272 | cpu: [arm64] 273 | os: [linux] 274 | 275 | '@img/sharp-linux-arm@0.33.5': 276 | resolution: {integrity: sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==} 277 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 278 | cpu: [arm] 279 | os: [linux] 280 | 281 | '@img/sharp-linux-s390x@0.33.5': 282 | resolution: {integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==} 283 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 284 | cpu: [s390x] 285 | os: [linux] 286 | 287 | '@img/sharp-linux-x64@0.33.5': 288 | resolution: {integrity: sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==} 289 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 290 | cpu: [x64] 291 | os: [linux] 292 | 293 | '@img/sharp-linuxmusl-arm64@0.33.5': 294 | resolution: {integrity: sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==} 295 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 296 | cpu: [arm64] 297 | os: [linux] 298 | 299 | '@img/sharp-linuxmusl-x64@0.33.5': 300 | resolution: {integrity: sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==} 301 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 302 | cpu: [x64] 303 | os: [linux] 304 | 305 | '@img/sharp-wasm32@0.33.5': 306 | resolution: {integrity: sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==} 307 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 308 | cpu: [wasm32] 309 | 310 | '@img/sharp-win32-ia32@0.33.5': 311 | resolution: {integrity: sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==} 312 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 313 | cpu: [ia32] 314 | os: [win32] 315 | 316 | '@img/sharp-win32-x64@0.33.5': 317 | resolution: {integrity: sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==} 318 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 319 | cpu: [x64] 320 | os: [win32] 321 | 322 | '@next/env@15.2.4': 323 | resolution: {integrity: sha512-+SFtMgoiYP3WoSswuNmxJOCwi06TdWE733D+WPjpXIe4LXGULwEaofiiAy6kbS0+XjM5xF5n3lKuBwN2SnqD9g==} 324 | 325 | '@next/eslint-plugin-next@15.1.6': 326 | resolution: {integrity: sha512-+slMxhTgILUntZDGNgsKEYHUvpn72WP1YTlkmEhS51vnVd7S9jEEy0n9YAMcI21vUG4akTw9voWH02lrClt/yw==} 327 | 328 | '@next/swc-darwin-arm64@15.2.4': 329 | resolution: {integrity: sha512-1AnMfs655ipJEDC/FHkSr0r3lXBgpqKo4K1kiwfUf3iE68rDFXZ1TtHdMvf7D0hMItgDZ7Vuq3JgNMbt/+3bYw==} 330 | engines: {node: '>= 10'} 331 | cpu: [arm64] 332 | os: [darwin] 333 | 334 | '@next/swc-darwin-x64@15.2.4': 335 | resolution: {integrity: sha512-3qK2zb5EwCwxnO2HeO+TRqCubeI/NgCe+kL5dTJlPldV/uwCnUgC7VbEzgmxbfrkbjehL4H9BPztWOEtsoMwew==} 336 | engines: {node: '>= 10'} 337 | cpu: [x64] 338 | os: [darwin] 339 | 340 | '@next/swc-linux-arm64-gnu@15.2.4': 341 | resolution: {integrity: sha512-HFN6GKUcrTWvem8AZN7tT95zPb0GUGv9v0d0iyuTb303vbXkkbHDp/DxufB04jNVD+IN9yHy7y/6Mqq0h0YVaQ==} 342 | engines: {node: '>= 10'} 343 | cpu: [arm64] 344 | os: [linux] 345 | 346 | '@next/swc-linux-arm64-musl@15.2.4': 347 | resolution: {integrity: sha512-Oioa0SORWLwi35/kVB8aCk5Uq+5/ZIumMK1kJV+jSdazFm2NzPDztsefzdmzzpx5oGCJ6FkUC7vkaUseNTStNA==} 348 | engines: {node: '>= 10'} 349 | cpu: [arm64] 350 | os: [linux] 351 | 352 | '@next/swc-linux-x64-gnu@15.2.4': 353 | resolution: {integrity: sha512-yb5WTRaHdkgOqFOZiu6rHV1fAEK0flVpaIN2HB6kxHVSy/dIajWbThS7qON3W9/SNOH2JWkVCyulgGYekMePuw==} 354 | engines: {node: '>= 10'} 355 | cpu: [x64] 356 | os: [linux] 357 | 358 | '@next/swc-linux-x64-musl@15.2.4': 359 | resolution: {integrity: sha512-Dcdv/ix6srhkM25fgXiyOieFUkz+fOYkHlydWCtB0xMST6X9XYI3yPDKBZt1xuhOytONsIFJFB08xXYsxUwJLw==} 360 | engines: {node: '>= 10'} 361 | cpu: [x64] 362 | os: [linux] 363 | 364 | '@next/swc-win32-arm64-msvc@15.2.4': 365 | resolution: {integrity: sha512-dW0i7eukvDxtIhCYkMrZNQfNicPDExt2jPb9AZPpL7cfyUo7QSNl1DjsHjmmKp6qNAqUESyT8YFl/Aw91cNJJg==} 366 | engines: {node: '>= 10'} 367 | cpu: [arm64] 368 | os: [win32] 369 | 370 | '@next/swc-win32-x64-msvc@15.2.4': 371 | resolution: {integrity: sha512-SbnWkJmkS7Xl3kre8SdMF6F/XDh1DTFEhp0jRTj/uB8iPKoU2bb2NDfcu+iifv1+mxQEd1g2vvSxcZbXSKyWiQ==} 372 | engines: {node: '>= 10'} 373 | cpu: [x64] 374 | os: [win32] 375 | 376 | '@nodelib/fs.scandir@2.1.5': 377 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 378 | engines: {node: '>= 8'} 379 | 380 | '@nodelib/fs.stat@2.0.5': 381 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 382 | engines: {node: '>= 8'} 383 | 384 | '@nodelib/fs.walk@1.2.8': 385 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 386 | engines: {node: '>= 8'} 387 | 388 | '@radix-ui/react-compose-refs@1.1.1': 389 | resolution: {integrity: sha512-Y9VzoRDSJtgFMUCoiZBDVo084VQ5hfpXxVE+NgkdNsjiDBByiImMZKKhxMwCbdHvhlENG6a833CbFkOQvTricw==} 390 | peerDependencies: 391 | '@types/react': '*' 392 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 393 | peerDependenciesMeta: 394 | '@types/react': 395 | optional: true 396 | 397 | '@radix-ui/react-slot@1.1.2': 398 | resolution: {integrity: sha512-YAKxaiGsSQJ38VzKH86/BPRC4rh+b1Jpa+JneA5LRE7skmLPNAyeG8kPJj/oo4STLvlrs8vkf/iYyc3A5stYCQ==} 399 | peerDependencies: 400 | '@types/react': '*' 401 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 402 | peerDependenciesMeta: 403 | '@types/react': 404 | optional: true 405 | 406 | '@swc/counter@0.1.3': 407 | resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} 408 | 409 | '@swc/helpers@0.5.15': 410 | resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} 411 | 412 | '@tailwindcss/node@4.0.9': 413 | resolution: {integrity: sha512-tOJvdI7XfJbARYhxX+0RArAhmuDcczTC46DGCEziqxzzbIaPnfYaIyRT31n4u8lROrsO7Q6u/K9bmQHL2uL1bQ==} 414 | 415 | '@tailwindcss/oxide-android-arm64@4.0.9': 416 | resolution: {integrity: sha512-YBgy6+2flE/8dbtrdotVInhMVIxnHJPbAwa7U1gX4l2ThUIaPUp18LjB9wEH8wAGMBZUb//SzLtdXXNBHPUl6Q==} 417 | engines: {node: '>= 10'} 418 | cpu: [arm64] 419 | os: [android] 420 | 421 | '@tailwindcss/oxide-darwin-arm64@4.0.9': 422 | resolution: {integrity: sha512-pWdl4J2dIHXALgy2jVkwKBmtEb73kqIfMpYmcgESr7oPQ+lbcQ4+tlPeVXaSAmang+vglAfFpXQCOvs/aGSqlw==} 423 | engines: {node: '>= 10'} 424 | cpu: [arm64] 425 | os: [darwin] 426 | 427 | '@tailwindcss/oxide-darwin-x64@4.0.9': 428 | resolution: {integrity: sha512-4Dq3lKp0/C7vrRSkNPtBGVebEyWt9QPPlQctxJ0H3MDyiQYvzVYf8jKow7h5QkWNe8hbatEqljMj/Y0M+ERYJg==} 429 | engines: {node: '>= 10'} 430 | cpu: [x64] 431 | os: [darwin] 432 | 433 | '@tailwindcss/oxide-freebsd-x64@4.0.9': 434 | resolution: {integrity: sha512-k7U1RwRODta8x0uealtVt3RoWAWqA+D5FAOsvVGpYoI6ObgmnzqWW6pnVwz70tL8UZ/QXjeMyiICXyjzB6OGtQ==} 435 | engines: {node: '>= 10'} 436 | cpu: [x64] 437 | os: [freebsd] 438 | 439 | '@tailwindcss/oxide-linux-arm-gnueabihf@4.0.9': 440 | resolution: {integrity: sha512-NDDjVweHz2zo4j+oS8y3KwKL5wGCZoXGA9ruJM982uVJLdsF8/1AeKvUwKRlMBpxHt1EdWJSAh8a0Mfhl28GlQ==} 441 | engines: {node: '>= 10'} 442 | cpu: [arm] 443 | os: [linux] 444 | 445 | '@tailwindcss/oxide-linux-arm64-gnu@4.0.9': 446 | resolution: {integrity: sha512-jk90UZ0jzJl3Dy1BhuFfRZ2KP9wVKMXPjmCtY4U6fF2LvrjP5gWFJj5VHzfzHonJexjrGe1lMzgtjriuZkxagg==} 447 | engines: {node: '>= 10'} 448 | cpu: [arm64] 449 | os: [linux] 450 | 451 | '@tailwindcss/oxide-linux-arm64-musl@4.0.9': 452 | resolution: {integrity: sha512-3eMjyTC6HBxh9nRgOHzrc96PYh1/jWOwHZ3Kk0JN0Kl25BJ80Lj9HEvvwVDNTgPg154LdICwuFLuhfgH9DULmg==} 453 | engines: {node: '>= 10'} 454 | cpu: [arm64] 455 | os: [linux] 456 | 457 | '@tailwindcss/oxide-linux-x64-gnu@4.0.9': 458 | resolution: {integrity: sha512-v0D8WqI/c3WpWH1kq/HP0J899ATLdGZmENa2/emmNjubT0sWtEke9W9+wXeEoACuGAhF9i3PO5MeyditpDCiWQ==} 459 | engines: {node: '>= 10'} 460 | cpu: [x64] 461 | os: [linux] 462 | 463 | '@tailwindcss/oxide-linux-x64-musl@4.0.9': 464 | resolution: {integrity: sha512-Kvp0TCkfeXyeehqLJr7otsc4hd/BUPfcIGrQiwsTVCfaMfjQZCG7DjI+9/QqPZha8YapLA9UoIcUILRYO7NE1Q==} 465 | engines: {node: '>= 10'} 466 | cpu: [x64] 467 | os: [linux] 468 | 469 | '@tailwindcss/oxide-win32-arm64-msvc@4.0.9': 470 | resolution: {integrity: sha512-m3+60T/7YvWekajNq/eexjhV8z10rswcz4BC9bioJ7YaN+7K8W2AmLmG0B79H14m6UHE571qB0XsPus4n0QVgQ==} 471 | engines: {node: '>= 10'} 472 | cpu: [arm64] 473 | os: [win32] 474 | 475 | '@tailwindcss/oxide-win32-x64-msvc@4.0.9': 476 | resolution: {integrity: sha512-dpc05mSlqkwVNOUjGu/ZXd5U1XNch1kHFJ4/cHkZFvaW1RzbHmRt24gvM8/HC6IirMxNarzVw4IXVtvrOoZtxA==} 477 | engines: {node: '>= 10'} 478 | cpu: [x64] 479 | os: [win32] 480 | 481 | '@tailwindcss/oxide@4.0.9': 482 | resolution: {integrity: sha512-eLizHmXFqHswJONwfqi/WZjtmWZpIalpvMlNhTM99/bkHtUs6IqgI1XQ0/W5eO2HiRQcIlXUogI2ycvKhVLNcA==} 483 | engines: {node: '>= 10'} 484 | 485 | '@tailwindcss/postcss@4.0.9': 486 | resolution: {integrity: sha512-BT/E+pdMqulavEAVM5NCpxmGEwHiLDPpkmg/c/X25ZBW+izTe+aZ+v1gf/HXTrihRoCxrUp5U4YyHsBTzspQKQ==} 487 | 488 | '@types/estree@1.0.6': 489 | resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} 490 | 491 | '@types/json-schema@7.0.15': 492 | resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} 493 | 494 | '@types/node@20.17.19': 495 | resolution: {integrity: sha512-LEwC7o1ifqg/6r2gn9Dns0f1rhK+fPFDoMiceTJ6kWmVk6bgXBI/9IOWfVan4WiAavK9pIVWdX0/e3J+eEUh5A==} 496 | 497 | '@types/node@22.13.0': 498 | resolution: {integrity: sha512-ClIbNe36lawluuvq3+YYhnIN2CELi+6q8NpnM7PYp4hBn/TatfboPgVSm2rwKRfnV2M+Ty9GWDFI64KEe+kysA==} 499 | 500 | '@types/react-dom@19.0.3': 501 | resolution: {integrity: sha512-0Knk+HJiMP/qOZgMyNFamlIjw9OFCsyC2ZbigmEEyXXixgre6IQpm/4V+r3qH4GC1JPvRJKInw+on2rV6YZLeA==} 502 | peerDependencies: 503 | '@types/react': ^19.0.0 504 | 505 | '@types/react@19.0.8': 506 | resolution: {integrity: sha512-9P/o1IGdfmQxrujGbIMDyYaaCykhLKc0NGCtYcECNUr9UAaDe4gwvV9bR6tvd5Br1SG0j+PBpbKr2UYY8CwqSw==} 507 | 508 | '@typescript-eslint/eslint-plugin@8.24.0': 509 | resolution: {integrity: sha512-aFcXEJJCI4gUdXgoo/j9udUYIHgF23MFkg09LFz2dzEmU0+1Plk4rQWv/IYKvPHAtlkkGoB3m5e6oUp+JPsNaQ==} 510 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 511 | peerDependencies: 512 | '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 513 | eslint: ^8.57.0 || ^9.0.0 514 | typescript: '>=4.8.4 <5.8.0' 515 | 516 | '@typescript-eslint/parser@8.24.0': 517 | resolution: {integrity: sha512-MFDaO9CYiard9j9VepMNa9MTcqVvSny2N4hkY6roquzj8pdCBRENhErrteaQuu7Yjn1ppk0v1/ZF9CG3KIlrTA==} 518 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 519 | peerDependencies: 520 | eslint: ^8.57.0 || ^9.0.0 521 | typescript: '>=4.8.4 <5.8.0' 522 | 523 | '@typescript-eslint/scope-manager@8.24.0': 524 | resolution: {integrity: sha512-HZIX0UByphEtdVBKaQBgTDdn9z16l4aTUz8e8zPQnyxwHBtf5vtl1L+OhH+m1FGV9DrRmoDuYKqzVrvWDcDozw==} 525 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 526 | 527 | '@typescript-eslint/type-utils@8.24.0': 528 | resolution: {integrity: sha512-8fitJudrnY8aq0F1wMiPM1UUgiXQRJ5i8tFjq9kGfRajU+dbPyOuHbl0qRopLEidy0MwqgTHDt6CnSeXanNIwA==} 529 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 530 | peerDependencies: 531 | eslint: ^8.57.0 || ^9.0.0 532 | typescript: '>=4.8.4 <5.8.0' 533 | 534 | '@typescript-eslint/types@8.24.0': 535 | resolution: {integrity: sha512-VacJCBTyje7HGAw7xp11q439A+zeGG0p0/p2zsZwpnMzjPB5WteaWqt4g2iysgGFafrqvyLWqq6ZPZAOCoefCw==} 536 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 537 | 538 | '@typescript-eslint/typescript-estree@8.24.0': 539 | resolution: {integrity: sha512-ITjYcP0+8kbsvT9bysygfIfb+hBj6koDsu37JZG7xrCiy3fPJyNmfVtaGsgTUSEuTzcvME5YI5uyL5LD1EV5ZQ==} 540 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 541 | peerDependencies: 542 | typescript: '>=4.8.4 <5.8.0' 543 | 544 | '@typescript-eslint/utils@8.24.0': 545 | resolution: {integrity: sha512-07rLuUBElvvEb1ICnafYWr4hk8/U7X9RDCOqd9JcAMtjh/9oRmcfN4yGzbPVirgMR0+HLVHehmu19CWeh7fsmQ==} 546 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 547 | peerDependencies: 548 | eslint: ^8.57.0 || ^9.0.0 549 | typescript: '>=4.8.4 <5.8.0' 550 | 551 | '@typescript-eslint/visitor-keys@8.24.0': 552 | resolution: {integrity: sha512-kArLq83QxGLbuHrTMoOEWO+l2MwsNS2TGISEdx8xgqpkbytB07XmlQyQdNDrCc1ecSqx0cnmhGvpX+VBwqqSkg==} 553 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 554 | 555 | acorn-jsx@5.3.2: 556 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} 557 | peerDependencies: 558 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 559 | 560 | acorn@8.14.0: 561 | resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} 562 | engines: {node: '>=0.4.0'} 563 | hasBin: true 564 | 565 | ajv@6.12.6: 566 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 567 | 568 | ansi-styles@4.3.0: 569 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 570 | engines: {node: '>=8'} 571 | 572 | argparse@2.0.1: 573 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 574 | 575 | array-buffer-byte-length@1.0.2: 576 | resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} 577 | engines: {node: '>= 0.4'} 578 | 579 | array-includes@3.1.8: 580 | resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} 581 | engines: {node: '>= 0.4'} 582 | 583 | array.prototype.findlast@1.2.5: 584 | resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} 585 | engines: {node: '>= 0.4'} 586 | 587 | array.prototype.flat@1.3.3: 588 | resolution: {integrity: sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==} 589 | engines: {node: '>= 0.4'} 590 | 591 | array.prototype.flatmap@1.3.3: 592 | resolution: {integrity: sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==} 593 | engines: {node: '>= 0.4'} 594 | 595 | array.prototype.tosorted@1.1.4: 596 | resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==} 597 | engines: {node: '>= 0.4'} 598 | 599 | arraybuffer.prototype.slice@1.0.4: 600 | resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} 601 | engines: {node: '>= 0.4'} 602 | 603 | async-function@1.0.0: 604 | resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} 605 | engines: {node: '>= 0.4'} 606 | 607 | available-typed-arrays@1.0.7: 608 | resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} 609 | engines: {node: '>= 0.4'} 610 | 611 | balanced-match@1.0.2: 612 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 613 | 614 | brace-expansion@1.1.11: 615 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 616 | 617 | brace-expansion@2.0.1: 618 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} 619 | 620 | braces@3.0.3: 621 | resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} 622 | engines: {node: '>=8'} 623 | 624 | busboy@1.6.0: 625 | resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} 626 | engines: {node: '>=10.16.0'} 627 | 628 | call-bind-apply-helpers@1.0.1: 629 | resolution: {integrity: sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==} 630 | engines: {node: '>= 0.4'} 631 | 632 | call-bind@1.0.8: 633 | resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} 634 | engines: {node: '>= 0.4'} 635 | 636 | call-bound@1.0.3: 637 | resolution: {integrity: sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==} 638 | engines: {node: '>= 0.4'} 639 | 640 | callsites@3.1.0: 641 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 642 | engines: {node: '>=6'} 643 | 644 | caniuse-lite@1.0.30001695: 645 | resolution: {integrity: sha512-vHyLade6wTgI2u1ec3WQBxv+2BrTERV28UXQu9LO6lZ9pYeMk34vjXFLOxo1A4UBA8XTL4njRQZdno/yYaSmWw==} 646 | 647 | chalk@4.1.2: 648 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 649 | engines: {node: '>=10'} 650 | 651 | class-variance-authority@0.7.1: 652 | resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==} 653 | 654 | client-only@0.0.1: 655 | resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} 656 | 657 | clsx@2.1.1: 658 | resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} 659 | engines: {node: '>=6'} 660 | 661 | color-convert@2.0.1: 662 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 663 | engines: {node: '>=7.0.0'} 664 | 665 | color-name@1.1.4: 666 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 667 | 668 | color-string@1.9.1: 669 | resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} 670 | 671 | color@4.2.3: 672 | resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} 673 | engines: {node: '>=12.5.0'} 674 | 675 | concat-map@0.0.1: 676 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 677 | 678 | cross-spawn@7.0.6: 679 | resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} 680 | engines: {node: '>= 8'} 681 | 682 | csstype@3.1.3: 683 | resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} 684 | 685 | data-view-buffer@1.0.2: 686 | resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} 687 | engines: {node: '>= 0.4'} 688 | 689 | data-view-byte-length@1.0.2: 690 | resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==} 691 | engines: {node: '>= 0.4'} 692 | 693 | data-view-byte-offset@1.0.1: 694 | resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} 695 | engines: {node: '>= 0.4'} 696 | 697 | debug@4.4.0: 698 | resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} 699 | engines: {node: '>=6.0'} 700 | peerDependencies: 701 | supports-color: '*' 702 | peerDependenciesMeta: 703 | supports-color: 704 | optional: true 705 | 706 | deep-is@0.1.4: 707 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} 708 | 709 | define-data-property@1.1.4: 710 | resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} 711 | engines: {node: '>= 0.4'} 712 | 713 | define-properties@1.2.1: 714 | resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} 715 | engines: {node: '>= 0.4'} 716 | 717 | detect-libc@1.0.3: 718 | resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} 719 | engines: {node: '>=0.10'} 720 | hasBin: true 721 | 722 | detect-libc@2.0.3: 723 | resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} 724 | engines: {node: '>=8'} 725 | 726 | doctrine@2.1.0: 727 | resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} 728 | engines: {node: '>=0.10.0'} 729 | 730 | dotenv@16.0.3: 731 | resolution: {integrity: sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==} 732 | engines: {node: '>=12'} 733 | 734 | dunder-proto@1.0.1: 735 | resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} 736 | engines: {node: '>= 0.4'} 737 | 738 | enhanced-resolve@5.18.1: 739 | resolution: {integrity: sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==} 740 | engines: {node: '>=10.13.0'} 741 | 742 | es-abstract@1.23.9: 743 | resolution: {integrity: sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==} 744 | engines: {node: '>= 0.4'} 745 | 746 | es-define-property@1.0.1: 747 | resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} 748 | engines: {node: '>= 0.4'} 749 | 750 | es-errors@1.3.0: 751 | resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} 752 | engines: {node: '>= 0.4'} 753 | 754 | es-iterator-helpers@1.2.1: 755 | resolution: {integrity: sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==} 756 | engines: {node: '>= 0.4'} 757 | 758 | es-object-atoms@1.1.1: 759 | resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} 760 | engines: {node: '>= 0.4'} 761 | 762 | es-set-tostringtag@2.1.0: 763 | resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} 764 | engines: {node: '>= 0.4'} 765 | 766 | es-shim-unscopables@1.0.2: 767 | resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} 768 | 769 | es-to-primitive@1.3.0: 770 | resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} 771 | engines: {node: '>= 0.4'} 772 | 773 | escape-string-regexp@4.0.0: 774 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 775 | engines: {node: '>=10'} 776 | 777 | eslint-config-prettier@10.0.1: 778 | resolution: {integrity: sha512-lZBts941cyJyeaooiKxAtzoPHTN+GbQTJFAIdQbRhA4/8whaAraEh47Whw/ZFfrjNSnlAxqfm9i0XVAEkULjCw==} 779 | hasBin: true 780 | peerDependencies: 781 | eslint: '>=7.0.0' 782 | 783 | eslint-plugin-only-warn@1.1.0: 784 | resolution: {integrity: sha512-2tktqUAT+Q3hCAU0iSf4xAN1k9zOpjK5WO8104mB0rT/dGhOa09582HN5HlbxNbPRZ0THV7nLGvzugcNOSjzfA==} 785 | engines: {node: '>=6'} 786 | 787 | eslint-plugin-react-hooks@5.1.0: 788 | resolution: {integrity: sha512-mpJRtPgHN2tNAvZ35AMfqeB3Xqeo273QxrHJsbBEPWODRM4r0yB6jfoROqKEYrOn27UtRPpcpHc2UqyBSuUNTw==} 789 | engines: {node: '>=10'} 790 | peerDependencies: 791 | eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 792 | 793 | eslint-plugin-react@7.37.4: 794 | resolution: {integrity: sha512-BGP0jRmfYyvOyvMoRX/uoUeW+GqNj9y16bPQzqAHf3AYII/tDs+jMN0dBVkl88/OZwNGwrVFxE7riHsXVfy/LQ==} 795 | engines: {node: '>=4'} 796 | peerDependencies: 797 | eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 798 | 799 | eslint-plugin-turbo@2.4.0: 800 | resolution: {integrity: sha512-qCgoRi/OTc1VMxab7+sdKiV1xlkY4qjK9sM+kS7+WogrB1DxLguJSQXvk4HA13SD5VmJsq+8FYOw5q4EUk6Ixg==} 801 | peerDependencies: 802 | eslint: '>6.6.0' 803 | turbo: '>2.0.0' 804 | 805 | eslint-scope@8.2.0: 806 | resolution: {integrity: sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==} 807 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 808 | 809 | eslint-visitor-keys@3.4.3: 810 | resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} 811 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 812 | 813 | eslint-visitor-keys@4.2.0: 814 | resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} 815 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 816 | 817 | eslint@9.21.0: 818 | resolution: {integrity: sha512-KjeihdFqTPhOMXTt7StsDxriV4n66ueuF/jfPNC3j/lduHwr/ijDwJMsF+wyMJethgiKi5wniIE243vi07d3pg==} 819 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 820 | hasBin: true 821 | peerDependencies: 822 | jiti: '*' 823 | peerDependenciesMeta: 824 | jiti: 825 | optional: true 826 | 827 | espree@10.3.0: 828 | resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==} 829 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 830 | 831 | esquery@1.6.0: 832 | resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} 833 | engines: {node: '>=0.10'} 834 | 835 | esrecurse@4.3.0: 836 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} 837 | engines: {node: '>=4.0'} 838 | 839 | estraverse@5.3.0: 840 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} 841 | engines: {node: '>=4.0'} 842 | 843 | esutils@2.0.3: 844 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 845 | engines: {node: '>=0.10.0'} 846 | 847 | fast-deep-equal@3.1.3: 848 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 849 | 850 | fast-glob@3.3.1: 851 | resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} 852 | engines: {node: '>=8.6.0'} 853 | 854 | fast-glob@3.3.3: 855 | resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} 856 | engines: {node: '>=8.6.0'} 857 | 858 | fast-json-stable-stringify@2.1.0: 859 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} 860 | 861 | fast-levenshtein@2.0.6: 862 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} 863 | 864 | fastq@1.18.0: 865 | resolution: {integrity: sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==} 866 | 867 | file-entry-cache@8.0.0: 868 | resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} 869 | engines: {node: '>=16.0.0'} 870 | 871 | fill-range@7.1.1: 872 | resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} 873 | engines: {node: '>=8'} 874 | 875 | find-up@5.0.0: 876 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} 877 | engines: {node: '>=10'} 878 | 879 | flat-cache@4.0.1: 880 | resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} 881 | engines: {node: '>=16'} 882 | 883 | flatted@3.3.3: 884 | resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} 885 | 886 | for-each@0.3.3: 887 | resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} 888 | 889 | function-bind@1.1.2: 890 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} 891 | 892 | function.prototype.name@1.1.8: 893 | resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==} 894 | engines: {node: '>= 0.4'} 895 | 896 | functions-have-names@1.2.3: 897 | resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} 898 | 899 | get-intrinsic@1.2.7: 900 | resolution: {integrity: sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==} 901 | engines: {node: '>= 0.4'} 902 | 903 | get-proto@1.0.1: 904 | resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} 905 | engines: {node: '>= 0.4'} 906 | 907 | get-symbol-description@1.1.0: 908 | resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} 909 | engines: {node: '>= 0.4'} 910 | 911 | glob-parent@5.1.2: 912 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 913 | engines: {node: '>= 6'} 914 | 915 | glob-parent@6.0.2: 916 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 917 | engines: {node: '>=10.13.0'} 918 | 919 | globals@14.0.0: 920 | resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} 921 | engines: {node: '>=18'} 922 | 923 | globals@15.15.0: 924 | resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==} 925 | engines: {node: '>=18'} 926 | 927 | globalthis@1.0.4: 928 | resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} 929 | engines: {node: '>= 0.4'} 930 | 931 | gopd@1.2.0: 932 | resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} 933 | engines: {node: '>= 0.4'} 934 | 935 | graceful-fs@4.2.11: 936 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} 937 | 938 | graphemer@1.4.0: 939 | resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} 940 | 941 | has-bigints@1.1.0: 942 | resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} 943 | engines: {node: '>= 0.4'} 944 | 945 | has-flag@4.0.0: 946 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 947 | engines: {node: '>=8'} 948 | 949 | has-property-descriptors@1.0.2: 950 | resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} 951 | 952 | has-proto@1.2.0: 953 | resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==} 954 | engines: {node: '>= 0.4'} 955 | 956 | has-symbols@1.1.0: 957 | resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} 958 | engines: {node: '>= 0.4'} 959 | 960 | has-tostringtag@1.0.2: 961 | resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} 962 | engines: {node: '>= 0.4'} 963 | 964 | hasown@2.0.2: 965 | resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} 966 | engines: {node: '>= 0.4'} 967 | 968 | ignore@5.3.2: 969 | resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} 970 | engines: {node: '>= 4'} 971 | 972 | import-fresh@3.3.1: 973 | resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} 974 | engines: {node: '>=6'} 975 | 976 | imurmurhash@0.1.4: 977 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} 978 | engines: {node: '>=0.8.19'} 979 | 980 | internal-slot@1.1.0: 981 | resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} 982 | engines: {node: '>= 0.4'} 983 | 984 | is-array-buffer@3.0.5: 985 | resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} 986 | engines: {node: '>= 0.4'} 987 | 988 | is-arrayish@0.3.2: 989 | resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} 990 | 991 | is-async-function@2.1.1: 992 | resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==} 993 | engines: {node: '>= 0.4'} 994 | 995 | is-bigint@1.1.0: 996 | resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} 997 | engines: {node: '>= 0.4'} 998 | 999 | is-boolean-object@1.2.1: 1000 | resolution: {integrity: sha512-l9qO6eFlUETHtuihLcYOaLKByJ1f+N4kthcU9YjHy3N+B3hWv0y/2Nd0mu/7lTFnRQHTrSdXF50HQ3bl5fEnng==} 1001 | engines: {node: '>= 0.4'} 1002 | 1003 | is-callable@1.2.7: 1004 | resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} 1005 | engines: {node: '>= 0.4'} 1006 | 1007 | is-core-module@2.16.1: 1008 | resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} 1009 | engines: {node: '>= 0.4'} 1010 | 1011 | is-data-view@1.0.2: 1012 | resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==} 1013 | engines: {node: '>= 0.4'} 1014 | 1015 | is-date-object@1.1.0: 1016 | resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} 1017 | engines: {node: '>= 0.4'} 1018 | 1019 | is-extglob@2.1.1: 1020 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 1021 | engines: {node: '>=0.10.0'} 1022 | 1023 | is-finalizationregistry@1.1.1: 1024 | resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==} 1025 | engines: {node: '>= 0.4'} 1026 | 1027 | is-generator-function@1.1.0: 1028 | resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==} 1029 | engines: {node: '>= 0.4'} 1030 | 1031 | is-glob@4.0.3: 1032 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 1033 | engines: {node: '>=0.10.0'} 1034 | 1035 | is-map@2.0.3: 1036 | resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} 1037 | engines: {node: '>= 0.4'} 1038 | 1039 | is-number-object@1.1.1: 1040 | resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} 1041 | engines: {node: '>= 0.4'} 1042 | 1043 | is-number@7.0.0: 1044 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 1045 | engines: {node: '>=0.12.0'} 1046 | 1047 | is-regex@1.2.1: 1048 | resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} 1049 | engines: {node: '>= 0.4'} 1050 | 1051 | is-set@2.0.3: 1052 | resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} 1053 | engines: {node: '>= 0.4'} 1054 | 1055 | is-shared-array-buffer@1.0.4: 1056 | resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==} 1057 | engines: {node: '>= 0.4'} 1058 | 1059 | is-string@1.1.1: 1060 | resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==} 1061 | engines: {node: '>= 0.4'} 1062 | 1063 | is-symbol@1.1.1: 1064 | resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==} 1065 | engines: {node: '>= 0.4'} 1066 | 1067 | is-typed-array@1.1.15: 1068 | resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} 1069 | engines: {node: '>= 0.4'} 1070 | 1071 | is-weakmap@2.0.2: 1072 | resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} 1073 | engines: {node: '>= 0.4'} 1074 | 1075 | is-weakref@1.1.0: 1076 | resolution: {integrity: sha512-SXM8Nwyys6nT5WP6pltOwKytLV7FqQ4UiibxVmW+EIosHcmCqkkjViTb5SNssDlkCiEYRP1/pdWUKVvZBmsR2Q==} 1077 | engines: {node: '>= 0.4'} 1078 | 1079 | is-weakset@2.0.4: 1080 | resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} 1081 | engines: {node: '>= 0.4'} 1082 | 1083 | isarray@2.0.5: 1084 | resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} 1085 | 1086 | isexe@2.0.0: 1087 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 1088 | 1089 | iterator.prototype@1.1.5: 1090 | resolution: {integrity: sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==} 1091 | engines: {node: '>= 0.4'} 1092 | 1093 | jiti@2.4.2: 1094 | resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==} 1095 | hasBin: true 1096 | 1097 | js-tokens@4.0.0: 1098 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 1099 | 1100 | js-yaml@4.1.0: 1101 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} 1102 | hasBin: true 1103 | 1104 | json-buffer@3.0.1: 1105 | resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} 1106 | 1107 | json-schema-traverse@0.4.1: 1108 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} 1109 | 1110 | json-stable-stringify-without-jsonify@1.0.1: 1111 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} 1112 | 1113 | jsx-ast-utils@3.3.5: 1114 | resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} 1115 | engines: {node: '>=4.0'} 1116 | 1117 | keyv@4.5.4: 1118 | resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} 1119 | 1120 | levn@0.4.1: 1121 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} 1122 | engines: {node: '>= 0.8.0'} 1123 | 1124 | lightningcss-darwin-arm64@1.29.1: 1125 | resolution: {integrity: sha512-HtR5XJ5A0lvCqYAoSv2QdZZyoHNttBpa5EP9aNuzBQeKGfbyH5+UipLWvVzpP4Uml5ej4BYs5I9Lco9u1fECqw==} 1126 | engines: {node: '>= 12.0.0'} 1127 | cpu: [arm64] 1128 | os: [darwin] 1129 | 1130 | lightningcss-darwin-x64@1.29.1: 1131 | resolution: {integrity: sha512-k33G9IzKUpHy/J/3+9MCO4e+PzaFblsgBjSGlpAaFikeBFm8B/CkO3cKU9oI4g+fjS2KlkLM/Bza9K/aw8wsNA==} 1132 | engines: {node: '>= 12.0.0'} 1133 | cpu: [x64] 1134 | os: [darwin] 1135 | 1136 | lightningcss-freebsd-x64@1.29.1: 1137 | resolution: {integrity: sha512-0SUW22fv/8kln2LnIdOCmSuXnxgxVC276W5KLTwoehiO0hxkacBxjHOL5EtHD8BAXg2BvuhsJPmVMasvby3LiQ==} 1138 | engines: {node: '>= 12.0.0'} 1139 | cpu: [x64] 1140 | os: [freebsd] 1141 | 1142 | lightningcss-linux-arm-gnueabihf@1.29.1: 1143 | resolution: {integrity: sha512-sD32pFvlR0kDlqsOZmYqH/68SqUMPNj+0pucGxToXZi4XZgZmqeX/NkxNKCPsswAXU3UeYgDSpGhu05eAufjDg==} 1144 | engines: {node: '>= 12.0.0'} 1145 | cpu: [arm] 1146 | os: [linux] 1147 | 1148 | lightningcss-linux-arm64-gnu@1.29.1: 1149 | resolution: {integrity: sha512-0+vClRIZ6mmJl/dxGuRsE197o1HDEeeRk6nzycSy2GofC2JsY4ifCRnvUWf/CUBQmlrvMzt6SMQNMSEu22csWQ==} 1150 | engines: {node: '>= 12.0.0'} 1151 | cpu: [arm64] 1152 | os: [linux] 1153 | 1154 | lightningcss-linux-arm64-musl@1.29.1: 1155 | resolution: {integrity: sha512-UKMFrG4rL/uHNgelBsDwJcBqVpzNJbzsKkbI3Ja5fg00sgQnHw/VrzUTEc4jhZ+AN2BvQYz/tkHu4vt1kLuJyw==} 1156 | engines: {node: '>= 12.0.0'} 1157 | cpu: [arm64] 1158 | os: [linux] 1159 | 1160 | lightningcss-linux-x64-gnu@1.29.1: 1161 | resolution: {integrity: sha512-u1S+xdODy/eEtjADqirA774y3jLcm8RPtYztwReEXoZKdzgsHYPl0s5V52Tst+GKzqjebkULT86XMSxejzfISw==} 1162 | engines: {node: '>= 12.0.0'} 1163 | cpu: [x64] 1164 | os: [linux] 1165 | 1166 | lightningcss-linux-x64-musl@1.29.1: 1167 | resolution: {integrity: sha512-L0Tx0DtaNUTzXv0lbGCLB/c/qEADanHbu4QdcNOXLIe1i8i22rZRpbT3gpWYsCh9aSL9zFujY/WmEXIatWvXbw==} 1168 | engines: {node: '>= 12.0.0'} 1169 | cpu: [x64] 1170 | os: [linux] 1171 | 1172 | lightningcss-win32-arm64-msvc@1.29.1: 1173 | resolution: {integrity: sha512-QoOVnkIEFfbW4xPi+dpdft/zAKmgLgsRHfJalEPYuJDOWf7cLQzYg0DEh8/sn737FaeMJxHZRc1oBreiwZCjog==} 1174 | engines: {node: '>= 12.0.0'} 1175 | cpu: [arm64] 1176 | os: [win32] 1177 | 1178 | lightningcss-win32-x64-msvc@1.29.1: 1179 | resolution: {integrity: sha512-NygcbThNBe4JElP+olyTI/doBNGJvLs3bFCRPdvuCcxZCcCZ71B858IHpdm7L1btZex0FvCmM17FK98Y9MRy1Q==} 1180 | engines: {node: '>= 12.0.0'} 1181 | cpu: [x64] 1182 | os: [win32] 1183 | 1184 | lightningcss@1.29.1: 1185 | resolution: {integrity: sha512-FmGoeD4S05ewj+AkhTY+D+myDvXI6eL27FjHIjoyUkO/uw7WZD1fBVs0QxeYWa7E17CUHJaYX/RUGISCtcrG4Q==} 1186 | engines: {node: '>= 12.0.0'} 1187 | 1188 | locate-path@6.0.0: 1189 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} 1190 | engines: {node: '>=10'} 1191 | 1192 | lodash.merge@4.6.2: 1193 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 1194 | 1195 | loose-envify@1.4.0: 1196 | resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} 1197 | hasBin: true 1198 | 1199 | lucide-react@0.476.0: 1200 | resolution: {integrity: sha512-x6cLTk8gahdUPje0hSgLN1/MgiJH+Xl90Xoxy9bkPAsMPOUiyRSKR4JCDPGVCEpyqnZXH3exFWNItcvra9WzUQ==} 1201 | peerDependencies: 1202 | react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 1203 | 1204 | math-intrinsics@1.1.0: 1205 | resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} 1206 | engines: {node: '>= 0.4'} 1207 | 1208 | merge2@1.4.1: 1209 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 1210 | engines: {node: '>= 8'} 1211 | 1212 | micromatch@4.0.8: 1213 | resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} 1214 | engines: {node: '>=8.6'} 1215 | 1216 | minimatch@3.1.2: 1217 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 1218 | 1219 | minimatch@9.0.5: 1220 | resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} 1221 | engines: {node: '>=16 || 14 >=14.17'} 1222 | 1223 | ms@2.1.3: 1224 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 1225 | 1226 | nanoid@3.3.8: 1227 | resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} 1228 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 1229 | hasBin: true 1230 | 1231 | natural-compare@1.4.0: 1232 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} 1233 | 1234 | next@15.2.4: 1235 | resolution: {integrity: sha512-VwL+LAaPSxEkd3lU2xWbgEOtrM8oedmyhBqaVNmgKB+GvZlCy9rgaEc+y2on0wv+l0oSFqLtYD6dcC1eAedUaQ==} 1236 | engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0} 1237 | hasBin: true 1238 | peerDependencies: 1239 | '@opentelemetry/api': ^1.1.0 1240 | '@playwright/test': ^1.41.2 1241 | babel-plugin-react-compiler: '*' 1242 | react: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 1243 | react-dom: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 1244 | sass: ^1.3.0 1245 | peerDependenciesMeta: 1246 | '@opentelemetry/api': 1247 | optional: true 1248 | '@playwright/test': 1249 | optional: true 1250 | babel-plugin-react-compiler: 1251 | optional: true 1252 | sass: 1253 | optional: true 1254 | 1255 | object-assign@4.1.1: 1256 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} 1257 | engines: {node: '>=0.10.0'} 1258 | 1259 | object-inspect@1.13.3: 1260 | resolution: {integrity: sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==} 1261 | engines: {node: '>= 0.4'} 1262 | 1263 | object-keys@1.1.1: 1264 | resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} 1265 | engines: {node: '>= 0.4'} 1266 | 1267 | object.assign@4.1.7: 1268 | resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} 1269 | engines: {node: '>= 0.4'} 1270 | 1271 | object.entries@1.1.8: 1272 | resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==} 1273 | engines: {node: '>= 0.4'} 1274 | 1275 | object.fromentries@2.0.8: 1276 | resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} 1277 | engines: {node: '>= 0.4'} 1278 | 1279 | object.values@1.2.1: 1280 | resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} 1281 | engines: {node: '>= 0.4'} 1282 | 1283 | optionator@0.9.4: 1284 | resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} 1285 | engines: {node: '>= 0.8.0'} 1286 | 1287 | own-keys@1.0.1: 1288 | resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} 1289 | engines: {node: '>= 0.4'} 1290 | 1291 | p-limit@3.1.0: 1292 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} 1293 | engines: {node: '>=10'} 1294 | 1295 | p-locate@5.0.0: 1296 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} 1297 | engines: {node: '>=10'} 1298 | 1299 | parent-module@1.0.1: 1300 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 1301 | engines: {node: '>=6'} 1302 | 1303 | path-exists@4.0.0: 1304 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 1305 | engines: {node: '>=8'} 1306 | 1307 | path-key@3.1.1: 1308 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 1309 | engines: {node: '>=8'} 1310 | 1311 | path-parse@1.0.7: 1312 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 1313 | 1314 | picocolors@1.1.1: 1315 | resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} 1316 | 1317 | picomatch@2.3.1: 1318 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 1319 | engines: {node: '>=8.6'} 1320 | 1321 | possible-typed-array-names@1.0.0: 1322 | resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} 1323 | engines: {node: '>= 0.4'} 1324 | 1325 | postcss@8.4.31: 1326 | resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} 1327 | engines: {node: ^10 || ^12 || >=14} 1328 | 1329 | postcss@8.5.3: 1330 | resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==} 1331 | engines: {node: ^10 || ^12 || >=14} 1332 | 1333 | prelude-ls@1.2.1: 1334 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} 1335 | engines: {node: '>= 0.8.0'} 1336 | 1337 | prettier@3.5.0: 1338 | resolution: {integrity: sha512-quyMrVt6svPS7CjQ9gKb3GLEX/rl3BCL2oa/QkNcXv4YNVBC9olt3s+H7ukto06q7B1Qz46PbrKLO34PR6vXcA==} 1339 | engines: {node: '>=14'} 1340 | hasBin: true 1341 | 1342 | prop-types@15.8.1: 1343 | resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} 1344 | 1345 | punycode@2.3.1: 1346 | resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} 1347 | engines: {node: '>=6'} 1348 | 1349 | queue-microtask@1.2.3: 1350 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 1351 | 1352 | react-dom@19.0.0: 1353 | resolution: {integrity: sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==} 1354 | peerDependencies: 1355 | react: ^19.0.0 1356 | 1357 | react-is@16.13.1: 1358 | resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} 1359 | 1360 | react@19.0.0: 1361 | resolution: {integrity: sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==} 1362 | engines: {node: '>=0.10.0'} 1363 | 1364 | reflect.getprototypeof@1.0.10: 1365 | resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} 1366 | engines: {node: '>= 0.4'} 1367 | 1368 | regexp.prototype.flags@1.5.4: 1369 | resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} 1370 | engines: {node: '>= 0.4'} 1371 | 1372 | resolve-from@4.0.0: 1373 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 1374 | engines: {node: '>=4'} 1375 | 1376 | resolve@2.0.0-next.5: 1377 | resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} 1378 | hasBin: true 1379 | 1380 | reusify@1.0.4: 1381 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 1382 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 1383 | 1384 | run-parallel@1.2.0: 1385 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 1386 | 1387 | safe-array-concat@1.1.3: 1388 | resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} 1389 | engines: {node: '>=0.4'} 1390 | 1391 | safe-push-apply@1.0.0: 1392 | resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} 1393 | engines: {node: '>= 0.4'} 1394 | 1395 | safe-regex-test@1.1.0: 1396 | resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} 1397 | engines: {node: '>= 0.4'} 1398 | 1399 | scheduler@0.25.0: 1400 | resolution: {integrity: sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==} 1401 | 1402 | semver@6.3.1: 1403 | resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} 1404 | hasBin: true 1405 | 1406 | semver@7.7.1: 1407 | resolution: {integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==} 1408 | engines: {node: '>=10'} 1409 | hasBin: true 1410 | 1411 | set-function-length@1.2.2: 1412 | resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} 1413 | engines: {node: '>= 0.4'} 1414 | 1415 | set-function-name@2.0.2: 1416 | resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} 1417 | engines: {node: '>= 0.4'} 1418 | 1419 | set-proto@1.0.0: 1420 | resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==} 1421 | engines: {node: '>= 0.4'} 1422 | 1423 | sharp@0.33.5: 1424 | resolution: {integrity: sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==} 1425 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 1426 | 1427 | shebang-command@2.0.0: 1428 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 1429 | engines: {node: '>=8'} 1430 | 1431 | shebang-regex@3.0.0: 1432 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 1433 | engines: {node: '>=8'} 1434 | 1435 | side-channel-list@1.0.0: 1436 | resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} 1437 | engines: {node: '>= 0.4'} 1438 | 1439 | side-channel-map@1.0.1: 1440 | resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} 1441 | engines: {node: '>= 0.4'} 1442 | 1443 | side-channel-weakmap@1.0.2: 1444 | resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} 1445 | engines: {node: '>= 0.4'} 1446 | 1447 | side-channel@1.1.0: 1448 | resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} 1449 | engines: {node: '>= 0.4'} 1450 | 1451 | simple-swizzle@0.2.2: 1452 | resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} 1453 | 1454 | source-map-js@1.2.1: 1455 | resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} 1456 | engines: {node: '>=0.10.0'} 1457 | 1458 | streamsearch@1.1.0: 1459 | resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} 1460 | engines: {node: '>=10.0.0'} 1461 | 1462 | string.prototype.matchall@4.0.12: 1463 | resolution: {integrity: sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==} 1464 | engines: {node: '>= 0.4'} 1465 | 1466 | string.prototype.repeat@1.0.0: 1467 | resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==} 1468 | 1469 | string.prototype.trim@1.2.10: 1470 | resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==} 1471 | engines: {node: '>= 0.4'} 1472 | 1473 | string.prototype.trimend@1.0.9: 1474 | resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==} 1475 | engines: {node: '>= 0.4'} 1476 | 1477 | string.prototype.trimstart@1.0.8: 1478 | resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} 1479 | engines: {node: '>= 0.4'} 1480 | 1481 | strip-json-comments@3.1.1: 1482 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 1483 | engines: {node: '>=8'} 1484 | 1485 | styled-jsx@5.1.6: 1486 | resolution: {integrity: sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==} 1487 | engines: {node: '>= 12.0.0'} 1488 | peerDependencies: 1489 | '@babel/core': '*' 1490 | babel-plugin-macros: '*' 1491 | react: '>= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0' 1492 | peerDependenciesMeta: 1493 | '@babel/core': 1494 | optional: true 1495 | babel-plugin-macros: 1496 | optional: true 1497 | 1498 | supports-color@7.2.0: 1499 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 1500 | engines: {node: '>=8'} 1501 | 1502 | supports-preserve-symlinks-flag@1.0.0: 1503 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 1504 | engines: {node: '>= 0.4'} 1505 | 1506 | tailwind-merge@3.0.2: 1507 | resolution: {integrity: sha512-l7z+OYZ7mu3DTqrL88RiKrKIqO3NcpEO8V/Od04bNpvk0kiIFndGEoqfuzvj4yuhRkHKjRkII2z+KS2HfPcSxw==} 1508 | 1509 | tailwindcss@4.0.9: 1510 | resolution: {integrity: sha512-12laZu+fv1ONDRoNR9ipTOpUD7RN9essRVkX36sjxuRUInpN7hIiHN4lBd/SIFjbISvnXzp8h/hXzmU8SQQYhw==} 1511 | 1512 | tapable@2.2.1: 1513 | resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} 1514 | engines: {node: '>=6'} 1515 | 1516 | to-regex-range@5.0.1: 1517 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 1518 | engines: {node: '>=8.0'} 1519 | 1520 | ts-api-utils@2.0.1: 1521 | resolution: {integrity: sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w==} 1522 | engines: {node: '>=18.12'} 1523 | peerDependencies: 1524 | typescript: '>=4.8.4' 1525 | 1526 | tslib@2.8.1: 1527 | resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} 1528 | 1529 | turbo-darwin-64@2.4.4: 1530 | resolution: {integrity: sha512-5kPvRkLAfmWI0MH96D+/THnDMGXlFNmjeqNRj5grLKiry+M9pKj3pRuScddAXPdlxjO5Ptz06UNaOQrrYGTx1g==} 1531 | cpu: [x64] 1532 | os: [darwin] 1533 | 1534 | turbo-darwin-arm64@2.4.4: 1535 | resolution: {integrity: sha512-/gtHPqbGQXDFhrmy+Q/MFW2HUTUlThJ97WLLSe4bxkDrKHecDYhAjbZ4rN3MM93RV9STQb3Tqy4pZBtsd4DfCw==} 1536 | cpu: [arm64] 1537 | os: [darwin] 1538 | 1539 | turbo-linux-64@2.4.4: 1540 | resolution: {integrity: sha512-SR0gri4k0bda56hw5u9VgDXLKb1Q+jrw4lM7WAhnNdXvVoep4d6LmnzgMHQQR12Wxl3KyWPbkz9d1whL6NTm2Q==} 1541 | cpu: [x64] 1542 | os: [linux] 1543 | 1544 | turbo-linux-arm64@2.4.4: 1545 | resolution: {integrity: sha512-COXXwzRd3vslQIfJhXUklgEqlwq35uFUZ7hnN+AUyXx7hUOLIiD5NblL+ETrHnhY4TzWszrbwUMfe2BYWtaPQg==} 1546 | cpu: [arm64] 1547 | os: [linux] 1548 | 1549 | turbo-windows-64@2.4.4: 1550 | resolution: {integrity: sha512-PV9rYNouGz4Ff3fd6sIfQy5L7HT9a4fcZoEv8PKRavU9O75G7PoDtm8scpHU10QnK0QQNLbE9qNxOAeRvF0fJg==} 1551 | cpu: [x64] 1552 | os: [win32] 1553 | 1554 | turbo-windows-arm64@2.4.4: 1555 | resolution: {integrity: sha512-403sqp9t5sx6YGEC32IfZTVWkRAixOQomGYB8kEc6ZD+//LirSxzeCHCnM8EmSXw7l57U1G+Fb0kxgTcKPU/Lg==} 1556 | cpu: [arm64] 1557 | os: [win32] 1558 | 1559 | turbo@2.4.4: 1560 | resolution: {integrity: sha512-N9FDOVaY3yz0YCOhYIgOGYad7+m2ptvinXygw27WPLQvcZDl3+0Sa77KGVlLSiuPDChOUEnTKE9VJwLSi9BPGQ==} 1561 | hasBin: true 1562 | 1563 | tw-animate-css@1.2.4: 1564 | resolution: {integrity: sha512-yt+HkJB41NAvOffe4NweJU6fLqAlVx/mBX6XmHRp15kq0JxTtOKaIw8pVSWM1Z+n2nXtyi7cW6C9f0WG/F/QAQ==} 1565 | 1566 | type-check@0.4.0: 1567 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} 1568 | engines: {node: '>= 0.8.0'} 1569 | 1570 | typed-array-buffer@1.0.3: 1571 | resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} 1572 | engines: {node: '>= 0.4'} 1573 | 1574 | typed-array-byte-length@1.0.3: 1575 | resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==} 1576 | engines: {node: '>= 0.4'} 1577 | 1578 | typed-array-byte-offset@1.0.4: 1579 | resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==} 1580 | engines: {node: '>= 0.4'} 1581 | 1582 | typed-array-length@1.0.7: 1583 | resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} 1584 | engines: {node: '>= 0.4'} 1585 | 1586 | typescript-eslint@8.24.0: 1587 | resolution: {integrity: sha512-/lmv4366en/qbB32Vz5+kCNZEMf6xYHwh1z48suBwZvAtnXKbP+YhGe8OLE2BqC67LMqKkCNLtjejdwsdW6uOQ==} 1588 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 1589 | peerDependencies: 1590 | eslint: ^8.57.0 || ^9.0.0 1591 | typescript: '>=4.8.4 <5.8.0' 1592 | 1593 | typescript@5.7.3: 1594 | resolution: {integrity: sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==} 1595 | engines: {node: '>=14.17'} 1596 | hasBin: true 1597 | 1598 | unbox-primitive@1.1.0: 1599 | resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} 1600 | engines: {node: '>= 0.4'} 1601 | 1602 | undici-types@6.19.8: 1603 | resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} 1604 | 1605 | undici-types@6.20.0: 1606 | resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} 1607 | 1608 | uri-js@4.4.1: 1609 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 1610 | 1611 | which-boxed-primitive@1.1.1: 1612 | resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} 1613 | engines: {node: '>= 0.4'} 1614 | 1615 | which-builtin-type@1.2.1: 1616 | resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==} 1617 | engines: {node: '>= 0.4'} 1618 | 1619 | which-collection@1.0.2: 1620 | resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} 1621 | engines: {node: '>= 0.4'} 1622 | 1623 | which-typed-array@1.1.18: 1624 | resolution: {integrity: sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==} 1625 | engines: {node: '>= 0.4'} 1626 | 1627 | which@2.0.2: 1628 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 1629 | engines: {node: '>= 8'} 1630 | hasBin: true 1631 | 1632 | word-wrap@1.2.5: 1633 | resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} 1634 | engines: {node: '>=0.10.0'} 1635 | 1636 | yocto-queue@0.1.0: 1637 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 1638 | engines: {node: '>=10'} 1639 | 1640 | snapshots: 1641 | 1642 | '@alloc/quick-lru@5.2.0': {} 1643 | 1644 | '@emnapi/runtime@1.3.1': 1645 | dependencies: 1646 | tslib: 2.8.1 1647 | optional: true 1648 | 1649 | '@eslint-community/eslint-utils@4.4.1(eslint@9.21.0(jiti@2.4.2))': 1650 | dependencies: 1651 | eslint: 9.21.0(jiti@2.4.2) 1652 | eslint-visitor-keys: 3.4.3 1653 | 1654 | '@eslint-community/regexpp@4.12.1': {} 1655 | 1656 | '@eslint/config-array@0.19.2': 1657 | dependencies: 1658 | '@eslint/object-schema': 2.1.6 1659 | debug: 4.4.0 1660 | minimatch: 3.1.2 1661 | transitivePeerDependencies: 1662 | - supports-color 1663 | 1664 | '@eslint/core@0.12.0': 1665 | dependencies: 1666 | '@types/json-schema': 7.0.15 1667 | 1668 | '@eslint/eslintrc@3.3.0': 1669 | dependencies: 1670 | ajv: 6.12.6 1671 | debug: 4.4.0 1672 | espree: 10.3.0 1673 | globals: 14.0.0 1674 | ignore: 5.3.2 1675 | import-fresh: 3.3.1 1676 | js-yaml: 4.1.0 1677 | minimatch: 3.1.2 1678 | strip-json-comments: 3.1.1 1679 | transitivePeerDependencies: 1680 | - supports-color 1681 | 1682 | '@eslint/js@9.21.0': {} 1683 | 1684 | '@eslint/object-schema@2.1.6': {} 1685 | 1686 | '@eslint/plugin-kit@0.2.7': 1687 | dependencies: 1688 | '@eslint/core': 0.12.0 1689 | levn: 0.4.1 1690 | 1691 | '@humanfs/core@0.19.1': {} 1692 | 1693 | '@humanfs/node@0.16.6': 1694 | dependencies: 1695 | '@humanfs/core': 0.19.1 1696 | '@humanwhocodes/retry': 0.3.1 1697 | 1698 | '@humanwhocodes/module-importer@1.0.1': {} 1699 | 1700 | '@humanwhocodes/retry@0.3.1': {} 1701 | 1702 | '@humanwhocodes/retry@0.4.2': {} 1703 | 1704 | '@img/sharp-darwin-arm64@0.33.5': 1705 | optionalDependencies: 1706 | '@img/sharp-libvips-darwin-arm64': 1.0.4 1707 | optional: true 1708 | 1709 | '@img/sharp-darwin-x64@0.33.5': 1710 | optionalDependencies: 1711 | '@img/sharp-libvips-darwin-x64': 1.0.4 1712 | optional: true 1713 | 1714 | '@img/sharp-libvips-darwin-arm64@1.0.4': 1715 | optional: true 1716 | 1717 | '@img/sharp-libvips-darwin-x64@1.0.4': 1718 | optional: true 1719 | 1720 | '@img/sharp-libvips-linux-arm64@1.0.4': 1721 | optional: true 1722 | 1723 | '@img/sharp-libvips-linux-arm@1.0.5': 1724 | optional: true 1725 | 1726 | '@img/sharp-libvips-linux-s390x@1.0.4': 1727 | optional: true 1728 | 1729 | '@img/sharp-libvips-linux-x64@1.0.4': 1730 | optional: true 1731 | 1732 | '@img/sharp-libvips-linuxmusl-arm64@1.0.4': 1733 | optional: true 1734 | 1735 | '@img/sharp-libvips-linuxmusl-x64@1.0.4': 1736 | optional: true 1737 | 1738 | '@img/sharp-linux-arm64@0.33.5': 1739 | optionalDependencies: 1740 | '@img/sharp-libvips-linux-arm64': 1.0.4 1741 | optional: true 1742 | 1743 | '@img/sharp-linux-arm@0.33.5': 1744 | optionalDependencies: 1745 | '@img/sharp-libvips-linux-arm': 1.0.5 1746 | optional: true 1747 | 1748 | '@img/sharp-linux-s390x@0.33.5': 1749 | optionalDependencies: 1750 | '@img/sharp-libvips-linux-s390x': 1.0.4 1751 | optional: true 1752 | 1753 | '@img/sharp-linux-x64@0.33.5': 1754 | optionalDependencies: 1755 | '@img/sharp-libvips-linux-x64': 1.0.4 1756 | optional: true 1757 | 1758 | '@img/sharp-linuxmusl-arm64@0.33.5': 1759 | optionalDependencies: 1760 | '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 1761 | optional: true 1762 | 1763 | '@img/sharp-linuxmusl-x64@0.33.5': 1764 | optionalDependencies: 1765 | '@img/sharp-libvips-linuxmusl-x64': 1.0.4 1766 | optional: true 1767 | 1768 | '@img/sharp-wasm32@0.33.5': 1769 | dependencies: 1770 | '@emnapi/runtime': 1.3.1 1771 | optional: true 1772 | 1773 | '@img/sharp-win32-ia32@0.33.5': 1774 | optional: true 1775 | 1776 | '@img/sharp-win32-x64@0.33.5': 1777 | optional: true 1778 | 1779 | '@next/env@15.2.4': {} 1780 | 1781 | '@next/eslint-plugin-next@15.1.6': 1782 | dependencies: 1783 | fast-glob: 3.3.1 1784 | 1785 | '@next/swc-darwin-arm64@15.2.4': 1786 | optional: true 1787 | 1788 | '@next/swc-darwin-x64@15.2.4': 1789 | optional: true 1790 | 1791 | '@next/swc-linux-arm64-gnu@15.2.4': 1792 | optional: true 1793 | 1794 | '@next/swc-linux-arm64-musl@15.2.4': 1795 | optional: true 1796 | 1797 | '@next/swc-linux-x64-gnu@15.2.4': 1798 | optional: true 1799 | 1800 | '@next/swc-linux-x64-musl@15.2.4': 1801 | optional: true 1802 | 1803 | '@next/swc-win32-arm64-msvc@15.2.4': 1804 | optional: true 1805 | 1806 | '@next/swc-win32-x64-msvc@15.2.4': 1807 | optional: true 1808 | 1809 | '@nodelib/fs.scandir@2.1.5': 1810 | dependencies: 1811 | '@nodelib/fs.stat': 2.0.5 1812 | run-parallel: 1.2.0 1813 | 1814 | '@nodelib/fs.stat@2.0.5': {} 1815 | 1816 | '@nodelib/fs.walk@1.2.8': 1817 | dependencies: 1818 | '@nodelib/fs.scandir': 2.1.5 1819 | fastq: 1.18.0 1820 | 1821 | '@radix-ui/react-compose-refs@1.1.1(@types/react@19.0.8)(react@19.0.0)': 1822 | dependencies: 1823 | react: 19.0.0 1824 | optionalDependencies: 1825 | '@types/react': 19.0.8 1826 | 1827 | '@radix-ui/react-slot@1.1.2(@types/react@19.0.8)(react@19.0.0)': 1828 | dependencies: 1829 | '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.8)(react@19.0.0) 1830 | react: 19.0.0 1831 | optionalDependencies: 1832 | '@types/react': 19.0.8 1833 | 1834 | '@swc/counter@0.1.3': {} 1835 | 1836 | '@swc/helpers@0.5.15': 1837 | dependencies: 1838 | tslib: 2.8.1 1839 | 1840 | '@tailwindcss/node@4.0.9': 1841 | dependencies: 1842 | enhanced-resolve: 5.18.1 1843 | jiti: 2.4.2 1844 | tailwindcss: 4.0.9 1845 | 1846 | '@tailwindcss/oxide-android-arm64@4.0.9': 1847 | optional: true 1848 | 1849 | '@tailwindcss/oxide-darwin-arm64@4.0.9': 1850 | optional: true 1851 | 1852 | '@tailwindcss/oxide-darwin-x64@4.0.9': 1853 | optional: true 1854 | 1855 | '@tailwindcss/oxide-freebsd-x64@4.0.9': 1856 | optional: true 1857 | 1858 | '@tailwindcss/oxide-linux-arm-gnueabihf@4.0.9': 1859 | optional: true 1860 | 1861 | '@tailwindcss/oxide-linux-arm64-gnu@4.0.9': 1862 | optional: true 1863 | 1864 | '@tailwindcss/oxide-linux-arm64-musl@4.0.9': 1865 | optional: true 1866 | 1867 | '@tailwindcss/oxide-linux-x64-gnu@4.0.9': 1868 | optional: true 1869 | 1870 | '@tailwindcss/oxide-linux-x64-musl@4.0.9': 1871 | optional: true 1872 | 1873 | '@tailwindcss/oxide-win32-arm64-msvc@4.0.9': 1874 | optional: true 1875 | 1876 | '@tailwindcss/oxide-win32-x64-msvc@4.0.9': 1877 | optional: true 1878 | 1879 | '@tailwindcss/oxide@4.0.9': 1880 | optionalDependencies: 1881 | '@tailwindcss/oxide-android-arm64': 4.0.9 1882 | '@tailwindcss/oxide-darwin-arm64': 4.0.9 1883 | '@tailwindcss/oxide-darwin-x64': 4.0.9 1884 | '@tailwindcss/oxide-freebsd-x64': 4.0.9 1885 | '@tailwindcss/oxide-linux-arm-gnueabihf': 4.0.9 1886 | '@tailwindcss/oxide-linux-arm64-gnu': 4.0.9 1887 | '@tailwindcss/oxide-linux-arm64-musl': 4.0.9 1888 | '@tailwindcss/oxide-linux-x64-gnu': 4.0.9 1889 | '@tailwindcss/oxide-linux-x64-musl': 4.0.9 1890 | '@tailwindcss/oxide-win32-arm64-msvc': 4.0.9 1891 | '@tailwindcss/oxide-win32-x64-msvc': 4.0.9 1892 | 1893 | '@tailwindcss/postcss@4.0.9': 1894 | dependencies: 1895 | '@alloc/quick-lru': 5.2.0 1896 | '@tailwindcss/node': 4.0.9 1897 | '@tailwindcss/oxide': 4.0.9 1898 | lightningcss: 1.29.1 1899 | postcss: 8.5.3 1900 | tailwindcss: 4.0.9 1901 | 1902 | '@types/estree@1.0.6': {} 1903 | 1904 | '@types/json-schema@7.0.15': {} 1905 | 1906 | '@types/node@20.17.19': 1907 | dependencies: 1908 | undici-types: 6.19.8 1909 | 1910 | '@types/node@22.13.0': 1911 | dependencies: 1912 | undici-types: 6.20.0 1913 | 1914 | '@types/react-dom@19.0.3(@types/react@19.0.8)': 1915 | dependencies: 1916 | '@types/react': 19.0.8 1917 | 1918 | '@types/react@19.0.8': 1919 | dependencies: 1920 | csstype: 3.1.3 1921 | 1922 | '@typescript-eslint/eslint-plugin@8.24.0(@typescript-eslint/parser@8.24.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)': 1923 | dependencies: 1924 | '@eslint-community/regexpp': 4.12.1 1925 | '@typescript-eslint/parser': 8.24.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) 1926 | '@typescript-eslint/scope-manager': 8.24.0 1927 | '@typescript-eslint/type-utils': 8.24.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) 1928 | '@typescript-eslint/utils': 8.24.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) 1929 | '@typescript-eslint/visitor-keys': 8.24.0 1930 | eslint: 9.21.0(jiti@2.4.2) 1931 | graphemer: 1.4.0 1932 | ignore: 5.3.2 1933 | natural-compare: 1.4.0 1934 | ts-api-utils: 2.0.1(typescript@5.7.3) 1935 | typescript: 5.7.3 1936 | transitivePeerDependencies: 1937 | - supports-color 1938 | 1939 | '@typescript-eslint/parser@8.24.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)': 1940 | dependencies: 1941 | '@typescript-eslint/scope-manager': 8.24.0 1942 | '@typescript-eslint/types': 8.24.0 1943 | '@typescript-eslint/typescript-estree': 8.24.0(typescript@5.7.3) 1944 | '@typescript-eslint/visitor-keys': 8.24.0 1945 | debug: 4.4.0 1946 | eslint: 9.21.0(jiti@2.4.2) 1947 | typescript: 5.7.3 1948 | transitivePeerDependencies: 1949 | - supports-color 1950 | 1951 | '@typescript-eslint/scope-manager@8.24.0': 1952 | dependencies: 1953 | '@typescript-eslint/types': 8.24.0 1954 | '@typescript-eslint/visitor-keys': 8.24.0 1955 | 1956 | '@typescript-eslint/type-utils@8.24.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)': 1957 | dependencies: 1958 | '@typescript-eslint/typescript-estree': 8.24.0(typescript@5.7.3) 1959 | '@typescript-eslint/utils': 8.24.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) 1960 | debug: 4.4.0 1961 | eslint: 9.21.0(jiti@2.4.2) 1962 | ts-api-utils: 2.0.1(typescript@5.7.3) 1963 | typescript: 5.7.3 1964 | transitivePeerDependencies: 1965 | - supports-color 1966 | 1967 | '@typescript-eslint/types@8.24.0': {} 1968 | 1969 | '@typescript-eslint/typescript-estree@8.24.0(typescript@5.7.3)': 1970 | dependencies: 1971 | '@typescript-eslint/types': 8.24.0 1972 | '@typescript-eslint/visitor-keys': 8.24.0 1973 | debug: 4.4.0 1974 | fast-glob: 3.3.3 1975 | is-glob: 4.0.3 1976 | minimatch: 9.0.5 1977 | semver: 7.7.1 1978 | ts-api-utils: 2.0.1(typescript@5.7.3) 1979 | typescript: 5.7.3 1980 | transitivePeerDependencies: 1981 | - supports-color 1982 | 1983 | '@typescript-eslint/utils@8.24.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3)': 1984 | dependencies: 1985 | '@eslint-community/eslint-utils': 4.4.1(eslint@9.21.0(jiti@2.4.2)) 1986 | '@typescript-eslint/scope-manager': 8.24.0 1987 | '@typescript-eslint/types': 8.24.0 1988 | '@typescript-eslint/typescript-estree': 8.24.0(typescript@5.7.3) 1989 | eslint: 9.21.0(jiti@2.4.2) 1990 | typescript: 5.7.3 1991 | transitivePeerDependencies: 1992 | - supports-color 1993 | 1994 | '@typescript-eslint/visitor-keys@8.24.0': 1995 | dependencies: 1996 | '@typescript-eslint/types': 8.24.0 1997 | eslint-visitor-keys: 4.2.0 1998 | 1999 | acorn-jsx@5.3.2(acorn@8.14.0): 2000 | dependencies: 2001 | acorn: 8.14.0 2002 | 2003 | acorn@8.14.0: {} 2004 | 2005 | ajv@6.12.6: 2006 | dependencies: 2007 | fast-deep-equal: 3.1.3 2008 | fast-json-stable-stringify: 2.1.0 2009 | json-schema-traverse: 0.4.1 2010 | uri-js: 4.4.1 2011 | 2012 | ansi-styles@4.3.0: 2013 | dependencies: 2014 | color-convert: 2.0.1 2015 | 2016 | argparse@2.0.1: {} 2017 | 2018 | array-buffer-byte-length@1.0.2: 2019 | dependencies: 2020 | call-bound: 1.0.3 2021 | is-array-buffer: 3.0.5 2022 | 2023 | array-includes@3.1.8: 2024 | dependencies: 2025 | call-bind: 1.0.8 2026 | define-properties: 1.2.1 2027 | es-abstract: 1.23.9 2028 | es-object-atoms: 1.1.1 2029 | get-intrinsic: 1.2.7 2030 | is-string: 1.1.1 2031 | 2032 | array.prototype.findlast@1.2.5: 2033 | dependencies: 2034 | call-bind: 1.0.8 2035 | define-properties: 1.2.1 2036 | es-abstract: 1.23.9 2037 | es-errors: 1.3.0 2038 | es-object-atoms: 1.1.1 2039 | es-shim-unscopables: 1.0.2 2040 | 2041 | array.prototype.flat@1.3.3: 2042 | dependencies: 2043 | call-bind: 1.0.8 2044 | define-properties: 1.2.1 2045 | es-abstract: 1.23.9 2046 | es-shim-unscopables: 1.0.2 2047 | 2048 | array.prototype.flatmap@1.3.3: 2049 | dependencies: 2050 | call-bind: 1.0.8 2051 | define-properties: 1.2.1 2052 | es-abstract: 1.23.9 2053 | es-shim-unscopables: 1.0.2 2054 | 2055 | array.prototype.tosorted@1.1.4: 2056 | dependencies: 2057 | call-bind: 1.0.8 2058 | define-properties: 1.2.1 2059 | es-abstract: 1.23.9 2060 | es-errors: 1.3.0 2061 | es-shim-unscopables: 1.0.2 2062 | 2063 | arraybuffer.prototype.slice@1.0.4: 2064 | dependencies: 2065 | array-buffer-byte-length: 1.0.2 2066 | call-bind: 1.0.8 2067 | define-properties: 1.2.1 2068 | es-abstract: 1.23.9 2069 | es-errors: 1.3.0 2070 | get-intrinsic: 1.2.7 2071 | is-array-buffer: 3.0.5 2072 | 2073 | async-function@1.0.0: {} 2074 | 2075 | available-typed-arrays@1.0.7: 2076 | dependencies: 2077 | possible-typed-array-names: 1.0.0 2078 | 2079 | balanced-match@1.0.2: {} 2080 | 2081 | brace-expansion@1.1.11: 2082 | dependencies: 2083 | balanced-match: 1.0.2 2084 | concat-map: 0.0.1 2085 | 2086 | brace-expansion@2.0.1: 2087 | dependencies: 2088 | balanced-match: 1.0.2 2089 | 2090 | braces@3.0.3: 2091 | dependencies: 2092 | fill-range: 7.1.1 2093 | 2094 | busboy@1.6.0: 2095 | dependencies: 2096 | streamsearch: 1.1.0 2097 | 2098 | call-bind-apply-helpers@1.0.1: 2099 | dependencies: 2100 | es-errors: 1.3.0 2101 | function-bind: 1.1.2 2102 | 2103 | call-bind@1.0.8: 2104 | dependencies: 2105 | call-bind-apply-helpers: 1.0.1 2106 | es-define-property: 1.0.1 2107 | get-intrinsic: 1.2.7 2108 | set-function-length: 1.2.2 2109 | 2110 | call-bound@1.0.3: 2111 | dependencies: 2112 | call-bind-apply-helpers: 1.0.1 2113 | get-intrinsic: 1.2.7 2114 | 2115 | callsites@3.1.0: {} 2116 | 2117 | caniuse-lite@1.0.30001695: {} 2118 | 2119 | chalk@4.1.2: 2120 | dependencies: 2121 | ansi-styles: 4.3.0 2122 | supports-color: 7.2.0 2123 | 2124 | class-variance-authority@0.7.1: 2125 | dependencies: 2126 | clsx: 2.1.1 2127 | 2128 | client-only@0.0.1: {} 2129 | 2130 | clsx@2.1.1: {} 2131 | 2132 | color-convert@2.0.1: 2133 | dependencies: 2134 | color-name: 1.1.4 2135 | 2136 | color-name@1.1.4: {} 2137 | 2138 | color-string@1.9.1: 2139 | dependencies: 2140 | color-name: 1.1.4 2141 | simple-swizzle: 0.2.2 2142 | optional: true 2143 | 2144 | color@4.2.3: 2145 | dependencies: 2146 | color-convert: 2.0.1 2147 | color-string: 1.9.1 2148 | optional: true 2149 | 2150 | concat-map@0.0.1: {} 2151 | 2152 | cross-spawn@7.0.6: 2153 | dependencies: 2154 | path-key: 3.1.1 2155 | shebang-command: 2.0.0 2156 | which: 2.0.2 2157 | 2158 | csstype@3.1.3: {} 2159 | 2160 | data-view-buffer@1.0.2: 2161 | dependencies: 2162 | call-bound: 1.0.3 2163 | es-errors: 1.3.0 2164 | is-data-view: 1.0.2 2165 | 2166 | data-view-byte-length@1.0.2: 2167 | dependencies: 2168 | call-bound: 1.0.3 2169 | es-errors: 1.3.0 2170 | is-data-view: 1.0.2 2171 | 2172 | data-view-byte-offset@1.0.1: 2173 | dependencies: 2174 | call-bound: 1.0.3 2175 | es-errors: 1.3.0 2176 | is-data-view: 1.0.2 2177 | 2178 | debug@4.4.0: 2179 | dependencies: 2180 | ms: 2.1.3 2181 | 2182 | deep-is@0.1.4: {} 2183 | 2184 | define-data-property@1.1.4: 2185 | dependencies: 2186 | es-define-property: 1.0.1 2187 | es-errors: 1.3.0 2188 | gopd: 1.2.0 2189 | 2190 | define-properties@1.2.1: 2191 | dependencies: 2192 | define-data-property: 1.1.4 2193 | has-property-descriptors: 1.0.2 2194 | object-keys: 1.1.1 2195 | 2196 | detect-libc@1.0.3: {} 2197 | 2198 | detect-libc@2.0.3: 2199 | optional: true 2200 | 2201 | doctrine@2.1.0: 2202 | dependencies: 2203 | esutils: 2.0.3 2204 | 2205 | dotenv@16.0.3: {} 2206 | 2207 | dunder-proto@1.0.1: 2208 | dependencies: 2209 | call-bind-apply-helpers: 1.0.1 2210 | es-errors: 1.3.0 2211 | gopd: 1.2.0 2212 | 2213 | enhanced-resolve@5.18.1: 2214 | dependencies: 2215 | graceful-fs: 4.2.11 2216 | tapable: 2.2.1 2217 | 2218 | es-abstract@1.23.9: 2219 | dependencies: 2220 | array-buffer-byte-length: 1.0.2 2221 | arraybuffer.prototype.slice: 1.0.4 2222 | available-typed-arrays: 1.0.7 2223 | call-bind: 1.0.8 2224 | call-bound: 1.0.3 2225 | data-view-buffer: 1.0.2 2226 | data-view-byte-length: 1.0.2 2227 | data-view-byte-offset: 1.0.1 2228 | es-define-property: 1.0.1 2229 | es-errors: 1.3.0 2230 | es-object-atoms: 1.1.1 2231 | es-set-tostringtag: 2.1.0 2232 | es-to-primitive: 1.3.0 2233 | function.prototype.name: 1.1.8 2234 | get-intrinsic: 1.2.7 2235 | get-proto: 1.0.1 2236 | get-symbol-description: 1.1.0 2237 | globalthis: 1.0.4 2238 | gopd: 1.2.0 2239 | has-property-descriptors: 1.0.2 2240 | has-proto: 1.2.0 2241 | has-symbols: 1.1.0 2242 | hasown: 2.0.2 2243 | internal-slot: 1.1.0 2244 | is-array-buffer: 3.0.5 2245 | is-callable: 1.2.7 2246 | is-data-view: 1.0.2 2247 | is-regex: 1.2.1 2248 | is-shared-array-buffer: 1.0.4 2249 | is-string: 1.1.1 2250 | is-typed-array: 1.1.15 2251 | is-weakref: 1.1.0 2252 | math-intrinsics: 1.1.0 2253 | object-inspect: 1.13.3 2254 | object-keys: 1.1.1 2255 | object.assign: 4.1.7 2256 | own-keys: 1.0.1 2257 | regexp.prototype.flags: 1.5.4 2258 | safe-array-concat: 1.1.3 2259 | safe-push-apply: 1.0.0 2260 | safe-regex-test: 1.1.0 2261 | set-proto: 1.0.0 2262 | string.prototype.trim: 1.2.10 2263 | string.prototype.trimend: 1.0.9 2264 | string.prototype.trimstart: 1.0.8 2265 | typed-array-buffer: 1.0.3 2266 | typed-array-byte-length: 1.0.3 2267 | typed-array-byte-offset: 1.0.4 2268 | typed-array-length: 1.0.7 2269 | unbox-primitive: 1.1.0 2270 | which-typed-array: 1.1.18 2271 | 2272 | es-define-property@1.0.1: {} 2273 | 2274 | es-errors@1.3.0: {} 2275 | 2276 | es-iterator-helpers@1.2.1: 2277 | dependencies: 2278 | call-bind: 1.0.8 2279 | call-bound: 1.0.3 2280 | define-properties: 1.2.1 2281 | es-abstract: 1.23.9 2282 | es-errors: 1.3.0 2283 | es-set-tostringtag: 2.1.0 2284 | function-bind: 1.1.2 2285 | get-intrinsic: 1.2.7 2286 | globalthis: 1.0.4 2287 | gopd: 1.2.0 2288 | has-property-descriptors: 1.0.2 2289 | has-proto: 1.2.0 2290 | has-symbols: 1.1.0 2291 | internal-slot: 1.1.0 2292 | iterator.prototype: 1.1.5 2293 | safe-array-concat: 1.1.3 2294 | 2295 | es-object-atoms@1.1.1: 2296 | dependencies: 2297 | es-errors: 1.3.0 2298 | 2299 | es-set-tostringtag@2.1.0: 2300 | dependencies: 2301 | es-errors: 1.3.0 2302 | get-intrinsic: 1.2.7 2303 | has-tostringtag: 1.0.2 2304 | hasown: 2.0.2 2305 | 2306 | es-shim-unscopables@1.0.2: 2307 | dependencies: 2308 | hasown: 2.0.2 2309 | 2310 | es-to-primitive@1.3.0: 2311 | dependencies: 2312 | is-callable: 1.2.7 2313 | is-date-object: 1.1.0 2314 | is-symbol: 1.1.1 2315 | 2316 | escape-string-regexp@4.0.0: {} 2317 | 2318 | eslint-config-prettier@10.0.1(eslint@9.21.0(jiti@2.4.2)): 2319 | dependencies: 2320 | eslint: 9.21.0(jiti@2.4.2) 2321 | 2322 | eslint-plugin-only-warn@1.1.0: {} 2323 | 2324 | eslint-plugin-react-hooks@5.1.0(eslint@9.21.0(jiti@2.4.2)): 2325 | dependencies: 2326 | eslint: 9.21.0(jiti@2.4.2) 2327 | 2328 | eslint-plugin-react@7.37.4(eslint@9.21.0(jiti@2.4.2)): 2329 | dependencies: 2330 | array-includes: 3.1.8 2331 | array.prototype.findlast: 1.2.5 2332 | array.prototype.flatmap: 1.3.3 2333 | array.prototype.tosorted: 1.1.4 2334 | doctrine: 2.1.0 2335 | es-iterator-helpers: 1.2.1 2336 | eslint: 9.21.0(jiti@2.4.2) 2337 | estraverse: 5.3.0 2338 | hasown: 2.0.2 2339 | jsx-ast-utils: 3.3.5 2340 | minimatch: 3.1.2 2341 | object.entries: 1.1.8 2342 | object.fromentries: 2.0.8 2343 | object.values: 1.2.1 2344 | prop-types: 15.8.1 2345 | resolve: 2.0.0-next.5 2346 | semver: 6.3.1 2347 | string.prototype.matchall: 4.0.12 2348 | string.prototype.repeat: 1.0.0 2349 | 2350 | eslint-plugin-turbo@2.4.0(eslint@9.21.0(jiti@2.4.2))(turbo@2.4.4): 2351 | dependencies: 2352 | dotenv: 16.0.3 2353 | eslint: 9.21.0(jiti@2.4.2) 2354 | turbo: 2.4.4 2355 | 2356 | eslint-scope@8.2.0: 2357 | dependencies: 2358 | esrecurse: 4.3.0 2359 | estraverse: 5.3.0 2360 | 2361 | eslint-visitor-keys@3.4.3: {} 2362 | 2363 | eslint-visitor-keys@4.2.0: {} 2364 | 2365 | eslint@9.21.0(jiti@2.4.2): 2366 | dependencies: 2367 | '@eslint-community/eslint-utils': 4.4.1(eslint@9.21.0(jiti@2.4.2)) 2368 | '@eslint-community/regexpp': 4.12.1 2369 | '@eslint/config-array': 0.19.2 2370 | '@eslint/core': 0.12.0 2371 | '@eslint/eslintrc': 3.3.0 2372 | '@eslint/js': 9.21.0 2373 | '@eslint/plugin-kit': 0.2.7 2374 | '@humanfs/node': 0.16.6 2375 | '@humanwhocodes/module-importer': 1.0.1 2376 | '@humanwhocodes/retry': 0.4.2 2377 | '@types/estree': 1.0.6 2378 | '@types/json-schema': 7.0.15 2379 | ajv: 6.12.6 2380 | chalk: 4.1.2 2381 | cross-spawn: 7.0.6 2382 | debug: 4.4.0 2383 | escape-string-regexp: 4.0.0 2384 | eslint-scope: 8.2.0 2385 | eslint-visitor-keys: 4.2.0 2386 | espree: 10.3.0 2387 | esquery: 1.6.0 2388 | esutils: 2.0.3 2389 | fast-deep-equal: 3.1.3 2390 | file-entry-cache: 8.0.0 2391 | find-up: 5.0.0 2392 | glob-parent: 6.0.2 2393 | ignore: 5.3.2 2394 | imurmurhash: 0.1.4 2395 | is-glob: 4.0.3 2396 | json-stable-stringify-without-jsonify: 1.0.1 2397 | lodash.merge: 4.6.2 2398 | minimatch: 3.1.2 2399 | natural-compare: 1.4.0 2400 | optionator: 0.9.4 2401 | optionalDependencies: 2402 | jiti: 2.4.2 2403 | transitivePeerDependencies: 2404 | - supports-color 2405 | 2406 | espree@10.3.0: 2407 | dependencies: 2408 | acorn: 8.14.0 2409 | acorn-jsx: 5.3.2(acorn@8.14.0) 2410 | eslint-visitor-keys: 4.2.0 2411 | 2412 | esquery@1.6.0: 2413 | dependencies: 2414 | estraverse: 5.3.0 2415 | 2416 | esrecurse@4.3.0: 2417 | dependencies: 2418 | estraverse: 5.3.0 2419 | 2420 | estraverse@5.3.0: {} 2421 | 2422 | esutils@2.0.3: {} 2423 | 2424 | fast-deep-equal@3.1.3: {} 2425 | 2426 | fast-glob@3.3.1: 2427 | dependencies: 2428 | '@nodelib/fs.stat': 2.0.5 2429 | '@nodelib/fs.walk': 1.2.8 2430 | glob-parent: 5.1.2 2431 | merge2: 1.4.1 2432 | micromatch: 4.0.8 2433 | 2434 | fast-glob@3.3.3: 2435 | dependencies: 2436 | '@nodelib/fs.stat': 2.0.5 2437 | '@nodelib/fs.walk': 1.2.8 2438 | glob-parent: 5.1.2 2439 | merge2: 1.4.1 2440 | micromatch: 4.0.8 2441 | 2442 | fast-json-stable-stringify@2.1.0: {} 2443 | 2444 | fast-levenshtein@2.0.6: {} 2445 | 2446 | fastq@1.18.0: 2447 | dependencies: 2448 | reusify: 1.0.4 2449 | 2450 | file-entry-cache@8.0.0: 2451 | dependencies: 2452 | flat-cache: 4.0.1 2453 | 2454 | fill-range@7.1.1: 2455 | dependencies: 2456 | to-regex-range: 5.0.1 2457 | 2458 | find-up@5.0.0: 2459 | dependencies: 2460 | locate-path: 6.0.0 2461 | path-exists: 4.0.0 2462 | 2463 | flat-cache@4.0.1: 2464 | dependencies: 2465 | flatted: 3.3.3 2466 | keyv: 4.5.4 2467 | 2468 | flatted@3.3.3: {} 2469 | 2470 | for-each@0.3.3: 2471 | dependencies: 2472 | is-callable: 1.2.7 2473 | 2474 | function-bind@1.1.2: {} 2475 | 2476 | function.prototype.name@1.1.8: 2477 | dependencies: 2478 | call-bind: 1.0.8 2479 | call-bound: 1.0.3 2480 | define-properties: 1.2.1 2481 | functions-have-names: 1.2.3 2482 | hasown: 2.0.2 2483 | is-callable: 1.2.7 2484 | 2485 | functions-have-names@1.2.3: {} 2486 | 2487 | get-intrinsic@1.2.7: 2488 | dependencies: 2489 | call-bind-apply-helpers: 1.0.1 2490 | es-define-property: 1.0.1 2491 | es-errors: 1.3.0 2492 | es-object-atoms: 1.1.1 2493 | function-bind: 1.1.2 2494 | get-proto: 1.0.1 2495 | gopd: 1.2.0 2496 | has-symbols: 1.1.0 2497 | hasown: 2.0.2 2498 | math-intrinsics: 1.1.0 2499 | 2500 | get-proto@1.0.1: 2501 | dependencies: 2502 | dunder-proto: 1.0.1 2503 | es-object-atoms: 1.1.1 2504 | 2505 | get-symbol-description@1.1.0: 2506 | dependencies: 2507 | call-bound: 1.0.3 2508 | es-errors: 1.3.0 2509 | get-intrinsic: 1.2.7 2510 | 2511 | glob-parent@5.1.2: 2512 | dependencies: 2513 | is-glob: 4.0.3 2514 | 2515 | glob-parent@6.0.2: 2516 | dependencies: 2517 | is-glob: 4.0.3 2518 | 2519 | globals@14.0.0: {} 2520 | 2521 | globals@15.15.0: {} 2522 | 2523 | globalthis@1.0.4: 2524 | dependencies: 2525 | define-properties: 1.2.1 2526 | gopd: 1.2.0 2527 | 2528 | gopd@1.2.0: {} 2529 | 2530 | graceful-fs@4.2.11: {} 2531 | 2532 | graphemer@1.4.0: {} 2533 | 2534 | has-bigints@1.1.0: {} 2535 | 2536 | has-flag@4.0.0: {} 2537 | 2538 | has-property-descriptors@1.0.2: 2539 | dependencies: 2540 | es-define-property: 1.0.1 2541 | 2542 | has-proto@1.2.0: 2543 | dependencies: 2544 | dunder-proto: 1.0.1 2545 | 2546 | has-symbols@1.1.0: {} 2547 | 2548 | has-tostringtag@1.0.2: 2549 | dependencies: 2550 | has-symbols: 1.1.0 2551 | 2552 | hasown@2.0.2: 2553 | dependencies: 2554 | function-bind: 1.1.2 2555 | 2556 | ignore@5.3.2: {} 2557 | 2558 | import-fresh@3.3.1: 2559 | dependencies: 2560 | parent-module: 1.0.1 2561 | resolve-from: 4.0.0 2562 | 2563 | imurmurhash@0.1.4: {} 2564 | 2565 | internal-slot@1.1.0: 2566 | dependencies: 2567 | es-errors: 1.3.0 2568 | hasown: 2.0.2 2569 | side-channel: 1.1.0 2570 | 2571 | is-array-buffer@3.0.5: 2572 | dependencies: 2573 | call-bind: 1.0.8 2574 | call-bound: 1.0.3 2575 | get-intrinsic: 1.2.7 2576 | 2577 | is-arrayish@0.3.2: 2578 | optional: true 2579 | 2580 | is-async-function@2.1.1: 2581 | dependencies: 2582 | async-function: 1.0.0 2583 | call-bound: 1.0.3 2584 | get-proto: 1.0.1 2585 | has-tostringtag: 1.0.2 2586 | safe-regex-test: 1.1.0 2587 | 2588 | is-bigint@1.1.0: 2589 | dependencies: 2590 | has-bigints: 1.1.0 2591 | 2592 | is-boolean-object@1.2.1: 2593 | dependencies: 2594 | call-bound: 1.0.3 2595 | has-tostringtag: 1.0.2 2596 | 2597 | is-callable@1.2.7: {} 2598 | 2599 | is-core-module@2.16.1: 2600 | dependencies: 2601 | hasown: 2.0.2 2602 | 2603 | is-data-view@1.0.2: 2604 | dependencies: 2605 | call-bound: 1.0.3 2606 | get-intrinsic: 1.2.7 2607 | is-typed-array: 1.1.15 2608 | 2609 | is-date-object@1.1.0: 2610 | dependencies: 2611 | call-bound: 1.0.3 2612 | has-tostringtag: 1.0.2 2613 | 2614 | is-extglob@2.1.1: {} 2615 | 2616 | is-finalizationregistry@1.1.1: 2617 | dependencies: 2618 | call-bound: 1.0.3 2619 | 2620 | is-generator-function@1.1.0: 2621 | dependencies: 2622 | call-bound: 1.0.3 2623 | get-proto: 1.0.1 2624 | has-tostringtag: 1.0.2 2625 | safe-regex-test: 1.1.0 2626 | 2627 | is-glob@4.0.3: 2628 | dependencies: 2629 | is-extglob: 2.1.1 2630 | 2631 | is-map@2.0.3: {} 2632 | 2633 | is-number-object@1.1.1: 2634 | dependencies: 2635 | call-bound: 1.0.3 2636 | has-tostringtag: 1.0.2 2637 | 2638 | is-number@7.0.0: {} 2639 | 2640 | is-regex@1.2.1: 2641 | dependencies: 2642 | call-bound: 1.0.3 2643 | gopd: 1.2.0 2644 | has-tostringtag: 1.0.2 2645 | hasown: 2.0.2 2646 | 2647 | is-set@2.0.3: {} 2648 | 2649 | is-shared-array-buffer@1.0.4: 2650 | dependencies: 2651 | call-bound: 1.0.3 2652 | 2653 | is-string@1.1.1: 2654 | dependencies: 2655 | call-bound: 1.0.3 2656 | has-tostringtag: 1.0.2 2657 | 2658 | is-symbol@1.1.1: 2659 | dependencies: 2660 | call-bound: 1.0.3 2661 | has-symbols: 1.1.0 2662 | safe-regex-test: 1.1.0 2663 | 2664 | is-typed-array@1.1.15: 2665 | dependencies: 2666 | which-typed-array: 1.1.18 2667 | 2668 | is-weakmap@2.0.2: {} 2669 | 2670 | is-weakref@1.1.0: 2671 | dependencies: 2672 | call-bound: 1.0.3 2673 | 2674 | is-weakset@2.0.4: 2675 | dependencies: 2676 | call-bound: 1.0.3 2677 | get-intrinsic: 1.2.7 2678 | 2679 | isarray@2.0.5: {} 2680 | 2681 | isexe@2.0.0: {} 2682 | 2683 | iterator.prototype@1.1.5: 2684 | dependencies: 2685 | define-data-property: 1.1.4 2686 | es-object-atoms: 1.1.1 2687 | get-intrinsic: 1.2.7 2688 | get-proto: 1.0.1 2689 | has-symbols: 1.1.0 2690 | set-function-name: 2.0.2 2691 | 2692 | jiti@2.4.2: {} 2693 | 2694 | js-tokens@4.0.0: {} 2695 | 2696 | js-yaml@4.1.0: 2697 | dependencies: 2698 | argparse: 2.0.1 2699 | 2700 | json-buffer@3.0.1: {} 2701 | 2702 | json-schema-traverse@0.4.1: {} 2703 | 2704 | json-stable-stringify-without-jsonify@1.0.1: {} 2705 | 2706 | jsx-ast-utils@3.3.5: 2707 | dependencies: 2708 | array-includes: 3.1.8 2709 | array.prototype.flat: 1.3.3 2710 | object.assign: 4.1.7 2711 | object.values: 1.2.1 2712 | 2713 | keyv@4.5.4: 2714 | dependencies: 2715 | json-buffer: 3.0.1 2716 | 2717 | levn@0.4.1: 2718 | dependencies: 2719 | prelude-ls: 1.2.1 2720 | type-check: 0.4.0 2721 | 2722 | lightningcss-darwin-arm64@1.29.1: 2723 | optional: true 2724 | 2725 | lightningcss-darwin-x64@1.29.1: 2726 | optional: true 2727 | 2728 | lightningcss-freebsd-x64@1.29.1: 2729 | optional: true 2730 | 2731 | lightningcss-linux-arm-gnueabihf@1.29.1: 2732 | optional: true 2733 | 2734 | lightningcss-linux-arm64-gnu@1.29.1: 2735 | optional: true 2736 | 2737 | lightningcss-linux-arm64-musl@1.29.1: 2738 | optional: true 2739 | 2740 | lightningcss-linux-x64-gnu@1.29.1: 2741 | optional: true 2742 | 2743 | lightningcss-linux-x64-musl@1.29.1: 2744 | optional: true 2745 | 2746 | lightningcss-win32-arm64-msvc@1.29.1: 2747 | optional: true 2748 | 2749 | lightningcss-win32-x64-msvc@1.29.1: 2750 | optional: true 2751 | 2752 | lightningcss@1.29.1: 2753 | dependencies: 2754 | detect-libc: 1.0.3 2755 | optionalDependencies: 2756 | lightningcss-darwin-arm64: 1.29.1 2757 | lightningcss-darwin-x64: 1.29.1 2758 | lightningcss-freebsd-x64: 1.29.1 2759 | lightningcss-linux-arm-gnueabihf: 1.29.1 2760 | lightningcss-linux-arm64-gnu: 1.29.1 2761 | lightningcss-linux-arm64-musl: 1.29.1 2762 | lightningcss-linux-x64-gnu: 1.29.1 2763 | lightningcss-linux-x64-musl: 1.29.1 2764 | lightningcss-win32-arm64-msvc: 1.29.1 2765 | lightningcss-win32-x64-msvc: 1.29.1 2766 | 2767 | locate-path@6.0.0: 2768 | dependencies: 2769 | p-locate: 5.0.0 2770 | 2771 | lodash.merge@4.6.2: {} 2772 | 2773 | loose-envify@1.4.0: 2774 | dependencies: 2775 | js-tokens: 4.0.0 2776 | 2777 | lucide-react@0.476.0(react@19.0.0): 2778 | dependencies: 2779 | react: 19.0.0 2780 | 2781 | math-intrinsics@1.1.0: {} 2782 | 2783 | merge2@1.4.1: {} 2784 | 2785 | micromatch@4.0.8: 2786 | dependencies: 2787 | braces: 3.0.3 2788 | picomatch: 2.3.1 2789 | 2790 | minimatch@3.1.2: 2791 | dependencies: 2792 | brace-expansion: 1.1.11 2793 | 2794 | minimatch@9.0.5: 2795 | dependencies: 2796 | brace-expansion: 2.0.1 2797 | 2798 | ms@2.1.3: {} 2799 | 2800 | nanoid@3.3.8: {} 2801 | 2802 | natural-compare@1.4.0: {} 2803 | 2804 | next@15.2.4(react-dom@19.0.0(react@19.0.0))(react@19.0.0): 2805 | dependencies: 2806 | '@next/env': 15.2.4 2807 | '@swc/counter': 0.1.3 2808 | '@swc/helpers': 0.5.15 2809 | busboy: 1.6.0 2810 | caniuse-lite: 1.0.30001695 2811 | postcss: 8.4.31 2812 | react: 19.0.0 2813 | react-dom: 19.0.0(react@19.0.0) 2814 | styled-jsx: 5.1.6(react@19.0.0) 2815 | optionalDependencies: 2816 | '@next/swc-darwin-arm64': 15.2.4 2817 | '@next/swc-darwin-x64': 15.2.4 2818 | '@next/swc-linux-arm64-gnu': 15.2.4 2819 | '@next/swc-linux-arm64-musl': 15.2.4 2820 | '@next/swc-linux-x64-gnu': 15.2.4 2821 | '@next/swc-linux-x64-musl': 15.2.4 2822 | '@next/swc-win32-arm64-msvc': 15.2.4 2823 | '@next/swc-win32-x64-msvc': 15.2.4 2824 | sharp: 0.33.5 2825 | transitivePeerDependencies: 2826 | - '@babel/core' 2827 | - babel-plugin-macros 2828 | 2829 | object-assign@4.1.1: {} 2830 | 2831 | object-inspect@1.13.3: {} 2832 | 2833 | object-keys@1.1.1: {} 2834 | 2835 | object.assign@4.1.7: 2836 | dependencies: 2837 | call-bind: 1.0.8 2838 | call-bound: 1.0.3 2839 | define-properties: 1.2.1 2840 | es-object-atoms: 1.1.1 2841 | has-symbols: 1.1.0 2842 | object-keys: 1.1.1 2843 | 2844 | object.entries@1.1.8: 2845 | dependencies: 2846 | call-bind: 1.0.8 2847 | define-properties: 1.2.1 2848 | es-object-atoms: 1.1.1 2849 | 2850 | object.fromentries@2.0.8: 2851 | dependencies: 2852 | call-bind: 1.0.8 2853 | define-properties: 1.2.1 2854 | es-abstract: 1.23.9 2855 | es-object-atoms: 1.1.1 2856 | 2857 | object.values@1.2.1: 2858 | dependencies: 2859 | call-bind: 1.0.8 2860 | call-bound: 1.0.3 2861 | define-properties: 1.2.1 2862 | es-object-atoms: 1.1.1 2863 | 2864 | optionator@0.9.4: 2865 | dependencies: 2866 | deep-is: 0.1.4 2867 | fast-levenshtein: 2.0.6 2868 | levn: 0.4.1 2869 | prelude-ls: 1.2.1 2870 | type-check: 0.4.0 2871 | word-wrap: 1.2.5 2872 | 2873 | own-keys@1.0.1: 2874 | dependencies: 2875 | get-intrinsic: 1.2.7 2876 | object-keys: 1.1.1 2877 | safe-push-apply: 1.0.0 2878 | 2879 | p-limit@3.1.0: 2880 | dependencies: 2881 | yocto-queue: 0.1.0 2882 | 2883 | p-locate@5.0.0: 2884 | dependencies: 2885 | p-limit: 3.1.0 2886 | 2887 | parent-module@1.0.1: 2888 | dependencies: 2889 | callsites: 3.1.0 2890 | 2891 | path-exists@4.0.0: {} 2892 | 2893 | path-key@3.1.1: {} 2894 | 2895 | path-parse@1.0.7: {} 2896 | 2897 | picocolors@1.1.1: {} 2898 | 2899 | picomatch@2.3.1: {} 2900 | 2901 | possible-typed-array-names@1.0.0: {} 2902 | 2903 | postcss@8.4.31: 2904 | dependencies: 2905 | nanoid: 3.3.8 2906 | picocolors: 1.1.1 2907 | source-map-js: 1.2.1 2908 | 2909 | postcss@8.5.3: 2910 | dependencies: 2911 | nanoid: 3.3.8 2912 | picocolors: 1.1.1 2913 | source-map-js: 1.2.1 2914 | 2915 | prelude-ls@1.2.1: {} 2916 | 2917 | prettier@3.5.0: {} 2918 | 2919 | prop-types@15.8.1: 2920 | dependencies: 2921 | loose-envify: 1.4.0 2922 | object-assign: 4.1.1 2923 | react-is: 16.13.1 2924 | 2925 | punycode@2.3.1: {} 2926 | 2927 | queue-microtask@1.2.3: {} 2928 | 2929 | react-dom@19.0.0(react@19.0.0): 2930 | dependencies: 2931 | react: 19.0.0 2932 | scheduler: 0.25.0 2933 | 2934 | react-is@16.13.1: {} 2935 | 2936 | react@19.0.0: {} 2937 | 2938 | reflect.getprototypeof@1.0.10: 2939 | dependencies: 2940 | call-bind: 1.0.8 2941 | define-properties: 1.2.1 2942 | es-abstract: 1.23.9 2943 | es-errors: 1.3.0 2944 | es-object-atoms: 1.1.1 2945 | get-intrinsic: 1.2.7 2946 | get-proto: 1.0.1 2947 | which-builtin-type: 1.2.1 2948 | 2949 | regexp.prototype.flags@1.5.4: 2950 | dependencies: 2951 | call-bind: 1.0.8 2952 | define-properties: 1.2.1 2953 | es-errors: 1.3.0 2954 | get-proto: 1.0.1 2955 | gopd: 1.2.0 2956 | set-function-name: 2.0.2 2957 | 2958 | resolve-from@4.0.0: {} 2959 | 2960 | resolve@2.0.0-next.5: 2961 | dependencies: 2962 | is-core-module: 2.16.1 2963 | path-parse: 1.0.7 2964 | supports-preserve-symlinks-flag: 1.0.0 2965 | 2966 | reusify@1.0.4: {} 2967 | 2968 | run-parallel@1.2.0: 2969 | dependencies: 2970 | queue-microtask: 1.2.3 2971 | 2972 | safe-array-concat@1.1.3: 2973 | dependencies: 2974 | call-bind: 1.0.8 2975 | call-bound: 1.0.3 2976 | get-intrinsic: 1.2.7 2977 | has-symbols: 1.1.0 2978 | isarray: 2.0.5 2979 | 2980 | safe-push-apply@1.0.0: 2981 | dependencies: 2982 | es-errors: 1.3.0 2983 | isarray: 2.0.5 2984 | 2985 | safe-regex-test@1.1.0: 2986 | dependencies: 2987 | call-bound: 1.0.3 2988 | es-errors: 1.3.0 2989 | is-regex: 1.2.1 2990 | 2991 | scheduler@0.25.0: {} 2992 | 2993 | semver@6.3.1: {} 2994 | 2995 | semver@7.7.1: {} 2996 | 2997 | set-function-length@1.2.2: 2998 | dependencies: 2999 | define-data-property: 1.1.4 3000 | es-errors: 1.3.0 3001 | function-bind: 1.1.2 3002 | get-intrinsic: 1.2.7 3003 | gopd: 1.2.0 3004 | has-property-descriptors: 1.0.2 3005 | 3006 | set-function-name@2.0.2: 3007 | dependencies: 3008 | define-data-property: 1.1.4 3009 | es-errors: 1.3.0 3010 | functions-have-names: 1.2.3 3011 | has-property-descriptors: 1.0.2 3012 | 3013 | set-proto@1.0.0: 3014 | dependencies: 3015 | dunder-proto: 1.0.1 3016 | es-errors: 1.3.0 3017 | es-object-atoms: 1.1.1 3018 | 3019 | sharp@0.33.5: 3020 | dependencies: 3021 | color: 4.2.3 3022 | detect-libc: 2.0.3 3023 | semver: 7.7.1 3024 | optionalDependencies: 3025 | '@img/sharp-darwin-arm64': 0.33.5 3026 | '@img/sharp-darwin-x64': 0.33.5 3027 | '@img/sharp-libvips-darwin-arm64': 1.0.4 3028 | '@img/sharp-libvips-darwin-x64': 1.0.4 3029 | '@img/sharp-libvips-linux-arm': 1.0.5 3030 | '@img/sharp-libvips-linux-arm64': 1.0.4 3031 | '@img/sharp-libvips-linux-s390x': 1.0.4 3032 | '@img/sharp-libvips-linux-x64': 1.0.4 3033 | '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 3034 | '@img/sharp-libvips-linuxmusl-x64': 1.0.4 3035 | '@img/sharp-linux-arm': 0.33.5 3036 | '@img/sharp-linux-arm64': 0.33.5 3037 | '@img/sharp-linux-s390x': 0.33.5 3038 | '@img/sharp-linux-x64': 0.33.5 3039 | '@img/sharp-linuxmusl-arm64': 0.33.5 3040 | '@img/sharp-linuxmusl-x64': 0.33.5 3041 | '@img/sharp-wasm32': 0.33.5 3042 | '@img/sharp-win32-ia32': 0.33.5 3043 | '@img/sharp-win32-x64': 0.33.5 3044 | optional: true 3045 | 3046 | shebang-command@2.0.0: 3047 | dependencies: 3048 | shebang-regex: 3.0.0 3049 | 3050 | shebang-regex@3.0.0: {} 3051 | 3052 | side-channel-list@1.0.0: 3053 | dependencies: 3054 | es-errors: 1.3.0 3055 | object-inspect: 1.13.3 3056 | 3057 | side-channel-map@1.0.1: 3058 | dependencies: 3059 | call-bound: 1.0.3 3060 | es-errors: 1.3.0 3061 | get-intrinsic: 1.2.7 3062 | object-inspect: 1.13.3 3063 | 3064 | side-channel-weakmap@1.0.2: 3065 | dependencies: 3066 | call-bound: 1.0.3 3067 | es-errors: 1.3.0 3068 | get-intrinsic: 1.2.7 3069 | object-inspect: 1.13.3 3070 | side-channel-map: 1.0.1 3071 | 3072 | side-channel@1.1.0: 3073 | dependencies: 3074 | es-errors: 1.3.0 3075 | object-inspect: 1.13.3 3076 | side-channel-list: 1.0.0 3077 | side-channel-map: 1.0.1 3078 | side-channel-weakmap: 1.0.2 3079 | 3080 | simple-swizzle@0.2.2: 3081 | dependencies: 3082 | is-arrayish: 0.3.2 3083 | optional: true 3084 | 3085 | source-map-js@1.2.1: {} 3086 | 3087 | streamsearch@1.1.0: {} 3088 | 3089 | string.prototype.matchall@4.0.12: 3090 | dependencies: 3091 | call-bind: 1.0.8 3092 | call-bound: 1.0.3 3093 | define-properties: 1.2.1 3094 | es-abstract: 1.23.9 3095 | es-errors: 1.3.0 3096 | es-object-atoms: 1.1.1 3097 | get-intrinsic: 1.2.7 3098 | gopd: 1.2.0 3099 | has-symbols: 1.1.0 3100 | internal-slot: 1.1.0 3101 | regexp.prototype.flags: 1.5.4 3102 | set-function-name: 2.0.2 3103 | side-channel: 1.1.0 3104 | 3105 | string.prototype.repeat@1.0.0: 3106 | dependencies: 3107 | define-properties: 1.2.1 3108 | es-abstract: 1.23.9 3109 | 3110 | string.prototype.trim@1.2.10: 3111 | dependencies: 3112 | call-bind: 1.0.8 3113 | call-bound: 1.0.3 3114 | define-data-property: 1.1.4 3115 | define-properties: 1.2.1 3116 | es-abstract: 1.23.9 3117 | es-object-atoms: 1.1.1 3118 | has-property-descriptors: 1.0.2 3119 | 3120 | string.prototype.trimend@1.0.9: 3121 | dependencies: 3122 | call-bind: 1.0.8 3123 | call-bound: 1.0.3 3124 | define-properties: 1.2.1 3125 | es-object-atoms: 1.1.1 3126 | 3127 | string.prototype.trimstart@1.0.8: 3128 | dependencies: 3129 | call-bind: 1.0.8 3130 | define-properties: 1.2.1 3131 | es-object-atoms: 1.1.1 3132 | 3133 | strip-json-comments@3.1.1: {} 3134 | 3135 | styled-jsx@5.1.6(react@19.0.0): 3136 | dependencies: 3137 | client-only: 0.0.1 3138 | react: 19.0.0 3139 | 3140 | supports-color@7.2.0: 3141 | dependencies: 3142 | has-flag: 4.0.0 3143 | 3144 | supports-preserve-symlinks-flag@1.0.0: {} 3145 | 3146 | tailwind-merge@3.0.2: {} 3147 | 3148 | tailwindcss@4.0.9: {} 3149 | 3150 | tapable@2.2.1: {} 3151 | 3152 | to-regex-range@5.0.1: 3153 | dependencies: 3154 | is-number: 7.0.0 3155 | 3156 | ts-api-utils@2.0.1(typescript@5.7.3): 3157 | dependencies: 3158 | typescript: 5.7.3 3159 | 3160 | tslib@2.8.1: {} 3161 | 3162 | turbo-darwin-64@2.4.4: 3163 | optional: true 3164 | 3165 | turbo-darwin-arm64@2.4.4: 3166 | optional: true 3167 | 3168 | turbo-linux-64@2.4.4: 3169 | optional: true 3170 | 3171 | turbo-linux-arm64@2.4.4: 3172 | optional: true 3173 | 3174 | turbo-windows-64@2.4.4: 3175 | optional: true 3176 | 3177 | turbo-windows-arm64@2.4.4: 3178 | optional: true 3179 | 3180 | turbo@2.4.4: 3181 | optionalDependencies: 3182 | turbo-darwin-64: 2.4.4 3183 | turbo-darwin-arm64: 2.4.4 3184 | turbo-linux-64: 2.4.4 3185 | turbo-linux-arm64: 2.4.4 3186 | turbo-windows-64: 2.4.4 3187 | turbo-windows-arm64: 2.4.4 3188 | 3189 | tw-animate-css@1.2.4: {} 3190 | 3191 | type-check@0.4.0: 3192 | dependencies: 3193 | prelude-ls: 1.2.1 3194 | 3195 | typed-array-buffer@1.0.3: 3196 | dependencies: 3197 | call-bound: 1.0.3 3198 | es-errors: 1.3.0 3199 | is-typed-array: 1.1.15 3200 | 3201 | typed-array-byte-length@1.0.3: 3202 | dependencies: 3203 | call-bind: 1.0.8 3204 | for-each: 0.3.3 3205 | gopd: 1.2.0 3206 | has-proto: 1.2.0 3207 | is-typed-array: 1.1.15 3208 | 3209 | typed-array-byte-offset@1.0.4: 3210 | dependencies: 3211 | available-typed-arrays: 1.0.7 3212 | call-bind: 1.0.8 3213 | for-each: 0.3.3 3214 | gopd: 1.2.0 3215 | has-proto: 1.2.0 3216 | is-typed-array: 1.1.15 3217 | reflect.getprototypeof: 1.0.10 3218 | 3219 | typed-array-length@1.0.7: 3220 | dependencies: 3221 | call-bind: 1.0.8 3222 | for-each: 0.3.3 3223 | gopd: 1.2.0 3224 | is-typed-array: 1.1.15 3225 | possible-typed-array-names: 1.0.0 3226 | reflect.getprototypeof: 1.0.10 3227 | 3228 | typescript-eslint@8.24.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3): 3229 | dependencies: 3230 | '@typescript-eslint/eslint-plugin': 8.24.0(@typescript-eslint/parser@8.24.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) 3231 | '@typescript-eslint/parser': 8.24.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) 3232 | '@typescript-eslint/utils': 8.24.0(eslint@9.21.0(jiti@2.4.2))(typescript@5.7.3) 3233 | eslint: 9.21.0(jiti@2.4.2) 3234 | typescript: 5.7.3 3235 | transitivePeerDependencies: 3236 | - supports-color 3237 | 3238 | typescript@5.7.3: {} 3239 | 3240 | unbox-primitive@1.1.0: 3241 | dependencies: 3242 | call-bound: 1.0.3 3243 | has-bigints: 1.1.0 3244 | has-symbols: 1.1.0 3245 | which-boxed-primitive: 1.1.1 3246 | 3247 | undici-types@6.19.8: {} 3248 | 3249 | undici-types@6.20.0: {} 3250 | 3251 | uri-js@4.4.1: 3252 | dependencies: 3253 | punycode: 2.3.1 3254 | 3255 | which-boxed-primitive@1.1.1: 3256 | dependencies: 3257 | is-bigint: 1.1.0 3258 | is-boolean-object: 1.2.1 3259 | is-number-object: 1.1.1 3260 | is-string: 1.1.1 3261 | is-symbol: 1.1.1 3262 | 3263 | which-builtin-type@1.2.1: 3264 | dependencies: 3265 | call-bound: 1.0.3 3266 | function.prototype.name: 1.1.8 3267 | has-tostringtag: 1.0.2 3268 | is-async-function: 2.1.1 3269 | is-date-object: 1.1.0 3270 | is-finalizationregistry: 1.1.1 3271 | is-generator-function: 1.1.0 3272 | is-regex: 1.2.1 3273 | is-weakref: 1.1.0 3274 | isarray: 2.0.5 3275 | which-boxed-primitive: 1.1.1 3276 | which-collection: 1.0.2 3277 | which-typed-array: 1.1.18 3278 | 3279 | which-collection@1.0.2: 3280 | dependencies: 3281 | is-map: 2.0.3 3282 | is-set: 2.0.3 3283 | is-weakmap: 2.0.2 3284 | is-weakset: 2.0.4 3285 | 3286 | which-typed-array@1.1.18: 3287 | dependencies: 3288 | available-typed-arrays: 1.0.7 3289 | call-bind: 1.0.8 3290 | call-bound: 1.0.3 3291 | for-each: 0.3.3 3292 | gopd: 1.2.0 3293 | has-tostringtag: 1.0.2 3294 | 3295 | which@2.0.2: 3296 | dependencies: 3297 | isexe: 2.0.0 3298 | 3299 | word-wrap@1.2.5: {} 3300 | 3301 | yocto-queue@0.1.0: {} 3302 | -------------------------------------------------------------------------------- /pnpm-workspace.yaml: -------------------------------------------------------------------------------- 1 | packages: 2 | - "apps/*" 3 | - "packages/*" 4 | -------------------------------------------------------------------------------- /turbo.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://turbo.build/schema.json", 3 | "ui": "tui", 4 | "tasks": { 5 | "build": { 6 | "dependsOn": ["^build"], 7 | "inputs": ["$TURBO_DEFAULT$", ".env*"], 8 | "outputs": [".next/**", "!.next/cache/**"] 9 | }, 10 | "lint": { 11 | "dependsOn": ["^lint"] 12 | }, 13 | "check-types": { 14 | "dependsOn": ["^check-types"] 15 | }, 16 | "dev": { 17 | "cache": false, 18 | "persistent": true 19 | } 20 | } 21 | } 22 | --------------------------------------------------------------------------------