From 5ccfb2a4f37b21402db07db0974075cb34e4bf4d Mon Sep 17 00:00:00 2001 From: Nazaret Date: Thu, 11 Sep 2025 14:40:38 +0200 Subject: [PATCH 1/2] done --- .gitignore | 24 + README.md | 99 +- eslint.config.js | 29 + index.html | 13 + package-lock.json | 2446 +++++++++++++++++++++++++++++++++++ package.json | 27 + public/vite.svg | 1 + src/App.css | 8 + src/App.jsx | 17 + src/assets/1.png | Bin 0 -> 8940 bytes src/assets/2.png | Bin 0 -> 6838 bytes src/assets/3.png | Bin 0 -> 7574 bytes src/assets/4.png | Bin 0 -> 5675 bytes src/assets/react.svg | 1 + src/components/Feature.jsx | 13 + src/components/Features.jsx | 42 + src/components/Hero.jsx | 18 + src/components/features.css | 25 + src/components/hero.css | 30 + src/index.css | 57 + src/main.jsx | 10 + vite.config.js | 7 + 22 files changed, 2775 insertions(+), 92 deletions(-) create mode 100644 .gitignore create mode 100644 eslint.config.js create mode 100644 index.html create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 public/vite.svg create mode 100644 src/App.css create mode 100644 src/App.jsx create mode 100644 src/assets/1.png create mode 100644 src/assets/2.png create mode 100644 src/assets/3.png create mode 100644 src/assets/4.png create mode 100644 src/assets/react.svg create mode 100644 src/components/Feature.jsx create mode 100644 src/components/Features.jsx create mode 100644 src/components/Hero.jsx create mode 100644 src/components/features.css create mode 100644 src/components/hero.css create mode 100644 src/index.css create mode 100644 src/main.jsx create mode 100644 vite.config.js diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a547bf3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/README.md b/README.md index ab80498..7059a96 100644 --- a/README.md +++ b/README.md @@ -1,97 +1,12 @@ - +# React + Vite -# React | React Landing Page +This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. - +Currently, two official plugins are available: -## Introduction +- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react) uses [Babel](https://babeljs.io/) for Fast Refresh +- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh - +## Expanding the ESLint configuration -We just learned the basics about creating a **Hello World** app in React, so we will use this exercise to re-do what we just learned (and hopefully to add some style :blossom: ). - - - -![](https://imgur.com/YpUYrJF.png) - - - -## Requirements - - - -- Don't Fork this repo - -- Don't Clone this repo - - - -## Submission - - - -- Upon completion, run the following commands: - - - -``` - -git add . - -git commit -m "done" - -git push origin master - -``` - - - -- Create Pull Request so we can check up your work. - - - -## Instructions - - - -### Iteration 1 | Initial set up - - - -Let's start with the basics. Create a react app from scratch using the CRA command line. - - - - -### Iteration 2 | Create the app - - - -Create the necessary components - - - -## Iteration 3 | First Landing Page - - - -Finally, let's create our landing page. The links to the necessary image assets can be found below - -icon1 - https://imgur.com/H2L3ohY.png - -icon2 - https://imgur.com/IHW1mFB.png - -icon3 - https://imgur.com/LtUDB9y.png - -icon4 - https://imgur.com/agN6R4Y.png - -react-logo - Added in this repo as an svg - - -![](https://imgur.com/hBuZZPx.png) - - - - - -Happy coding! :heart: +If you are developing a production application, we recommend using TypeScript with type-aware lint rules enabled. Check out the [TS template](https://github.com/vitejs/vite/tree/main/packages/create-vite/template-react-ts) for information on how to integrate TypeScript and [`typescript-eslint`](https://typescript-eslint.io) in your project. diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 0000000..cee1e2c --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,29 @@ +import js from '@eslint/js' +import globals from 'globals' +import reactHooks from 'eslint-plugin-react-hooks' +import reactRefresh from 'eslint-plugin-react-refresh' +import { defineConfig, globalIgnores } from 'eslint/config' + +export default defineConfig([ + globalIgnores(['dist']), + { + files: ['**/*.{js,jsx}'], + extends: [ + js.configs.recommended, + reactHooks.configs['recommended-latest'], + reactRefresh.configs.vite, + ], + languageOptions: { + ecmaVersion: 2020, + globals: globals.browser, + parserOptions: { + ecmaVersion: 'latest', + ecmaFeatures: { jsx: true }, + sourceType: 'module', + }, + }, + rules: { + 'no-unused-vars': ['error', { varsIgnorePattern: '^[A-Z_]' }], + }, + }, +]) diff --git a/index.html b/index.html new file mode 100644 index 0000000..0c589ec --- /dev/null +++ b/index.html @@ -0,0 +1,13 @@ + + + + + + + Vite + React + + +
+ + + diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..086aba7 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,2446 @@ +{ + "name": "lab-hello-rootlearn", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "lab-hello-rootlearn", + "version": "0.0.0", + "dependencies": { + "react": "^19.1.1", + "react-dom": "^19.1.1" + }, + "devDependencies": { + "@eslint/js": "^9.33.0", + "@types/react": "^19.1.10", + "@types/react-dom": "^19.1.7", + "@vitejs/plugin-react-swc": "^4.0.0", + "eslint": "^9.33.0", + "eslint-plugin-react-hooks": "^5.2.0", + "eslint-plugin-react-refresh": "^0.4.20", + "globals": "^16.3.0", + "vite": "^7.1.2" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.9.tgz", + "integrity": "sha512-OaGtL73Jck6pBKjNIe24BnFE6agGl+6KxDtTfHhy1HmhthfKouEcOhqpSL64K4/0WCtbKFLOdzD/44cJ4k9opA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.9.tgz", + "integrity": "sha512-5WNI1DaMtxQ7t7B6xa572XMXpHAaI/9Hnhk8lcxF4zVN4xstUgTlvuGDorBguKEnZO70qwEcLpfifMLoxiPqHQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.9.tgz", + "integrity": "sha512-IDrddSmpSv51ftWslJMvl3Q2ZT98fUSL2/rlUXuVqRXHCs5EUF1/f+jbjF5+NG9UffUDMCiTyh8iec7u8RlTLg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.9.tgz", + "integrity": "sha512-I853iMZ1hWZdNllhVZKm34f4wErd4lMyeV7BLzEExGEIZYsOzqDWDf+y082izYUE8gtJnYHdeDpN/6tUdwvfiw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.9.tgz", + "integrity": "sha512-XIpIDMAjOELi/9PB30vEbVMs3GV1v2zkkPnuyRRURbhqjyzIINwj+nbQATh4H9GxUgH1kFsEyQMxwiLFKUS6Rg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.9.tgz", + "integrity": "sha512-jhHfBzjYTA1IQu8VyrjCX4ApJDnH+ez+IYVEoJHeqJm9VhG9Dh2BYaJritkYK3vMaXrf7Ogr/0MQ8/MeIefsPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.9.tgz", + "integrity": "sha512-z93DmbnY6fX9+KdD4Ue/H6sYs+bhFQJNCPZsi4XWJoYblUqT06MQUdBCpcSfuiN72AbqeBFu5LVQTjfXDE2A6Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.9.tgz", + "integrity": "sha512-mrKX6H/vOyo5v71YfXWJxLVxgy1kyt1MQaD8wZJgJfG4gq4DpQGpgTB74e5yBeQdyMTbgxp0YtNj7NuHN0PoZg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.9.tgz", + "integrity": "sha512-HBU2Xv78SMgaydBmdor38lg8YDnFKSARg1Q6AT0/y2ezUAKiZvc211RDFHlEZRFNRVhcMamiToo7bDx3VEOYQw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.9.tgz", + "integrity": "sha512-BlB7bIcLT3G26urh5Dmse7fiLmLXnRlopw4s8DalgZ8ef79Jj4aUcYbk90g8iCa2467HX8SAIidbL7gsqXHdRw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.9.tgz", + "integrity": "sha512-e7S3MOJPZGp2QW6AK6+Ly81rC7oOSerQ+P8L0ta4FhVi+/j/v2yZzx5CqqDaWjtPFfYz21Vi1S0auHrap3Ma3A==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.9.tgz", + "integrity": "sha512-Sbe10Bnn0oUAB2AalYztvGcK+o6YFFA/9829PhOCUS9vkJElXGdphz0A3DbMdP8gmKkqPmPcMJmJOrI3VYB1JQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.9.tgz", + "integrity": "sha512-YcM5br0mVyZw2jcQeLIkhWtKPeVfAerES5PvOzaDxVtIyZ2NUBZKNLjC5z3/fUlDgT6w89VsxP2qzNipOaaDyA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.9.tgz", + "integrity": "sha512-++0HQvasdo20JytyDpFvQtNrEsAgNG2CY1CLMwGXfFTKGBGQT3bOeLSYE2l1fYdvML5KUuwn9Z8L1EWe2tzs1w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.9.tgz", + "integrity": "sha512-uNIBa279Y3fkjV+2cUjx36xkx7eSjb8IvnL01eXUKXez/CBHNRw5ekCGMPM0BcmqBxBcdgUWuUXmVWwm4CH9kg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.9.tgz", + "integrity": "sha512-Mfiphvp3MjC/lctb+7D287Xw1DGzqJPb/J2aHHcHxflUo+8tmN/6d4k6I2yFR7BVo5/g7x2Monq4+Yew0EHRIA==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.9.tgz", + "integrity": "sha512-iSwByxzRe48YVkmpbgoxVzn76BXjlYFXC7NvLYq+b+kDjyyk30J0JY47DIn8z1MO3K0oSl9fZoRmZPQI4Hklzg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.9.tgz", + "integrity": "sha512-9jNJl6FqaUG+COdQMjSCGW4QiMHH88xWbvZ+kRVblZsWrkXlABuGdFJ1E9L7HK+T0Yqd4akKNa/lO0+jDxQD4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.9.tgz", + "integrity": "sha512-RLLdkflmqRG8KanPGOU7Rpg829ZHu8nFy5Pqdi9U01VYtG9Y0zOG6Vr2z4/S+/3zIyOxiK6cCeYNWOFR9QP87g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.9.tgz", + "integrity": "sha512-YaFBlPGeDasft5IIM+CQAhJAqS3St3nJzDEgsgFixcfZeyGPCd6eJBWzke5piZuZ7CtL656eOSYKk4Ls2C0FRQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.9.tgz", + "integrity": "sha512-1MkgTCuvMGWuqVtAvkpkXFmtL8XhWy+j4jaSO2wxfJtilVCi0ZE37b8uOdMItIHz4I6z1bWWtEX4CJwcKYLcuA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.9.tgz", + "integrity": "sha512-4Xd0xNiMVXKh6Fa7HEJQbrpP3m3DDn43jKxMjxLLRjWnRsfxjORYJlXPO4JNcXtOyfajXorRKY9NkOpTHptErg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.9.tgz", + "integrity": "sha512-WjH4s6hzo00nNezhp3wFIAfmGZ8U7KtrJNlFMRKxiI9mxEK1scOMAaa9i4crUtu+tBr+0IN6JCuAcSBJZfnphw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.9.tgz", + "integrity": "sha512-mGFrVJHmZiRqmP8xFOc6b84/7xa5y5YvR1x8djzXpJBSv/UsNK6aqec+6JDjConTgvvQefdGhFDAs2DLAds6gQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.9.tgz", + "integrity": "sha512-b33gLVU2k11nVx1OhX3C8QQP6UHQK4ZtN56oFWvVXvz2VkDoe6fbG8TOgHFxEvqeqohmRnIHe5A1+HADk4OQww==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.9.tgz", + "integrity": "sha512-PPOl1mi6lpLNQxnGoyAfschAodRFYXJ+9fs6WHXz7CSWKbOqiMZsubC+BQsVKuul+3vKLuwTHsS2c2y9EoKwxQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "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, + "license": "MIT", + "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, + "license": "Apache-2.0", + "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, + "license": "MIT", + "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, + "license": "Apache-2.0", + "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.3.1", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.3.1.tgz", + "integrity": "sha512-xR93k9WhrDYpXHORXpxVL5oHj3Era7wo6k/Wd8/IsQNnZUTzkGS29lyn3nAT05v6ltUuTFVCCYDEGfy2Or/sPA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.15.2.tgz", + "integrity": "sha512-78Md3/Rrxh83gCxoUc0EiciuOHsIITzLy53m3d9UyiW8y9Dj2D29FeETqyKA+BRK76tnTp6RXWb3pCay8Oyomg==", + "dev": true, + "license": "Apache-2.0", + "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, + "license": "MIT", + "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/eslintrc/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, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "9.35.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.35.0.tgz", + "integrity": "sha512-30iXE9whjlILfWobBkNerJo+TXYsgVM5ERQwMcMKCHckHflCmf7wXDAHlARoWnh0s1U72WqlbeyE7iAcCzuCPw==", + "dev": true, + "license": "MIT", + "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, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.5.tgz", + "integrity": "sha512-Z5kJ+wU3oA7MMIqVR9tyZRtjYPr4OC004Q4Rw7pgOKUOKkJfZ3O24nz3WYfGRpMDNmcOi3TwQOmgm7B7Tpii0w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.15.2", + "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, + "license": "Apache-2.0", + "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, + "license": "Apache-2.0", + "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, + "license": "Apache-2.0", + "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, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.0-beta.32", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.32.tgz", + "integrity": "sha512-QReCdvxiUZAPkvp1xpAg62IeNzykOFA6syH2CnClif4YmALN1XKpB39XneL80008UbtMShthSVDKmrx05N1q/g==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.50.1.tgz", + "integrity": "sha512-HJXwzoZN4eYTdD8bVV22DN8gsPCAj3V20NHKOs8ezfXanGpmVPR7kalUHd+Y31IJp9stdB87VKPFbsGY3H/2ag==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.50.1.tgz", + "integrity": "sha512-PZlsJVcjHfcH53mOImyt3bc97Ep3FJDXRpk9sMdGX0qgLmY0EIWxCag6EigerGhLVuL8lDVYNnSo8qnTElO4xw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.50.1.tgz", + "integrity": "sha512-xc6i2AuWh++oGi4ylOFPmzJOEeAa2lJeGUGb4MudOtgfyyjr4UPNK+eEWTPLvmPJIY/pgw6ssFIox23SyrkkJw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.50.1.tgz", + "integrity": "sha512-2ofU89lEpDYhdLAbRdeyz/kX3Y2lpYc6ShRnDjY35bZhd2ipuDMDi6ZTQ9NIag94K28nFMofdnKeHR7BT0CATw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.50.1.tgz", + "integrity": "sha512-wOsE6H2u6PxsHY/BeFHA4VGQN3KUJFZp7QJBmDYI983fgxq5Th8FDkVuERb2l9vDMs1D5XhOrhBrnqcEY6l8ZA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.50.1.tgz", + "integrity": "sha512-A/xeqaHTlKbQggxCqispFAcNjycpUEHP52mwMQZUNqDUJFFYtPHCXS1VAG29uMlDzIVr+i00tSFWFLivMcoIBQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.50.1.tgz", + "integrity": "sha512-54v4okehwl5TaSIkpp97rAHGp7t3ghinRd/vyC1iXqXMfjYUTm7TfYmCzXDoHUPTTf36L8pr0E7YsD3CfB3ZDg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.50.1.tgz", + "integrity": "sha512-p/LaFyajPN/0PUHjv8TNyxLiA7RwmDoVY3flXHPSzqrGcIp/c2FjwPPP5++u87DGHtw+5kSH5bCJz0mvXngYxw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.50.1.tgz", + "integrity": "sha512-2AbMhFFkTo6Ptna1zO7kAXXDLi7H9fGTbVaIq2AAYO7yzcAsuTNWPHhb2aTA6GPiP+JXh85Y8CiS54iZoj4opw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.50.1.tgz", + "integrity": "sha512-Cgef+5aZwuvesQNw9eX7g19FfKX5/pQRIyhoXLCiBOrWopjo7ycfB292TX9MDcDijiuIJlx1IzJz3IoCPfqs9w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.50.1.tgz", + "integrity": "sha512-RPhTwWMzpYYrHrJAS7CmpdtHNKtt2Ueo+BlLBjfZEhYBhK00OsEqM08/7f+eohiF6poe0YRDDd8nAvwtE/Y62Q==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.50.1.tgz", + "integrity": "sha512-eSGMVQw9iekut62O7eBdbiccRguuDgiPMsw++BVUg+1K7WjZXHOg/YOT9SWMzPZA+w98G+Fa1VqJgHZOHHnY0Q==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.50.1.tgz", + "integrity": "sha512-S208ojx8a4ciIPrLgazF6AgdcNJzQE4+S9rsmOmDJkusvctii+ZvEuIC4v/xFqzbuP8yDjn73oBlNDgF6YGSXQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.50.1.tgz", + "integrity": "sha512-3Ag8Ls1ggqkGUvSZWYcdgFwriy2lWo+0QlYgEFra/5JGtAd6C5Hw59oojx1DeqcA2Wds2ayRgvJ4qxVTzCHgzg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.50.1.tgz", + "integrity": "sha512-t9YrKfaxCYe7l7ldFERE1BRg/4TATxIg+YieHQ966jwvo7ddHJxPj9cNFWLAzhkVsbBvNA4qTbPVNsZKBO4NSg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.50.1.tgz", + "integrity": "sha512-MCgtFB2+SVNuQmmjHf+wfI4CMxy3Tk8XjA5Z//A0AKD7QXUYFMQcns91K6dEHBvZPCnhJSyDWLApk40Iq/H3tA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.50.1.tgz", + "integrity": "sha512-nEvqG+0jeRmqaUMuwzlfMKwcIVffy/9KGbAGyoa26iu6eSngAYQ512bMXuqqPrlTyfqdlB9FVINs93j534UJrg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.50.1.tgz", + "integrity": "sha512-RDsLm+phmT3MJd9SNxA9MNuEAO/J2fhW8GXk62G/B4G7sLVumNFbRwDL6v5NrESb48k+QMqdGbHgEtfU0LCpbA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.50.1.tgz", + "integrity": "sha512-hpZB/TImk2FlAFAIsoElM3tLzq57uxnGYwplg6WDyAxbYczSi8O2eQ+H2Lx74504rwKtZ3N2g4bCUkiamzS6TQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.50.1.tgz", + "integrity": "sha512-SXjv8JlbzKM0fTJidX4eVsH+Wmnp0/WcD8gJxIZyR6Gay5Qcsmdbi9zVtnbkGPG8v2vMR1AD06lGWy5FLMcG7A==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.50.1.tgz", + "integrity": "sha512-StxAO/8ts62KZVRAm4JZYq9+NqNsV7RvimNK+YM7ry//zebEH6meuugqW/P5OFUCjyQgui+9fUxT6d5NShvMvA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@swc/core": { + "version": "1.13.5", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.13.5.tgz", + "integrity": "sha512-WezcBo8a0Dg2rnR82zhwoR6aRNxeTGfK5QCD6TQ+kg3xx/zNT02s/0o+81h/3zhvFSB24NtqEr8FTw88O5W/JQ==", + "dev": true, + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "@swc/counter": "^0.1.3", + "@swc/types": "^0.1.24" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/swc" + }, + "optionalDependencies": { + "@swc/core-darwin-arm64": "1.13.5", + "@swc/core-darwin-x64": "1.13.5", + "@swc/core-linux-arm-gnueabihf": "1.13.5", + "@swc/core-linux-arm64-gnu": "1.13.5", + "@swc/core-linux-arm64-musl": "1.13.5", + "@swc/core-linux-x64-gnu": "1.13.5", + "@swc/core-linux-x64-musl": "1.13.5", + "@swc/core-win32-arm64-msvc": "1.13.5", + "@swc/core-win32-ia32-msvc": "1.13.5", + "@swc/core-win32-x64-msvc": "1.13.5" + }, + "peerDependencies": { + "@swc/helpers": ">=0.5.17" + }, + "peerDependenciesMeta": { + "@swc/helpers": { + "optional": true + } + } + }, + "node_modules/@swc/core-darwin-arm64": { + "version": "1.13.5", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.13.5.tgz", + "integrity": "sha512-lKNv7SujeXvKn16gvQqUQI5DdyY8v7xcoO3k06/FJbHJS90zEwZdQiMNRiqpYw/orU543tPaWgz7cIYWhbopiQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-darwin-x64": { + "version": "1.13.5", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.13.5.tgz", + "integrity": "sha512-ILd38Fg/w23vHb0yVjlWvQBoE37ZJTdlLHa8LRCFDdX4WKfnVBiblsCU9ar4QTMNdeTBEX9iUF4IrbNWhaF1Ng==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm-gnueabihf": { + "version": "1.13.5", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.13.5.tgz", + "integrity": "sha512-Q6eS3Pt8GLkXxqz9TAw+AUk9HpVJt8Uzm54MvPsqp2yuGmY0/sNaPPNVqctCX9fu/Nu8eaWUen0si6iEiCsazQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-gnu": { + "version": "1.13.5", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.13.5.tgz", + "integrity": "sha512-aNDfeN+9af+y+M2MYfxCzCy/VDq7Z5YIbMqRI739o8Ganz6ST+27kjQFd8Y/57JN/hcnUEa9xqdS3XY7WaVtSw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-musl": { + "version": "1.13.5", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.13.5.tgz", + "integrity": "sha512-9+ZxFN5GJag4CnYnq6apKTnnezpfJhCumyz0504/JbHLo+Ue+ZtJnf3RhyA9W9TINtLE0bC4hKpWi8ZKoETyOQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-gnu": { + "version": "1.13.5", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.13.5.tgz", + "integrity": "sha512-WD530qvHrki8Ywt/PloKUjaRKgstQqNGvmZl54g06kA+hqtSE2FTG9gngXr3UJxYu/cNAjJYiBifm7+w4nbHbA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-musl": { + "version": "1.13.5", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.13.5.tgz", + "integrity": "sha512-Luj8y4OFYx4DHNQTWjdIuKTq2f5k6uSXICqx+FSabnXptaOBAbJHNbHT/06JZh6NRUouaf0mYXN0mcsqvkhd7Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-arm64-msvc": { + "version": "1.13.5", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.13.5.tgz", + "integrity": "sha512-cZ6UpumhF9SDJvv4DA2fo9WIzlNFuKSkZpZmPG1c+4PFSEMy5DFOjBSllCvnqihCabzXzpn6ykCwBmHpy31vQw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-ia32-msvc": { + "version": "1.13.5", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.13.5.tgz", + "integrity": "sha512-C5Yi/xIikrFUzZcyGj9L3RpKljFvKiDMtyDzPKzlsDrKIw2EYY+bF88gB6oGY5RGmv4DAX8dbnpRAqgFD0FMEw==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-x64-msvc": { + "version": "1.13.5", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.13.5.tgz", + "integrity": "sha512-YrKdMVxbYmlfybCSbRtrilc6UA8GF5aPmGKBdPvjrarvsmf4i7ZHGCEnLtfOMd3Lwbs2WUZq3WdMbozYeLU93Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/counter": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", + "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/@swc/types": { + "version": "0.1.25", + "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.25.tgz", + "integrity": "sha512-iAoY/qRhNH8a/hBvm3zKj9qQ4oc2+3w1unPJa2XvTK3XjeLXtzcCingVPw/9e5mn1+0yPqxcBGp9Jf0pkfMb1g==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@swc/counter": "^0.1.3" + } + }, + "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, + "license": "MIT" + }, + "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, + "license": "MIT" + }, + "node_modules/@types/react": { + "version": "19.1.12", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.12.tgz", + "integrity": "sha512-cMoR+FoAf/Jyq6+Df2/Z41jISvGZZ2eTlnsaJRptmZ76Caldwy1odD4xTr/gNV9VLj0AWgg/nmkevIyUfIIq5w==", + "dev": true, + "license": "MIT", + "dependencies": { + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "19.1.9", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.1.9.tgz", + "integrity": "sha512-qXRuZaOsAdXKFyOhRBg6Lqqc0yay13vN7KrIg4L7N4aaHN68ma9OK3NE1BoDFgFOTfM7zg+3/8+2n8rLUH3OKQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "^19.0.0" + } + }, + "node_modules/@vitejs/plugin-react-swc": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react-swc/-/plugin-react-swc-4.0.1.tgz", + "integrity": "sha512-NQhPjysi5duItyrMd5JWZFf2vNOuSMyw+EoZyTBDzk+DkfYD8WNrsUs09sELV2cr1P15nufsN25hsUBt4CKF9Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rolldown/pluginutils": "1.0.0-beta.32", + "@swc/core": "^1.13.2" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "peerDependencies": { + "vite": "^4 || ^5 || ^6 || ^7" + } + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "Python-2.0" + }, + "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, + "license": "MIT" + }, + "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, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "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, + "license": "MIT", + "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/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, + "license": "MIT", + "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, + "license": "MIT" + }, + "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, + "license": "MIT" + }, + "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, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "dev": true, + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "dev": true, + "license": "MIT", + "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, + "license": "MIT" + }, + "node_modules/esbuild": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.9.tgz", + "integrity": "sha512-CRbODhYyQx3qp7ZEwzxOk4JBqmD/seJrzPa/cGjY1VtIn5E09Oi9/dB4JwctnfZ8Q8iT7rioVv5k/FNT/uf54g==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.9", + "@esbuild/android-arm": "0.25.9", + "@esbuild/android-arm64": "0.25.9", + "@esbuild/android-x64": "0.25.9", + "@esbuild/darwin-arm64": "0.25.9", + "@esbuild/darwin-x64": "0.25.9", + "@esbuild/freebsd-arm64": "0.25.9", + "@esbuild/freebsd-x64": "0.25.9", + "@esbuild/linux-arm": "0.25.9", + "@esbuild/linux-arm64": "0.25.9", + "@esbuild/linux-ia32": "0.25.9", + "@esbuild/linux-loong64": "0.25.9", + "@esbuild/linux-mips64el": "0.25.9", + "@esbuild/linux-ppc64": "0.25.9", + "@esbuild/linux-riscv64": "0.25.9", + "@esbuild/linux-s390x": "0.25.9", + "@esbuild/linux-x64": "0.25.9", + "@esbuild/netbsd-arm64": "0.25.9", + "@esbuild/netbsd-x64": "0.25.9", + "@esbuild/openbsd-arm64": "0.25.9", + "@esbuild/openbsd-x64": "0.25.9", + "@esbuild/openharmony-arm64": "0.25.9", + "@esbuild/sunos-x64": "0.25.9", + "@esbuild/win32-arm64": "0.25.9", + "@esbuild/win32-ia32": "0.25.9", + "@esbuild/win32-x64": "0.25.9" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "9.35.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.35.0.tgz", + "integrity": "sha512-QePbBFMJFjgmlE+cXAlbHZbHpdFVS2E/6vzCy7aKlebddvl1vadiC4JFV5u/wqTkNUwEV8WrQi257jf5f06hrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.8.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.21.0", + "@eslint/config-helpers": "^0.3.1", + "@eslint/core": "^0.15.2", + "@eslint/eslintrc": "^3.3.1", + "@eslint/js": "9.35.0", + "@eslint/plugin-kit": "^0.3.5", + "@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-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, + "license": "MIT", + "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-refresh": { + "version": "0.4.20", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.20.tgz", + "integrity": "sha512-XpbHQ2q5gUF8BGOX4dHe+71qoirYMhApEPZ7sfhF/dNnOF1UXnCMGZf79SFTBO7Bz5YEIT4TMieSlJBWhP9WBA==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "eslint": ">=8.40" + } + }, + "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, + "license": "BSD-2-Clause", + "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, + "license": "Apache-2.0", + "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, + "license": "BSD-2-Clause", + "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, + "license": "BSD-3-Clause", + "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, + "license": "BSD-2-Clause", + "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, + "license": "BSD-2-Clause", + "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, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.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, + "license": "MIT" + }, + "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, + "license": "MIT" + }, + "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, + "license": "MIT" + }, + "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, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "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, + "license": "MIT", + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "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, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "16.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-16.4.0.tgz", + "integrity": "sha512-ob/2LcVVaVGCYN+r14cnwnoDPUufjiYgSqRhiFD0Q1iI4Odora5RE8Iv1D24hAz5oMophRGkGz+yuvQmmUMnMw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "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, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "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, + "license": "MIT", + "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, + "license": "MIT" + }, + "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, + "license": "MIT" + }, + "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, + "license": "MIT" + }, + "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, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "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, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "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, + "license": "MIT", + "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, + "license": "MIT" + }, + "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, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "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, + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "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, + "license": "MIT" + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "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/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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "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" + } + ], + "license": "MIT", + "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, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/react": { + "version": "19.1.1", + "resolved": "https://registry.npmjs.org/react/-/react-19.1.1.tgz", + "integrity": "sha512-w8nqGImo45dmMIfljjMwOGtbmC/mk4CMYhWIicdSflH91J9TyCyczcPFXJzrZ/ZXcgGRFeP6BU0BEJTw6tZdfQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "19.1.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.1.tgz", + "integrity": "sha512-Dlq/5LAZgF0Gaz6yiqZCf6VCcZs1ghAJyrsu84Q/GT0gV+mCxbfmKNoGRKBYMJ8IEdGPqu49YWXD02GCknEDkw==", + "license": "MIT", + "dependencies": { + "scheduler": "^0.26.0" + }, + "peerDependencies": { + "react": "^19.1.1" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/rollup": { + "version": "4.50.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.50.1.tgz", + "integrity": "sha512-78E9voJHwnXQMiQdiqswVLZwJIzdBKJ1GdI5Zx6XwoFKUIk09/sSrr+05QFzvYb8q6Y9pPV45zzDuYa3907TZA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.50.1", + "@rollup/rollup-android-arm64": "4.50.1", + "@rollup/rollup-darwin-arm64": "4.50.1", + "@rollup/rollup-darwin-x64": "4.50.1", + "@rollup/rollup-freebsd-arm64": "4.50.1", + "@rollup/rollup-freebsd-x64": "4.50.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.50.1", + "@rollup/rollup-linux-arm-musleabihf": "4.50.1", + "@rollup/rollup-linux-arm64-gnu": "4.50.1", + "@rollup/rollup-linux-arm64-musl": "4.50.1", + "@rollup/rollup-linux-loongarch64-gnu": "4.50.1", + "@rollup/rollup-linux-ppc64-gnu": "4.50.1", + "@rollup/rollup-linux-riscv64-gnu": "4.50.1", + "@rollup/rollup-linux-riscv64-musl": "4.50.1", + "@rollup/rollup-linux-s390x-gnu": "4.50.1", + "@rollup/rollup-linux-x64-gnu": "4.50.1", + "@rollup/rollup-linux-x64-musl": "4.50.1", + "@rollup/rollup-openharmony-arm64": "4.50.1", + "@rollup/rollup-win32-arm64-msvc": "4.50.1", + "@rollup/rollup-win32-ia32-msvc": "4.50.1", + "@rollup/rollup-win32-x64-msvc": "4.50.1", + "fsevents": "~2.3.2" + } + }, + "node_modules/scheduler": { + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz", + "integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==", + "license": "MIT" + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "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==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "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, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "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, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/vite": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.5.tgz", + "integrity": "sha512-4cKBO9wR75r0BeIWWWId9XK9Lj6La5X846Zw9dFfzMRw38IlTk2iCcUt6hsyiDRcPidc55ZParFYDXi0nXOeLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.25.0", + "fdir": "^6.5.0", + "picomatch": "^4.0.3", + "postcss": "^8.5.6", + "rollup": "^4.43.0", + "tinyglobby": "^0.2.15" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "lightningcss": "^1.21.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "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, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..edf2bf4 --- /dev/null +++ b/package.json @@ -0,0 +1,27 @@ +{ + "name": "lab-hello-rootlearn", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "lint": "eslint .", + "preview": "vite preview" + }, + "dependencies": { + "react": "^19.1.1", + "react-dom": "^19.1.1" + }, + "devDependencies": { + "@eslint/js": "^9.33.0", + "@types/react": "^19.1.10", + "@types/react-dom": "^19.1.7", + "@vitejs/plugin-react-swc": "^4.0.0", + "eslint": "^9.33.0", + "eslint-plugin-react-hooks": "^5.2.0", + "eslint-plugin-react-refresh": "^0.4.20", + "globals": "^16.3.0", + "vite": "^7.1.2" + } +} diff --git a/public/vite.svg b/public/vite.svg new file mode 100644 index 0000000..e7b8dfb --- /dev/null +++ b/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/App.css b/src/App.css new file mode 100644 index 0000000..cc50801 --- /dev/null +++ b/src/App.css @@ -0,0 +1,8 @@ +#root { + width: 1080px; + height: 100%; + margin: 0 auto; + text-align: center; +} + + diff --git a/src/App.jsx b/src/App.jsx new file mode 100644 index 0000000..eb8cf0e --- /dev/null +++ b/src/App.jsx @@ -0,0 +1,17 @@ +import Hero from './components/Hero' +import Features from './components/Features' +import './App.css' + + + +function App() { + return <> + + + + + + +} + +export default App diff --git a/src/assets/1.png b/src/assets/1.png new file mode 100644 index 0000000000000000000000000000000000000000..d1af18ba4cb594308914b286f79cf8c6a42e7755 GIT binary patch literal 8940 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 literal 0 HcmV?d00001 diff --git a/src/assets/2.png b/src/assets/2.png new file mode 100644 index 0000000000000000000000000000000000000000..4b62541ce33649a8acb9a3f44c504480f68e8ba8 GIT binary patch literal 6838 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 UAo>g7|0paaIW=Sz;%(6X0?fV&%m4rY literal 0 HcmV?d00001 diff --git a/src/assets/3.png b/src/assets/3.png new file mode 100644 index 0000000000000000000000000000000000000000..55ec2229c5fb5e78834479a5d3443ced60080f5e GIT binary patch literal 7574 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 literal 0 HcmV?d00001 diff --git a/src/assets/react.svg b/src/assets/react.svg new file mode 100644 index 0000000..9147674 --- /dev/null +++ b/src/assets/react.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/components/Feature.jsx b/src/components/Feature.jsx new file mode 100644 index 0000000..f7672af --- /dev/null +++ b/src/components/Feature.jsx @@ -0,0 +1,13 @@ +function Feature({image, title, description}) { + return ( + <> +
+ {title} +

{title}

+

{description}

+
+ + ); +} + +export default Feature; diff --git a/src/components/Features.jsx b/src/components/Features.jsx new file mode 100644 index 0000000..48d02a8 --- /dev/null +++ b/src/components/Features.jsx @@ -0,0 +1,42 @@ +import Feature from "./Feature"; +import img1 from "../assets/1.png"; +import img2 from "../assets/2.png"; +import img3 from "../assets/3.png"; +import img4 from "../assets/4.png"; +import './features.css' + +function Features() { + return ( + <> +
+ + + + + + + +
+ + ); +} + +export default Features; diff --git a/src/components/Hero.jsx b/src/components/Hero.jsx new file mode 100644 index 0000000..457f9ba --- /dev/null +++ b/src/components/Hero.jsx @@ -0,0 +1,18 @@ +import "./hero.css"; + +function Hero() { + return ( + <> +
+

Say hello to ReactJS

+

+ You will learn a Frontend framework from scratch, to become a Ninja + Developer. +

+ +
+ + ); +} + +export default Hero; diff --git a/src/components/features.css b/src/components/features.css new file mode 100644 index 0000000..2fd2c2e --- /dev/null +++ b/src/components/features.css @@ -0,0 +1,25 @@ +.main { + display: flex; + gap: 30px; + margin: 80px auto; +} + +.feature-div { + text-align: left; + margin: 0 auto; +} + +.feature-img { + width: 120px; +} + +h4 { + font-size: 22px; + margin-left: 12px; + letter-spacing: 2px; +} + +p { + width: 150px; + margin-left: 12px; +} diff --git a/src/components/hero.css b/src/components/hero.css new file mode 100644 index 0000000..b9811bc --- /dev/null +++ b/src/components/hero.css @@ -0,0 +1,30 @@ +* { + box-sizing: border-box; + margin: 0; +} + +.hero-background { + background-color: #1a2134; + height: 500px; + text-align: left; + padding: 90px 0 0 50px; + background-image: url("../assets/react.svg"); + background-repeat: repeat; + background-size: 220px; +} + + +h1 { + color: white; + margin-top: 0; + font-size: 60px; + width: 350px; +} + +h3 { + color: white; + font-weight: 200; + font-size: 18px; + width: 250px; + padding: 0 0 50px 0; +} diff --git a/src/index.css b/src/index.css new file mode 100644 index 0000000..76bb922 --- /dev/null +++ b/src/index.css @@ -0,0 +1,57 @@ +:root { + font-family: system-ui, Avenir, Helvetica, Arial, sans-serif; + line-height: 1.5; + font-weight: 400; + + color-scheme: light dark; + color: rgba(255, 255, 255, 0.87); + background-color: #242424; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + + +body { + margin: 0; + display: flex; + place-items: center; + min-width: 320px; + min-height: 100vh; +} + +h1 { + font-size: 3.2em; + line-height: 1.1; +} + +button { + border-radius: 2px; + border: 1px solid transparent; + padding: 0.6em 1.2em 0.8em; + font-size: 1em; + font-weight: 500; + font-family: inherit; + background-color: #1a1a1a; + cursor: pointer; + transition: border-color 0.25s; +} +button:hover { + border-color: #087df3; +} + + +@media (prefers-color-scheme: light) { + :root { + color: #213547; + background-color: #ffffff; + } + a:hover { + color: #747bff; + } + button { + background-color: #f9f9f9; + } +} diff --git a/src/main.jsx b/src/main.jsx new file mode 100644 index 0000000..b9a1a6d --- /dev/null +++ b/src/main.jsx @@ -0,0 +1,10 @@ +import { StrictMode } from 'react' +import { createRoot } from 'react-dom/client' +import './index.css' +import App from './App.jsx' + +createRoot(document.getElementById('root')).render( + + + , +) diff --git a/vite.config.js b/vite.config.js new file mode 100644 index 0000000..2328e17 --- /dev/null +++ b/vite.config.js @@ -0,0 +1,7 @@ +import { defineConfig } from 'vite' +import react from '@vitejs/plugin-react-swc' + +// https://vite.dev/config/ +export default defineConfig({ + plugins: [react()], +}) From 327197d40455d53a2078e59c480af383ff787304 Mon Sep 17 00:00:00 2001 From: Nazaret Date: Thu, 11 Sep 2025 14:47:00 +0200 Subject: [PATCH 2/2] lab done --- react-logo.svg | 19 ------------------- 1 file changed, 19 deletions(-) delete mode 100644 react-logo.svg diff --git a/react-logo.svg b/react-logo.svg deleted file mode 100644 index 284327b..0000000 --- a/react-logo.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - - react copy 5 - Created with Sketch. - - - - - - - - - - - - - - \ No newline at end of file