From 0a468ae8fa71c164635a6fc27f3b586074dfd3ad Mon Sep 17 00:00:00 2001 From: mrpurnomo <55582744+Ajipur-Oprekers@users.noreply.github.com> Date: Fri, 24 Oct 2025 00:39:53 +0700 Subject: [PATCH 1/3] Add files via upload --- apps/CortensorLabs-main.zip | Bin 0 -> 99892 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 apps/CortensorLabs-main.zip diff --git a/apps/CortensorLabs-main.zip b/apps/CortensorLabs-main.zip new file mode 100644 index 0000000000000000000000000000000000000000..4ced6e0fd4f792a75eb05cf7cec30619e2c2517f GIT binary patch literal 99892 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 H<-lV4gb literal 0 HcmV?d00001 From 5a5fe08f817d1e6a2ea56e4d80d64ac480b50935 Mon Sep 17 00:00:00 2001 From: mrpurnomo <55582744+Ajipur-Oprekers@users.noreply.github.com> Date: Fri, 24 Oct 2025 00:40:34 +0700 Subject: [PATCH 2/3] Delete apps/CortensorLabs-main.zip --- apps/CortensorLabs-main.zip | Bin 99892 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 apps/CortensorLabs-main.zip diff --git a/apps/CortensorLabs-main.zip b/apps/CortensorLabs-main.zip deleted file mode 100644 index 4ced6e0fd4f792a75eb05cf7cec30619e2c2517f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 99892 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 H<-lV4gb From d5442adc6e4b745b63833badd1ff5ca927ac9110 Mon Sep 17 00:00:00 2001 From: mrpurnomo <55582744+Ajipur-Oprekers@users.noreply.github.com> Date: Fri, 24 Oct 2025 00:43:13 +0700 Subject: [PATCH 3/3] Add files via upload --- apps/CortensorLabs/LICENSE | 21 + apps/CortensorLabs/PROJECTS.yml | 9 + apps/CortensorLabs/README.md | 96 + apps/CortensorLabs/RELEASE.md | 17 + apps/CortensorLabs/STATUS.md | 18 + .../cortensor-dashboard/README.md | 36 + .../cortensor-dashboard/components.json | 22 + .../cortensor-dashboard/eslint.config.mjs | 25 + .../cortensor-dashboard/jsconfig.json | 7 + .../cortensor-dashboard/next.config.mjs | 4 + .../cortensor-dashboard/package-lock.json | 6128 +++++++++++++++++ .../cortensor-dashboard/package.json | 32 + .../cortensor-dashboard/postcss.config.mjs | 5 + .../migrations/20251016151800_/migration.sql | 11 + .../prisma/migrations/migration_lock.toml | 3 + .../cortensor-dashboard/prisma/schema.prisma | 22 + .../cortensor-dashboard/public/file.svg | 1 + .../cortensor-dashboard/public/globe.svg | 1 + .../cortensor-dashboard/public/next.svg | 1 + .../cortensor-dashboard/public/vercel.svg | 1 + .../cortensor-dashboard/public/window.svg | 1 + .../src/agents/agentEngine.js | 140 + .../src/agents/businessPlanner.js | 31 + .../src/agents/formatConverter.js | 29 + .../src/agents/generalAssistant.js | 13 + .../cortensor-dashboard/src/agents/index.js | 13 + .../src/agents/insightAnalyzer.js | 22 + .../src/agents/textSummarizer.js | 10 + .../src/app/api/chat/route.js | 52 + .../cortensor-dashboard/src/app/favicon.ico | Bin 0 -> 25931 bytes .../cortensor-dashboard/src/app/globals.css | 122 + .../cortensor-dashboard/src/app/layout.js | 29 + .../cortensor-dashboard/src/app/page.jsx | 169 + .../src/components/AgentDetailCard.jsx | 82 + .../src/components/AgentDetailCardMobile.jsx | 74 + .../src/components/AgentSidebar.jsx | 69 + .../src/components/AgentSidebarMobile.jsx | 87 + .../src/components/ChatSection.jsx | 493 ++ .../src/components/LoadingScreen.jsx | 38 + .../src/components/PopupSession.jsx | 116 + .../src/components/ui/button.jsx | 56 + .../src/components/ui/card.jsx | 101 + .../cortensor-dashboard/src/data/agentData.js | 48 + .../src/hooks/useWindowWidth.js | 20 + .../cortensor-dashboard/src/lib/prisma.js | 11 + .../cortensor-dashboard/src/lib/utils.js | 6 + 46 files changed, 8292 insertions(+) create mode 100644 apps/CortensorLabs/LICENSE create mode 100644 apps/CortensorLabs/PROJECTS.yml create mode 100644 apps/CortensorLabs/README.md create mode 100644 apps/CortensorLabs/RELEASE.md create mode 100644 apps/CortensorLabs/STATUS.md create mode 100644 apps/CortensorLabs/cortensor-dashboard/README.md create mode 100644 apps/CortensorLabs/cortensor-dashboard/components.json create mode 100644 apps/CortensorLabs/cortensor-dashboard/eslint.config.mjs create mode 100644 apps/CortensorLabs/cortensor-dashboard/jsconfig.json create mode 100644 apps/CortensorLabs/cortensor-dashboard/next.config.mjs create mode 100644 apps/CortensorLabs/cortensor-dashboard/package-lock.json create mode 100644 apps/CortensorLabs/cortensor-dashboard/package.json create mode 100644 apps/CortensorLabs/cortensor-dashboard/postcss.config.mjs create mode 100644 apps/CortensorLabs/cortensor-dashboard/prisma/migrations/20251016151800_/migration.sql create mode 100644 apps/CortensorLabs/cortensor-dashboard/prisma/migrations/migration_lock.toml create mode 100644 apps/CortensorLabs/cortensor-dashboard/prisma/schema.prisma create mode 100644 apps/CortensorLabs/cortensor-dashboard/public/file.svg create mode 100644 apps/CortensorLabs/cortensor-dashboard/public/globe.svg create mode 100644 apps/CortensorLabs/cortensor-dashboard/public/next.svg create mode 100644 apps/CortensorLabs/cortensor-dashboard/public/vercel.svg create mode 100644 apps/CortensorLabs/cortensor-dashboard/public/window.svg create mode 100644 apps/CortensorLabs/cortensor-dashboard/src/agents/agentEngine.js create mode 100644 apps/CortensorLabs/cortensor-dashboard/src/agents/businessPlanner.js create mode 100644 apps/CortensorLabs/cortensor-dashboard/src/agents/formatConverter.js create mode 100644 apps/CortensorLabs/cortensor-dashboard/src/agents/generalAssistant.js create mode 100644 apps/CortensorLabs/cortensor-dashboard/src/agents/index.js create mode 100644 apps/CortensorLabs/cortensor-dashboard/src/agents/insightAnalyzer.js create mode 100644 apps/CortensorLabs/cortensor-dashboard/src/agents/textSummarizer.js create mode 100644 apps/CortensorLabs/cortensor-dashboard/src/app/api/chat/route.js create mode 100644 apps/CortensorLabs/cortensor-dashboard/src/app/favicon.ico create mode 100644 apps/CortensorLabs/cortensor-dashboard/src/app/globals.css create mode 100644 apps/CortensorLabs/cortensor-dashboard/src/app/layout.js create mode 100644 apps/CortensorLabs/cortensor-dashboard/src/app/page.jsx create mode 100644 apps/CortensorLabs/cortensor-dashboard/src/components/AgentDetailCard.jsx create mode 100644 apps/CortensorLabs/cortensor-dashboard/src/components/AgentDetailCardMobile.jsx create mode 100644 apps/CortensorLabs/cortensor-dashboard/src/components/AgentSidebar.jsx create mode 100644 apps/CortensorLabs/cortensor-dashboard/src/components/AgentSidebarMobile.jsx create mode 100644 apps/CortensorLabs/cortensor-dashboard/src/components/ChatSection.jsx create mode 100644 apps/CortensorLabs/cortensor-dashboard/src/components/LoadingScreen.jsx create mode 100644 apps/CortensorLabs/cortensor-dashboard/src/components/PopupSession.jsx create mode 100644 apps/CortensorLabs/cortensor-dashboard/src/components/ui/button.jsx create mode 100644 apps/CortensorLabs/cortensor-dashboard/src/components/ui/card.jsx create mode 100644 apps/CortensorLabs/cortensor-dashboard/src/data/agentData.js create mode 100644 apps/CortensorLabs/cortensor-dashboard/src/hooks/useWindowWidth.js create mode 100644 apps/CortensorLabs/cortensor-dashboard/src/lib/prisma.js create mode 100644 apps/CortensorLabs/cortensor-dashboard/src/lib/utils.js diff --git a/apps/CortensorLabs/LICENSE b/apps/CortensorLabs/LICENSE new file mode 100644 index 0000000..942d1bd --- /dev/null +++ b/apps/CortensorLabs/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2025 mrpurnomo + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/apps/CortensorLabs/PROJECTS.yml b/apps/CortensorLabs/PROJECTS.yml new file mode 100644 index 0000000..7669832 --- /dev/null +++ b/apps/CortensorLabs/PROJECTS.yml @@ -0,0 +1,9 @@ +- name: CortensorLabs + category: apps + owner: "@papacz" + collaborators: + - "@papacz" + status: active + created: 2025-10-23 + version: v0.1.0 + tags: [agent, ai, cortensor] diff --git a/apps/CortensorLabs/README.md b/apps/CortensorLabs/README.md new file mode 100644 index 0000000..41edf69 --- /dev/null +++ b/apps/CortensorLabs/README.md @@ -0,0 +1,96 @@ +# CortensorLabs + +**CortensorLabs** is AI platform powered by the Cortensor Network. Designed to optimize your workflow, this application provides a decentralized dashboard for various specialized AI agents, from business planning to data conversion. + +--- + +## Features + +- **Session History (Restore):** + Never worry about losing your conversation history. Simply save your **Session ID** to restore your entire chat history at any time. +- **Web & Mobile Responsive:** + A fully adaptive design that provides an optimal experience on both **desktop (web)** and **mobile** (complete with interactive pop-up bubbles). +- **Dynamic & Interactive UI:** + - **Desktop Mode:** A professional multi-column layout. + - **Mobile Mode:** Animated, "wobbling" 3D pop-up bubbles for a unique and engaging navigation experience. +- **Unique Header & Footer:** + Custom dual-tone shadow (Pink & Blue) for distinct branding. +- **Multi-Agent Hub:** + Choose the right agent for the right task: + - **💬 General Assistant:** A smart AI assistant for various general questions and tasks. + - **💼 Business Planner:** Plan business strategies and identify opportunities. + - **📝 Text Summarizer:** Summarize long texts into key bullet points. + - **📊 Insight Analyzer:** Get in-depth analysis and discover trends from your data. + - **🔄 Format Converter:** Instantly convert raw data to: + - `JSON` + - `HTML` + - `CSV` +--- +## Preview + +| Web View | Mobile View | Web & Mobile (Demo) +| :---: | :---: | :---: | +| [CortensorLabs Web Preview](https://drive.google.com/file/d/1ASjUbWlO3QkSTKfM9IVNuzeobYNX8Zrr/view?usp=sharing) | [CortensorLabs Mobile Preview](https://drive.google.com/file/d/1SRzshO5XQc9P_w93J-br38pb1EYm7Ph6/view?usp=sharing) | [CortensorLabs Web & Mobile (Demo)](https://drive.google.com/file/d/1UVZf5RbL1F4D3DRj-q4acv53OXmVBav9/view?usp=sharing) + + +--- + +## Live Apps + +**[Visit the CortensorLabs ](https://cortensor-labs.vercel.app/)** + +--- + +## Tech Stack + +* **Frontend:** [Next.js](https://nextjs.org/) +* **Styling:** [Tailwind CSS](https://tailwindcss.com/) +* **Animation:** [Framer Motion](https://www.framer.com/motion/) +* **UI Components:** [Shadcn/ui](https://ui.shadcn.com/) +* **Icons:** [Lucide React](https://lucide.dev/) +* **Backend:** [Cortensor Network](https://www.cortensor.network/) +--- + +## Local Installation & Development + +1. **Clone the Repository:** + ```bash + git clone https://github.com/Ajipur-Oprekers/CortensorLabs.git + cd cortensor-dashboard + ``` + +2. **Install Dependencies:** + ```bash + npm install + + ``` + +3. **Configure Environment Variables:** + Create a `.env.local` & `.env` file in the project root. + ```env + # .env.local + NEXT_PUBLIC_API_URL=your_cortensor_api_url + NEXT_PUBLIC_API_TASK=your_cortensor_task_url + NEXT_PUBLIC_API_KEY=your_cortensor_api_key + NEXT_PUBLIC_SESSION_ID=your_cortensor_session_id + + # .env + DATABASE_URL=your_database_url + ``` + +4. **Run the Development Server:** + ```bash + npm run dev + ``` + Open `http://localhost:3000` in your browser. + +--- + +## License + +This project is licensed under the [MIT License](LICENSE.md). + +--- + +### Built by +[PapaCZ](https://x.com/Ajipur26) diff --git a/apps/CortensorLabs/RELEASE.md b/apps/CortensorLabs/RELEASE.md new file mode 100644 index 0000000..b8e8459 --- /dev/null +++ b/apps/CortensorLabs/RELEASE.md @@ -0,0 +1,17 @@ +## [v1.0.0] - 2025-10-23 + +* **Multi-Agent Architecture:** Created a centralized hub for 5 distinct AI agents: + * `💬 General Assistant` + * `💼 Business Planner` + * `📝 Text Summarizer` + * `📊 Insight Analyzer` + * `🔄 Format Converter` +* **Converter Sub-Features:** Added conversion support for `JSON`, `HTML`, and `CSV`. +* **Session Management:** Implemented **Session ID** creation and a **Restore Session** functionality to persist chat history. +* **Responsive UI (Web & Mobile):** + * Full multi-column desktop layout. + * Dynamic mobile view using interactive pop-up bubbles. +* **Dynamic Animations & Branding:** + * Added animated "wobbling" 3D bubble buttons for the mobile UI. + * Created a new "fly-in" animation for chat messages. + * Implemented custom dual-tone (Pink & Blue) shadows on the *Header* and * diff --git a/apps/CortensorLabs/STATUS.md b/apps/CortensorLabs/STATUS.md new file mode 100644 index 0000000..29f327e --- /dev/null +++ b/apps/CortensorLabs/STATUS.md @@ -0,0 +1,18 @@ +## Current Status + +1. ✅ **Multi-Agent Hub** implemented (General, Planner, Summarizer, Analyzer, Converter). +2. ✅ **Format Converter** fully functional with `JSON`, `HTML`, and `CSV` options. +3. ✅ **Session ID Restore** system for persistent chat history. +4. ✅ **Fully Responsive Layout** for both web (desktop) and mobile. +5. ✅ **Dynamic Mobile UI** with "wobbling" 3D pop-up bubble navigation. +6. ✅ **Custom Branding** with dual-tone Pink/Blue shadows on header and footer. + +## Roadmap + +1. 🔲 Implement a Dark Mode theme toggle +2. 🔲 Expand Format Converter to include `XML` and `YAML` and `PDF` +3. 🔲 Explore full User Authentication (Google/Discord) to replace Session IDs + +## Known Issues + +❗ Minor delay when restoring sessions with very long chat histories diff --git a/apps/CortensorLabs/cortensor-dashboard/README.md b/apps/CortensorLabs/cortensor-dashboard/README.md new file mode 100644 index 0000000..66bb426 --- /dev/null +++ b/apps/CortensorLabs/cortensor-dashboard/README.md @@ -0,0 +1,36 @@ +This is a [Next.js](https://nextjs.org) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app). + +## Getting Started + +First, run the development server: + +```bash +npm run dev +# or +yarn dev +# or +pnpm dev +# or +bun dev +``` + +Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. + +You can start editing the page by modifying `app/page.js`. The page auto-updates as you edit the file. + +This project uses [`next/font`](https://nextjs.org/docs/app/building-your-application/optimizing/fonts) to automatically optimize and load [Geist](https://vercel.com/font), a new font family for Vercel. + +## Learn More + +To learn more about Next.js, take a look at the following resources: + +- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. +- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. + +You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js) - your feedback and contributions are welcome! + +## Deploy on Vercel + +The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. + +Check out our [Next.js deployment documentation](https://nextjs.org/docs/app/building-your-application/deploying) for more details. diff --git a/apps/CortensorLabs/cortensor-dashboard/components.json b/apps/CortensorLabs/cortensor-dashboard/components.json new file mode 100644 index 0000000..9393e69 --- /dev/null +++ b/apps/CortensorLabs/cortensor-dashboard/components.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://ui.shadcn.com/schema.json", + "style": "new-york", + "rsc": true, + "tsx": false, + "tailwind": { + "config": "", + "css": "src/app/globals.css", + "baseColor": "neutral", + "cssVariables": true, + "prefix": "" + }, + "iconLibrary": "lucide", + "aliases": { + "components": "@/components", + "utils": "@/lib/utils", + "ui": "@/components/ui", + "lib": "@/lib", + "hooks": "@/hooks" + }, + "registries": {} +} diff --git a/apps/CortensorLabs/cortensor-dashboard/eslint.config.mjs b/apps/CortensorLabs/cortensor-dashboard/eslint.config.mjs new file mode 100644 index 0000000..1e69deb --- /dev/null +++ b/apps/CortensorLabs/cortensor-dashboard/eslint.config.mjs @@ -0,0 +1,25 @@ +import { dirname } from "path"; +import { fileURLToPath } from "url"; +import { FlatCompat } from "@eslint/eslintrc"; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = dirname(__filename); + +const compat = new FlatCompat({ + baseDirectory: __dirname, +}); + +const eslintConfig = [ + ...compat.extends("next/core-web-vitals"), + { + ignores: [ + "node_modules/**", + ".next/**", + "out/**", + "build/**", + "next-env.d.ts", + ], + }, +]; + +export default eslintConfig; diff --git a/apps/CortensorLabs/cortensor-dashboard/jsconfig.json b/apps/CortensorLabs/cortensor-dashboard/jsconfig.json new file mode 100644 index 0000000..b8d6842 --- /dev/null +++ b/apps/CortensorLabs/cortensor-dashboard/jsconfig.json @@ -0,0 +1,7 @@ +{ + "compilerOptions": { + "paths": { + "@/*": ["./src/*"] + } + } +} diff --git a/apps/CortensorLabs/cortensor-dashboard/next.config.mjs b/apps/CortensorLabs/cortensor-dashboard/next.config.mjs new file mode 100644 index 0000000..4678774 --- /dev/null +++ b/apps/CortensorLabs/cortensor-dashboard/next.config.mjs @@ -0,0 +1,4 @@ +/** @type {import('next').NextConfig} */ +const nextConfig = {}; + +export default nextConfig; diff --git a/apps/CortensorLabs/cortensor-dashboard/package-lock.json b/apps/CortensorLabs/cortensor-dashboard/package-lock.json new file mode 100644 index 0000000..2f6aed8 --- /dev/null +++ b/apps/CortensorLabs/cortensor-dashboard/package-lock.json @@ -0,0 +1,6128 @@ +{ + "name": "cortensor-dashboard", + "version": "0.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "cortensor-dashboard", + "version": "0.1.0", + "dependencies": { + "@prisma/client": "^6.17.1", + "@radix-ui/react-slot": "^1.2.3", + "class-variance-authority": "^0.7.1", + "clsx": "^2.1.1", + "framer-motion": "^12.23.24", + "lucide-react": "^0.545.0", + "next": "15.5.5", + "prisma": "^6.17.1", + "react": "19.1.0", + "react-dom": "19.1.0", + "tailwind-merge": "^3.3.1" + }, + "devDependencies": { + "@eslint/eslintrc": "^3", + "@tailwindcss/postcss": "^4", + "eslint": "^9", + "eslint-config-next": "15.5.5", + "tailwindcss": "^4", + "tw-animate-css": "^1.4.0" + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@emnapi/core": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.5.0.tgz", + "integrity": "sha512-sbP8GzB1WDzacS8fgNPpHlp6C9VZe+SJP3F90W9rLemaQj2PzIuTEl1qDOYQf58YIpyjViI24y9aPWCjEzY2cg==", + "dev": true, + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.1.0", + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.5.0.tgz", + "integrity": "sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ==", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/wasi-threads": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.1.0.tgz", + "integrity": "sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==", + "dev": true, + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.0.tgz", + "integrity": "sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.21.0", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.0.tgz", + "integrity": "sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==", + "dev": true, + "dependencies": { + "@eslint/object-schema": "^2.1.6", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/config-helpers": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.0.tgz", + "integrity": "sha512-WUFvV4WoIwW8Bv0KeKCIIEgdSiFOsulyN0xrMu+7z43q/hkOLXjvb5u7UC9jDxvRzcrbEmuZBX5yJZz1741jog==", + "dev": true, + "dependencies": { + "@eslint/core": "^0.16.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.16.0.tgz", + "integrity": "sha512-nmC8/totwobIiFcGkDza3GIKfAw1+hLiYVrh3I1nIomQ8PEr5cxg34jnkmGawul/ep52wGRAcyeDCNtWKSOj4Q==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz", + "integrity": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/js": { + "version": "9.37.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.37.0.tgz", + "integrity": "sha512-jaS+NJ+hximswBG6pjNX0uEJZkrT0zwpVi3BA3vX22aFGjJjmgSTSmPpZCRKmoBL5VY/M6p0xsSJx7rk7sy5gg==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz", + "integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.0.tgz", + "integrity": "sha512-sB5uyeq+dwCWyPi31B2gQlVlo+j5brPlWx4yZBrEaRo/nhdDE8Xke1gsGgtiBdaBTxuTkceLVuVt/pclrasb0A==", + "dev": true, + "dependencies": { + "@eslint/core": "^0.16.0", + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "dev": true, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.7", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.7.tgz", + "integrity": "sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==", + "dev": true, + "dependencies": { + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.4.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", + "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", + "dev": true, + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@img/colour": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.0.0.tgz", + "integrity": "sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw==", + "optional": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@img/sharp-darwin-arm64": { + "version": "0.34.4", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.4.tgz", + "integrity": "sha512-sitdlPzDVyvmINUdJle3TNHl+AG9QcwiAMsXmccqsCOMZNIdW2/7S26w0LyU8euiLVzFBL3dXPwVCq/ODnf2vA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-arm64": "1.2.3" + } + }, + "node_modules/@img/sharp-darwin-x64": { + "version": "0.34.4", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.4.tgz", + "integrity": "sha512-rZheupWIoa3+SOdF/IcUe1ah4ZDpKBGWcsPX6MT0lYniH9micvIU7HQkYTfrx5Xi8u+YqwLtxC/3vl8TQN6rMg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-x64": "1.2.3" + } + }, + "node_modules/@img/sharp-libvips-darwin-arm64": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.2.3.tgz", + "integrity": "sha512-QzWAKo7kpHxbuHqUC28DZ9pIKpSi2ts2OJnoIGI26+HMgq92ZZ4vk8iJd4XsxN+tYfNJxzH6W62X5eTcsBymHw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-darwin-x64": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.2.3.tgz", + "integrity": "sha512-Ju+g2xn1E2AKO6YBhxjj+ACcsPQRHT0bhpglxcEf+3uyPY+/gL8veniKoo96335ZaPo03bdDXMv0t+BBFAbmRA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.2.3.tgz", + "integrity": "sha512-x1uE93lyP6wEwGvgAIV0gP6zmaL/a0tGzJs/BIDDG0zeBhMnuUPm7ptxGhUbcGs4okDJrk4nxgrmxpib9g6HpA==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm64": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.2.3.tgz", + "integrity": "sha512-I4RxkXU90cpufazhGPyVujYwfIm9Nk1QDEmiIsaPwdnm013F7RIceaCc87kAH+oUB1ezqEvC6ga4m7MSlqsJvQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-ppc64": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.2.3.tgz", + "integrity": "sha512-Y2T7IsQvJLMCBM+pmPbM3bKT/yYJvVtLJGfCs4Sp95SjvnFIjynbjzsa7dY1fRJX45FTSfDksbTp6AGWudiyCg==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-s390x": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.2.3.tgz", + "integrity": "sha512-RgWrs/gVU7f+K7P+KeHFaBAJlNkD1nIZuVXdQv6S+fNA6syCcoboNjsV2Pou7zNlVdNQoQUpQTk8SWDHUA3y/w==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-x64": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.2.3.tgz", + "integrity": "sha512-3JU7LmR85K6bBiRzSUc/Ff9JBVIFVvq6bomKE0e63UXGeRw2HPVEjoJke1Yx+iU4rL7/7kUjES4dZ/81Qjhyxg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-arm64": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.2.3.tgz", + "integrity": "sha512-F9q83RZ8yaCwENw1GieztSfj5msz7GGykG/BA+MOUefvER69K/ubgFHNeSyUu64amHIYKGDs4sRCMzXVj8sEyw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-x64": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.2.3.tgz", + "integrity": "sha512-U5PUY5jbc45ANM6tSJpsgqmBF/VsL6LnxJmIf11kB7J5DctHgqm0SkuXzVWtIY90GnJxKnC/JT251TDnk1fu/g==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-linux-arm": { + "version": "0.34.4", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.4.tgz", + "integrity": "sha512-Xyam4mlqM0KkTHYVSuc6wXRmM7LGN0P12li03jAnZ3EJWZqj83+hi8Y9UxZUbxsgsK1qOEwg7O0Bc0LjqQVtxA==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm": "1.2.3" + } + }, + "node_modules/@img/sharp-linux-arm64": { + "version": "0.34.4", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.4.tgz", + "integrity": "sha512-YXU1F/mN/Wu786tl72CyJjP/Ngl8mGHN1hST4BGl+hiW5jhCnV2uRVTNOcaYPs73NeT/H8Upm3y9582JVuZHrQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm64": "1.2.3" + } + }, + "node_modules/@img/sharp-linux-ppc64": { + "version": "0.34.4", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.34.4.tgz", + "integrity": "sha512-F4PDtF4Cy8L8hXA2p3TO6s4aDt93v+LKmpcYFLAVdkkD3hSxZzee0rh6/+94FpAynsuMpLX5h+LRsSG3rIciUQ==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-ppc64": "1.2.3" + } + }, + "node_modules/@img/sharp-linux-s390x": { + "version": "0.34.4", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.4.tgz", + "integrity": "sha512-qVrZKE9Bsnzy+myf7lFKvng6bQzhNUAYcVORq2P7bDlvmF6u2sCmK2KyEQEBdYk+u3T01pVsPrkj943T1aJAsw==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-s390x": "1.2.3" + } + }, + "node_modules/@img/sharp-linux-x64": { + "version": "0.34.4", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.4.tgz", + "integrity": "sha512-ZfGtcp2xS51iG79c6Vhw9CWqQC8l2Ot8dygxoDoIQPTat/Ov3qAa8qpxSrtAEAJW+UjTXc4yxCjNfxm4h6Xm2A==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-x64": "1.2.3" + } + }, + "node_modules/@img/sharp-linuxmusl-arm64": { + "version": "0.34.4", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.4.tgz", + "integrity": "sha512-8hDVvW9eu4yHWnjaOOR8kHVrew1iIX+MUgwxSuH2XyYeNRtLUe4VNioSqbNkB7ZYQJj9rUTT4PyRscyk2PXFKA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-arm64": "1.2.3" + } + }, + "node_modules/@img/sharp-linuxmusl-x64": { + "version": "0.34.4", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.4.tgz", + "integrity": "sha512-lU0aA5L8QTlfKjpDCEFOZsTYGn3AEiO6db8W5aQDxj0nQkVrZWmN3ZP9sYKWJdtq3PWPhUNlqehWyXpYDcI9Sg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-x64": "1.2.3" + } + }, + "node_modules/@img/sharp-wasm32": { + "version": "0.34.4", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.4.tgz", + "integrity": "sha512-33QL6ZO/qpRyG7woB/HUALz28WnTMI2W1jgX3Nu2bypqLIKx/QKMILLJzJjI+SIbvXdG9fUnmrxR7vbi1sTBeA==", + "cpu": [ + "wasm32" + ], + "optional": true, + "dependencies": { + "@emnapi/runtime": "^1.5.0" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-arm64": { + "version": "0.34.4", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.4.tgz", + "integrity": "sha512-2Q250do/5WXTwxW3zjsEuMSv5sUU4Tq9VThWKlU2EYLm4MB7ZeMwF+SFJutldYODXF6jzc6YEOC+VfX0SZQPqA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-ia32": { + "version": "0.34.4", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.4.tgz", + "integrity": "sha512-3ZeLue5V82dT92CNL6rsal6I2weKw1cYu+rGKm8fOCCtJTR2gYeUfY3FqUnIJsMUPIH68oS5jmZ0NiJ508YpEw==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-x64": { + "version": "0.34.4", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.4.tgz", + "integrity": "sha512-xIyj4wpYs8J18sVN3mSQjwrw7fKUqRw+Z5rnHNCy5fYTxigBz81u5mOMPmFumwjcn8+ld1ppptMBCLic1nz6ig==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@isaacs/fs-minipass": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", + "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", + "dev": true, + "dependencies": { + "minipass": "^7.0.4" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@napi-rs/wasm-runtime": { + "version": "0.2.12", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.12.tgz", + "integrity": "sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==", + "dev": true, + "optional": true, + "dependencies": { + "@emnapi/core": "^1.4.3", + "@emnapi/runtime": "^1.4.3", + "@tybys/wasm-util": "^0.10.0" + } + }, + "node_modules/@next/env": { + "version": "15.5.5", + "resolved": "https://registry.npmjs.org/@next/env/-/env-15.5.5.tgz", + "integrity": "sha512-2Zhvss36s/yL+YSxD5ZL5dz5pI6ki1OLxYlh6O77VJ68sBnlUrl5YqhBgCy7FkdMsp9RBeGFwpuDCdpJOqdKeQ==" + }, + "node_modules/@next/eslint-plugin-next": { + "version": "15.5.5", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-15.5.5.tgz", + "integrity": "sha512-FMzm412l9oFB8zdRD+K6HQ1VzlS+sNNsdg0MfvTg0i8lfCyTgP/RFxiu/pGJqZ/IQnzn9xSiLkjOVI7Iv4nbdQ==", + "dev": true, + "dependencies": { + "fast-glob": "3.3.1" + } + }, + "node_modules/@next/swc-darwin-arm64": { + "version": "15.5.5", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.5.5.tgz", + "integrity": "sha512-lYExGHuFIHeOxf40mRLWoA84iY2sLELB23BV5FIDHhdJkN1LpRTPc1MDOawgTo5ifbM5dvAwnGuHyNm60G1+jw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-darwin-x64": { + "version": "15.5.5", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.5.5.tgz", + "integrity": "sha512-cacs/WQqa96IhqUm+7CY+z/0j9sW6X80KE07v3IAJuv+z0UNvJtKSlT/T1w1SpaQRa9l0wCYYZlRZUhUOvEVmg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-gnu": { + "version": "15.5.5", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.5.5.tgz", + "integrity": "sha512-tLd90SvkRFik6LSfuYjcJEmwqcNEnVYVOyKTacSazya/SLlSwy/VYKsDE4GIzOBd+h3gW+FXqShc2XBavccHCg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-musl": { + "version": "15.5.5", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.5.5.tgz", + "integrity": "sha512-ekV76G2R/l3nkvylkfy9jBSYHeB4QcJ7LdDseT6INnn1p51bmDS1eGoSoq+RxfQ7B1wt+Qa0pIl5aqcx0GLpbw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-gnu": { + "version": "15.5.5", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.5.5.tgz", + "integrity": "sha512-tI+sBu+3FmWtqlqD4xKJcj3KJtqbniLombKTE7/UWyyoHmOyAo3aZ7QcEHIOgInXOG1nt0rwh0KGmNbvSB0Djg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-musl": { + "version": "15.5.5", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.5.5.tgz", + "integrity": "sha512-kDRh+epN/ulroNJLr+toDjN+/JClY5L+OAWjOrrKCI0qcKvTw9GBx7CU/rdA2bgi4WpZN3l0rf/3+b8rduEwrQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-arm64-msvc": { + "version": "15.5.5", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.5.5.tgz", + "integrity": "sha512-GDgdNPFFqiKjTrmfw01sMMRWhVN5wOCmFzPloxa7ksDfX6TZt62tAK986f0ZYqWpvDFqeBCLAzmgTURvtQBdgw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-x64-msvc": { + "version": "15.5.5", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.5.5.tgz", + "integrity": "sha512-5kE3oRJxc7M8RmcTANP8RGoJkaYlwIiDD92gSwCjJY0+j8w8Sl1lvxgQ3bxfHY2KkHFai9tpy/Qx1saWV8eaJQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nolyfill/is-core-module": { + "version": "1.0.39", + "resolved": "https://registry.npmjs.org/@nolyfill/is-core-module/-/is-core-module-1.0.39.tgz", + "integrity": "sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==", + "dev": true, + "engines": { + "node": ">=12.4.0" + } + }, + "node_modules/@prisma/client": { + "version": "6.17.1", + "resolved": "https://registry.npmjs.org/@prisma/client/-/client-6.17.1.tgz", + "integrity": "sha512-zL58jbLzYamjnNnmNA51IOZdbk5ci03KviXCuB0Tydc9btH2kDWsi1pQm2VecviRTM7jGia0OPPkgpGnT3nKvw==", + "hasInstallScript": true, + "engines": { + "node": ">=18.18" + }, + "peerDependencies": { + "prisma": "*", + "typescript": ">=5.1.0" + }, + "peerDependenciesMeta": { + "prisma": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/@prisma/config": { + "version": "6.17.1", + "resolved": "https://registry.npmjs.org/@prisma/config/-/config-6.17.1.tgz", + "integrity": "sha512-fs8wY6DsvOCzuiyWVckrVs1LOcbY4LZNz8ki4uUIQ28jCCzojTGqdLhN2Jl5lDnC1yI8/gNIKpsWDM8pLhOdwA==", + "dependencies": { + "c12": "3.1.0", + "deepmerge-ts": "7.1.5", + "effect": "3.16.12", + "empathic": "2.0.0" + } + }, + "node_modules/@prisma/debug": { + "version": "6.17.1", + "resolved": "https://registry.npmjs.org/@prisma/debug/-/debug-6.17.1.tgz", + "integrity": "sha512-Vf7Tt5Wh9XcndpbmeotuqOMLWPTjEKCsgojxXP2oxE1/xYe7PtnP76hsouG9vis6fctX+TxgmwxTuYi/+xc7dQ==" + }, + "node_modules/@prisma/engines": { + "version": "6.17.1", + "resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-6.17.1.tgz", + "integrity": "sha512-D95Ik3GYZkqZ8lSR4EyFOJ/tR33FcYRP8kK61o+WMsyD10UfJwd7+YielflHfKwiGodcqKqoraWw8ElAgMDbPw==", + "hasInstallScript": true, + "dependencies": { + "@prisma/debug": "6.17.1", + "@prisma/engines-version": "6.17.1-1.272a37d34178c2894197e17273bf937f25acdeac", + "@prisma/fetch-engine": "6.17.1", + "@prisma/get-platform": "6.17.1" + } + }, + "node_modules/@prisma/engines-version": { + "version": "6.17.1-1.272a37d34178c2894197e17273bf937f25acdeac", + "resolved": "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-6.17.1-1.272a37d34178c2894197e17273bf937f25acdeac.tgz", + "integrity": "sha512-17140E3huOuD9lMdJ9+SF/juOf3WR3sTJMVyyenzqUPbuH+89nPhSWcrY+Mf7tmSs6HvaO+7S+HkELinn6bhdg==" + }, + "node_modules/@prisma/fetch-engine": { + "version": "6.17.1", + "resolved": "https://registry.npmjs.org/@prisma/fetch-engine/-/fetch-engine-6.17.1.tgz", + "integrity": "sha512-AYZiHOs184qkDMiTeshyJCtyL4yERkjfTkJiSJdYuSfc24m94lTNL5+GFinZ6vVz+ktX4NJzHKn1zIFzGTWrWg==", + "dependencies": { + "@prisma/debug": "6.17.1", + "@prisma/engines-version": "6.17.1-1.272a37d34178c2894197e17273bf937f25acdeac", + "@prisma/get-platform": "6.17.1" + } + }, + "node_modules/@prisma/get-platform": { + "version": "6.17.1", + "resolved": "https://registry.npmjs.org/@prisma/get-platform/-/get-platform-6.17.1.tgz", + "integrity": "sha512-AKEn6fsfz0r482S5KRDFlIGEaq9wLNcgalD1adL+fPcFFblIKs1sD81kY/utrHdqKuVC6E1XSRpegDK3ZLL4Qg==", + "dependencies": { + "@prisma/debug": "6.17.1" + } + }, + "node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", + "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-slot": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", + "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@rtsao/scc": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", + "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", + "dev": true + }, + "node_modules/@rushstack/eslint-patch": { + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.14.0.tgz", + "integrity": "sha512-WJFej426qe4RWOm9MMtP4V3CV4AucXolQty+GRgAWLgQXmpCuwzs7hEpxxhSc/znXUSxum9d/P/32MW0FlAAlA==", + "dev": true + }, + "node_modules/@standard-schema/spec": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.0.0.tgz", + "integrity": "sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==" + }, + "node_modules/@swc/helpers": { + "version": "0.5.15", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz", + "integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==", + "dependencies": { + "tslib": "^2.8.0" + } + }, + "node_modules/@tailwindcss/node": { + "version": "4.1.14", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.1.14.tgz", + "integrity": "sha512-hpz+8vFk3Ic2xssIA3e01R6jkmsAhvkQdXlEbRTk6S10xDAtiQiM3FyvZVGsucefq764euO/b8WUW9ysLdThHw==", + "dev": true, + "dependencies": { + "@jridgewell/remapping": "^2.3.4", + "enhanced-resolve": "^5.18.3", + "jiti": "^2.6.0", + "lightningcss": "1.30.1", + "magic-string": "^0.30.19", + "source-map-js": "^1.2.1", + "tailwindcss": "4.1.14" + } + }, + "node_modules/@tailwindcss/oxide": { + "version": "4.1.14", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.1.14.tgz", + "integrity": "sha512-23yx+VUbBwCg2x5XWdB8+1lkPajzLmALEfMb51zZUBYaYVPDQvBSD/WYDqiVyBIo2BZFa3yw1Rpy3G2Jp+K0dw==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "detect-libc": "^2.0.4", + "tar": "^7.5.1" + }, + "engines": { + "node": ">= 10" + }, + "optionalDependencies": { + "@tailwindcss/oxide-android-arm64": "4.1.14", + "@tailwindcss/oxide-darwin-arm64": "4.1.14", + "@tailwindcss/oxide-darwin-x64": "4.1.14", + "@tailwindcss/oxide-freebsd-x64": "4.1.14", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.14", + "@tailwindcss/oxide-linux-arm64-gnu": "4.1.14", + "@tailwindcss/oxide-linux-arm64-musl": "4.1.14", + "@tailwindcss/oxide-linux-x64-gnu": "4.1.14", + "@tailwindcss/oxide-linux-x64-musl": "4.1.14", + "@tailwindcss/oxide-wasm32-wasi": "4.1.14", + "@tailwindcss/oxide-win32-arm64-msvc": "4.1.14", + "@tailwindcss/oxide-win32-x64-msvc": "4.1.14" + } + }, + "node_modules/@tailwindcss/oxide-android-arm64": { + "version": "4.1.14", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.1.14.tgz", + "integrity": "sha512-a94ifZrGwMvbdeAxWoSuGcIl6/DOP5cdxagid7xJv6bwFp3oebp7y2ImYsnZBMTwjn5Ev5xESvS3FFYUGgPODQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-darwin-arm64": { + "version": "4.1.14", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.1.14.tgz", + "integrity": "sha512-HkFP/CqfSh09xCnrPJA7jud7hij5ahKyWomrC3oiO2U9i0UjP17o9pJbxUN0IJ471GTQQmzwhp0DEcpbp4MZTA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-darwin-x64": { + "version": "4.1.14", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.1.14.tgz", + "integrity": "sha512-eVNaWmCgdLf5iv6Qd3s7JI5SEFBFRtfm6W0mphJYXgvnDEAZ5sZzqmI06bK6xo0IErDHdTA5/t7d4eTfWbWOFw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-freebsd-x64": { + "version": "4.1.14", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.1.14.tgz", + "integrity": "sha512-QWLoRXNikEuqtNb0dhQN6wsSVVjX6dmUFzuuiL09ZeXju25dsei2uIPl71y2Ic6QbNBsB4scwBoFnlBfabHkEw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { + "version": "4.1.14", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.1.14.tgz", + "integrity": "sha512-VB4gjQni9+F0VCASU+L8zSIyjrLLsy03sjcR3bM0V2g4SNamo0FakZFKyUQ96ZVwGK4CaJsc9zd/obQy74o0Fw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { + "version": "4.1.14", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.1.14.tgz", + "integrity": "sha512-qaEy0dIZ6d9vyLnmeg24yzA8XuEAD9WjpM5nIM1sUgQ/Zv7cVkharPDQcmm/t/TvXoKo/0knI3me3AGfdx6w1w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-musl": { + "version": "4.1.14", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.1.14.tgz", + "integrity": "sha512-ISZjT44s59O8xKsPEIesiIydMG/sCXoMBCqsphDm/WcbnuWLxxb+GcvSIIA5NjUw6F8Tex7s5/LM2yDy8RqYBQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-gnu": { + "version": "4.1.14", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.1.14.tgz", + "integrity": "sha512-02c6JhLPJj10L2caH4U0zF8Hji4dOeahmuMl23stk0MU1wfd1OraE7rOloidSF8W5JTHkFdVo/O7uRUJJnUAJg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-musl": { + "version": "4.1.14", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.1.14.tgz", + "integrity": "sha512-TNGeLiN1XS66kQhxHG/7wMeQDOoL0S33x9BgmydbrWAb9Qw0KYdd8o1ifx4HOGDWhVmJ+Ul+JQ7lyknQFilO3Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi": { + "version": "4.1.14", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.1.14.tgz", + "integrity": "sha512-uZYAsaW/jS/IYkd6EWPJKW/NlPNSkWkBlaeVBi/WsFQNP05/bzkebUL8FH1pdsqx4f2fH/bWFcUABOM9nfiJkQ==", + "bundleDependencies": [ + "@napi-rs/wasm-runtime", + "@emnapi/core", + "@emnapi/runtime", + "@tybys/wasm-util", + "@emnapi/wasi-threads", + "tslib" + ], + "cpu": [ + "wasm32" + ], + "dev": true, + "optional": true, + "dependencies": { + "@emnapi/core": "^1.5.0", + "@emnapi/runtime": "^1.5.0", + "@emnapi/wasi-threads": "^1.1.0", + "@napi-rs/wasm-runtime": "^1.0.5", + "@tybys/wasm-util": "^0.10.1", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { + "version": "4.1.14", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.1.14.tgz", + "integrity": "sha512-Az0RnnkcvRqsuoLH2Z4n3JfAef0wElgzHD5Aky/e+0tBUxUhIeIqFBTMNQvmMRSP15fWwmvjBxZ3Q8RhsDnxAA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-win32-x64-msvc": { + "version": "4.1.14", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.1.14.tgz", + "integrity": "sha512-ttblVGHgf68kEE4om1n/n44I0yGPkCPbLsqzjvybhpwa6mKKtgFfAzy6btc3HRmuW7nHe0OOrSeNP9sQmmH9XA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/postcss": { + "version": "4.1.14", + "resolved": "https://registry.npmjs.org/@tailwindcss/postcss/-/postcss-4.1.14.tgz", + "integrity": "sha512-BdMjIxy7HUNThK87C7BC8I1rE8BVUsfNQSI5siQ4JK3iIa3w0XyVvVL9SXLWO//CtYTcp1v7zci0fYwJOjB+Zg==", + "dev": true, + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "@tailwindcss/node": "4.1.14", + "@tailwindcss/oxide": "4.1.14", + "postcss": "^8.4.41", + "tailwindcss": "4.1.14" + } + }, + "node_modules/@tybys/wasm-util": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz", + "integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==", + "dev": true, + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.46.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.46.1.tgz", + "integrity": "sha512-rUsLh8PXmBjdiPY+Emjz9NX2yHvhS11v0SR6xNJkm5GM1MO9ea/1GoDKlHHZGrOJclL/cZ2i/vRUYVtjRhrHVQ==", + "dev": true, + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.46.1", + "@typescript-eslint/type-utils": "8.46.1", + "@typescript-eslint/utils": "8.46.1", + "@typescript-eslint/visitor-keys": "8.46.1", + "graphemer": "^1.4.0", + "ignore": "^7.0.0", + "natural-compare": "^1.4.0", + "ts-api-utils": "^2.1.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.46.1", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "8.46.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.46.1.tgz", + "integrity": "sha512-6JSSaBZmsKvEkbRUkf7Zj7dru/8ZCrJxAqArcLaVMee5907JdtEbKGsZ7zNiIm/UAkpGUkaSMZEXShnN2D1HZA==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "8.46.1", + "@typescript-eslint/types": "8.46.1", + "@typescript-eslint/typescript-estree": "8.46.1", + "@typescript-eslint/visitor-keys": "8.46.1", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/project-service": { + "version": "8.46.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.46.1.tgz", + "integrity": "sha512-FOIaFVMHzRskXr5J4Jp8lFVV0gz5ngv3RHmn+E4HYxSJ3DgDzU7fVI1/M7Ijh1zf6S7HIoaIOtln1H5y8V+9Zg==", + "dev": true, + "dependencies": { + "@typescript-eslint/tsconfig-utils": "^8.46.1", + "@typescript-eslint/types": "^8.46.1", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.46.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.46.1.tgz", + "integrity": "sha512-weL9Gg3/5F0pVQKiF8eOXFZp8emqWzZsOJuWRUNtHT+UNV2xSJegmpCNQHy37aEQIbToTq7RHKhWvOsmbM680A==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "8.46.1", + "@typescript-eslint/visitor-keys": "8.46.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/tsconfig-utils": { + "version": "8.46.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.46.1.tgz", + "integrity": "sha512-X88+J/CwFvlJB+mK09VFqx5FE4H5cXD+H/Bdza2aEWkSb8hnWIQorNcscRl4IEo1Cz9VI/+/r/jnGWkbWPx54g==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "8.46.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.46.1.tgz", + "integrity": "sha512-+BlmiHIiqufBxkVnOtFwjah/vrkF4MtKKvpXrKSPLCkCtAp8H01/VV43sfqA98Od7nJpDcFnkwgyfQbOG0AMvw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "8.46.1", + "@typescript-eslint/typescript-estree": "8.46.1", + "@typescript-eslint/utils": "8.46.1", + "debug": "^4.3.4", + "ts-api-utils": "^2.1.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "8.46.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.46.1.tgz", + "integrity": "sha512-C+soprGBHwWBdkDpbaRC4paGBrkIXxVlNohadL5o0kfhsXqOC6GYH2S/Obmig+I0HTDl8wMaRySwrfrXVP8/pQ==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.46.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.46.1.tgz", + "integrity": "sha512-uIifjT4s8cQKFQ8ZBXXyoUODtRoAd7F7+G8MKmtzj17+1UbdzFl52AzRyZRyKqPHhgzvXunnSckVu36flGy8cg==", + "dev": true, + "dependencies": { + "@typescript-eslint/project-service": "8.46.1", + "@typescript-eslint/tsconfig-utils": "8.46.1", + "@typescript-eslint/types": "8.46.1", + "@typescript-eslint/visitor-keys": "8.46.1", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^2.1.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "8.46.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.46.1.tgz", + "integrity": "sha512-vkYUy6LdZS7q1v/Gxb2Zs7zziuXN0wxqsetJdeZdRe/f5dwJFglmuvZBfTUivCtjH725C1jWCDfpadadD95EDQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.7.0", + "@typescript-eslint/scope-manager": "8.46.1", + "@typescript-eslint/types": "8.46.1", + "@typescript-eslint/typescript-estree": "8.46.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.46.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.46.1.tgz", + "integrity": "sha512-ptkmIf2iDkNUjdeu2bQqhFPV1m6qTnFFjg7PPDjxKWaMaP0Z6I9l30Jr3g5QqbZGdw8YdYvLp+XnqnWWZOg/NA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "8.46.1", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@unrs/resolver-binding-android-arm-eabi": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-1.11.1.tgz", + "integrity": "sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@unrs/resolver-binding-android-arm64": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm64/-/resolver-binding-android-arm64-1.11.1.tgz", + "integrity": "sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@unrs/resolver-binding-darwin-arm64": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.11.1.tgz", + "integrity": "sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@unrs/resolver-binding-darwin-x64": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.11.1.tgz", + "integrity": "sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@unrs/resolver-binding-freebsd-x64": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.11.1.tgz", + "integrity": "sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm-gnueabihf": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.11.1.tgz", + "integrity": "sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm-musleabihf": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.11.1.tgz", + "integrity": "sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm64-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.11.1.tgz", + "integrity": "sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm64-musl": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.11.1.tgz", + "integrity": "sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-ppc64-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.11.1.tgz", + "integrity": "sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-riscv64-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.11.1.tgz", + "integrity": "sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-riscv64-musl": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.11.1.tgz", + "integrity": "sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-s390x-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.11.1.tgz", + "integrity": "sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-x64-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.11.1.tgz", + "integrity": "sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-x64-musl": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.11.1.tgz", + "integrity": "sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-wasm32-wasi": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.11.1.tgz", + "integrity": "sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==", + "cpu": [ + "wasm32" + ], + "dev": true, + "optional": true, + "dependencies": { + "@napi-rs/wasm-runtime": "^0.2.11" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@unrs/resolver-binding-win32-arm64-msvc": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.11.1.tgz", + "integrity": "sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@unrs/resolver-binding-win32-ia32-msvc": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.11.1.tgz", + "integrity": "sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@unrs/resolver-binding-win32-x64-msvc": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.11.1.tgz", + "integrity": "sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/acorn": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/aria-query": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.9.tgz", + "integrity": "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.24.0", + "es-object-atoms": "^1.1.1", + "get-intrinsic": "^1.3.0", + "is-string": "^1.1.1", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlast": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", + "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz", + "integrity": "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "es-shim-unscopables": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", + "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", + "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", + "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ast-types-flow": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", + "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", + "dev": true + }, + "node_modules/async-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", + "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axe-core": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.11.0.tgz", + "integrity": "sha512-ilYanEU8vxxBexpJd8cWM4ElSQq4QctCLKih0TSfjIfCQTeyH/6zVrmIJfLPrKTKJRbiG+cfnZbQIjAlJmF1jQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/axobject-query": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/c12": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/c12/-/c12-3.1.0.tgz", + "integrity": "sha512-uWoS8OU1MEIsOv8p/5a82c3H31LsWVR5qiyXVfBNOzfffjUWtPnhAb4BYI2uG2HfGmZmFjCtui5XNWaps+iFuw==", + "dependencies": { + "chokidar": "^4.0.3", + "confbox": "^0.2.2", + "defu": "^6.1.4", + "dotenv": "^16.6.1", + "exsolve": "^1.0.7", + "giget": "^2.0.0", + "jiti": "^2.4.2", + "ohash": "^2.0.11", + "pathe": "^2.0.3", + "perfect-debounce": "^1.0.0", + "pkg-types": "^2.2.0", + "rc9": "^2.1.2" + }, + "peerDependencies": { + "magicast": "^0.3.5" + }, + "peerDependenciesMeta": { + "magicast": { + "optional": true + } + } + }, + "node_modules/call-bind": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "dev": true, + "dependencies": { + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "dev": true, + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001750", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001750.tgz", + "integrity": "sha512-cuom0g5sdX6rw00qOoLNSFCJ9/mYIsuSOA+yzpDw8eopiFqcVwQvZHqov0vmEighRxX++cfC0Vg1G+1Iy/mSpQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/chownr": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", + "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", + "dev": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/citty": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/citty/-/citty-0.1.6.tgz", + "integrity": "sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==", + "dependencies": { + "consola": "^3.2.3" + } + }, + "node_modules/class-variance-authority": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.1.tgz", + "integrity": "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==", + "dependencies": { + "clsx": "^2.1.1" + }, + "funding": { + "url": "https://polar.sh/cva" + } + }, + "node_modules/client-only": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", + "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==" + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/confbox": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.2.2.tgz", + "integrity": "sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==" + }, + "node_modules/consola": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/consola/-/consola-3.4.2.tgz", + "integrity": "sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==", + "engines": { + "node": "^14.18.0 || >=16.10.0" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/damerau-levenshtein": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", + "dev": true + }, + "node_modules/data-view-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/inspect-js" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/deepmerge-ts": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/deepmerge-ts/-/deepmerge-ts-7.1.5.tgz", + "integrity": "sha512-HOJkrhaYsweh+W+e74Yn7YStZOilkoPb6fycpwNLKzSPtruFs48nYis0zy5yJz1+ktUhHxoRDJ27RQAWLIJVJw==", + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/defu": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz", + "integrity": "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==" + }, + "node_modules/destr": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/destr/-/destr-2.0.5.tgz", + "integrity": "sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==" + }, + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "devOptional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/dotenv": { + "version": "16.6.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.6.1.tgz", + "integrity": "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/effect": { + "version": "3.16.12", + "resolved": "https://registry.npmjs.org/effect/-/effect-3.16.12.tgz", + "integrity": "sha512-N39iBk0K71F9nb442TLbTkjl24FLUzuvx2i1I2RsEAQsdAdUTuUoW0vlfUXgkMTUOnYqKnWcFfqw4hK4Pw27hg==", + "dependencies": { + "@standard-schema/spec": "^1.0.0", + "fast-check": "^3.23.1" + } + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/empathic": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/empathic/-/empathic-2.0.0.tgz", + "integrity": "sha512-i6UzDscO/XfAcNYD75CfICkmfLedpyPDdozrLMmQc5ORaQcdMoc21OnlEylMIqI7U8eniKrPMxxtj8k0vhmJhA==", + "engines": { + "node": ">=14" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.18.3", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.3.tgz", + "integrity": "sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/es-abstract": { + "version": "1.24.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.0.tgz", + "integrity": "sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "es-set-tostringtag": "^2.1.0", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.3.0", + "get-proto": "^1.0.1", + "get-symbol-description": "^1.1.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.2", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.2.1", + "is-set": "^2.0.3", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.1", + "math-intrinsics": "^1.1.0", + "object-inspect": "^1.13.4", + "object-keys": "^1.1.1", + "object.assign": "^4.1.7", + "own-keys": "^1.0.1", + "regexp.prototype.flags": "^1.5.4", + "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", + "safe-regex-test": "^1.1.0", + "set-proto": "^1.0.0", + "stop-iteration-iterator": "^1.1.0", + "string.prototype.trim": "^1.2.10", + "string.prototype.trimend": "^1.0.9", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", + "typed-array-length": "^1.0.7", + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.19" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-iterator-helpers": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz", + "integrity": "sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.6", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.3", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.6", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "iterator.prototype": "^1.1.4", + "safe-array-concat": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", + "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", + "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", + "dev": true, + "dependencies": { + "is-callable": "^1.2.7", + "is-date-object": "^1.0.5", + "is-symbol": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "9.37.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.37.0.tgz", + "integrity": "sha512-XyLmROnACWqSxiGYArdef1fItQd47weqB7iwtfr9JHwRrqIXZdcFMvvEcL9xHCmL0SNsOvF0c42lWyM1U5dgig==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.8.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.21.0", + "@eslint/config-helpers": "^0.4.0", + "@eslint/core": "^0.16.0", + "@eslint/eslintrc": "^3.3.1", + "@eslint/js": "9.37.0", + "@eslint/plugin-kit": "^0.4.0", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.4.0", + "eslint-visitor-keys": "^4.2.1", + "espree": "^10.4.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-config-next": { + "version": "15.5.5", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-15.5.5.tgz", + "integrity": "sha512-f8lRSSelp6cqrYjxEMjJ5En3WV913gTu/w9goYShnIujwDSQlKt4x9MwSDiduE9R5mmFETK44+qlQDxeSA0rUA==", + "dev": true, + "dependencies": { + "@next/eslint-plugin-next": "15.5.5", + "@rushstack/eslint-patch": "^1.10.3", + "@typescript-eslint/eslint-plugin": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", + "@typescript-eslint/parser": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-import-resolver-typescript": "^3.5.2", + "eslint-plugin-import": "^2.31.0", + "eslint-plugin-jsx-a11y": "^6.10.0", + "eslint-plugin-react": "^7.37.0", + "eslint-plugin-react-hooks": "^5.0.0" + }, + "peerDependencies": { + "eslint": "^7.23.0 || ^8.0.0 || ^9.0.0", + "typescript": ">=3.3.1" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "dev": true, + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-import-resolver-typescript": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.10.1.tgz", + "integrity": "sha512-A1rHYb06zjMGAxdLSkN2fXPBwuSaQ0iO5M/hdyS0Ajj1VBaRp0sPD3dn1FhME3c/JluGFbwSxyCfqdSbtQLAHQ==", + "dev": true, + "dependencies": { + "@nolyfill/is-core-module": "1.0.39", + "debug": "^4.4.0", + "get-tsconfig": "^4.10.0", + "is-bun-module": "^2.0.0", + "stable-hash": "^0.0.5", + "tinyglobby": "^0.2.13", + "unrs-resolver": "^1.6.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-import-resolver-typescript" + }, + "peerDependencies": { + "eslint": "*", + "eslint-plugin-import": "*", + "eslint-plugin-import-x": "*" + }, + "peerDependenciesMeta": { + "eslint-plugin-import": { + "optional": true + }, + "eslint-plugin-import-x": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.1.tgz", + "integrity": "sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==", + "dev": true, + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.32.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz", + "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==", + "dev": true, + "dependencies": { + "@rtsao/scc": "^1.1.0", + "array-includes": "^3.1.9", + "array.prototype.findlastindex": "^1.2.6", + "array.prototype.flat": "^1.3.3", + "array.prototype.flatmap": "^1.3.3", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.12.1", + "hasown": "^2.0.2", + "is-core-module": "^2.16.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "object.groupby": "^1.0.3", + "object.values": "^1.2.1", + "semver": "^6.3.1", + "string.prototype.trimend": "^1.0.9", + "tsconfig-paths": "^3.15.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-jsx-a11y": { + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz", + "integrity": "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==", + "dev": true, + "dependencies": { + "aria-query": "^5.3.2", + "array-includes": "^3.1.8", + "array.prototype.flatmap": "^1.3.2", + "ast-types-flow": "^0.0.8", + "axe-core": "^4.10.0", + "axobject-query": "^4.1.0", + "damerau-levenshtein": "^1.0.8", + "emoji-regex": "^9.2.2", + "hasown": "^2.0.2", + "jsx-ast-utils": "^3.3.5", + "language-tags": "^1.0.9", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "safe-regex-test": "^1.0.3", + "string.prototype.includes": "^2.0.1" + }, + "engines": { + "node": ">=4.0" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9" + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.37.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz", + "integrity": "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", + "array.prototype.flatmap": "^1.3.3", + "array.prototype.tosorted": "^1.1.4", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.2.1", + "estraverse": "^5.3.0", + "hasown": "^2.0.2", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.9", + "object.fromentries": "^2.0.8", + "object.values": "^1.2.1", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.5", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.12", + "string.prototype.repeat": "^1.0.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.2.0.tgz", + "integrity": "sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" + } + }, + "node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-plugin-react/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-scope": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", + "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", + "dev": true, + "dependencies": { + "acorn": "^8.15.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/exsolve": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/exsolve/-/exsolve-1.0.7.tgz", + "integrity": "sha512-VO5fQUzZtI6C+vx4w/4BWJpg3s/5l+6pRQEHzFRM8WFi4XffSP1Z+4qi7GbjWbvRQEbdIco5mIMq+zX4rPuLrw==" + }, + "node_modules/fast-check": { + "version": "3.23.2", + "resolved": "https://registry.npmjs.org/fast-check/-/fast-check-3.23.2.tgz", + "integrity": "sha512-h5+1OzzfCC3Ef7VbtKdcv7zsstUQwUDlYpUTvjeUsJAssPgLn7QzbboPtL5ro04Mq0rPOsMzl7q5hIbRs2wD1A==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ], + "dependencies": { + "pure-rand": "^6.1.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", + "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "dev": true, + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "dev": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/flatted": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "dev": true + }, + "node_modules/for-each": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "dev": true, + "dependencies": { + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/framer-motion": { + "version": "12.23.24", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-12.23.24.tgz", + "integrity": "sha512-HMi5HRoRCTou+3fb3h9oTLyJGBxHfW+HnNE25tAXOvVx/IvwMHK0cx7IR4a2ZU6sh3IX1Z+4ts32PcYBOqka8w==", + "dependencies": { + "motion-dom": "^12.23.23", + "motion-utils": "^12.23.6", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "@emotion/is-prop-valid": "*", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@emotion/is-prop-valid": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", + "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "functions-have-names": "^1.2.3", + "hasown": "^2.0.2", + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/generator-function": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/generator-function/-/generator-function-2.0.1.tgz", + "integrity": "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "dev": true, + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-symbol-description": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-tsconfig": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.12.0.tgz", + "integrity": "sha512-LScr2aNr2FbjAjZh2C6X6BxRx1/x+aTDExct/xyq2XKbYOiG5c0aK7pMsSuyc0brz3ibr/lbQiHD9jzt4lccJw==", + "dev": true, + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/giget": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/giget/-/giget-2.0.0.tgz", + "integrity": "sha512-L5bGsVkxJbJgdnwyuheIunkGatUF/zssUoxxjACCseZYAVbaqdh9Tsmmlkl8vYan09H7sbvKt4pS8GqKLBrEzA==", + "dependencies": { + "citty": "^0.1.6", + "consola": "^3.4.0", + "defu": "^6.1.4", + "node-fetch-native": "^1.6.6", + "nypm": "^0.6.0", + "pathe": "^2.0.3" + }, + "bin": { + "giget": "dist/cli.mjs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "node_modules/has-bigints": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", + "dev": true, + "dependencies": { + "dunder-proto": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/internal-slot": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-async-function": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", + "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", + "dev": true, + "dependencies": { + "async-function": "^1.0.0", + "call-bound": "^1.0.3", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", + "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bun-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-bun-module/-/is-bun-module-2.0.0.tgz", + "integrity": "sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ==", + "dev": true, + "dependencies": { + "semver": "^7.7.1" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "dev": true, + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", + "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finalizationregistry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-generator-function": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.2.tgz", + "integrity": "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.4", + "generator-function": "^2.0.0", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "dev": true, + "dependencies": { + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", + "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/iterator.prototype": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz", + "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.4", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "get-proto": "^1.0.0", + "has-symbols": "^1.1.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/jiti": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz", + "integrity": "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==", + "bin": { + "jiti": "lib/jiti-cli.mjs" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/jsx-ast-utils": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/language-subtag-registry": { + "version": "0.3.23", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz", + "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==", + "dev": true + }, + "node_modules/language-tags": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", + "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", + "dev": true, + "dependencies": { + "language-subtag-registry": "^0.3.20" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lightningcss": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.30.1.tgz", + "integrity": "sha512-xi6IyHML+c9+Q3W0S4fCQJOym42pyurFiJUHEcEyHS0CeKzia4yZDEsLlqOFykxOdHpNy0NmvVO31vcSqAxJCg==", + "dev": true, + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-darwin-arm64": "1.30.1", + "lightningcss-darwin-x64": "1.30.1", + "lightningcss-freebsd-x64": "1.30.1", + "lightningcss-linux-arm-gnueabihf": "1.30.1", + "lightningcss-linux-arm64-gnu": "1.30.1", + "lightningcss-linux-arm64-musl": "1.30.1", + "lightningcss-linux-x64-gnu": "1.30.1", + "lightningcss-linux-x64-musl": "1.30.1", + "lightningcss-win32-arm64-msvc": "1.30.1", + "lightningcss-win32-x64-msvc": "1.30.1" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.30.1.tgz", + "integrity": "sha512-c8JK7hyE65X1MHMN+Viq9n11RRC7hgin3HhYKhrMyaXflk5GVplZ60IxyoVtzILeKr+xAJwg6zK6sjTBJ0FKYQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.30.1.tgz", + "integrity": "sha512-k1EvjakfumAQoTfcXUcHQZhSpLlkAuEkdMBsI/ivWw9hL+7FtilQc0Cy3hrx0AAQrVtQAbMI7YjCgYgvn37PzA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.30.1.tgz", + "integrity": "sha512-kmW6UGCGg2PcyUE59K5r0kWfKPAVy4SltVeut+umLCFoJ53RdCUWxcRDzO1eTaxf/7Q2H7LTquFHPL5R+Gjyig==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.30.1.tgz", + "integrity": "sha512-MjxUShl1v8pit+6D/zSPq9S9dQ2NPFSQwGvxBCYaBYLPlCWuPh9/t1MRS8iUaR8i+a6w7aps+B4N0S1TYP/R+Q==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.30.1.tgz", + "integrity": "sha512-gB72maP8rmrKsnKYy8XUuXi/4OctJiuQjcuqWNlJQ6jZiWqtPvqFziskH3hnajfvKB27ynbVCucKSm2rkQp4Bw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.30.1.tgz", + "integrity": "sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.30.1.tgz", + "integrity": "sha512-piWx3z4wN8J8z3+O5kO74+yr6ze/dKmPnI7vLqfSqI8bccaTGY5xiSGVIJBDd5K5BHlvVLpUB3S2YCfelyJ1bw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.30.1.tgz", + "integrity": "sha512-rRomAK7eIkL+tHY0YPxbc5Dra2gXlI63HL+v1Pdi1a3sC+tJTcFrHX+E86sulgAXeI7rSzDYhPSeHHjqFhqfeQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.30.1.tgz", + "integrity": "sha512-mSL4rqPi4iXq5YVqzSsJgMVFENoa4nGTT/GjO2c0Yl9OuQfPsIfncvLrEW6RbbB24WtZ3xP/2CCmI3tNkNV4oA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.30.1.tgz", + "integrity": "sha512-PVqXh48wh4T53F/1CCu8PIPCxLzWyCnn/9T5W1Jpmdy5h9Cwd+0YQS6/LwhHXSafuc61/xg9Lv5OrCby6a++jg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lucide-react": { + "version": "0.545.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.545.0.tgz", + "integrity": "sha512-7r1/yUuflQDSt4f1bpn5ZAocyIxcTyVyBBChSVtBKn5M+392cPmI5YJMWOJKk/HUWGm5wg83chlAZtCcGbEZtw==", + "peerDependencies": { + "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/magic-string": { + "version": "0.30.19", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.19.tgz", + "integrity": "sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/minizlib": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.1.0.tgz", + "integrity": "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==", + "dev": true, + "dependencies": { + "minipass": "^7.1.2" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/motion-dom": { + "version": "12.23.23", + "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-12.23.23.tgz", + "integrity": "sha512-n5yolOs0TQQBRUFImrRfs/+6X4p3Q4n1dUEqt/H58Vx7OW6RF+foWEgmTVDhIWJIMXOuNNL0apKH2S16en9eiA==", + "dependencies": { + "motion-utils": "^12.23.6" + } + }, + "node_modules/motion-utils": { + "version": "12.23.6", + "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-12.23.6.tgz", + "integrity": "sha512-eAWoPgr4eFEOFfg2WjIsMoqJTW6Z8MTUCgn/GZ3VRpClWBdnbjryiA3ZSNLyxCTmCQx4RmYX6jX1iWHbenUPNQ==" + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/napi-postinstall": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-0.3.4.tgz", + "integrity": "sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==", + "dev": true, + "bin": { + "napi-postinstall": "lib/cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/napi-postinstall" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/next": { + "version": "15.5.5", + "resolved": "https://registry.npmjs.org/next/-/next-15.5.5.tgz", + "integrity": "sha512-OQVdBPtpBfq7HxFN0kOVb7rXXOSIkt5lTzDJDGRBcOyVvNRIWFauMqi1gIHd1pszq1542vMOGY0HP4CaiALfkA==", + "dependencies": { + "@next/env": "15.5.5", + "@swc/helpers": "0.5.15", + "caniuse-lite": "^1.0.30001579", + "postcss": "8.4.31", + "styled-jsx": "5.1.6" + }, + "bin": { + "next": "dist/bin/next" + }, + "engines": { + "node": "^18.18.0 || ^19.8.0 || >= 20.0.0" + }, + "optionalDependencies": { + "@next/swc-darwin-arm64": "15.5.5", + "@next/swc-darwin-x64": "15.5.5", + "@next/swc-linux-arm64-gnu": "15.5.5", + "@next/swc-linux-arm64-musl": "15.5.5", + "@next/swc-linux-x64-gnu": "15.5.5", + "@next/swc-linux-x64-musl": "15.5.5", + "@next/swc-win32-arm64-msvc": "15.5.5", + "@next/swc-win32-x64-msvc": "15.5.5", + "sharp": "^0.34.3" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.1.0", + "@playwright/test": "^1.51.1", + "babel-plugin-react-compiler": "*", + "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", + "react-dom": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", + "sass": "^1.3.0" + }, + "peerDependenciesMeta": { + "@opentelemetry/api": { + "optional": true + }, + "@playwright/test": { + "optional": true + }, + "babel-plugin-react-compiler": { + "optional": true + }, + "sass": { + "optional": true + } + } + }, + "node_modules/next/node_modules/postcss": { + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/node-fetch-native": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.7.tgz", + "integrity": "sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==" + }, + "node_modules/nypm": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/nypm/-/nypm-0.6.2.tgz", + "integrity": "sha512-7eM+hpOtrKrBDCh7Ypu2lJ9Z7PNZBdi/8AT3AX8xoCj43BBVHD0hPSTEvMtkMpfs8FCqBGhxB+uToIQimA111g==", + "dependencies": { + "citty": "^0.1.6", + "consola": "^3.4.2", + "pathe": "^2.0.3", + "pkg-types": "^2.3.0", + "tinyexec": "^1.0.1" + }, + "bin": { + "nypm": "dist/cli.mjs" + }, + "engines": { + "node": "^14.16.0 || >=16.10.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.9.tgz", + "integrity": "sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.values": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", + "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ohash": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/ohash/-/ohash-2.0.11.tgz", + "integrity": "sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==" + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/own-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", + "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.6", + "object-keys": "^1.1.1", + "safe-push-apply": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==" + }, + "node_modules/perfect-debounce": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-1.0.0.tgz", + "integrity": "sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pkg-types": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-2.3.0.tgz", + "integrity": "sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==", + "dependencies": { + "confbox": "^0.2.2", + "exsolve": "^1.0.7", + "pathe": "^2.0.3" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prisma": { + "version": "6.17.1", + "resolved": "https://registry.npmjs.org/prisma/-/prisma-6.17.1.tgz", + "integrity": "sha512-ac6h0sM1Tg3zu8NInY+qhP/S9KhENVaw9n1BrGKQVFu05JT5yT5Qqqmb8tMRIE3ZXvVj4xcRA5yfrsy4X7Yy5g==", + "hasInstallScript": true, + "dependencies": { + "@prisma/config": "6.17.1", + "@prisma/engines": "6.17.1" + }, + "bin": { + "prisma": "build/index.js" + }, + "engines": { + "node": ">=18.18" + }, + "peerDependencies": { + "typescript": ">=5.1.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dev": true, + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pure-rand": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", + "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ] + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/rc9": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/rc9/-/rc9-2.1.2.tgz", + "integrity": "sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg==", + "dependencies": { + "defu": "^6.1.4", + "destr": "^2.0.3" + } + }, + "node_modules/react": { + "version": "19.1.0", + "resolved": "https://registry.npmjs.org/react/-/react-19.1.0.tgz", + "integrity": "sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "19.1.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.0.tgz", + "integrity": "sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==", + "dependencies": { + "scheduler": "^0.26.0" + }, + "peerDependencies": { + "react": "^19.1.0" + } + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true + }, + "node_modules/readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", + "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.1", + "which-builtin-type": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve": { + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "dev": true, + "dependencies": { + "is-core-module": "^2.16.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-array-concat": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", + "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "has-symbols": "^1.1.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-push-apply": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", + "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/scheduler": { + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz", + "integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==" + }, + "node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "devOptional": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-proto": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", + "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", + "dev": true, + "dependencies": { + "dunder-proto": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/sharp": { + "version": "0.34.4", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.4.tgz", + "integrity": "sha512-FUH39xp3SBPnxWvd5iib1X8XY7J0K0X7d93sie9CJg2PO8/7gmg89Nve6OjItK53/MlAushNNxteBYfM6DEuoA==", + "hasInstallScript": true, + "optional": true, + "dependencies": { + "@img/colour": "^1.0.0", + "detect-libc": "^2.1.0", + "semver": "^7.7.2" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-darwin-arm64": "0.34.4", + "@img/sharp-darwin-x64": "0.34.4", + "@img/sharp-libvips-darwin-arm64": "1.2.3", + "@img/sharp-libvips-darwin-x64": "1.2.3", + "@img/sharp-libvips-linux-arm": "1.2.3", + "@img/sharp-libvips-linux-arm64": "1.2.3", + "@img/sharp-libvips-linux-ppc64": "1.2.3", + "@img/sharp-libvips-linux-s390x": "1.2.3", + "@img/sharp-libvips-linux-x64": "1.2.3", + "@img/sharp-libvips-linuxmusl-arm64": "1.2.3", + "@img/sharp-libvips-linuxmusl-x64": "1.2.3", + "@img/sharp-linux-arm": "0.34.4", + "@img/sharp-linux-arm64": "0.34.4", + "@img/sharp-linux-ppc64": "0.34.4", + "@img/sharp-linux-s390x": "0.34.4", + "@img/sharp-linux-x64": "0.34.4", + "@img/sharp-linuxmusl-arm64": "0.34.4", + "@img/sharp-linuxmusl-x64": "0.34.4", + "@img/sharp-wasm32": "0.34.4", + "@img/sharp-win32-arm64": "0.34.4", + "@img/sharp-win32-ia32": "0.34.4", + "@img/sharp-win32-x64": "0.34.4" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stable-hash": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/stable-hash/-/stable-hash-0.0.5.tgz", + "integrity": "sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==", + "dev": true + }, + "node_modules/stop-iteration-iterator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", + "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "internal-slot": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string.prototype.includes": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz", + "integrity": "sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz", + "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.6", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "regexp.prototype.flags": "^1.5.3", + "set-function-name": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.repeat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", + "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", + "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-data-property": "^1.1.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-object-atoms": "^1.0.0", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", + "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/styled-jsx": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.6.tgz", + "integrity": "sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==", + "dependencies": { + "client-only": "0.0.1" + }, + "engines": { + "node": ">= 12.0.0" + }, + "peerDependencies": { + "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tailwind-merge": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.3.1.tgz", + "integrity": "sha512-gBXpgUm/3rp1lMZZrM/w7D8GKqshif0zAymAhbCyIt8KMe+0v9DQ7cdYLR4FHH/cKpdTXb+A/tKKU3eolfsI+g==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/dcastil" + } + }, + "node_modules/tailwindcss": { + "version": "4.1.14", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.14.tgz", + "integrity": "sha512-b7pCxjGO98LnxVkKjaZSDeNuljC4ueKUddjENJOADtubtdo8llTaJy7HwBMeLNSSo2N5QIAgklslK1+Ir8r6CA==", + "dev": true + }, + "node_modules/tapable": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz", + "integrity": "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/tar": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.1.tgz", + "integrity": "sha512-nlGpxf+hv0v7GkWBK2V9spgactGOp0qvfWRxUMjqHyzrt3SgwE48DIv/FhqPHJYLHpgW1opq3nERbz5Anq7n1g==", + "dev": true, + "dependencies": { + "@isaacs/fs-minipass": "^4.0.0", + "chownr": "^3.0.0", + "minipass": "^7.1.2", + "minizlib": "^3.1.0", + "yallist": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/tinyexec": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.1.tgz", + "integrity": "sha512-5uC6DDlmeqiOwCPmK9jMSdOuZTh8bU39Ys6yidB+UTt5hfZUPGAypSgFRiEp+jbi9qH40BLDvy85jIU88wKSqw==" + }, + "node_modules/tinyglobby": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "dev": true, + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyglobby/node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-api-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz", + "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==", + "dev": true, + "engines": { + "node": ">=18.12" + }, + "peerDependencies": { + "typescript": ">=4.8.4" + } + }, + "node_modules/tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "dev": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" + }, + "node_modules/tw-animate-css": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/tw-animate-css/-/tw-animate-css-1.4.0.tgz", + "integrity": "sha512-7bziOlRqH0hJx80h/3mbicLW7o8qLsH5+RaLR2t+OHM3D0JlWGODQKQ4cxbK7WlvmUxpcj6Kgu6EKqjrGFe3QQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/Wombosvideo" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", + "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", + "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.15", + "reflect.getprototypeof": "^1.0.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", + "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0", + "reflect.getprototypeof": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typescript": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "devOptional": true, + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/unbox-primitive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", + "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.3", + "has-bigints": "^1.0.2", + "has-symbols": "^1.1.0", + "which-boxed-primitive": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unrs-resolver": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.11.1.tgz", + "integrity": "sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "napi-postinstall": "^0.3.0" + }, + "funding": { + "url": "https://opencollective.com/unrs-resolver" + }, + "optionalDependencies": { + "@unrs/resolver-binding-android-arm-eabi": "1.11.1", + "@unrs/resolver-binding-android-arm64": "1.11.1", + "@unrs/resolver-binding-darwin-arm64": "1.11.1", + "@unrs/resolver-binding-darwin-x64": "1.11.1", + "@unrs/resolver-binding-freebsd-x64": "1.11.1", + "@unrs/resolver-binding-linux-arm-gnueabihf": "1.11.1", + "@unrs/resolver-binding-linux-arm-musleabihf": "1.11.1", + "@unrs/resolver-binding-linux-arm64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-arm64-musl": "1.11.1", + "@unrs/resolver-binding-linux-ppc64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-riscv64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-riscv64-musl": "1.11.1", + "@unrs/resolver-binding-linux-s390x-gnu": "1.11.1", + "@unrs/resolver-binding-linux-x64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-x64-musl": "1.11.1", + "@unrs/resolver-binding-wasm32-wasi": "1.11.1", + "@unrs/resolver-binding-win32-arm64-msvc": "1.11.1", + "@unrs/resolver-binding-win32-ia32-msvc": "1.11.1", + "@unrs/resolver-binding-win32-x64-msvc": "1.11.1" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", + "dev": true, + "dependencies": { + "is-bigint": "^1.1.0", + "is-boolean-object": "^1.2.1", + "is-number-object": "^1.1.1", + "is-string": "^1.1.1", + "is-symbol": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", + "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.2", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.1.0", + "is-finalizationregistry": "^1.1.0", + "is-generator-function": "^1.0.10", + "is-regex": "^1.2.1", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.1.0", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dev": true, + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.19", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz", + "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "for-each": "^0.3.5", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/yallist": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", + "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", + "dev": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/apps/CortensorLabs/cortensor-dashboard/package.json b/apps/CortensorLabs/cortensor-dashboard/package.json new file mode 100644 index 0000000..552ef7d --- /dev/null +++ b/apps/CortensorLabs/cortensor-dashboard/package.json @@ -0,0 +1,32 @@ +{ + "name": "cortensor-dashboard", + "version": "0.1.0", + "private": true, + "scripts": { + "dev": "next dev", + "build": "next build", + "start": "next start", + "lint": "eslint" + }, + "dependencies": { + "@prisma/client": "^6.17.1", + "@radix-ui/react-slot": "^1.2.3", + "class-variance-authority": "^0.7.1", + "clsx": "^2.1.1", + "framer-motion": "^12.23.24", + "lucide-react": "^0.545.0", + "next": "15.5.5", + "prisma": "^6.17.1", + "react": "19.1.0", + "react-dom": "19.1.0", + "tailwind-merge": "^3.3.1" + }, + "devDependencies": { + "@eslint/eslintrc": "^3", + "@tailwindcss/postcss": "^4", + "eslint": "^9", + "eslint-config-next": "15.5.5", + "tailwindcss": "^4", + "tw-animate-css": "^1.4.0" + } +} diff --git a/apps/CortensorLabs/cortensor-dashboard/postcss.config.mjs b/apps/CortensorLabs/cortensor-dashboard/postcss.config.mjs new file mode 100644 index 0000000..c7bcb4b --- /dev/null +++ b/apps/CortensorLabs/cortensor-dashboard/postcss.config.mjs @@ -0,0 +1,5 @@ +const config = { + plugins: ["@tailwindcss/postcss"], +}; + +export default config; diff --git a/apps/CortensorLabs/cortensor-dashboard/prisma/migrations/20251016151800_/migration.sql b/apps/CortensorLabs/cortensor-dashboard/prisma/migrations/20251016151800_/migration.sql new file mode 100644 index 0000000..b2e6406 --- /dev/null +++ b/apps/CortensorLabs/cortensor-dashboard/prisma/migrations/20251016151800_/migration.sql @@ -0,0 +1,11 @@ +-- CreateTable +CREATE TABLE "ChatHistory" ( + "id" SERIAL NOT NULL, + "user" TEXT NOT NULL, + "agent" TEXT, + "role" TEXT NOT NULL, + "message" TEXT NOT NULL, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + + CONSTRAINT "ChatHistory_pkey" PRIMARY KEY ("id") +); diff --git a/apps/CortensorLabs/cortensor-dashboard/prisma/migrations/migration_lock.toml b/apps/CortensorLabs/cortensor-dashboard/prisma/migrations/migration_lock.toml new file mode 100644 index 0000000..044d57c --- /dev/null +++ b/apps/CortensorLabs/cortensor-dashboard/prisma/migrations/migration_lock.toml @@ -0,0 +1,3 @@ +# Please do not edit this file manually +# It should be added in your version-control system (e.g., Git) +provider = "postgresql" diff --git a/apps/CortensorLabs/cortensor-dashboard/prisma/schema.prisma b/apps/CortensorLabs/cortensor-dashboard/prisma/schema.prisma new file mode 100644 index 0000000..7eeced9 --- /dev/null +++ b/apps/CortensorLabs/cortensor-dashboard/prisma/schema.prisma @@ -0,0 +1,22 @@ +// schema.prisma + +generator client { + provider = "prisma-client-js" +} + +datasource db { + provider = "postgresql" + url = env("DATABASE_URL") +} + +model ChatHistory { + id Int @id @default(autoincrement()) + sessionId String // <-- [DIUBAH] Hapus @index dari sini + agent String? + role String + message String + createdAt DateTime @default(now()) + + // [DIUBAH] Tambahkan @@index di level model + @@index([sessionId]) +} \ No newline at end of file diff --git a/apps/CortensorLabs/cortensor-dashboard/public/file.svg b/apps/CortensorLabs/cortensor-dashboard/public/file.svg new file mode 100644 index 0000000..004145c --- /dev/null +++ b/apps/CortensorLabs/cortensor-dashboard/public/file.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/CortensorLabs/cortensor-dashboard/public/globe.svg b/apps/CortensorLabs/cortensor-dashboard/public/globe.svg new file mode 100644 index 0000000..567f17b --- /dev/null +++ b/apps/CortensorLabs/cortensor-dashboard/public/globe.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/CortensorLabs/cortensor-dashboard/public/next.svg b/apps/CortensorLabs/cortensor-dashboard/public/next.svg new file mode 100644 index 0000000..5174b28 --- /dev/null +++ b/apps/CortensorLabs/cortensor-dashboard/public/next.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/CortensorLabs/cortensor-dashboard/public/vercel.svg b/apps/CortensorLabs/cortensor-dashboard/public/vercel.svg new file mode 100644 index 0000000..7705396 --- /dev/null +++ b/apps/CortensorLabs/cortensor-dashboard/public/vercel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/CortensorLabs/cortensor-dashboard/public/window.svg b/apps/CortensorLabs/cortensor-dashboard/public/window.svg new file mode 100644 index 0000000..b2b2a44 --- /dev/null +++ b/apps/CortensorLabs/cortensor-dashboard/public/window.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/CortensorLabs/cortensor-dashboard/src/agents/agentEngine.js b/apps/CortensorLabs/cortensor-dashboard/src/agents/agentEngine.js new file mode 100644 index 0000000..bb2a98b --- /dev/null +++ b/apps/CortensorLabs/cortensor-dashboard/src/agents/agentEngine.js @@ -0,0 +1,140 @@ +export async function runAgent( + prompt, + sessionId, + agentConfig, + metadata, + onThinking, + onDone +) { + if (!prompt?.trim()) return; + if (!sessionId) return; + + const { agentName, systemPrompt } = agentConfig; + + try { + let formattedHistory = ""; + try { + const historyRes = await fetch(`/api/chat?sessionId=${sessionId}`); + if (historyRes.ok) { + const history = await historyRes.json(); + + const agentHistory = history.filter( + (msg) => msg.agent === agentName + ); + + const recentHistory = agentHistory.slice(-10); + + formattedHistory = recentHistory + .map((msg) => { + const roleName = msg.role === "ai" ? "AI" : "User"; + return `${roleName}: ${msg.message}`; + }) + .join("\n"); + } + } catch (e) { + console.error("Failed to retrieve history:", e); + } + + await fetch("/api/chat", { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify({ + sessionId, + agent: agentName, + role: "user", + message: prompt, + }), + }); + + if (onThinking) onThinking(); + + const finalPrompt = `${systemPrompt} + +${formattedHistory} +User: ${prompt} +AI:`; + + await fetch(process.env.NEXT_PUBLIC_API_URL, { + method: "POST", + headers: { + "Content-Type": "application/json", + Authorization: `Bearer ${process.env.NEXT_PUBLIC_API_KEY}`, + }, + body: JSON.stringify({ + session_id: process.env.NEXT_PUBLIC_SESSION_ID, + prompt: finalPrompt, + stream: false, + timeout: 60, + }), + }); + + let attempts = 0; + while (attempts < 30) { + attempts++; + const res = await fetch( + `${process.env.NEXT_PUBLIC_API_TASK}/${process.env.NEXT_PUBLIC_SESSION_ID}`, + { + headers: { + Authorization: `Bearer ${process.env.NEXT_PUBLIC_API_KEY}`, + }, + } + ); + const data = await res.json(); + + if (data?.tasks?.length > 0) { + const last = data.tasks[data.tasks.length - 1]; + const valid = last.results.find((r) => r?.trim()); + + if (valid) { + let result = valid; + const thinkTagIndex = result.lastIndexOf(""); + const lastAiIndex = result.lastIndexOf("AI:"); + const splitIndex = Math.max(thinkTagIndex, lastAiIndex); + if (splitIndex > -1) { + let tagLength = splitIndex === thinkTagIndex ? 9 : 3; + result = result.substring(splitIndex + tagLength); + } + + const lastTagIndex = result.lastIndexOf("<"); + const buffer = 25; + if (lastTagIndex > -1 && lastTagIndex > result.length - buffer) { + result = result.substring(0, lastTagIndex); + } + result = result.replaceAll("<|end of sentence|>", ""); + result = result.replaceAll("<|end of sentence|>", ""); + result = result.replace(/<[^>]*end of sentence[^>]*>/gi, ""); + result = result.replace(/<\/s>/gi, ""); + result = result.replace(/<\/think>/gi, ""); + + let finalResult = result.trim(); + finalResult = finalResult.replace(/^[a-zA-Z0-9_-]+:\s*/, "").trim(); + + const messageData = { + content: finalResult, + metadata: + agentName === "🔄 Format Converter" && metadata ? metadata : null, + }; + + await fetch("/api/chat", { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify({ + sessionId, + agent: agentName, + role: "ai", + message: JSON.stringify(messageData), + }), + }); + + if (onDone) onDone(finalResult); + return; + } + } + await new Promise((r) => setTimeout(r, 2000)); + } + if (onDone) onDone("⚠️ Timeout."); + } catch (error) { + console.error(`[Error di ${agentName}]`, error); + if (onDone) onDone(`⚠️ Error: ${error.message}`); + } +} \ No newline at end of file diff --git a/apps/CortensorLabs/cortensor-dashboard/src/agents/businessPlanner.js b/apps/CortensorLabs/cortensor-dashboard/src/agents/businessPlanner.js new file mode 100644 index 0000000..687c222 --- /dev/null +++ b/apps/CortensorLabs/cortensor-dashboard/src/agents/businessPlanner.js @@ -0,0 +1,31 @@ +import { runAgent } from './agentEngine.js'; + +const businessPlannerConfig = { + agentName: "💼 Business Planner", + systemPrompt: `You are the "Business Planner," a friendly, supportive, and expert AI business advisor. +Your job is to guide users through the creation of in-depth business plans, step by step. + +[VERY IMPORTANT RULE] +1. IDENTIFY THE MAIN IDEA: From the user's FIRST question, identify their main business idea. +2. KEY TOPIC: You MUST stay focused on that main business idea. +3. IGNORE DISTRACTIONS: If the user asks about other topics, answer briefly, THEN IMMEDIATELY RETURN to the main business topic. +4. ANSWER FORMAT: +- DO NOT USE MARKDOWN (such as '###', '*', or '-'). +- Use a friendly, supportive, conversational tone, as if you were having a discussion, not a rigid list of points. +- Start each step with a flowing heading. (Example: "Okay, great idea! For Step 1, let's first dissect what the problem is...") +5. ENDING ENCOURAGEMENT: Always end each step with 1-2 positive summary sentences. +6. KEYWORD INPUT: If the user only types keywords (eg: "Watch", "Milk coffee business"), CONSIDER it as the main business idea and immediately start Step 1. + +[5 STEPS TO AN IN-DEPTH BUSINESS PLAN] +(Use this as your internal guide) +1. Core Product: (Problem, Solution, Unique Advantage) +2. Market Analysis: (Target Audience, Market Size & Trends, Competitor Analysis) +3. Business Model: (Revenue Sources, Pricing Strategy, Distribution Channels) +4. Investor Strategy: (Funding Needs, Financial Projections, Validation & Traction) +5. Executive Summary: (Mission, Opportunity, Demand) +` +}; + +export function businessPlanner(prompt, sessionId, metadata, onThinking, onDone) { + return runAgent(prompt, sessionId, businessPlannerConfig, metadata, onThinking, onDone); +} \ No newline at end of file diff --git a/apps/CortensorLabs/cortensor-dashboard/src/agents/formatConverter.js b/apps/CortensorLabs/cortensor-dashboard/src/agents/formatConverter.js new file mode 100644 index 0000000..74a9785 --- /dev/null +++ b/apps/CortensorLabs/cortensor-dashboard/src/agents/formatConverter.js @@ -0,0 +1,29 @@ +import { runAgent } from "./agentEngine.js"; + +const formatConverterConfig = { + agentName: "🔄 Format Converter", + systemPrompt: `You are the "Format Converter." Users will provide the raw data and the desired format (such as "to json," "to csv," or "to html"). +Your job is to read the data and convert it to the requested format. + +[VERY IMPORTANT RULE] +DO NOT add any words, explanations, or dialogue. +Your output must ONLY contain formatted text.`, +}; + +export function formatConverter( + prompt, + sessionId, + metadata, + onThinking, + onDone +) { + + return runAgent( + prompt, + sessionId, + formatConverterConfig, + metadata, + onThinking, + onDone + ); +} \ No newline at end of file diff --git a/apps/CortensorLabs/cortensor-dashboard/src/agents/generalAssistant.js b/apps/CortensorLabs/cortensor-dashboard/src/agents/generalAssistant.js new file mode 100644 index 0000000..f67ade9 --- /dev/null +++ b/apps/CortensorLabs/cortensor-dashboard/src/agents/generalAssistant.js @@ -0,0 +1,13 @@ +import { runAgent } from './agentEngine.js'; + +const generalAssistantConfig = { + agentName: "💬 General Assistant", + systemPrompt: `This is a conversation between a "User" and an "AI." +The AI ​​is an assistant named "💬 General Assistant." +The AI ​​must answer the User's questions based on the conversation history. +The AI ​​must answer concisely and to the point, and not ask follow-up questions.` +}; + +export function generalAssistant(prompt, sessionId, metadata, onThinking, onDone) { + return runAgent(prompt, sessionId, generalAssistantConfig, metadata, onThinking, onDone); +} \ No newline at end of file diff --git a/apps/CortensorLabs/cortensor-dashboard/src/agents/index.js b/apps/CortensorLabs/cortensor-dashboard/src/agents/index.js new file mode 100644 index 0000000..e54ba89 --- /dev/null +++ b/apps/CortensorLabs/cortensor-dashboard/src/agents/index.js @@ -0,0 +1,13 @@ +import { generalAssistant } from "./generalAssistant"; +import { businessPlanner } from "./businessPlanner"; +import { textSummarizer } from "./textSummarizer"; +import { insightAnalyzer } from "./insightAnalyzer"; +import { formatConverter } from "./formatConverter"; + +export const agentFunctions = { + "💬 General Assistant": generalAssistant, + "💼 Business Planner": businessPlanner, + "📝 Text Summarizer": textSummarizer, + "📊 Insight Analyzer": insightAnalyzer, + "🔄 Format Converter": formatConverter +}; diff --git a/apps/CortensorLabs/cortensor-dashboard/src/agents/insightAnalyzer.js b/apps/CortensorLabs/cortensor-dashboard/src/agents/insightAnalyzer.js new file mode 100644 index 0000000..51ce54b --- /dev/null +++ b/apps/CortensorLabs/cortensor-dashboard/src/agents/insightAnalyzer.js @@ -0,0 +1,22 @@ +import { runAgent } from './agentEngine.js'; + +const insightAnalyzerConfig = { + agentName: "📊 Insight Analyzer", + systemPrompt: `You are an "Insight Analyzer," a smart and practical AI data analyst. +Your job is to analyze data, reports, or text provided by users. + +[YOUR ANALYSIS PROCESS] +1. Identify Data: Understand the data or text provided by the user. +2. Look for Patterns: Analyze to find the most important patterns, trends, or anomalies. +3. Provide Insight: Deliver clear, actionable conclusions and recommendations. + +[IMPORTANT RULES] +- Focus on the most impactful insights. +- Make your answers easy to understand, even for someone who isn't a statistician. +- If the user only provides data (such as pasting a table or text), begin your analysis immediately. +` +}; + +export function insightAnalyzer(prompt, sessionId, metadata, onThinking, onDone) { + return runAgent(prompt, sessionId, insightAnalyzerConfig, metadata, onThinking, onDone); +} \ No newline at end of file diff --git a/apps/CortensorLabs/cortensor-dashboard/src/agents/textSummarizer.js b/apps/CortensorLabs/cortensor-dashboard/src/agents/textSummarizer.js new file mode 100644 index 0000000..a6b1326 --- /dev/null +++ b/apps/CortensorLabs/cortensor-dashboard/src/agents/textSummarizer.js @@ -0,0 +1,10 @@ +import { runAgent } from './agentEngine.js'; + +const textSummarizerConfig = { + agentName: "📝 Text Summarizer", + systemPrompt: `You are the "Text Summarizer." Users will provide a long text. Your task is to read the text and summarize it into five key points.` +}; + +export function textSummarizer(prompt, sessionId, metadata, onThinking, onDone) { + return runAgent(prompt, sessionId, textSummarizerConfig, metadata, onThinking, onDone); +} \ No newline at end of file diff --git a/apps/CortensorLabs/cortensor-dashboard/src/app/api/chat/route.js b/apps/CortensorLabs/cortensor-dashboard/src/app/api/chat/route.js new file mode 100644 index 0000000..b506336 --- /dev/null +++ b/apps/CortensorLabs/cortensor-dashboard/src/app/api/chat/route.js @@ -0,0 +1,52 @@ +import { NextResponse } from "next/server"; +import { PrismaClient } from "@prisma/client"; + +const prisma = new PrismaClient(); + +export async function POST(req) { + try { + const body = await req.json(); + const { sessionId, agent, role, message } = body; + if (!sessionId || !role || !message) { + console.warn("⚠️ Missing fields:", { sessionId, role, message }); + return NextResponse.json( + { error: "Missing required fields (sessionId, role, message)" }, + { status: 400 } + ); + } + + const saved = await prisma.chatHistory.create({ + data: { + sessionId, + agent: agent || "generalAssistant", + role, + message, + }, + }); + + return NextResponse.json(saved); + } catch (error) { + console.error("❌ Error saving chat:", error); + return NextResponse.json({ error: error.message }, { status: 500 }); + } +} + +export async function GET(req) { + const { searchParams } = new URL(req.url); + const sessionId = searchParams.get("sessionId"); + + if (!sessionId) + return NextResponse.json({ error: "sessionId required" }, { status: 400 }); + + try { + const chats = await prisma.chatHistory.findMany({ + where: { sessionId }, + orderBy: { createdAt: "asc" }, + }); + + return NextResponse.json(chats); + } catch (error) { + console.error("❌ Error fetching chat:", error); + return NextResponse.json({ error: error.message }, { status: 500 }); + } +} \ No newline at end of file diff --git a/apps/CortensorLabs/cortensor-dashboard/src/app/favicon.ico b/apps/CortensorLabs/cortensor-dashboard/src/app/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..718d6fea4835ec2d246af9800eddb7ffb276240c GIT binary patch literal 25931 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 LrJugUA?W`A8`#=m literal 0 HcmV?d00001 diff --git a/apps/CortensorLabs/cortensor-dashboard/src/app/globals.css b/apps/CortensorLabs/cortensor-dashboard/src/app/globals.css new file mode 100644 index 0000000..dc98be7 --- /dev/null +++ b/apps/CortensorLabs/cortensor-dashboard/src/app/globals.css @@ -0,0 +1,122 @@ +@import "tailwindcss"; +@import "tw-animate-css"; + +@custom-variant dark (&:is(.dark *)); + +@theme inline { + --color-background: var(--background); + --color-foreground: var(--foreground); + --font-sans: var(--font-geist-sans); + --font-mono: var(--font-geist-mono); + --color-sidebar-ring: var(--sidebar-ring); + --color-sidebar-border: var(--sidebar-border); + --color-sidebar-accent-foreground: var(--sidebar-accent-foreground); + --color-sidebar-accent: var(--sidebar-accent); + --color-sidebar-primary-foreground: var(--sidebar-primary-foreground); + --color-sidebar-primary: var(--sidebar-primary); + --color-sidebar-foreground: var(--sidebar-foreground); + --color-sidebar: var(--sidebar); + --color-chart-5: var(--chart-5); + --color-chart-4: var(--chart-4); + --color-chart-3: var(--chart-3); + --color-chart-2: var(--chart-2); + --color-chart-1: var(--chart-1); + --color-ring: var(--ring); + --color-input: var(--input); + --color-border: var(--border); + --color-destructive: var(--destructive); + --color-accent-foreground: var(--accent-foreground); + --color-accent: var(--accent); + --color-muted-foreground: var(--muted-foreground); + --color-muted: var(--muted); + --color-secondary-foreground: var(--secondary-foreground); + --color-secondary: var(--secondary); + --color-primary-foreground: var(--primary-foreground); + --color-primary: var(--primary); + --color-popover-foreground: var(--popover-foreground); + --color-popover: var(--popover); + --color-card-foreground: var(--card-foreground); + --color-card: var(--card); + --radius-sm: calc(var(--radius) - 4px); + --radius-md: calc(var(--radius) - 2px); + --radius-lg: var(--radius); + --radius-xl: calc(var(--radius) + 4px); +} + +:root { + --radius: 0.625rem; + --background: oklch(1 0 0); + --foreground: oklch(0.145 0 0); + --card: oklch(1 0 0); + --card-foreground: oklch(0.145 0 0); + --popover: oklch(1 0 0); + --popover-foreground: oklch(0.145 0 0); + --primary: oklch(0.205 0 0); + --primary-foreground: oklch(0.985 0 0); + --secondary: oklch(0.97 0 0); + --secondary-foreground: oklch(0.205 0 0); + --muted: oklch(0.97 0 0); + --muted-foreground: oklch(0.556 0 0); + --accent: oklch(0.97 0 0); + --accent-foreground: oklch(0.205 0 0); + --destructive: oklch(0.577 0.245 27.325); + --border: oklch(0.922 0 0); + --input: oklch(0.922 0 0); + --ring: oklch(0.708 0 0); + --chart-1: oklch(0.646 0.222 41.116); + --chart-2: oklch(0.6 0.118 184.704); + --chart-3: oklch(0.398 0.07 227.392); + --chart-4: oklch(0.828 0.189 84.429); + --chart-5: oklch(0.769 0.188 70.08); + --sidebar: oklch(0.985 0 0); + --sidebar-foreground: oklch(0.145 0 0); + --sidebar-primary: oklch(0.205 0 0); + --sidebar-primary-foreground: oklch(0.985 0 0); + --sidebar-accent: oklch(0.97 0 0); + --sidebar-accent-foreground: oklch(0.205 0 0); + --sidebar-border: oklch(0.922 0 0); + --sidebar-ring: oklch(0.708 0 0); +} + +.dark { + --background: oklch(0.145 0 0); + --foreground: oklch(0.985 0 0); + --card: oklch(0.205 0 0); + --card-foreground: oklch(0.985 0 0); + --popover: oklch(0.205 0 0); + --popover-foreground: oklch(0.985 0 0); + --primary: oklch(0.922 0 0); + --primary-foreground: oklch(0.205 0 0); + --secondary: oklch(0.269 0 0); + --secondary-foreground: oklch(0.985 0 0); + --muted: oklch(0.269 0 0); + --muted-foreground: oklch(0.708 0 0); + --accent: oklch(0.269 0 0); + --accent-foreground: oklch(0.985 0 0); + --destructive: oklch(0.704 0.191 22.216); + --border: oklch(1 0 0 / 10%); + --input: oklch(1 0 0 / 15%); + --ring: oklch(0.556 0 0); + --chart-1: oklch(0.488 0.243 264.376); + --chart-2: oklch(0.696 0.17 162.48); + --chart-3: oklch(0.769 0.188 70.08); + --chart-4: oklch(0.627 0.265 303.9); + --chart-5: oklch(0.645 0.246 16.439); + --sidebar: oklch(0.205 0 0); + --sidebar-foreground: oklch(0.985 0 0); + --sidebar-primary: oklch(0.488 0.243 264.376); + --sidebar-primary-foreground: oklch(0.985 0 0); + --sidebar-accent: oklch(0.269 0 0); + --sidebar-accent-foreground: oklch(0.985 0 0); + --sidebar-border: oklch(1 0 0 / 10%); + --sidebar-ring: oklch(0.556 0 0); +} + +@layer base { + * { + @apply border-border outline-ring/50; + } + body { + @apply bg-background text-foreground; + } +} diff --git a/apps/CortensorLabs/cortensor-dashboard/src/app/layout.js b/apps/CortensorLabs/cortensor-dashboard/src/app/layout.js new file mode 100644 index 0000000..c132b62 --- /dev/null +++ b/apps/CortensorLabs/cortensor-dashboard/src/app/layout.js @@ -0,0 +1,29 @@ +import { Geist, Geist_Mono } from "next/font/google"; +import "./globals.css"; + +const geistSans = Geist({ + variable: "--font-geist-sans", + subsets: ["latin"], +}); + +const geistMono = Geist_Mono({ + variable: "--font-geist-mono", + subsets: ["latin"], +}); + +export const metadata = { + title: "CortensorLabs", + description: "CortensorLabs", +}; + +export default function RootLayout({ children }) { + return ( + + + {children} + + + ); +} diff --git a/apps/CortensorLabs/cortensor-dashboard/src/app/page.jsx b/apps/CortensorLabs/cortensor-dashboard/src/app/page.jsx new file mode 100644 index 0000000..c58e5f2 --- /dev/null +++ b/apps/CortensorLabs/cortensor-dashboard/src/app/page.jsx @@ -0,0 +1,169 @@ +"use client"; +import { useState, useEffect } from "react"; +import { AnimatePresence } from "framer-motion"; +import { agents, agentDetails } from "@/data/agentData"; +import LoadingScreen from "@/components/LoadingScreen"; +import PopupSession from "@/components/PopupSession"; +import AgentSidebar from "@/components/AgentSidebar"; +import AgentDetailCard from "@/components/AgentDetailCard"; +import ChatSection from "@/components/ChatSection"; +import { Copy, Check } from "lucide-react"; + +export default function Page() { + const [initialLoading, setInitialLoading] = useState(true); + const [showPopup, setShowPopup] = useState(true); + const [popupLoading, setPopupLoading] = useState(false); + const [restoreInput, setRestoreInput] = useState(""); + const [showRestoreInput, setShowRestoreInput] = useState(false); + const [sessionId, setSessionId] = useState(null); + const [activeAgent, setActiveAgent] = useState(agents[0]); + const [loading, setLoading] = useState(false); + const [question, setQuestion] = useState(""); + const [isAsking, setIsAsking] = useState(false); + const [copied, setCopied] = useState(false); + + useEffect(() => { + const timer = setTimeout(() => setInitialLoading(false), 5000); + return () => clearTimeout(timer); + }, []); + + const generateSession = () => { + setPopupLoading(true); + setTimeout(() => { + const id = Math.random().toString(36).substr(2, 9).toUpperCase(); + setSessionId(id); + setPopupLoading(false); + setShowPopup(false); + }, 1500); + }; + + const restoreSession = () => { + if (restoreInput.trim() === "") { + setShowRestoreInput(true); + return; + } + setPopupLoading(true); + setTimeout(() => { + setSessionId(restoreInput.trim().toUpperCase()); + setPopupLoading(false); + setShowPopup(false); + setShowRestoreInput(false); + }, 1500); + }; + + const handleAgentClick = (agent) => { + if (activeAgent === agent) return; + setLoading(true); + setTimeout(() => { + setActiveAgent(agent); + setLoading(false); + }, 1000); + }; + + const handleCopy = () => { + if (sessionId) { + navigator.clipboard.writeText(sessionId); + setCopied(true); + setTimeout(() => setCopied(false), 2000); + } + }; + + const activeDetail = agentDetails[activeAgent]; + + return ( + + ); +} diff --git a/apps/CortensorLabs/cortensor-dashboard/src/components/AgentDetailCard.jsx b/apps/CortensorLabs/cortensor-dashboard/src/components/AgentDetailCard.jsx new file mode 100644 index 0000000..dc03a42 --- /dev/null +++ b/apps/CortensorLabs/cortensor-dashboard/src/components/AgentDetailCard.jsx @@ -0,0 +1,82 @@ +"use client"; +import { useState } from "react"; +import { motion, AnimatePresence } from "framer-motion"; +import { Card } from "@/components/ui/card"; +import { Minus, Square } from "lucide-react"; +import useWindowWidth from "@/hooks/useWindowWidth"; +import AgentDetailCardMobile from "./AgentDetailCardMobile"; + +function AgentDetailCardDesktop({ activeAgent, activeDetail }) { + const [isMinimized, setIsMinimized] = useState(false); + + return ( + +
+ {!isMinimized && ( +

+ Agentic AI Guide : +

+ )} + +
+ + +
+
+ + {!isMinimized && ( +
+ + +

{activeDetail.title}

+

{activeDetail.desc}

+

Use it for:

+

{activeDetail.use}

+

Example prompts:

+
    + {activeDetail.examples.map((ex, idx) => ( +
  • “{ex}”
  • + ))} +
+
+
+
+ )} +
+ ); +} + +export default function AgentDetailCard(props) { + const width = useWindowWidth(); + const isMobile = width < 1024; + + if (isMobile) { + return ; + } + return ; +} \ No newline at end of file diff --git a/apps/CortensorLabs/cortensor-dashboard/src/components/AgentDetailCardMobile.jsx b/apps/CortensorLabs/cortensor-dashboard/src/components/AgentDetailCardMobile.jsx new file mode 100644 index 0000000..c9b519d --- /dev/null +++ b/apps/CortensorLabs/cortensor-dashboard/src/components/AgentDetailCardMobile.jsx @@ -0,0 +1,74 @@ +"use client"; +import { useState } from 'react'; +import { motion, AnimatePresence } from "framer-motion"; +import { Info, X } from 'lucide-react'; + +export default function AgentDetailCardMobile({ activeAgent, activeDetail }) { + const [isOpen, setIsOpen] = useState(false); + const popupVariants = { + hidden: { opacity: 0, scale: 0.9, y: -50 }, + visible: { opacity: 1, scale: 1, y: 0 }, + }; + + return ( + <> + {!isOpen && ( + setIsOpen(true)} + className="fixed center-6 right-6 z-40 p-3 bg-blue-600 text-white rounded-full shadow-lg" + > + + + )} + + + {isOpen && ( + <> + setIsOpen(false)} + className="fixed inset-0 bg-black/50 z-50" + /> + + +
+

Agentic AI Guide :

+ +
+ +
+

{activeDetail.title}

+

{activeDetail.desc}

+

Use it for:

+

{activeDetail.use}

+

Example prompts:

+
    + {activeDetail.examples.map((ex, idx) => ( +
  • “{ex}”
  • + ))} +
+
+
+ + )} +
+ + ); +} \ No newline at end of file diff --git a/apps/CortensorLabs/cortensor-dashboard/src/components/AgentSidebar.jsx b/apps/CortensorLabs/cortensor-dashboard/src/components/AgentSidebar.jsx new file mode 100644 index 0000000..f82c368 --- /dev/null +++ b/apps/CortensorLabs/cortensor-dashboard/src/components/AgentSidebar.jsx @@ -0,0 +1,69 @@ +"use client"; +import { Button } from "@/components/ui/button"; +import { useEffect } from "react"; +import useWindowWidth from "@/hooks/useWindowWidth"; +import AgentSidebarMobile from "./AgentSidebarMobile"; + +function AgentSidebarDesktop({ agents, activeAgent, handleAgentClick }) { + useEffect(() => { + const style = document.createElement("style"); + style.innerHTML = ` + /* ✨ Efek Gradasi Metalik Abu Putih Bergerak */ + @keyframes gradientShine { + 0% { background-position: 0% 50%; } + 50% { background-position: 100% 50%; } + 100% { background-position: 0% 50%; } + } + .animated-gradient { + background: linear-gradient( + 270deg, + #e5e7eb, #d1d5db, #f9fafb, #9ca3af, #e5e7eb + ); + background-size: 300% 300%; + animation: gradientShine 3.5s ease-in-out infinite; + color: #1f2937; + box-shadow: 0 3px 8px rgba(0, 0, 0, 0.1); + transition: all 0.3s ease; + } + .animated-gradient:hover { + box-shadow: 0 4px 10px rgba(0, 0, 0, 0.15); + transform: scale(1.05); + } + `; + document.head.appendChild(style); + return () => style.remove(); + }, []); + + return ( + + ); +} + + +export default function AgentSidebar(props) { + const width = useWindowWidth(); + const isMobile = width < 1024; + + if (isMobile) { + return ; + } + return ; +} \ No newline at end of file diff --git a/apps/CortensorLabs/cortensor-dashboard/src/components/AgentSidebarMobile.jsx b/apps/CortensorLabs/cortensor-dashboard/src/components/AgentSidebarMobile.jsx new file mode 100644 index 0000000..e1fa0bb --- /dev/null +++ b/apps/CortensorLabs/cortensor-dashboard/src/components/AgentSidebarMobile.jsx @@ -0,0 +1,87 @@ +"use client"; +import { useState } from 'react'; +import { motion, AnimatePresence } from "framer-motion"; +import { Button } from "@/components/ui/button"; +import { LayoutGrid, X } from 'lucide-react'; + +export default function AgentSidebarMobile({ agents, activeAgent, handleAgentClick }) { + const [isOpen, setIsOpen] = useState(false); + const popupVariants = { + hidden: { opacity: 0, scale: 0.9, y: 50 }, + visible: { opacity: 1, scale: 1, y: 0 }, + }; + + const onAgentClick = (agent) => { + handleAgentClick(agent); + setIsOpen(false); + }; + + return ( + <> + {!isOpen && ( + setIsOpen(true)} + className="fixed center-6 left-6 z-40 p-3 bg-blue-600 text-white rounded-full shadow-lg" + > + + + )} + + + {isOpen && ( + <> + setIsOpen(false)} + className="fixed inset-0 bg-black/50 z-50" + /> + + +
+

Pilih Agent

+ +
+ +
+ {agents.map((agent) => { + const isActive = activeAgent === agent; + return ( + + ); + })} +
+
+ + )} +
+ + ); +} \ No newline at end of file diff --git a/apps/CortensorLabs/cortensor-dashboard/src/components/ChatSection.jsx b/apps/CortensorLabs/cortensor-dashboard/src/components/ChatSection.jsx new file mode 100644 index 0000000..76064a2 --- /dev/null +++ b/apps/CortensorLabs/cortensor-dashboard/src/components/ChatSection.jsx @@ -0,0 +1,493 @@ +"use client"; +import { AnimatePresence, motion } from "framer-motion"; +import { Button } from "@/components/ui/button"; +import { Card, CardContent } from "@/components/ui/card"; +import { useEffect, useState, useRef } from "react"; +import { generalAssistant } from "@/agents/generalAssistant"; +import { businessPlanner } from "@/agents/businessPlanner"; +import { textSummarizer } from "@/agents/textSummarizer"; +import { insightAnalyzer } from "@/agents/insightAnalyzer"; +import { formatConverter } from "@/agents/formatConverter"; +import { Download, Copy } from "lucide-react"; + +const agentFunctions = { + "💬 General Assistant": generalAssistant, + "💼 Business Planner": businessPlanner, + "📝 Text Summarizer": textSummarizer, + "📊 Insight Analyzer": insightAnalyzer, + "🔄 Format Converter": formatConverter, +}; + +export default function ChatSection({ loading, activeAgent, sessionId }) { + const [isAsking, setIsAsking] = useState(false); + const [question, setQuestion] = useState(""); + const [messages, setMessages] = useState([]); + const [flyText, setFlyText] = useState(null); + const [showFormatOptions, setShowFormatOptions] = useState(false); + const [selectedFormat, setSelectedFormat] = useState(null); + const chatEndRef = useRef(null); + + useEffect(() => { + chatEndRef.current?.scrollIntoView({ behavior: "smooth" }); + }, [messages]); + + useEffect(() => { + if (sessionId) { + fetch(`/api/chat?sessionId=${sessionId}`) + .then((r) => r.json()) + .then((data) => { + const filtered = data.filter((m) => m.agent === activeAgent); + setMessages( + filtered.map((m) => { + let text = m.message; + let metadata = null; + + if (m.role === "ai") { + try { + const parsed = JSON.parse(m.message); + if (parsed && typeof parsed === "object" && parsed.content !== undefined) { + text = parsed.content; + metadata = parsed.metadata; + } + + } catch (e) { + + } + } + + return { + id: m.id, + sender: m.role === "ai" ? "ai" : "user", + text: text, + metadata: metadata, + }; + }) + ); + }) + .catch(console.error); + } + }, [sessionId, activeAgent]); + + useEffect(() => { + + const style = document.createElement("style"); + style.innerHTML = ` + @keyframes wave { 0%,80%,100%{transform:scale(0);opacity:0.3;}40%{transform:scale(1);opacity:1;} } + .dot { display:inline-block;width:6px;height:6px;margin:0 3px; + background-color:#2563eb;border-radius:50%; + animation:wave 1.4s infinite ease-in-out both; } + .dot:nth-child(1){animation-delay:-0.32s;} + .dot:nth-child(2){animation-delay:-0.16s;} + .dot:nth-child(3){animation-delay:0;} + `; + document.head.appendChild(style); + return () => style.remove(); + }, []); + + + useEffect(() => { + if (activeAgent === "🔄 Format Converter") { + setShowFormatOptions(true); + setSelectedFormat(null); + setQuestion(""); + } else { + setShowFormatOptions(false); + } + }, [activeAgent]); + + const handleDownload = (content, format) => { + let filename = "converted_data"; + let mimeType = "text/plain"; + let extension = format.toLowerCase(); + + if (format === "JSON") { + filename += ".json"; + mimeType = "application/json"; + } else if (format === "CSV") { + filename += ".csv"; + mimeType = "text/csv"; + } else if (format === "HTML") { + filename += ".html"; + mimeType = "text/html"; + } else { + filename += `.${extension}`; + } + + const blob = new Blob([content], { type: mimeType }); + const url = URL.createObjectURL(blob); + const a = document.createElement("a"); + a.href = url; + a.download = filename; + document.body.appendChild(a); + a.click(); + document.body.removeChild(a); + URL.revokeObjectURL(url); + }; + + const handleFormatSelect = (formatType) => { + setSelectedFormat(formatType); + setShowFormatOptions(false); + }; + + const handleChangeChoice = () => { + setShowFormatOptions(true); + setSelectedFormat(null); + setQuestion(""); + }; + + + const handleAskClick = async () => { + + if ( + !question.trim() || + isAsking || + (activeAgent === "🔄 Format Converter" && !selectedFormat) + ) + return; + + const inputText = question.trim(); + + if (activeAgent !== "🔄 Format Converter") setQuestion(""); + + setFlyText(inputText); + setTimeout(() => setFlyText(null), 700); + setIsAsking(true); + + const thinkingMsgId = Date.now() + 1; + + + const agentFunction = agentFunctions[activeAgent]; + if (!agentFunction) { + console.error("Unknown agent:", activeAgent); + setIsAsking(false); + + if (activeAgent !== "🔄 Format Converter") { + setMessages((prev) => [ + ...prev, + { + id: thinkingMsgId, + sender: "ai", + text: "⚠️ Error: Agent function not found.", + metadata: null, + }, + ]); + } + return; + } + + + let promptForAI = inputText; + if (activeAgent === "🔄 Format Converter" && selectedFormat) { + promptForAI = `Please convert this data to format ${selectedFormat}. The data is: ${inputText}`; + } + + + const agentMetadata = + activeAgent === "🔄 Format Converter" + ? { format: selectedFormat } + : null; + + + if (activeAgent !== "🔄 Format Converter") { + const userMsg = { + id: Date.now(), + sender: "user", + text: inputText, + metadata: null, + }; + setMessages((prev) => [...prev, userMsg]); + } + + await agentFunction( + promptForAI, + sessionId, + agentMetadata, + () => { + + const thinkingText = + activeAgent === "🔄 Format Converter" ? ( + `Convert to ${selectedFormat}, Please wait ...` + ) : ( + + + + + + ); + + setMessages((p) => [ + ...p, + { + id: thinkingMsgId, + sender: "ai", + text: thinkingText, + metadata: null, + }, + ]); + }, + (aiResponse) => { + setIsAsking(false); + + if (activeAgent === "🔄 Format Converter") { + + setMessages((p) => + p.map((m) => + m.id === thinkingMsgId + ? { + ...m, + text: aiResponse, + metadata: { format: selectedFormat }, + } + : m + ) + ); + + } else { + + let i = 0; + setMessages((p) => + p.map((m) => (m.id === thinkingMsgId ? { ...m, text: "" } : m)) + ); + const interval = setInterval(() => { + setMessages((p) => + p.map((m) => + m.id === thinkingMsgId + ? { ...m, text: aiResponse.slice(0, i) } + : m + ) + ); + i++; + if (i > aiResponse.length) clearInterval(interval); + }, 25); + } + } + ); + }; + + + const transitionVariants = { + hidden: { opacity: 0, y: 20 }, + visible: { opacity: 1, y: 0 }, + exit: { opacity: 0, y: -20 }, + }; + +return ( +   
+ + + {loading && ( + + + + + + +

+ +

+
+ )} +
+ +      +        {flyText && ( +          +            {flyText} +          +        )} +      + + + + + + {messages.length === 0 && + activeAgent !== "🔄 Format Converter" ? ( + + Start chatting with {activeAgent}... + + ) : ( + + messages.map((msg) => { + + const isConverterResult = + msg.sender === "ai" && + msg.metadata && + msg.metadata.format; + + return ( + + {isConverterResult ? ( + +
+ + ☑️ Convert to {msg.metadata.format} Complete! + + +
+

+ Preview: +

+
+                              {msg.text}
+                            
+
+
+ ) : ( + +
+ {msg.text} +
+ )} +
+ ); + }) + )} +
+
+
+
+
+ + + {showFormatOptions && ( + +
+

+ Select Conversion Format: +

+
+ + + +
+
+
+ )} +
+ +
+
+ setQuestion(e.target.value)} + onKeyDown={(e) => e.key === "Enter" && handleAskClick()} + + disabled={ + isAsking || + (activeAgent === "🔄 Format Converter" && !selectedFormat) + } + className="flex-1 p-3 rounded-xl border border-gray-300 shadow-sm text-gray-700 placeholder-gray-400 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 disabled:bg-gray-100 disabled:cursor-not-allowed" + /> + +
+ + {activeAgent === "🔄 Format Converter" && + selectedFormat && + !isAsking && ( + + )} +
+
+ ); +} \ No newline at end of file diff --git a/apps/CortensorLabs/cortensor-dashboard/src/components/LoadingScreen.jsx b/apps/CortensorLabs/cortensor-dashboard/src/components/LoadingScreen.jsx new file mode 100644 index 0000000..08fe5c8 --- /dev/null +++ b/apps/CortensorLabs/cortensor-dashboard/src/components/LoadingScreen.jsx @@ -0,0 +1,38 @@ +"use client"; +import { motion } from "framer-motion"; + +export default function LoadingScreen() { + const letters = "CORTENSOR".split(""); + + return ( + + + Launching ... + +
+ {letters.map((letter, i) => ( + + {letter} + + ))} +
+
+ ); +} diff --git a/apps/CortensorLabs/cortensor-dashboard/src/components/PopupSession.jsx b/apps/CortensorLabs/cortensor-dashboard/src/components/PopupSession.jsx new file mode 100644 index 0000000..a1c5484 --- /dev/null +++ b/apps/CortensorLabs/cortensor-dashboard/src/components/PopupSession.jsx @@ -0,0 +1,116 @@ +"use client"; +import { Button } from "@/components/ui/button"; +import { motion } from "framer-motion"; +import { useEffect } from "react"; + +export default function PopupSession({ + showRestoreInput, + restoreInput, + setRestoreInput, + generateSession, + restoreSession, + setShowRestoreInput +}) { + useEffect(() => { + const style = document.createElement("style"); + style.innerHTML = ` + @keyframes gradientShift { + 0% { background-position: 0% 50%; } + 50% { background-position: 100% 50%; } + 100% { background-position: 0% 50%; } + } + + .btn-gradient { + background: linear-gradient(270deg, #1e3a8a, #2563eb, #3b82f6, #60a5fa); + background-size: 250% 250%; + animation: gradientShift 5s ease-in-out infinite; + color: white; + transition: all 0.4s ease; + box-shadow: 0 3px 8px rgba(37, 99, 235, 0.25); + } + + .btn-gradient:hover { + background: linear-gradient( + 270deg, + #e5e7eb, + #d1d5db, + #f9fafb, + #9ca3af, + #e5e7eb + ); + background-size: 300% 300%; + animation: gradientShift 3.5s ease-in-out infinite; + color: #1f2937; + transform: scale(1.04); + box-shadow: 0 4px 10px rgba(0, 0, 0, 0.15); + } + + .btn-gradient:active { + transform: scale(0.97); + box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1); + } + `; + document.head.appendChild(style); + return () => style.remove(); + }, []); + + return ( +
+ +

+ Welcome to Cortensor +

+ +

+ If you are a new user, please select{" "} + “Generate Session.” +
+ If you already have an ID, please select{" "} + “Restore Session.” +
+
+ Don’t forget to save your Session ID to restore previous + conversations. +

+ +
+ + + +
+ + {showRestoreInput && ( +
+ setRestoreInput(e.target.value)} + className="p-2 border rounded-md w-full text-center mt-2 focus:outline-none focus:ring-2 focus:ring-blue-300" + /> + +
+ )} +
+
+ ); +} diff --git a/apps/CortensorLabs/cortensor-dashboard/src/components/ui/button.jsx b/apps/CortensorLabs/cortensor-dashboard/src/components/ui/button.jsx new file mode 100644 index 0000000..07f4770 --- /dev/null +++ b/apps/CortensorLabs/cortensor-dashboard/src/components/ui/button.jsx @@ -0,0 +1,56 @@ +import * as React from "react" +import { Slot } from "@radix-ui/react-slot" +import { cva } from "class-variance-authority"; + +import { cn } from "@/lib/utils" + +const buttonVariants = cva( + "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", + { + variants: { + variant: { + default: "bg-primary text-primary-foreground hover:bg-primary/90", + destructive: + "bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60", + outline: + "border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50", + secondary: + "bg-secondary text-secondary-foreground hover:bg-secondary/80", + ghost: + "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50", + link: "text-primary underline-offset-4 hover:underline", + }, + size: { + default: "h-9 px-4 py-2 has-[>svg]:px-3", + sm: "h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5", + lg: "h-10 rounded-md px-6 has-[>svg]:px-4", + icon: "size-9", + "icon-sm": "size-8", + "icon-lg": "size-10", + }, + }, + defaultVariants: { + variant: "default", + size: "default", + }, + } +) + +function Button({ + className, + variant, + size, + asChild = false, + ...props +}) { + const Comp = asChild ? Slot : "button" + + return ( + + ); +} + +export { Button, buttonVariants } diff --git a/apps/CortensorLabs/cortensor-dashboard/src/components/ui/card.jsx b/apps/CortensorLabs/cortensor-dashboard/src/components/ui/card.jsx new file mode 100644 index 0000000..8442fba --- /dev/null +++ b/apps/CortensorLabs/cortensor-dashboard/src/components/ui/card.jsx @@ -0,0 +1,101 @@ +import * as React from "react" + +import { cn } from "@/lib/utils" + +function Card({ + className, + ...props +}) { + return ( +
+ ); +} + +function CardHeader({ + className, + ...props +}) { + return ( +
+ ); +} + +function CardTitle({ + className, + ...props +}) { + return ( +
+ ); +} + +function CardDescription({ + className, + ...props +}) { + return ( +
+ ); +} + +function CardAction({ + className, + ...props +}) { + return ( +
+ ); +} + +function CardContent({ + className, + ...props +}) { + return (
); +} + +function CardFooter({ + className, + ...props +}) { + return ( +
+ ); +} + +export { + Card, + CardHeader, + CardFooter, + CardTitle, + CardAction, + CardDescription, + CardContent, +} diff --git a/apps/CortensorLabs/cortensor-dashboard/src/data/agentData.js b/apps/CortensorLabs/cortensor-dashboard/src/data/agentData.js new file mode 100644 index 0000000..f33ee40 --- /dev/null +++ b/apps/CortensorLabs/cortensor-dashboard/src/data/agentData.js @@ -0,0 +1,48 @@ +export const agents = [ + "💬 General Assistant", + "💼 Business Planner", + "📝 Text Summarizer", + "📊 Insight Analyzer", + "🔄 Format Converter" +]; + +export const agentDetails = { + "💬 General Assistant": { + title: "💬 General Assistant", + desc: "A free conversational mode for general questions, brainstorming, or open discussions.", + use: "Quick answers, creative thinking, or casual chats.", + examples: [ + "What are the top AI trends for 2025?", + "Explain the concept of quantum computing." + ] + }, + "💼 Business Planner": { + title: "💼 Business Planner", + desc: "Creates structured business plans automatically and guides you through each stage.", + use: "Startup founders, entrepreneurs, or business students.", + examples: [ + "Fried chicken", + "Bookstore" + ] + }, + "📝 Text Summarizer": { + title: "📝 Text Summarizer", + desc: "Summarizes long text, articles, or reports into clear key points.", + use: "Students, researchers, journalists, or readers processing long documents.", + examples: [ + "Paste all the articles or text" + ] + }, + "📊 Insight Analyzer": { + title: "📊 Insight Analyzer", + desc: "Analyzes text or data to extract insights and recommendations.", + use: "Business managers, data analysts, or anyone needing insights.", + examples: ["Paste all the sales data reports"] + }, + "🔄 Format Converter": { + title: "🔄 Format Converter", + desc: "Converts text into formats like JSON, CSV or HTML.", + use: "Developers, writers, or data engineers.", + examples: ["Select the mode, and paste all the data you want to convert." ] + } +}; diff --git a/apps/CortensorLabs/cortensor-dashboard/src/hooks/useWindowWidth.js b/apps/CortensorLabs/cortensor-dashboard/src/hooks/useWindowWidth.js new file mode 100644 index 0000000..13611c2 --- /dev/null +++ b/apps/CortensorLabs/cortensor-dashboard/src/hooks/useWindowWidth.js @@ -0,0 +1,20 @@ +// hooks/useWindowWidth.js +"use client"; +import { useState, useEffect } from 'react'; + +export default function useWindowWidth() { + const [width, setWidth] = useState(typeof window !== 'undefined' ? window.innerWidth : 0); + + useEffect(() => { + if (typeof window === 'undefined') return; + + const handleResize = () => setWidth(window.innerWidth); + + window.addEventListener('resize', handleResize); + handleResize(); + + return () => window.removeEventListener('resize', handleResize); + }, []); + + return width; +} \ No newline at end of file diff --git a/apps/CortensorLabs/cortensor-dashboard/src/lib/prisma.js b/apps/CortensorLabs/cortensor-dashboard/src/lib/prisma.js new file mode 100644 index 0000000..426f355 --- /dev/null +++ b/apps/CortensorLabs/cortensor-dashboard/src/lib/prisma.js @@ -0,0 +1,11 @@ +import { PrismaClient } from '@prisma/client'; + +const globalForPrisma = globalThis; + +export const prisma = + globalForPrisma.prisma || + new PrismaClient({ + log: ['query'], + }); + +if (process.env.NODE_ENV !== 'production') globalForPrisma.prisma = prisma; diff --git a/apps/CortensorLabs/cortensor-dashboard/src/lib/utils.js b/apps/CortensorLabs/cortensor-dashboard/src/lib/utils.js new file mode 100644 index 0000000..60870ea --- /dev/null +++ b/apps/CortensorLabs/cortensor-dashboard/src/lib/utils.js @@ -0,0 +1,6 @@ +import { clsx } from "clsx"; +import { twMerge } from "tailwind-merge" + +export function cn(...inputs) { + return twMerge(clsx(inputs)); +}
+ {initialLoading && } + + {!initialLoading && ( + <> + + {popupLoading && ( +
+
+
+

Loading ...

+
+
+ )} +
+ + {showPopup && !popupLoading ? ( + + ) : ( + <> +
+
+
+
+ </> +
+

+ CORTENSOR +

+
+ + {sessionId && ( +
+

+ Session ID: {sessionId} +

+ +
+ )} +
+
+ +
+ + + + +
+ +
+ + )} + + )} +