From 354e76bb9a400a33e830478bdbed94efef056d8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=B5=9C=EA=B6=8C=EC=A7=84?= Date: Thu, 10 Apr 2025 18:44:45 +0900 Subject: [PATCH 1/8] =?UTF-8?q?=EC=8A=A4=ED=94=84=EB=A6=B0=ED=8A=B8=20?= =?UTF-8?q?=EB=AF=B8=EC=85=98=201~5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 24 + README.md | 12 + eslint.config.js | 33 + index.html | 12 + package-lock.json | 4045 +++++++++++++++++ package.json | 32 + postcss.config.js | 6 + src/App.jsx | 26 + src/Components/Common/ErrorBoundary.jsx | 23 + src/Components/Common/ErrorMessage.jsx | 20 + src/Components/Common/Loading.jsx | 10 + src/Components/Common/Nav.jsx | 49 + src/Components/Home/MainBanner.jsx | 47 + src/Components/Home/MainFooter.jsx | 44 + src/Components/Home/MainHeader.jsx | 25 + src/Components/Home/MainInfoCard.jsx | 39 + src/Components/Home/MainInfoCardItem.jsx | 48 + src/Components/Login/Login.jsx | 158 + src/Components/Signup/Signup.jsx | 223 + src/Components/items/AllProductHeader.jsx | 58 + src/Components/items/AllProducts.jsx | 43 + src/Components/items/BestProducts.jsx | 38 + src/Components/items/Pagination.jsx | 45 + src/Components/items/ProductCard.jsx | 37 + src/Components/items/ProductList.jsx | 18 + src/Components/items/ProductSearchBar.jsx | 27 + src/Components/items/SortDropdown.jsx | 74 + .../items/useAllProductsController.jsx | 43 + src/assets/arrow-down-icon.png | Bin 0 -> 580 bytes src/assets/btn-left.png | Bin 0 -> 3451 bytes src/assets/btn-right.png | Bin 0 -> 3455 bytes src/assets/example.png | Bin 0 -> 37560 bytes src/assets/eyes-on.png | Bin 0 -> 709 bytes src/assets/eyes.png | Bin 0 -> 847 bytes src/assets/facebook.png | Bin 0 -> 387 bytes src/assets/footer.png | Bin 0 -> 56852 bytes src/assets/google.png | Bin 0 -> 5139 bytes src/assets/heart-Icon.png | Bin 0 -> 1210 bytes src/assets/hot-item.png | Bin 0 -> 13381 bytes src/assets/instagram.png | Bin 0 -> 405 bytes src/assets/kakao.png | Bin 0 -> 3881 bytes src/assets/login-button.png | Bin 0 -> 968 bytes src/assets/main.png | Bin 0 -> 49167 bytes src/assets/panda-face-logo.png | Bin 0 -> 1508 bytes src/assets/panda-face.png | Bin 0 -> 3412 bytes src/assets/panda-logo-medium.png | Bin 0 -> 6375 bytes src/assets/panda-logo-small.png | Bin 0 -> 9102 bytes src/assets/panda-logo.png | Bin 0 -> 17977 bytes src/assets/register.png | Bin 0 -> 9841 bytes src/assets/search-icon.png | Bin 0 -> 1307 bytes src/assets/search.png | Bin 0 -> 16452 bytes src/assets/sort-icon.png | Bin 0 -> 1963 bytes src/assets/twiter.png | Bin 0 -> 326 bytes src/assets/youtube.png | Bin 0 -> 288 bytes "src/hooks/\buseProducts.js" | 40 + src/hooks/useResponsiveCount.js | 32 + src/index.css | 15 + src/main.jsx | 5 + src/pages/ErrorPage.jsx | 32 + src/pages/FaqPage.jsx | 5 + src/pages/HomePage.jsx | 36 + src/pages/ItemsPage.jsx | 18 + src/pages/LoginPage.jsx | 11 + src/pages/PrivacyPage.jsx | 5 + src/pages/SignupPage.jsx | 11 + src/utils/fetchProducts.js | 19 + tailwind.config.js | 90 + vite.config.js | 7 + 68 files changed, 5585 insertions(+) create mode 100644 .gitignore create mode 100644 README.md 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 postcss.config.js create mode 100644 src/App.jsx create mode 100644 src/Components/Common/ErrorBoundary.jsx create mode 100644 src/Components/Common/ErrorMessage.jsx create mode 100644 src/Components/Common/Loading.jsx create mode 100644 src/Components/Common/Nav.jsx create mode 100644 src/Components/Home/MainBanner.jsx create mode 100644 src/Components/Home/MainFooter.jsx create mode 100644 src/Components/Home/MainHeader.jsx create mode 100644 src/Components/Home/MainInfoCard.jsx create mode 100644 src/Components/Home/MainInfoCardItem.jsx create mode 100644 src/Components/Login/Login.jsx create mode 100644 src/Components/Signup/Signup.jsx create mode 100644 src/Components/items/AllProductHeader.jsx create mode 100644 src/Components/items/AllProducts.jsx create mode 100644 src/Components/items/BestProducts.jsx create mode 100644 src/Components/items/Pagination.jsx create mode 100644 src/Components/items/ProductCard.jsx create mode 100644 src/Components/items/ProductList.jsx create mode 100644 src/Components/items/ProductSearchBar.jsx create mode 100644 src/Components/items/SortDropdown.jsx create mode 100644 src/Components/items/useAllProductsController.jsx create mode 100644 src/assets/arrow-down-icon.png create mode 100644 src/assets/btn-left.png create mode 100644 src/assets/btn-right.png create mode 100644 src/assets/example.png create mode 100644 src/assets/eyes-on.png create mode 100644 src/assets/eyes.png create mode 100644 src/assets/facebook.png create mode 100644 src/assets/footer.png create mode 100644 src/assets/google.png create mode 100644 src/assets/heart-Icon.png create mode 100644 src/assets/hot-item.png create mode 100644 src/assets/instagram.png create mode 100644 src/assets/kakao.png create mode 100644 src/assets/login-button.png create mode 100644 src/assets/main.png create mode 100644 src/assets/panda-face-logo.png create mode 100644 src/assets/panda-face.png create mode 100644 src/assets/panda-logo-medium.png create mode 100644 src/assets/panda-logo-small.png create mode 100644 src/assets/panda-logo.png create mode 100644 src/assets/register.png create mode 100644 src/assets/search-icon.png create mode 100644 src/assets/search.png create mode 100644 src/assets/sort-icon.png create mode 100644 src/assets/twiter.png create mode 100644 src/assets/youtube.png create mode 100644 "src/hooks/\buseProducts.js" create mode 100644 src/hooks/useResponsiveCount.js create mode 100644 src/index.css create mode 100644 src/main.jsx create mode 100644 src/pages/ErrorPage.jsx create mode 100644 src/pages/FaqPage.jsx create mode 100644 src/pages/HomePage.jsx create mode 100644 src/pages/ItemsPage.jsx create mode 100644 src/pages/LoginPage.jsx create mode 100644 src/pages/PrivacyPage.jsx create mode 100644 src/pages/SignupPage.jsx create mode 100644 src/utils/fetchProducts.js create mode 100644 tailwind.config.js create mode 100644 vite.config.js diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..a547bf36 --- /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 new file mode 100644 index 00000000..fd3b758d --- /dev/null +++ b/README.md @@ -0,0 +1,12 @@ +# React + Vite + +This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. + +Currently, two official plugins are available: + +- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh +- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh + +## Expanding the ESLint configuration + +If you are developing a production application, we recommend using TypeScript and enable type-aware lint rules. Check out the [TS template](https://github.com/vitejs/vite/tree/main/packages/create-vite/template-react-ts) 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 00000000..ec2b712d --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,33 @@ +import js from '@eslint/js' +import globals from 'globals' +import reactHooks from 'eslint-plugin-react-hooks' +import reactRefresh from 'eslint-plugin-react-refresh' + +export default [ + { ignores: ['dist'] }, + { + files: ['**/*.{js,jsx}'], + languageOptions: { + ecmaVersion: 2020, + globals: globals.browser, + parserOptions: { + ecmaVersion: 'latest', + ecmaFeatures: { jsx: true }, + sourceType: 'module', + }, + }, + plugins: { + 'react-hooks': reactHooks, + 'react-refresh': reactRefresh, + }, + rules: { + ...js.configs.recommended.rules, + ...reactHooks.configs.recommended.rules, + 'no-unused-vars': ['error', { varsIgnorePattern: '^[A-Z_]' }], + 'react-refresh/only-export-components': [ + 'warn', + { allowConstantExport: true }, + ], + }, + }, +] diff --git a/index.html b/index.html new file mode 100644 index 00000000..fe212c23 --- /dev/null +++ b/index.html @@ -0,0 +1,12 @@ + + + + + + 판다마켓 + + +
+ + + diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..8178319b --- /dev/null +++ b/package-lock.json @@ -0,0 +1,4045 @@ +{ + "name": "sprint_mission_5", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "sprint_mission_5", + "version": "0.0.0", + "dependencies": { + "classnames": "^2.5.1", + "react": "^19.0.0", + "react-dom": "^19.0.0", + "react-router-dom": "^7.2.0" + }, + "devDependencies": { + "@eslint/js": "^9.21.0", + "@types/react": "^19.0.10", + "@types/react-dom": "^19.0.4", + "@vitejs/plugin-react": "^4.3.4", + "autoprefixer": "^10.4.20", + "eslint": "^9.21.0", + "eslint-plugin-react-hooks": "^5.1.0", + "eslint-plugin-react-refresh": "^0.4.19", + "globals": "^15.15.0", + "postcss": "^8.5.3", + "tailwindcss": "^3.4.17", + "vite": "^6.2.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, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.26.8", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.8.tgz", + "integrity": "sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.9.tgz", + "integrity": "sha512-lWBYIrF7qK5+GjY5Uy+/hEgp8OJWOD/rpy74GplYRhEauvbHDeFB8t5hPOZxCZ0Oxf4Cc36tK51/l3ymJysrKw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.9", + "@babel/helper-compilation-targets": "^7.26.5", + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helpers": "^7.26.9", + "@babel/parser": "^7.26.9", + "@babel/template": "^7.26.9", + "@babel/traverse": "^7.26.9", + "@babel/types": "^7.26.9", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.9.tgz", + "integrity": "sha512-kEWdzjOAUMW4hAyrzJ0ZaTOu9OmpyDIQicIh0zg0EEcEkYXZb2TjtBhnHi2ViX7PKwZqF4xwqfAm299/QMP3lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.26.9", + "@babel/types": "^7.26.9", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.26.5.tgz", + "integrity": "sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.26.5", + "@babel/helper-validator-option": "^7.25.9", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", + "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz", + "integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", + "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.9.tgz", + "integrity": "sha512-Mz/4+y8udxBKdmzt/UjPACs4G3j5SshJJEFFKxlCGPydG4JAHXxjWjAwjd09tf6oINvl1VfMJo+nB7H2YKQ0dA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.26.9", + "@babel/types": "^7.26.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.9.tgz", + "integrity": "sha512-81NWa1njQblgZbQHxWHpxxCzNsa3ZwvFqpUg7P+NNUU6f3UU2jBEg4OlF/J6rl8+PQGh1q6/zWScd001YwcA5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.26.9" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.25.9.tgz", + "integrity": "sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.25.9.tgz", + "integrity": "sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.26.9.tgz", + "integrity": "sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.26.2", + "@babel/parser": "^7.26.9", + "@babel/types": "^7.26.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.9.tgz", + "integrity": "sha512-ZYW7L+pL8ahU5fXmNbPF+iZFHCv5scFak7MZ9bwaRPLUhHh7QQEMjZUg0HevihoqCM5iSYHN61EyCoZvqC+bxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.9", + "@babel/parser": "^7.26.9", + "@babel/template": "^7.26.9", + "@babel/types": "^7.26.9", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/types": { + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.9.tgz", + "integrity": "sha512-Y3IR1cRnOxOCDvMmNiym7XpXQ93iGDDPHx+Zj+NM+rg0fBaShfQLkg+hKPaZCEvg5N/LeCo4+Rj/i3FuJsIQaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.0.tgz", + "integrity": "sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.0.tgz", + "integrity": "sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.0.tgz", + "integrity": "sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.0.tgz", + "integrity": "sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.0.tgz", + "integrity": "sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.0.tgz", + "integrity": "sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.0.tgz", + "integrity": "sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.0.tgz", + "integrity": "sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.0.tgz", + "integrity": "sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.0.tgz", + "integrity": "sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.0.tgz", + "integrity": "sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.0.tgz", + "integrity": "sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.0.tgz", + "integrity": "sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.0.tgz", + "integrity": "sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.0.tgz", + "integrity": "sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.0.tgz", + "integrity": "sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.0.tgz", + "integrity": "sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.0.tgz", + "integrity": "sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.0.tgz", + "integrity": "sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.0.tgz", + "integrity": "sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.0.tgz", + "integrity": "sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.0.tgz", + "integrity": "sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.0.tgz", + "integrity": "sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.0.tgz", + "integrity": "sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.0.tgz", + "integrity": "sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", + "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", + "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.19.2", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.2.tgz", + "integrity": "sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==", + "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/core": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.12.0.tgz", + "integrity": "sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==", + "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.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.0.tgz", + "integrity": "sha512-yaVPAiNAalnCZedKLdR21GOGILMLKPyqSLWaAjQFvYA2i/ciDi8ArYVr69Anohb6cH2Ukhqti4aFnYyPm8wdwQ==", + "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.21.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.21.0.tgz", + "integrity": "sha512-BqStZ3HX8Yz6LvsF5ByXYrtigrV5AXADWLAGc7PH/1SxOb7/FIYYMszZZWiUou/GB9P2lXWk2SV4d+Z8h0nknw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "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.2.7", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.7.tgz", + "integrity": "sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.12.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, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", + "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.3.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "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.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.2.tgz", + "integrity": "sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", + "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.34.9.tgz", + "integrity": "sha512-qZdlImWXur0CFakn2BJ2znJOdqYZKiedEPEVNTBrpfPjc/YuTGcaYZcdmNFTkUj3DU0ZM/AElcM8Ybww3xVLzA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.34.9.tgz", + "integrity": "sha512-4KW7P53h6HtJf5Y608T1ISKvNIYLWRKMvfnG0c44M6In4DQVU58HZFEVhWINDZKp7FZps98G3gxwC1sb0wXUUg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.34.9.tgz", + "integrity": "sha512-0CY3/K54slrzLDjOA7TOjN1NuLKERBgk9nY5V34mhmuu673YNb+7ghaDUs6N0ujXR7fz5XaS5Aa6d2TNxZd0OQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.34.9.tgz", + "integrity": "sha512-eOojSEAi/acnsJVYRxnMkPFqcxSMFfrw7r2iD9Q32SGkb/Q9FpUY1UlAu1DH9T7j++gZ0lHjnm4OyH2vCI7l7Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.34.9.tgz", + "integrity": "sha512-2lzjQPJbN5UnHm7bHIUKFMulGTQwdvOkouJDpPysJS+QFBGDJqcfh+CxxtG23Ik/9tEvnebQiylYoazFMAgrYw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.34.9.tgz", + "integrity": "sha512-SLl0hi2Ah2H7xQYd6Qaiu01kFPzQ+hqvdYSoOtHYg/zCIFs6t8sV95kaoqjzjFwuYQLtOI0RZre/Ke0nPaQV+g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.34.9.tgz", + "integrity": "sha512-88I+D3TeKItrw+Y/2ud4Tw0+3CxQ2kLgu3QvrogZ0OfkmX/DEppehus7L3TS2Q4lpB+hYyxhkQiYPJ6Mf5/dPg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.34.9.tgz", + "integrity": "sha512-3qyfWljSFHi9zH0KgtEPG4cBXHDFhwD8kwg6xLfHQ0IWuH9crp005GfoUUh/6w9/FWGBwEHg3lxK1iHRN1MFlA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.34.9.tgz", + "integrity": "sha512-6TZjPHjKZUQKmVKMUowF3ewHxctrRR09eYyvT5eFv8w/fXarEra83A2mHTVJLA5xU91aCNOUnM+DWFMSbQ0Nxw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.34.9.tgz", + "integrity": "sha512-LD2fytxZJZ6xzOKnMbIpgzFOuIKlxVOpiMAXawsAZ2mHBPEYOnLRK5TTEsID6z4eM23DuO88X0Tq1mErHMVq0A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.34.9.tgz", + "integrity": "sha512-dRAgTfDsn0TE0HI6cmo13hemKpVHOEyeciGtvlBTkpx/F65kTvShtY/EVyZEIfxFkV5JJTuQ9tP5HGBS0hfxIg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.34.9.tgz", + "integrity": "sha512-PHcNOAEhkoMSQtMf+rJofwisZqaU8iQ8EaSps58f5HYll9EAY5BSErCZ8qBDMVbq88h4UxaNPlbrKqfWP8RfJA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.34.9.tgz", + "integrity": "sha512-Z2i0Uy5G96KBYKjeQFKbbsB54xFOL5/y1P5wNBsbXB8yE+At3oh0DVMjQVzCJRJSfReiB2tX8T6HUFZ2k8iaKg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.34.9.tgz", + "integrity": "sha512-U+5SwTMoeYXoDzJX5dhDTxRltSrIax8KWwfaaYcynuJw8mT33W7oOgz0a+AaXtGuvhzTr2tVKh5UO8GVANTxyQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.34.9.tgz", + "integrity": "sha512-FwBHNSOjUTQLP4MG7y6rR6qbGw4MFeQnIBrMe161QGaQoBQLqSUEKlHIiVgF3g/mb3lxlxzJOpIBhaP+C+KP2A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.34.9.tgz", + "integrity": "sha512-cYRpV4650z2I3/s6+5/LONkjIz8MBeqrk+vPXV10ORBnshpn8S32bPqQ2Utv39jCiDcO2eJTuSlPXpnvmaIgRA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.34.9.tgz", + "integrity": "sha512-z4mQK9dAN6byRA/vsSgQiPeuO63wdiDxZ9yg9iyX2QTzKuQM7T4xlBoeUP/J8uiFkqxkcWndWi+W7bXdPbt27Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.34.9.tgz", + "integrity": "sha512-KB48mPtaoHy1AwDNkAJfHXvHp24H0ryZog28spEs0V48l3H1fr4i37tiyHsgKZJnCmvxsbATdZGBpbmxTE3a9w==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.34.9.tgz", + "integrity": "sha512-AyleYRPU7+rgkMWbEh71fQlrzRfeP6SyMnRf9XX4fCdDPAJumdSBqYEcWPMzVQ4ScAl7E4oFfK0GUVn77xSwbw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", + "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==", + "license": "MIT" + }, + "node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "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.0.10", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.0.10.tgz", + "integrity": "sha512-JuRQ9KXLEjaUNjTWpzuR231Z2WpIwczOkBEIvbHNCzQefFIT0L8IqE6NV6ULLyC1SI/i234JnDoMkfg+RjQj2g==", + "dev": true, + "license": "MIT", + "dependencies": { + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "19.0.4", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.0.4.tgz", + "integrity": "sha512-4fSQ8vWFkg+TGhePfUzVmat3eC14TXYSsiiDSLI0dVLsrm9gZFABjPy/Qu6TKgl1tq1Bu1yDsuQgY3A3DOjCcg==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "^19.0.0" + } + }, + "node_modules/@vitejs/plugin-react": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.4.tgz", + "integrity": "sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.26.0", + "@babel/plugin-transform-react-jsx-self": "^7.25.9", + "@babel/plugin-transform-react-jsx-source": "^7.25.9", + "@types/babel__core": "^7.20.5", + "react-refresh": "^0.14.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.2.0 || ^5.0.0 || ^6.0.0" + } + }, + "node_modules/acorn": { + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "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-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "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/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true, + "license": "MIT" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true, + "license": "MIT" + }, + "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/autoprefixer": { + "version": "10.4.20", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz", + "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.3", + "caniuse-lite": "^1.0.30001646", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.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/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "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, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", + "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001688", + "electron-to-chromium": "^1.5.73", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.1" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "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/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001701", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001701.tgz", + "integrity": "sha512-faRs/AW3jA9nTwmJBSO1PQ6L/EOgsB5HMQQq4iCu5zhPgVVgO/pZRHlmatwijZKetFw8/Pr4q6dEN8sJuq8qTw==", + "dev": true, + "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" + } + ], + "license": "CC-BY-4.0" + }, + "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/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/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, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/classnames": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", + "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==", + "license": "MIT" + }, + "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/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "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/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cookie": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.0.2.tgz", + "integrity": "sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "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/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "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.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "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/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true, + "license": "MIT" + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true, + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.109", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.109.tgz", + "integrity": "sha512-AidaH9JETVRr9DIPGfp1kAarm/W6hRJTPuCnkF+2MqhF4KaAgRIcBc8nvjk+YMXZhwfISof/7WG29eS4iGxQLQ==", + "dev": true, + "license": "ISC" + }, + "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, + "license": "MIT" + }, + "node_modules/esbuild": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.0.tgz", + "integrity": "sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.0", + "@esbuild/android-arm": "0.25.0", + "@esbuild/android-arm64": "0.25.0", + "@esbuild/android-x64": "0.25.0", + "@esbuild/darwin-arm64": "0.25.0", + "@esbuild/darwin-x64": "0.25.0", + "@esbuild/freebsd-arm64": "0.25.0", + "@esbuild/freebsd-x64": "0.25.0", + "@esbuild/linux-arm": "0.25.0", + "@esbuild/linux-arm64": "0.25.0", + "@esbuild/linux-ia32": "0.25.0", + "@esbuild/linux-loong64": "0.25.0", + "@esbuild/linux-mips64el": "0.25.0", + "@esbuild/linux-ppc64": "0.25.0", + "@esbuild/linux-riscv64": "0.25.0", + "@esbuild/linux-s390x": "0.25.0", + "@esbuild/linux-x64": "0.25.0", + "@esbuild/netbsd-arm64": "0.25.0", + "@esbuild/netbsd-x64": "0.25.0", + "@esbuild/openbsd-arm64": "0.25.0", + "@esbuild/openbsd-x64": "0.25.0", + "@esbuild/sunos-x64": "0.25.0", + "@esbuild/win32-arm64": "0.25.0", + "@esbuild/win32-ia32": "0.25.0", + "@esbuild/win32-x64": "0.25.0" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "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.21.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.21.0.tgz", + "integrity": "sha512-KjeihdFqTPhOMXTt7StsDxriV4n66ueuF/jfPNC3j/lduHwr/ijDwJMsF+wyMJethgiKi5wniIE243vi07d3pg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.19.2", + "@eslint/core": "^0.12.0", + "@eslint/eslintrc": "^3.3.0", + "@eslint/js": "9.21.0", + "@eslint/plugin-kit": "^0.2.7", + "@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.2.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.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.19", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.19.tgz", + "integrity": "sha512-eyy8pcr/YxSYjBoqIFSrlbn9i/xvxUFa8CjzAYo9cFjgGXqq1hyjihcpZvxRLalpaWmueWR81xn7vuKmAFijDQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "eslint": ">=8.40" + } + }, + "node_modules/eslint-scope": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz", + "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", + "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.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "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.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", + "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.14.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.0" + }, + "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-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "dev": true, + "license": "MIT", + "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/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, + "license": "ISC", + "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, + "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/fastq": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", + "dev": true, + "license": "ISC", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "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/foreground-child": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.6", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "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/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, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "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/glob/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/glob/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, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/globals": { + "version": "15.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz", + "integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==", + "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/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "license": "MIT", + "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, + "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-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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, + "license": "MIT", + "dependencies": { + "hasown": "^2.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, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "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/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, + "license": "MIT", + "engines": { + "node": ">=0.12.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/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jiti": { + "version": "1.21.7", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", + "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", + "dev": true, + "license": "MIT", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "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, + "license": "MIT" + }, + "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/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "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/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "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/lilconfig": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true, + "license": "MIT" + }, + "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/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "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/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", + "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/node-releases": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "dev": true, + "license": "MIT" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.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, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "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/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true, + "license": "BlueOak-1.0.0" + }, + "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/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, + "license": "MIT" + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, + "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": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss": { + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", + "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", + "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.8", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dev": true, + "license": "MIT", + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-nested": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.1.1" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true, + "license": "MIT" + }, + "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/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" + } + ], + "license": "MIT" + }, + "node_modules/react": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/react/-/react-19.0.0.tgz", + "integrity": "sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.0.0.tgz", + "integrity": "sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==", + "license": "MIT", + "dependencies": { + "scheduler": "^0.25.0" + }, + "peerDependencies": { + "react": "^19.0.0" + } + }, + "node_modules/react-refresh": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", + "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-router": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.2.0.tgz", + "integrity": "sha512-fXyqzPgCPZbqhrk7k3hPcCpYIlQ2ugIXDboHUzhJISFVy2DEPsmHgN588MyGmkIOv3jDgNfUE3kJi83L28s/LQ==", + "license": "MIT", + "dependencies": { + "@types/cookie": "^0.6.0", + "cookie": "^1.0.1", + "set-cookie-parser": "^2.6.0", + "turbo-stream": "2.4.0" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + } + } + }, + "node_modules/react-router-dom": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.2.0.tgz", + "integrity": "sha512-cU7lTxETGtQRQbafJubvZKHEn5izNABxZhBY0Jlzdv0gqQhCPQt2J8aN5ZPjS6mQOXn5NnirWNh+FpE8TTYN0Q==", + "license": "MIT", + "dependencies": { + "react-router": "7.2.0" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rollup": { + "version": "4.34.9", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.34.9.tgz", + "integrity": "sha512-nF5XYqWWp9hx/LrpC8sZvvvmq0TeTjQgaZHYmAgwysT9nh8sWnZhBnM8ZyVbbJFIQBLwHDNoMqsBZBbUo4U8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.6" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.34.9", + "@rollup/rollup-android-arm64": "4.34.9", + "@rollup/rollup-darwin-arm64": "4.34.9", + "@rollup/rollup-darwin-x64": "4.34.9", + "@rollup/rollup-freebsd-arm64": "4.34.9", + "@rollup/rollup-freebsd-x64": "4.34.9", + "@rollup/rollup-linux-arm-gnueabihf": "4.34.9", + "@rollup/rollup-linux-arm-musleabihf": "4.34.9", + "@rollup/rollup-linux-arm64-gnu": "4.34.9", + "@rollup/rollup-linux-arm64-musl": "4.34.9", + "@rollup/rollup-linux-loongarch64-gnu": "4.34.9", + "@rollup/rollup-linux-powerpc64le-gnu": "4.34.9", + "@rollup/rollup-linux-riscv64-gnu": "4.34.9", + "@rollup/rollup-linux-s390x-gnu": "4.34.9", + "@rollup/rollup-linux-x64-gnu": "4.34.9", + "@rollup/rollup-linux-x64-musl": "4.34.9", + "@rollup/rollup-win32-arm64-msvc": "4.34.9", + "@rollup/rollup-win32-ia32-msvc": "4.34.9", + "@rollup/rollup-win32-x64-msvc": "4.34.9", + "fsevents": "~2.3.2" + } + }, + "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" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/scheduler": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.25.0.tgz", + "integrity": "sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==", + "license": "MIT" + }, + "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, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/set-cookie-parser": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz", + "integrity": "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==", + "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/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "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/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/string-width-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "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/sucrase": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "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/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, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tailwindcss": { + "version": "3.4.17", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.17.tgz", + "integrity": "sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.6.0", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.2", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.6", + "lilconfig": "^3.1.3", + "micromatch": "^4.0.8", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.1.1", + "postcss": "^8.4.47", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.2", + "postcss-nested": "^6.2.0", + "postcss-selector-parser": "^6.1.2", + "resolve": "^1.22.8", + "sucrase": "^3.35.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "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, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/turbo-stream": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/turbo-stream/-/turbo-stream-2.4.0.tgz", + "integrity": "sha512-FHncC10WpBd2eOmGwpmQsWLDoK4cqsA/UT/GqNoaKOQnT8uzhtCbg3EoUDMvqpOSAI0S26mr0rkjzbOO6S3v1g==", + "license": "ISC" + }, + "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/update-browserslist-db": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", + "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.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/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/vite": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.2.0.tgz", + "integrity": "sha512-7dPxoo+WsT/64rDcwoOjk76XHj+TqNTIvHKcuMQ1k4/SeHDaQt5GFAeLYzrimZrMpn/O6DtdI03WUjdxuPM0oQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.25.0", + "postcss": "^8.5.3", + "rollup": "^4.30.1" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "jiti": ">=1.21.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "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/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" + }, + "node_modules/yaml": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz", + "integrity": "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==", + "dev": true, + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } + }, + "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 00000000..3ba91d69 --- /dev/null +++ b/package.json @@ -0,0 +1,32 @@ +{ + "name": "sprint_mission_5", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "lint": "eslint .", + "preview": "vite preview" + }, + "dependencies": { + "classnames": "^2.5.1", + "react": "^19.0.0", + "react-dom": "^19.0.0", + "react-router-dom": "^7.2.0" + }, + "devDependencies": { + "@eslint/js": "^9.21.0", + "@types/react": "^19.0.10", + "@types/react-dom": "^19.0.4", + "@vitejs/plugin-react": "^4.3.4", + "autoprefixer": "^10.4.20", + "eslint": "^9.21.0", + "eslint-plugin-react-hooks": "^5.1.0", + "eslint-plugin-react-refresh": "^0.4.19", + "globals": "^15.15.0", + "postcss": "^8.5.3", + "tailwindcss": "^3.4.17", + "vite": "^6.2.0" + } +} diff --git a/postcss.config.js b/postcss.config.js new file mode 100644 index 00000000..2e7af2b7 --- /dev/null +++ b/postcss.config.js @@ -0,0 +1,6 @@ +export default { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +} diff --git a/src/App.jsx b/src/App.jsx new file mode 100644 index 00000000..9b6ddd00 --- /dev/null +++ b/src/App.jsx @@ -0,0 +1,26 @@ +import { BrowserRouter as Router, Routes, Route } from "react-router-dom"; +import HomePage from "./pages/HomePage"; +import LoginPage from "./pages/LoginPage"; +import ItemsPage from "./pages/ItemsPage"; +import FaqPage from "./pages/FaqPage"; +import PrivacyPage from "./pages/PrivacyPage"; +import SignupPage from "./pages/SignupPage"; +import ErrorPage from "./pages/ErrorPage"; + +function App() { + return ( + + + } /> + } /> + } /> + } /> + } /> + } /> + } /> + + + ); +} + +export default App; diff --git a/src/Components/Common/ErrorBoundary.jsx b/src/Components/Common/ErrorBoundary.jsx new file mode 100644 index 00000000..bd1abc86 --- /dev/null +++ b/src/Components/Common/ErrorBoundary.jsx @@ -0,0 +1,23 @@ +import { Component } from "react"; +import { Navigate } from "react-router-dom"; + +class ErrorBoundary extends Component { + state = { hasError: false }; + + static getDerivedStateFromError() { + return { hasError: true }; + } + + componentDidCatch(error, info) { + console.error("에러바운더리로부터 에러를 잡았습니다.", error, info); + } + + render() { + if (this.state.hasError) { + return ; + } + return this.props.children; + } +} + +export default ErrorBoundary; diff --git a/src/Components/Common/ErrorMessage.jsx b/src/Components/Common/ErrorMessage.jsx new file mode 100644 index 00000000..5bf6a81c --- /dev/null +++ b/src/Components/Common/ErrorMessage.jsx @@ -0,0 +1,20 @@ +const ErrorMessage = ({ + message = "데이터를 불러오는데 실패했어요 😥", + onRetry, +}) => { + return ( +
+

{message}

+ {onRetry && ( + + )} +
+ ); +}; + +export default ErrorMessage; diff --git a/src/Components/Common/Loading.jsx b/src/Components/Common/Loading.jsx new file mode 100644 index 00000000..6c47531a --- /dev/null +++ b/src/Components/Common/Loading.jsx @@ -0,0 +1,10 @@ +const Loading = ({ message = "로딩 중입니다..." }) => { + return ( +
+
+

{message}

+
+ ); +}; + +export default Loading; diff --git a/src/Components/Common/Nav.jsx b/src/Components/Common/Nav.jsx new file mode 100644 index 00000000..1af672a1 --- /dev/null +++ b/src/Components/Common/Nav.jsx @@ -0,0 +1,49 @@ +import pandaFace from "../../assets/panda-face.png"; +import pandaFaceLogo from "../../assets/panda-logo.png"; +import { Link } from "react-router-dom"; + +const Nav = ({ darkMode }) => { + return ( + + ); +}; + +export default Nav; diff --git a/src/Components/Home/MainBanner.jsx b/src/Components/Home/MainBanner.jsx new file mode 100644 index 00000000..8c12ccb9 --- /dev/null +++ b/src/Components/Home/MainBanner.jsx @@ -0,0 +1,47 @@ +import React from "react"; +import { Link } from "react-router-dom"; + +const MainBanner = ({ + title, + title2, + buttonText, + image, + showButton, + height, + margintop, +}) => { + return ( +
+
+ + {title} + {title === "믿을 수 있는" ?
: null} + {title2} +
+ {showButton && ( + + + {buttonText} + + + )} +
+ panda-image +
+ ); +}; + +export default MainBanner; diff --git a/src/Components/Home/MainFooter.jsx b/src/Components/Home/MainFooter.jsx new file mode 100644 index 00000000..918af896 --- /dev/null +++ b/src/Components/Home/MainFooter.jsx @@ -0,0 +1,44 @@ +import { Link } from "react-router-dom"; + +import facebookimg from "../../assets/facebook.png"; +import ximg from "../../assets/twiter.png"; +import instagramimg from "../../assets/instagram.png"; +import youtubeimg from "../../assets/youtube.png"; + +const MainFooter = () => { + return ( +
+
+
+ + ©codeit - 2024 + +
+ +
+ Privacy Policy + FAQ +
+
+ + facebook image + + + + x image + + + + instagram image + + + + youtube image + +
+
+
+ ); +}; + +export default MainFooter; diff --git a/src/Components/Home/MainHeader.jsx b/src/Components/Home/MainHeader.jsx new file mode 100644 index 00000000..ea5d6d8e --- /dev/null +++ b/src/Components/Home/MainHeader.jsx @@ -0,0 +1,25 @@ +import { Link } from "react-router-dom"; + +import pandaLogo from "../../assets/panda-logo.png"; + +const Header = () => { + return ( +
+ + panda logo image + + + 로그인 + +
+ ); +}; + +export default Header; diff --git a/src/Components/Home/MainInfoCard.jsx b/src/Components/Home/MainInfoCard.jsx new file mode 100644 index 00000000..b456526b --- /dev/null +++ b/src/Components/Home/MainInfoCard.jsx @@ -0,0 +1,39 @@ +import MainInfoCardItem from "./MainInfoCardItem"; + +import img1 from "../../assets/hot-item.png"; +import img2 from "../../assets/search.png"; +import img3 from "../../assets/register.png"; + +const MainInfoCard = () => { + return ( +
+ + + +
+ ); +}; + +export default MainInfoCard; diff --git a/src/Components/Home/MainInfoCardItem.jsx b/src/Components/Home/MainInfoCardItem.jsx new file mode 100644 index 00000000..3e34e854 --- /dev/null +++ b/src/Components/Home/MainInfoCardItem.jsx @@ -0,0 +1,48 @@ +const MainInfoCardItem = ({ + title, + title2, + description, + description2, + image, + highlightText, + reverse, +}) => { + return ( +
+
+ feature + +
+
+ {highlightText} +
+ +
+ {title}
+ {title2} +
+ +
+ {description}
{description2} +
+
+
+
+ ); +}; + +export default MainInfoCardItem; diff --git a/src/Components/Login/Login.jsx b/src/Components/Login/Login.jsx new file mode 100644 index 00000000..c6d396a5 --- /dev/null +++ b/src/Components/Login/Login.jsx @@ -0,0 +1,158 @@ +import { Link, useNavigate } from "react-router-dom"; +import { useState } from "react"; + +import pandaLogo from "../../assets/panda-logo.png"; +import kakaoImg from "../../assets/kakao.png"; +import googleImg from "../../assets/google.png"; +import eyesOn from "../../assets/eyes-on.png"; +import eyes from "../../assets/eyes.png"; + +const Login = () => { + const [email, setEmail] = useState(""); + const [password, setPassword] = useState(""); + const [emailError, setEmailError] = useState(""); + const [passwordError, setPasswordError] = useState(""); + const [showPassword, setShowPassword] = useState(false); + const navigate = useNavigate(); + + const validateEmail = () => { + if (email.trim() === "") { + setEmailError("이메일을 입력해주세요."); + } else if (!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email)) { + setEmailError("잘못된 이메일 형식입니다"); + } else { + setEmailError(""); + } + }; + + const validatePassword = () => { + if (password.trim() === "") { + setPasswordError("비밀번호를 입력해주세요."); + } else if (password.length < 8) { + setPasswordError("비밀번호를 8자 이상 입력해주세요."); + } else { + setPasswordError(""); + } + }; + + const isFormValid = + email && password && emailError === "" && passwordError === ""; + + const handleSubmit = (e) => { + e.preventDefault(); + validateEmail(); + validatePassword(); + + if (isFormValid) { + navigate("/items"); + } + }; + + return ( +
+
+
+ + panda-logo + +
+
+
+ + setEmail(e.target.value)} + onBlur={validateEmail} + className={`input-primary tablet:h-[64px] pc:h-[72px] ${ + emailError ? "border border-red-500 mb-[8px]" : "" + }`} + /> + {emailError && ( +

+ {emailError} +

+ )} + + +
+ setPassword(e.target.value)} + onBlur={validatePassword} + className={`input-primary tablet:h-[64px] pc:h-[72px] ${ + passwordError ? "border border-red-500 mb-[8px]" : "" + }`} + /> + +
+ {passwordError && ( +

+ {passwordError} +

+ )} + + +
+ +
+ + 간편 로그인하기 + + + google-logo + kakao-logo + +
+ +
+ 판다마켓이 처음이신가요? + + 회원가입 + +
+
+
+
+ ); +}; + +export default Login; diff --git a/src/Components/Signup/Signup.jsx b/src/Components/Signup/Signup.jsx new file mode 100644 index 00000000..9d28527c --- /dev/null +++ b/src/Components/Signup/Signup.jsx @@ -0,0 +1,223 @@ +import { useState } from "react"; +import { Link, useNavigate } from "react-router-dom"; + +import pandaLogo from "../../assets/panda-logo.png"; +import kakaoImg from "../../assets/kakao.png"; +import googleImg from "../../assets/google.png"; +import eyesOn from "../../assets/eyes-on.png"; +import eyes from "../../assets/eyes.png"; + +const Signup = () => { + const [email, setEmail] = useState(""); + const [nickname, setNickname] = useState(""); + const [password, setPassword] = useState(""); + const [confirmPassword, setConfirmPassword] = useState(""); + const [emailError, setEmailError] = useState(""); + const [passwordError, setPasswordError] = useState(""); + const [confirmError, setConfirmError] = useState(""); + const [showPassword, setShowPassword] = useState(false); + const navigate = useNavigate(); + + const validateEmail = () => { + if (email.trim() === "") { + setEmailError("이메일을 입력해주세요."); + } else if (!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email)) { + setEmailError("잘못된 이메일 형식입니다"); + } else { + setEmailError(""); + } + }; + + const validatePassword = () => { + if (password.trim() === "") { + setPasswordError("비밀번호를 입력해주세요."); + } else if (password.length < 8) { + setPasswordError("비밀번호를 8자 이상 입력해주세요."); + } else { + setPasswordError(""); + } + }; + + const validateConfirmPassword = () => { + if (confirmPassword.trim() === "") { + setConfirmError("비밀번호를 입력해주세요."); + } else if (confirmPassword !== password) { + setConfirmError("비밀번호가 일치하지 않습니다."); + } else { + setConfirmError(""); + } + }; + + const isFormValid = + email && + nickname && + password && + confirmPassword && + !emailError && + !passwordError && + !confirmError; + + const handleSubmit = (e) => { + e.preventDefault(); + validateEmail(); + validatePassword(); + validateConfirmPassword(); + + if (isFormValid) { + navigate("/items"); + } + }; + + return ( +
+
+
+ + panda-logo + +
+
+
+ + setEmail(e.target.value)} + onBlur={validateEmail} + placeholder="이메일을 입력해주세요" + className={`input-primary tablet:h-[64px] pc:h-[72px] ${ + emailError ? "border border-red-500 mb-[8px]" : "" + }`} + /> + {emailError && ( +

+ {emailError} +

+ )} + + + setNickname(e.target.value)} + placeholder="닉네임을 입력해주세요" + className="input-primary tablet:h-[64px] pc:h-[72px]" + /> + + +
+ setPassword(e.target.value)} + onBlur={validatePassword} + placeholder="비밀번호를 입력해주세요" + className={`input-primary tablet:h-[64px] pc:h-[72px] ${ + passwordError ? "border border-red-500 mb-[8px]" : "" + }`} + /> + +
+ {passwordError && ( +

+ {passwordError} +

+ )} + + +
+ setConfirmPassword(e.target.value)} + onBlur={validateConfirmPassword} + placeholder="비밀번호를 입력해주세요" + className={`input-primary tablet:h-[64px] pc:h-[72px] ${ + confirmError ? "border border-red-500 mb-[8px]" : "" + }`} + /> + +
+ {confirmError && ( +

+ {confirmError} +

+ )} + + +
+ +
+ + 간편 로그인하기 + + + google-logo + kakao-logo + +
+ +
+ 이미 회원이신가요? + + 로그인 + +
+
+
+
+ ); +}; + +export default Signup; diff --git a/src/Components/items/AllProductHeader.jsx b/src/Components/items/AllProductHeader.jsx new file mode 100644 index 00000000..f7ac09b0 --- /dev/null +++ b/src/Components/items/AllProductHeader.jsx @@ -0,0 +1,58 @@ +import { Link } from "react-router-dom"; +import SortDropdown from "./SortDropdown"; +import ProductSearchBar from "./ProductSearchBar"; + +const AllProductHeader = ({ + sortOption, + setSortOption, + searchKeyword, + setSearchKeyword, +}) => { + return ( + <> + {/* ✅ 모바일: 제목 + 등록버튼 (tablet 이상에서는 hidden) */} +
+

전체 상품

+ +
+ 상품 등록하기 +
+ +
+ {/* ✅ 모바일: 검색창 + 정렬 드롭다운 버튼 */} +
+ +
+ +
+
+ {/* ✅ 태블릿 이상: 제목 + 정렬 드롭다운 + 상품 등록 버튼 */} +
+

전체 상품

+
+ + + +
+ 상품 등록하기 +
+ +
+
+ + ); +}; + +export default AllProductHeader; diff --git a/src/Components/items/AllProducts.jsx b/src/Components/items/AllProducts.jsx new file mode 100644 index 00000000..19e71d54 --- /dev/null +++ b/src/Components/items/AllProducts.jsx @@ -0,0 +1,43 @@ +import Pagination from "./Pagination"; +import AllProductHeader from "./AllProductHeader"; +import ProductList from "./productList"; +import useAllProductsController from "./useAllProductsController"; + +const AllProcuts = () => { + const { + sortOption, + setSortOption, + searchKeyword, + setSearchKeyword, + products, + isLoading, + visibleCount, + currentPage, + handlePageClick, + } = useAllProductsController(); + + return ( +
+
+ +
+
+ {isLoading ? ( +

로딩 중...

+ ) : ( + + )} +
+ {searchKeyword ? null : ( + + )} +
+ ); +}; + +export default AllProcuts; diff --git a/src/Components/items/BestProducts.jsx b/src/Components/items/BestProducts.jsx new file mode 100644 index 00000000..93b0f60f --- /dev/null +++ b/src/Components/items/BestProducts.jsx @@ -0,0 +1,38 @@ +import ProductCard from "./ProductCard"; +import ErrorMessage from "../Common/ErrorMessage"; +import Loading from "../Common/Loading"; +import useResponsiveCount from "../../hooks/useResponsiveCount"; +import useProducts from "../../hooks/\buseProducts"; + +const BestProducts = () => { + const { products, isLoading, hasError } = useProducts({ + orderBy: "favorite", + page: 1, + pageSize: 10, + }); + const visibleCount = useResponsiveCount({ pc: 4, tablet: 2, mobile: 1 }); + + if (isLoading) return ; + if (hasError) + return ( + window.location.reload()} + /> + ); + + return ( +
+
+
베스트 상품
+
+ {products.slice(0, visibleCount).map((product) => ( + + ))} +
+
+
+ ); +}; + +export default BestProducts; diff --git a/src/Components/items/Pagination.jsx b/src/Components/items/Pagination.jsx new file mode 100644 index 00000000..ad38efb1 --- /dev/null +++ b/src/Components/items/Pagination.jsx @@ -0,0 +1,45 @@ +import btnRight from "../../assets/btn-right.png"; +import btnLeft from "../../assets/btn-left.png"; + +const Pagination = ({ currentPage, onPageClick }) => { + const handlePrevPage = () => { + if (currentPage > 1) { + onPageClick(currentPage - 1); + } + }; + + const handleNextPage = () => { + onPageClick(currentPage + 1); + }; + + return ( +
+ {/* 이전 페이지 버튼 */} + + + {/* 페이지 번호 버튼 */} + {[1, 2, 3, 4, 5].map((pageNum) => ( + + ))} + + {/* 다음 페이지 버튼 */} + +
+ ); +}; + +export default Pagination; diff --git a/src/Components/items/ProductCard.jsx b/src/Components/items/ProductCard.jsx new file mode 100644 index 00000000..2c102141 --- /dev/null +++ b/src/Components/items/ProductCard.jsx @@ -0,0 +1,37 @@ +import heartIcon from "../../assets/heart-icon.png"; + +const ProductCard = ({ product, cardType = "best" }) => { + return ( +
+ {product.name} { + e.target.onerror = null; + e.target.src = "https://placehold.co/300x300?text=No+Image"; + }} + className={`object-cover rounded-2xl ${ + cardType === "best" + ? "w-[343px] h-[343px] pc:w-[282px] pc:h-[282px]" + : "w-[168px] h-[168px] tablet:w-[221px] tablet:h-[221px]" + }`} + /> +
+
{product.name}
+
{product.price.toLocaleString()}원
+
+ heart-icon +
{product.favoriteCount}
+
+
+
+ ); +}; + +export default ProductCard; diff --git a/src/Components/items/ProductList.jsx b/src/Components/items/ProductList.jsx new file mode 100644 index 00000000..57a1436d --- /dev/null +++ b/src/Components/items/ProductList.jsx @@ -0,0 +1,18 @@ +import ProductCard from "./ProductCard"; + +const ProductList = ({ products }) => { + return ( + <> + {products.map((product) => ( +
+ +
+ ))} + + ); +}; + +export default ProductList; diff --git a/src/Components/items/ProductSearchBar.jsx b/src/Components/items/ProductSearchBar.jsx new file mode 100644 index 00000000..bf12504b --- /dev/null +++ b/src/Components/items/ProductSearchBar.jsx @@ -0,0 +1,27 @@ +import searchIcon from "../../assets/search-icon.png"; + +const ProductSearchBar = ({ + placeholder = "검색할 상품을 입력해주세요", + className = "", + searchKeyword, + setSearchKeyword, +}) => { + return ( +
+ search icon + setSearchKeyword(e.target.value)} + className="w-full pl-10 py-2 rounded-[12px] border border-gray-300" + /> +
+ ); +}; + +export default ProductSearchBar; diff --git a/src/Components/items/SortDropdown.jsx b/src/Components/items/SortDropdown.jsx new file mode 100644 index 00000000..fe8cb2be --- /dev/null +++ b/src/Components/items/SortDropdown.jsx @@ -0,0 +1,74 @@ +import { useState, useEffect, useRef } from "react"; + +import arrowDownIcon from "../../assets/arrow-down-icon.png"; +import sortIcon from "../../assets/sort-icon.png"; + +const SortDropdown = ({ selected, setSelected, isMobile }) => { + const [isOpen, setIsOpen] = useState(false); + const dropdownRef = useRef(null); + + useEffect(() => { + const handleClickOutside = (event) => { + if (dropdownRef.current && !dropdownRef.current.contains(event.target)) { + setIsOpen(false); + } + }; + document.addEventListener("mousedown", handleClickOutside); + return () => { + document.removeEventListener("mousedown", handleClickOutside); + }; + }, []); + return ( +
+
+ + {isOpen && ( +
    +
  • { + setSelected("최신순"); + setIsOpen(false); + }} + className="px-4 py-2 hover:bg-gray-100 border-b" + > + 최신순 +
  • +
  • { + setSelected("좋아요순"); + setIsOpen(false); + }} + className="px-4 py-2 hover:bg-gray-100" + > + 좋아요순 +
  • +
+ )} +
+
+ ); +}; + +export default SortDropdown; diff --git a/src/Components/items/useAllProductsController.jsx b/src/Components/items/useAllProductsController.jsx new file mode 100644 index 00000000..6e3cf06e --- /dev/null +++ b/src/Components/items/useAllProductsController.jsx @@ -0,0 +1,43 @@ +import { useState } from "react"; +import { useSearchParams } from "react-router-dom"; +import useResponsiveCount from "../../hooks/useResponsiveCount"; +import useProducts from "../../hooks/\buseProducts"; + +const useAllProductsController = () => { + const [sortOption, setSortOption] = useState("최신순"); + const [searchKeyword, setSearchKeyword] = useState(""); + const orderBy = sortOption === "좋아요순" ? "favorite" : "recent"; + const [searchParams, setSearchParams] = useSearchParams(); + const currentPage = Number(searchParams.get("page")) || 1; + + const { products = [], isLoading } = useProducts({ + orderBy, + keyword: searchKeyword, + page: currentPage, + pageSize: 10, + }); + + const visibleCount = useResponsiveCount({ + pc: 10, + tablet: 6, + mobile: 4, + }); + + const handlePageClick = (pageNum) => { + setSearchParams({ page: pageNum }); + }; + + return { + sortOption, + setSortOption, + searchKeyword, + setSearchKeyword, + products, + isLoading, + visibleCount, + currentPage, + handlePageClick, + }; +}; + +export default useAllProductsController; diff --git a/src/assets/arrow-down-icon.png b/src/assets/arrow-down-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..2704198b22a96bedf6375632bb12233dec107bc5 GIT binary patch literal 580 zcmeAS@N?(olHy`uVBq!ia0vp^oEEaXQk(@Ik;M!QiWVTu=sL|X0Vv2= z9OUlAu>V!Oi5)xtlkq z{+O5b^w_=d^expq0)oguRl#7&^UJz>tluthyc4#+-6L({C;i}^=a0?)aLH-2#m7sf zyKCFiPbIi+xN^Wji@)5mnImnYO-*0hC%bpsXSz-*+}6>?bv&0wI0C!)k+&NEJ~h(UVS@3Lj(5WxgbyDbd~O{qJq{@#@Ic zA5t%Sn*Dpb&73Pl!BZtPam9gTe~ HDWM4f#xVYg literal 0 HcmV?d00001 diff --git a/src/assets/btn-left.png b/src/assets/btn-left.png new file mode 100644 index 0000000000000000000000000000000000000000..d34ef01d84f6d98283db0ad6b19d6833c913cf76 GIT binary patch literal 3451 zcmV->4TSQEP)90K~#7F?VU?+ z8`l|zzcZvLN>pT7wv|wI0;`(>1q#cXqUa_zkX5^|{R<**+l7-w76A�t#f2MV&?0 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 literal 0 HcmV?d00001 diff --git a/src/assets/btn-right.png b/src/assets/btn-right.png new file mode 100644 index 0000000000000000000000000000000000000000..b7b91e17192d2f59592a17ef62654378af379f84 GIT binary patch literal 3455 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 literal 0 HcmV?d00001 diff --git a/src/assets/eyes-on.png b/src/assets/eyes-on.png new file mode 100644 index 0000000000000000000000000000000000000000..467cf49aa9fb2d4ef242cdda581fcbf2f8cb4c52 GIT binary patch literal 709 zcmV;$0y_PPP)Iz1a)>z+N!Qv5b6d4snlJ#0dRtrU8O)Fn+icAxhf&uh1|e5sE=T^ zs|Nc`XB>LI%}DT`$20TI&o>5mkbf<>kJ0hlcSTr)MTM#$&xG1XRPJ=to8RZV z6Tq^X`P{G#Ux!w{d1e^y(Q2Q|&dZK?`IWbAYOSx;Ho2zl(k^9q% zT`&Tp&5^2HO?x)}+}R1R3QpLWe(kkm{j*Zznh%q$J$~mCP>~Rv+-+EMoS`2j@aCk= z0If}sRf{CU)Zpd%2hO6%`oqg{|6n@lJ(l(;0yD^Enz5buh_A$8FmnrlG!3{QHyJ!C zk0FtMa~( z)N^%RJ_-@FV*qDz=1PCL?6r(!z}z0+04%~50zTn?f0LeCL5mM>_T|i70Yvs1YkZh8 z=#4;8D~`$yD^^8}Lb91v=SkD0ugt5qa!(qhF~PFze2_B+L?8ezzsqxgg3y=;ewYlN zMv|>Ph(Y)|QzluhWwLzfxwqRCLr&ETm3Q8v7lh}e?B3y?Y3F|GOCrKX|00000NkvXXu0mjf=FdQ` literal 0 HcmV?d00001 diff --git a/src/assets/eyes.png b/src/assets/eyes.png new file mode 100644 index 0000000000000000000000000000000000000000..fb4eeaf42441f38906f05f0ecd133f9bafcc4c93 GIT binary patch literal 847 zcmV-V1F-ywP)8Crv3#sQ4pcx7B1c>Hv*b85eV@@3z~Q<+`P5Dd6V8Sq0rt4)}%&2J-OaI z(RwHv@UZ>|)suF+^L(##m+evlF`SHFvhB=!GxNP4-weQioEM3?Cy~jSg(O@sG-uGX zn{feRV{&%k+V0kR&bw&x;bR>vTbDvcc#c9fgpjrE%{AjJ0^yxZO)nP7GLHhYq2`r* zGxRepQ7j=q_>}!7eMT@4%vCm5%`*wSB;;rut&oPWRVfe*)|^AQoVI1@NYouPvh?K;FyfSp=5cbzX>QWEK|UP?R6^Lmm;+-U@W~ z8d8Z&B9RQc1c@1vAwon6>}t})Tr%P)h)c&MbOW-nMt@;$xOb0KkY{^K)AZvEEX(Bj zN`$V6-fb35S51BrAvmLkU!F<=`%SIYs<{N*D4|4(hH-C{orCgSQzDs~U3g9nO`?L5 z*VoyrlL&H7^W7#>lT4?nebE>k)~g@cKG-*0Lro6QaKJ;uGXAw&E{uB*XL2IV@0Qn} zxhug3S8f1B?+v~GU@>7!k}9<83@9PpzVR|tvTSREv!_0m=zb)-GKL;#OO{ndjb|dd zv9B-5?wf2W>jV3p9@z>~Z&_VF^dw-gg0z;FM2YhqqSN8KT<0S2g31=hfYJrZwqzA5 zQk*nN_lEa@?DZC12)J)kGmCgafzacz`x_iT6QsbQ*mrtnYK~9B1%aOl(tkuyew;%s{R#v)nd6zOz`sLaC zY-d!Q3G$XU&dreOk0@^_6frV1IsGVV)@qZUM5&rxytZL?Zd$R3Zr|E*RY~q}#HNW` zFB>pjo^zEkLub>fnO$3z!%p<%yC35DImx~4p5?dF7x4!*4dk4@e|S-1o@)2hQpf$) zKh238aSQe@4h~ez&s}c(WOp9_XR{72i<8wsVIIp^XD<^zQ}m>7KWDRfSDC$_;jWVT fY9;*tgzcBjJ$GOE`Ku?uFk|p^^>bP0l+XkKFwc^L literal 0 HcmV?d00001 diff --git a/src/assets/footer.png b/src/assets/footer.png new file mode 100644 index 0000000000000000000000000000000000000000..31853d71a8916968ab08a9b918243b3e10ed4e33 GIT binary patch literal 56852 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 z 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 literal 0 HcmV?d00001 diff --git a/src/assets/google.png b/src/assets/google.png new file mode 100644 index 0000000000000000000000000000000000000000..557000305a9c4085d0f2596c0a8c87e0a070b3b2 GIT binary patch literal 5139 zcmV+u6zuDXP)T^O8$IjTgNm3T0vnyyH&{5tGWXXe0&|77-}}Db@ArPM-+Mqv2uH#>0%NS1KQtSL(aN8<+V4rNnU0kt)@46RUHsS{ zP1Cyg^B#<1Mx79-!V`%^yJ48EvMkTy@3b+Xm4DQX;^^Up#f5<`{(P@2V~47$oufq{ zRWAgp_;@_N2#^;rnC<+MT2VoG0e15L^FMQELeqBCaw~!=q$-8LE54mSEa0uPowxS( zoKBMHKgoN+l9aIkxVSv8P4L$YxqeM2KYcTIFPkEfNGGax8NNY}kgv9L7?JB?w`PlUx8Vu=QyIpw=(Rmg$#8ul+2L z4icuB#Y%`Fh`>vBU|^tCQPlNmE`a|sg|~hZL6z2j8YBo31BoI{5Dc5lh`J)Epfa!` zc6tHaa<1}xFbW0WXE;G{!?%hDl&eu;0x9Y~U2oHX=lyPg{J$cPUIF+?x(pJ82dT@{ zl!cYF4l*i?uItM*NPFBOAm6X4Dpcj%5dlHhO4m%+?roB+RgN16dEB%T6{2Fro-q~} zas%`iVq1qq!fPFP5$#B5YDc-PLq&v;$rX?lP!#2yvH-b2?!rhUd}(g0XR)}PDeJN~ z#Z0b%EP$$pBFF@liN?!DQQTF-S{X0HSS+?2WumM?ARossU|sSJ@`-5|8IlR7vAAuv zBr9vn6*rWvP3rOZT5jEzyT3_O)X)m#33-Tk!tiu6c@eIQM6?wsA!Vr+T{n18$d)*- z&$Vu0IWUZbCsj>@Sdoa@ff7;js>vh*HFO0f!QZPWr5H*o1iuKZu3;#Gl2R@)l&qGl zm>?8E+3}YvmAS6R*P=*DQd3s%z!eyVA}BBEV!-lZdlN;w2Feq-yNF>-P&xc=f|-dG z(P(rX3ZN(<*cn4g7TJU%s66St2{yZs3}nHzMq>wd+Bo?O!ZCvYursu&_RJtZKQJ_b zCm#x~IT}Dprj5g7QJ|=N%q9hERpQ2aX65d%PDt;GXYU^V|R6w1dghBobD)U^LO)JtbV(lk^PR97h>P~fO9$u_laM2q0I2Gx`^V12z9e0dvU z+h2n5#$GOlK@@`&i9nloC87(jw;tu%I#dI>T7_YSV9!jJ);mX5LmJuWI)K>Eod0gjhOO3WvIb-U`v2!?3_SM?*g$y% z;71-m0kt=N5p|1iq38^v;mfazo2#CbdBj|trS%`)#!IN$Dk3nS2BiL&g z4Lz5|QbFv0e}TS-?gvX-Q$P%~w#zW4MpZ1A#js%L+T_5f%!o<&fL4KV)=o5iCjJ(P4|my3Eap^s#4wV z!4o4;Z-JYPw&a0=xP`v&J%mK}`zQreS?Z;qgm&pCpj~za)Jc;8KCVEe!p`==Ja&|i zN9;lT^-dUkTw){(q+NEoC4y?fdj}KR=?*69J$Qpfe{TW7L&>5+K3G&NWV&k?-;BuY zIedh%KJ!6M%}`n{gf@Gw^^*0S!Qd+|qyO0-BhmFv`oGBo!=}{_qS~Okb>>3E;|U4{ zHhAjVokS8LrEKzq(aAgh7K{%W7m6~uh5PO`P-o0UG3dYDjlOl?;ayhSGDWZX3)Fx8 zTUFr>{CHE&_9R-55Oh7h$8imGi+a#q$G*oO!NA6+Q4n19bvNIJx?7i)EYoLx_yNvt z_&#@2M}+Pjj09N&njvLlk4PqKntTP%M<<&e&paVW*x3U(^_4FoaXkNCg51!6hHu}G z$eb%s4wyd3hox&!&A7)ND9f0%{XG4c3=&0H^Ozm_7u4VQ2IM9^uk)maM$~`p?y`x% z`i?3W0pZOuCfbuiFirRRhXD&gKgOf?jgXrM(XezsqH|B=b{_xTjo)5_nuXURWOzLD zC7Idk$}V75@*o6@dEzDhKRah2M-9|ocNnz`yGQ(CbvNBsR!cCNa0`JpK}!ljV%AP* zX$J)X>rNlEiC)o-#yj?NE0Nh%s25H_-Iu?DkR0*k6IfgF)u0}yK+&2WrSU*9FexPZ zVeA~wf1Q!>V>70r|L3iU@Au{c#yBzIf^V~=GKoXs(vcZ0MC?98iKML>|N zsQ>G?QM(}JDzuqxp$Lkj*%CrL9&dHt2|7;9gQ}sDE}9ishNz#og|nFW1h{FrhKn%q`Wlv*?Z`1cR|w zQ3jk@Z+^@F$Sw1EhOZXI@`G&#D#@4{8K0XS^q^i!3S!-n8b3kNU|y$4&GS)>bR8G# zz6whSvTN7$K)a5E?;&5L=FgxSInfuq5ZqNQltp0i0_G(|r=S`+CfFYHf=yP4BVQ!7 zI%h2p=n05~SV9lR?&;~Yn1$>e`bn#ALB@9f=!i7zl#~cA*o}LHv@-I zjnqZOnlEAr!IW56@|_?}tu_w%!cM+~YNS?xH8EECl8Q&nF zMNk9Um^vMv;I3`W=LB@0dJTQ?>WdRv#){AeQzpSqF&jpgJhW08L$Fb}GIAWju~qxgXtc)}n-01+CQbM} zaQLxdk1?2x{~DNv$NMkgvX$`cTQ3$Zgil^n_|3Y<&zO0MfS58qcpB0#^UDdmZ|X{06K_0TtCxew|-NbjAh2FIZ}N zO@CKX2#m44srLhp6VAUW?Y;kweH33keI<@0GEY`{|Lh0&;l7QiG+SRY(0w|;^1AZk z;Im2YO~{#P9&!l*$r}O8fa3&t;^JgCl3c-e`r5FzZ)VaJWaFtnY{u^HvTdlI#<9~T zp8QpQ^Df5K1M>wCf@h0iN$yO!2377#9Tcz<)Mm&nx8q=a`#uL(Xra9adZ#*XAKiYUsC+wj7{ zZC1~Oh@5Um&Bm-`AMs1U5{^f_H?9WcVz+AQ92nrjoV+k2i^V0Ari9D zjOd47f_irDu*cnXjfR`95W_8a7s)_pO+=ebPckg8mx>dD4j3KAMVqkp>U%Lp6T`GR zm}(FDCq0JP_@}|7%-O}inym;U0>V?L44a*&X+oerW%4--dMq-ZU$8{~vi=lhaPT z6@w%Y&(K?NUT2gnWtwPnhvZ3uSq0)F4K4WoHTR+Yf_V^yTQB(>{$t^N!ij+JZXPae z@b3(pwVBh(-LiWtA3<^onRw={7xAMveu`6rrx64bqGNH-oI7##1#=-HY1Sa0t$YY~ z&?x%mUZ;4j;mJ2QW8>Rf5KB~MtpiGblNF%9s4DJ~d%0}+m-}{q5Zfv^yw}%_AMX1p z{_pTB7%0;nOZ8j;H%_}AH%z@27dA|S$dEOlEqqc7p%k#)A5pCvfS!!?;Fa!9Y<+hZ ze$)LL3|8EvQ)=;T?;e;tk9ZnB|OpPQ)O(hyzJq zLy@-I1cd~PWu;wa+SHVVxt^Q1ldq3NIvLms_m_(}D0Qwub>N8$a&!p}1@{5ny$GTj z6HTLq^u!T%L?T+w)_^ED>`x?&4!9=7&<&BHU8p>M5l~!^(9{m(Nl}fsPuJTtNPC>u zVenXayxBuqvXspx_l-O$DiPq17sBANvLt*WU?y8phzN+HGeXfwWS!~DFN9(!KUO*W z@&(aoWE~2mWbs{0kFVqZ*fQsJn0YK8{>H|`gGZtfZ8?gdq=EjxpuT~}3Aa11Lot+| zwDd7!Pt?{#mY_&V-s20!P(DZiUUyI$5fEkR`uoK|y$OZ)Cc->JVNlP|9~hQW1VmYy zD*Zt6Th42H;-wMh84AG36L@+DylhJ;0-|g-n}Qd2Z-NpY_63D<$Q3FpZ?b5pcTi+t zn2EAm>zJ-DmmsZmzZb?0Ba^8cPI-c2x`@M35w~q;Ao092d~JR4P!=+b8@yQYfNMn) z8>uS}b8(@`qFks*v!n|!6N!cHX>_!X56!*_lTRtg3Rv#bv&Ip2&~S1&ML<-{KGPje zG$Q7X8wk4i_&FX(+5ut0Y7}lmK(2twthNH%C0zZL7Y-Am3B9WtGIn zk^6m`HX%zg>p5JdnE!dqKfxrH~WCGJ5iKaQoK%dsCThn+HK z)?>EH2Zmw*39Ey40okY;w@X1K4;0$7SqV3?Z8BhMqBK^+Y3+n%>e=uWZ+|nde1@IT zh`MfQ-z;IN%J|DlSu<%7uj?ClJ+$R=j^v2K^IrPpTlMPR=4R;sxh_`kR6g&R?+~^1 zXQJwRW{#!cb=9s&(yUyCQ92k8`s5vabYN#x(>96T^0P7Ol6W*fGiDfVvT04enZ+A@ zD;GyAe_rgGcRlt_cv2@12KUm|N3`orwN|{JKLN%%kAbp=6;A*F002ovPDHLkV1nS; BxZ3~# literal 0 HcmV?d00001 diff --git a/src/assets/heart-Icon.png b/src/assets/heart-Icon.png new file mode 100644 index 0000000000000000000000000000000000000000..34236b8a55fdee8040673ebd011b5dccd26ad026 GIT binary patch literal 1210 zcmV;r1V#IaP)SNy-Czzb*tgkR2XQQj8{%)(eA8wAuI|Iyi@=oqM&W+Gyy# zq;h+|ok);@$AGnB-XJM|m&TKT&vl(3TBK`$;nFWjhhf0xbQE{w{8|e19iY zC}3qQ2s+KC+m(HtQm$ti4r8pU_3r=^Ep>^BoDghfd*jZ{zWI`M(4f-xTCH(}^=|^Q*WxU&@=@Jn~_E^9fdbuyLoArelnoH?-C3;`W)K?Q^)?ld}sYt&3%0@JgV_ed`HSv=U2czRV=;hiNxf?%+vh$tPc$#5jd3 zI78sU`9~2CPPY&kYZV0cSY`+OwL$5j7GhhHr0w%2#p$RONnek$nbU^gqOQsq_ZyO= zj0}veD(@(6Zl3nC%M`8Oik=L)ku=r|ZfbFJ+_%i#(;_-Gw{Qckwyd^c_oI@oAr|>N(A*10|~E0k?%ufIRyK=D6U_?|=Ta_2%WXfis&}f>Z?rR`t1&kN-(BO!6jePOAJC{SiFxJIY&a;VahS!?MweH4DCnB4+f#%RteHMz$AMn zjv&EIQ@Ho~`MaO~IKPF}9hDV_7R4pG`1835*n8D}0s~-bu5tx9P&x9w(u@}b;ia98 zdMjyMDoMiImz}O8DvSb(KO7PTR`})Ih1}k&=Z_%+$Oq!b>6Y@y&FrkXZ_>u5-eBmM zx?FK_#1*v-<80IJh2^wTAQ6a3qq1q}vO5t)hAZlo=RH_t$T`Fa$;- zNjUDBMfyMpF#xzj2Y``l97+O0LuM;+B;-}iC(?T5?5++yhX Y1fyLiOsB9aQ2+n{07*qoM6N<$f=p8~X8-^I literal 0 HcmV?d00001 diff --git a/src/assets/hot-item.png b/src/assets/hot-item.png new file mode 100644 index 0000000000000000000000000000000000000000..a22916b720eaf7f07c0dffcd76753613eeb1a56f GIT binary patch literal 13381 zcmeIYRa{kH@He~(3F+?c1`DJP(hVZgEe#4H4Tn-%TDl|^5RjHSv~-sogd@^%IMQ*5 zXY>0%pXcJedoJG3d-GlZn_1sAvu5_pthHu#w63-a(S7>+000oFsVeFL0Hz`UV6@@k zfE37JOC9(J-(A)C9RLte-2GqxSvj;I5#ybniaby?#<&gsgYEE4>lpylBoJI#-vfY$ za5cqe`o0**C4vlF2lLH?+oxX0{pR%t53RWe6Y(-NRRJpe)&V=Luwfg~Evz4Ao`&Y# zE&MI~^pl+9RrjN0Kkt+0o%qRd{@ItsAph;q$7yzKO=KHLNv?{?Mw2{f$4$2}*R<2J zcadK{4c(b3%iGy`SH67Kh8Ry#H*aZaY4u-j3f{c6i1#^MyYl+$HxKF;5-XXz3&j8c zcg9dW0FX$K!v=sH6;@0D7~>!X>6>IxAnFJY)W6dYn;iiDNMn+LaOVFX{{Nw6ss#an z;{uVHJ~gkSx*h75r2P+Jre;DjriQ*)ENO4$25J?+ci8i3Uy^N>frY4h;y@J7OCxbuGDmY})PWJxo?6a9ZgIWNItC!1vDqZiW2wA!8!x8Y@Z? z-RGZU^5*xksfzo1R_aSEgBtG*mNv$ME)$ z3_~;uRF|)Na8O6MTH9dEG{8ZqFo9#VATyqTt7H+K_nhR7^&O}s4BXB|3ZGS zt}o^#F9hG}EDa7nb-ekP>GHB5x#>yZ#>qZU z1422yM4w4Q@j|ADf&(~z|8lp=(+>1_hX~AJrMwrS<958iXZQ5!qhBVDiN8c& zqTV1TUhb{V-a=Kg4EH{bnW@!I!8^EqxTa1uX%oHa&iI|KYSYwHa?%b^<|`DZRC)y^ zAx!gFMiuTeuYUM02f-u@>7D}g0}xF;YE#fI?jMz1j_dvTY&QzA(FucaXp$nU3HnFV zue8JTyyVpRy)?ncRlkKE21|E5NorZ5%MoOHGmw$ti{v_E+c6Jxv+~(JJ$nsW4ScD( zs_Pvxf)5RYwbXrbw}dp(m)&2SHRe$^oI;rQiK5jmvDelPPkW6whjA0s=1gc_C!HFn zHdJRDJ;|5NSH0Y%x=60|3`TmRyXi0{z&!og{So2zHvciB98Ln_s-=(GddCq^?bWz|d;h5`j~_WGdzDyR zHKA@^Mnyn8SuQB@oGyl>s4uN4AXaFwXNbzdXOr8n#;Wd33Gcx}CB(ZS_2!=pr{3bB z*b`tRf7UH$2`+9*NbD`=VBgKB=RlHI)N}fT341}77gBY;Z;gEF)}1k&JS1<5gmySJ z1$2EqND1gB2zjPij-yL!!o-ibnK5zH9mJnLNVT;sAy0yXw%R?ce$y~(5Z)pdu-b(|t5T+T2@71|gB!%VgMPcSA^^Nq?%MVB*} z<*59_b@wpuBXpC-E^cFF0bZv&xaoyI_jiW{`>H8f^X9OUGCWA}ZQwcmT|dG3{>+P6 zd-rc(dUbW%o@?3F^QAyCb{;G~q=?xZ$ zb)-8hm*Mq6(rE2nuJmsN8Xm1Z3U-YAgxV8ACFHI(l&l#APePT_KP3Jv0SWYxL3#!gqtCX1wJTP9-o#7O`*HyuYop->w%IM~ox|w(R>2_@Y z_wlp3e)5cYw#;@%{x7e~dLDJ8kfj^!TytX+xTna9sY~0ExiaK3u7+q6g;h_qNa>T@ z8ad3R|8(IoWx^DtyE9lJ14*Mu21Bh_QL*9s7DLbUPx_5}Wb153N z-KUG>QjdAc6%Ht1#7ufAv!XN0#;HF$3M8>9sX&!iw#bkBT=Il8Zmsj{Pmbx^byKK4 z4Rrcy{2|bN-POl?hlG@L6(azp!BOP+eUTEhw%YozO5g1q-$6o^Cxq5go8@I>cYjH+ zU8X_g*f;f~!-v>%Z|{7>!sRyYU!nRl-twysRz_$5j3K@o;EaaG{MA4zr6F=|xjzD> zv2xg*eEvZq?O*jsWB7frSGI1#Ss5Rbqe;CY$2@OYmhkE2YCvuh0@BF7x>oCcNIhq2 zHFL_8IZrQSj>%w}$}Z0Ep%0!r2DqhQ`m29juNWi47ruF=vGOYSVZ~Hg-6{5eW90CF z9n4N4#!K+n_Qg4_FCv>3wCID~c@5*F;$GnUBJ(>a`3k8Z@$UGN@@Y|2tYf zd*5OJ0Iv@6&C;AnmDMd}=?%hqHT?9x_#pfCahtNM;e2sT#3af$J{u)BH|U<-^Uca} zf}Ui9IC?i3k#l-%4lDEAu@i9HvZCOBHmlr|D2~{XCC$&IBM})SUG=&(gq=j4TSC}0 z<}C!l&2cwC{bH_14?Uq^yf`DLUe5DTVYZzJ;Gn z<rZh!K)0`Tm*7pECa5III)>NP=z5MM&!N3WxL0Kn!01saYA31CbEYlvYLsw z>)taBb*Fr(y$0Ld>iG)l_E=qP!k$Drz*WwO?o#9|=C-rjY2(mSPj+EfCg-( z&jKyp!M0pB2NyMV$hEF*&`G-yt6M|vA6;?8{X0otK4Od*55eYF1ioW{M?0$9E+slf zdW~jI7Q=&~M2N(3Novll^@DYu$U#M%$T8b-V{}5FLR`lfsVQRD|Gg#8#pA1A4TLcJ?JA0uaZD>B(1VrruX_t_ zNZF@Y^m`cy`6m@!EOFis?{MxdzYbRA`ij~;hS5PT9@~n#Mi*=D?aO|-98~z@1F;rYbINA931!pM-&QXLkn) z%+Ike?E!as$;sy9(G;k)&Fgi;-dLHrRwl@6mE)%?nBTR1W8!8|n1$~*_xUUM+VE0>dfG>OoMiUo-?I=OH>KzlgYvBrmk`pMreyY_P3tLBOx zvl{h8&T^T*CBeC$tgE|XULK0+;6&`&B25hI!UZ+}T{g^+=>wJ=6bpIm>8YAQ^rd!w z($|4v8OV*vfljQYipWX{G>&at?J%MP_T{M1wgRXUa9emFFrd=9gwMa|l5Wt-Bt1vW zf;+dmTWp9(*KGP`!eRamAg}*tM@U=DBgP4T*TX##GL-K@#%YX!}Fy`|% zHiU*r3EzdxPguw4SWBnoF;$8Z>jPC^N?qabbo)9bQGVL%>$&pv@9*E+3ICqT)nAHc z-g@aKS+hwv%#(b0E;q}2@u9c>lH23VLIQd8!qVq@es{0@{)oJ#7*pF~L`>N8qRCG` zhhjP{;LR^3hUymW7F*|o*gu{>2M)-ai_VM!^*nh_eQQl9+U+g5c>QaPQh8_Gkcjp9`>`Q{)cA6fV?E5NrgcG#h$g$(vN?&Ozb`^ zsAZjfR8hU3^2=i1t*ETm=QX|G;X7V?2fhR9F_5+XFat|F$M*4E66;YGX$32s%b4v~ z-f8zd8U4H)g=f{3tVph*qcbj^?n-ah^BSn^CcmfCQ~+E$OJtDL2$leC__jnhMXU0e z)ONNox6UZr0h%v=mE@xBSILEf6!x@=r8N$}BK4$m60?$^i1=4(I!%qG6O+_gR;70r z#_X-T?2+kn^1Ah35)qbubhN|-ZUI(Nu{c&uAg=lxw7qcsWkS{9?UZn`?;Ddo z?jXJS^Xu8gWw^@)pQWMlxoq1_^}O%(L+ohg z-qM;IGpVGoh=BeR-SJr`s)x)?qPmr^L*!glWUDvg+huohI-d4HCuOV9peR*GJd_B* zKxl!L&lA1rg=!klPx|>%Ke99&)@_E(9_#m<*XG={ywH8CwyN|WNFrGktaKa+B9F`VSAVwzMpRh&0eZNnFY^(Q zQ`+^neVoc~^x+&`qdI|L^3B!E<^bM!idWbR)ImCu+z;`tk3^mf+6PMh6>4{OuYjo1 zgm2j6y?G^%62eVVVn7E{C-u>Lnqx|fWfFd=?V6&L4frCsVd zpTs5S6Y3at_qn0hUh;tXMSDldo2Ui zW}LNd1`!3-11!*R^9%)j(G}xlmz;JzC@|U@q zSBmD11BjAtN{)kub`>o(6ee0pzA;27f_W(v)-8-(h&h$3vvB>0#pFgfo$s3slLKzS z)|oKH#pJTB%K^ERRzJ6yMj&P*;ew?qCoDnNGDLk}?Re*p%gyq;RzwfpU5d1{W-*a} zwr!k}Br}AdjUGez4a+7~oT?+#ELR!Cxpj_P=rfX=C}vsdJgzsOOV!QKj;Ss_SAQot zX!u;OS)sx^YOj&FKX4fR&mY#nNlTXz$nb#YidvFJ0wSNh!Eoh<>S!%8C+G9EKxcOTOL4Q}tDc~QZwO2n2z_X&xfX@B*S~Cb&?#m!@K~+yf@!uWJRBw%tcJ% zaKAY7Y`f_nBQBRhNs1nlE{H1a3zUZLB!4`-Y@g}P{qFaiVu>+~pSk(WejGc#Lp=UEc^ew8^_6%bR!-mDzqr;> zE+lGN_b8Zz=d)+(_Ng95!7fYi_Y9W?M~G zd3-hRc023b*Kcp4)$B38K8F*wNOJqmhzTBryOED4;v?NoU0j&x+4XyWww#>JiHY9U z(_&I6($>oRc&BRmZS-av-}#l{e%iOpIm2J7XG}J;dF^0V8 zxn(bwLr7JFL0zQR7}KaHZ?$TESu_L3#)x_ zE=k*FS@&Cvr@_lLn!MTTww#O^!(RhDgvN1lYXH;qlY*3K)?*(PR2usv|Kz#@vgys1 z=KJ3%8W&oG3F8_uifqw?i!z7~g|#aUr5oO_jWQ()FP9T1>;C-od&rLRoh#+h$&crQ zhF8)G*JaauQmH1Ws-~iZUv*E-XsiUkJ7-yc75OH;a1wIN5_q%N1Nryle9fnW7Ki7!lvjF(8^QI|7 zcC`&bWrW$gGs^*#<>mCxNcQROM311uM&j`6&1?4H>x==2G!u65`Wr7t?yWpaG+~lJ zZN5l7GsWe71~D^x2xbz8deFomey*8?r*?cqp$l=F*cH~BLP+qRchKP-ttYOBrwPb* zGmDzt3q959rRjF*CDUy$16a?io(aQ`DhTmkafr_xMi+??A|=$-7ZL`;&`H#86Y7${ zrF%k@K2i3(GP_5kz=?RvIRum}nw5f~WSZd`pk$EgkBttR=A#2<3@$eZ^ zuPn?~ULU18ref$pza+$Fw+egIyERnic%mOz*WK))C!q~EDn@P*YBE6ke(JLE<8Z&k`oF*Qg4crom%0+xHXG_*7(k~Y zHoNA?MV%DbxuGD75*15#eG2)J!vg>r5po}*{n4=bfw3KLy8f}9Mp51Ny%CLd6`vc{ zmHR+qW-UNbY`wKK9+YymUX-8yzQ03e?dhT|V&u(J(`pBw;fD_1;rZgGoSsDj3VDk9S@&tH++RO8wC0&@f_kpcs>vZ7%}e~}r70|0(L zW9^=C%qn|HZbsIy`wvhgeOe#A1(w0)gSusN2L-}-MBt82aMf@dxC&*7gkp6*2-reLEd zJ6Tw6l)%7U{b}RQ{SSv}+J#SE(O^GQ6RCAU)_}Q_GJ>;Rw#`%U$F=Rwrn8-DPhy17 ze>1{sCQPU`^CPG$315FONILdd&!Y)H+sxL0rgAblw|+az`4+JRu*S=M=+1B>kJ9}2 zVza|_xjO-lgL_sSm}K|ggMEPzu$H4s z3l<81Rd!HcY7-4ipi=@5)GXXU0RU)mL-E4j7QfZ}-;ZMB#m+!y1~`t*t&asfd7oSU z98V=pCn`FPUZb|HRxnpvWvHZfWX`_tOx%aDu(~9D6h;i(U4Fx@{@$;95&Ol~+VAa2 zP*F4ahoT7A{6*@BqB!TKMGu=5#dFD|=1W)iObVcLgEUGPPv`MSIjNH!FLMNYrMCvm zXD1`4#!khzW5GFMHqYDrIczhU#!Nkkk5J3s)QMKo|1hBI2o9|l@2DreLJ+(s1FQnE z*(tl*tf>n7)>jY-IIKkCMO!#UdZalfSk}C?-`hwD`$oS-@Bp1Z#qcr0t)_~diKGQ8 zsRqLgK6z$nRnMdSV~L)WV26ydk`|C^N={#YSJ$qxe3#pa4M@m<7VIiEFNY@B-vb&8 zHkH{j>NOh1*2@fcAE>2zD1jE`xSItpF){p5`KT^a;n98bID?8AY(P{NlkA%VTzK|K z<7ihqY%D9NQrm4o7O;}WW;YrKc{WHs8j7hF#QF#`faj?IA(J&EWQlB*#6)#%KR7iA zVyzuxJ_%4|E9jw(*OgTS6GaqTdW_BOyWi#b`XWEBS2EOJt#Om~= zeenK7GgF~BHQ)MOWU{rRsn_*U0#}dj`DJCJ;K(>GTY2W?Q-R9kehlD?3TxO2HKDQf z93#2vqXEwACc~@pt1c2trezD%w-c1#;4IdPTIAG|!xIqPpGf!3K|S2j$V)Y{MS7eh zqG2v<((UG&$fLG~beY+kxc2p|@l*E=*@afSFF6vDfp7FUWySGj zEBX59pKpT+kzrzqOrEl3k%DY*^`iGr@3Ovb%@Vz&Orh~>n43vbp^3s>7#VEzgBi`_O3BHh@dBWuwq z>)Pp;5kq`byg;WTp5pf`wJ%8Ci!OHq(inPgdLz|QLz6G z51h`qp9FtUr&Ri^hnC0pUdRDil-1)D?=l1bjf=_`cuF~qV8ns_f{IM<(tyV=vXhwJ zE%ua;a*oVy7F$#j{O9gQqs3~oZ)eqCdb=*k7!fNOJ<#uA~sk3)qum4Qp^Uvc>_v zV}Y;4zx)|kHcBJ{5s!85p2)zbJ}?2v8Gv%qoE%zkfnQ*S*=6B}#$%vU6LgN)yOj2g zG|Eb71MI!m%Cm;0;wbee;NYJjhm`MtfOf~e@co~F?=omGZ zqX;U@&;hnwZBy6A&Zi?G(cjyv?{-X&C}h9rkrpPIDE^GplTwB7ucY8{db=L^re3fa zm%HZ_W;5m65fdu6h9?tN1I@{Pswj68GhwKi1+&zT-cw=qP;3QML`T>#4-G%SZ0PY6 zPdP}R7A`dgCv$F!Vf_!$L}*!jkt~XF(z&76dpu`B2snIs2R6Z0+XczbKRh_s7;n)B z)?(S}4s_XSSwaUe;JUG*Y95XHDZ%YW_b}^5Q+F|?s7k6caB>wCd21O!1bFSH>@yv2 z57V_3B?8}P099FaMg%u1e|9LW+l6NDtCGSbY$4a<->>V#e}7YQ{>`$c=QmqgRTrL6 zrOXj7cVu-MU>Al7IOAWHI9O0yO!Z<-$-Ag+Pz;}}qUnTo`d>*|?W#BS8C>0XoYUu_ zVo}>~7Oty()KTKb*QMZ9Z=gfwb{$hn%&gIG^1E?a@1NK>@FLe#TgzUxV7x@#+9b42 zw>hZnge(36a$SQ6WM^fvkbQD~@aq&qNBAW8%6;!9&_&dh$-;u*9e21G6L;%ICqs`e zwp8;k!?gmkwuFaVJBm-(NvSfJk&pR89oVJ)-!%1|%|i|~#tJfRS#D?rrwdU~{?)#CwixgD0Ov-(ZzMl~(r*9R9qY`NB{OwVRMMX?m#>B_BlZLj# z$1u$8sPFfvm=7K=SP5xd2Gz!j#6*CX;A1LpP%5QL;Dyl!RH6v8`%jJDESO-xaMlc?%yZAMCWma0tT*h31HI{HWeNlK;HPvOxSdKJl>B1OXdsh>GO`iJx!RPcvE!08@-_1XRs2aUOBl381D$6kkThwDAmg#}HKv9kzx0q-_b5juX&Nd3BvMU>0pPUJl2lYT>fIz7j_S z#s;nsSQ1J`pu5owCAod6hBp~zZ~Hp3oFi+DFY6FKD5%G<14JPI_KN1GzsT`sa2J6E zE6TTjQT)o{JdeiPd;LK_+rZCg3ZAu69jLPGS+nW-asa9Xs#61Xh=$qlSMiY2ahBsb zZP({MBfUKDhp>q+`>q->^@zfa9XBsp=FRyU2aei(`)A$KX|5&+o*er%XWtI@UBwzA-WHGPwK04S)MDzCJ{E+~&FC@ru-= z9USIDHRHeVwr;V!A^6zE@OU^MjaM18H;avN6ol1l`-u{xgC-XXDjo;*Yj&aZhm#HY2KbNlm_1q$4DA;qfkBR zqGPIhR8?X9-2!bl{84Lz7rS9T339e#NY47Yk#|w9l+&_VZ3jPfuvOy4HTS;0rG0VZ z`1PhoVMpY7$-bxXfMv^B>#3<6k#gPotDy+31(o$k= zigF|N2lYNcsMT++G|^_7q9p$b1@l*TFOy4u!(@@F`J4%7c5YzI-vTHNE^^TVRC4iQ z&+uJ*D~dh|{@XkF?{x6b;Z{Mv|9s@yqzXy2Rz3f}w5B#=;7%!fR#H0c;X!WZ*NzUp ze>y`yA1zXNMr}sSuUx-7Q}>o`zB;6dzj8&YqMA3C|6OKxofLegkfHP}MeNDglV5YF zM&jSG*#Oy$eJD~vVv7W?5Uh7{;jSfP(cm(z_N|Z=I2{MXNd98ENHRQy3hrn&99<0= z!swabF25U>c_1|MFr*Ng5PuriMixcrgK9@4t4(XGNGT&dHIa9*DJ4{ z^Z2Vwga$qSv2{|sHDy*wxVKQJ@<$l%^TZJ`0G^@TQ;b3jRH7hpSy zN%k^2D-&!6g+Jm?WsK|HzD3H}iVC&bH}5*lsNMAL2LH}1>K&bcaBk)Wy!;nrPPII* zeFP>`f3Ns%`z0U5TBL>*G5pMP5(a*O^}vW)B>}Dm*lE|I=5MSO(*{n91-Svaa=|j%!ov{)?o9 zK-ZoM6YV@{E_WK_qFKG0I9b&FwPX$AfnCdBDy}2^otw8iX-f?wH$1_Y4l6kyo^Not zldHO7BLfZ{5pUQ?sX~~!ZVpARdE%+RXl`=0q1uC46K-sLYB%z)2J@^-bqn;^Gjp?>;mipDLS zLH5{TWzF!9rz7I@Gn9saiv2xTf~bT|z2PIZ7wN}0KU;$Yqziwyc*S;_*Q5S|kh@LS zw8?v%Sxd#3@ltArLtUr=a(((msP+BnYZ}ZX zYxQTVWiKoKqVqb5O!&SU4C@i!$URA8m~w5n*Qbc~CP6MTW3wx4J%3ecf}g+k!odlC(g!HiLO-kI~EoVQg!gf zrIvb1WIdurGB7BipWs${hZU-MeG~1HI8JcolPEMZF)QtT!wMG%6SoXBXV_J~{*mNE z1&8R-Nl42jN|k4)o3Y-_HuO}+ylt04w^G0RCAS=P_h3tdy6>pH+q4Q=In5C{7?~{Cmk{3L7pbN`&d$AO+C_aM^eAXxiq>E`ik5U0k*G) zo}DLT45nrzIxb_}E_1&>jZ-Ux>JW$WzG}H0Ak5|B){Jzsci7SVIYI~KN;z~M;qnq; z>ightCnicEPSy|XgB%eVPvAZ1Qx1+3E-@gwwjPNmoD#j5gw?6A!m%YaGUB!01=hP|#GmF0VNPaj30f0K zj>Z*1d#LMC;GOZOoCE&igj0O{DbeBttnL{roYmZ4!vUXRyTkNU%$Nnq&{zm{V-9u1 z>Sl6Yh{UFzhH4IZW|cW2zB3^M-r*^7#Eh9^|Ei*9RI8o#fWXCL!cJvmF(>ir>t^23 z_~lrU-1~EKBlE6%0NiS0KK##^L=s0#1nKvP)40L{XhNi%Cw+r+_!xP3@om)!qG{L> z!OIUn`$-lxS1?Q~K*jyF;K$H-UkI6f7I>k~)zpFs7dKn6 zK{L~!^kUqv8h*x5{3tT0kbH;;IVGC^F#{8SFZZc%s0~x1l!3hb?;Uzo54}u?`8;e) zVB)P|=VKECk;_0VkiIUDUKYfB{;||?gR0Z+64mh)ojw6uX<=_d36e(H?Cj|i^lwYQ zH+iP9TkrOxY5*xkfL+KeRPwMI;I((kJtguK^L)Y>s>)k}rKZGRISmU9BFrt}AjL27 zWGz!I@q&v_Box$nj^VPaZ_7yvRW8EVV^4{S1?16VS<|6WdXnE|WoVKs8CoV`p(hK! zVMl*FS<5~CN?Do1jSYlk5Hv^zqx?~%6v-G4yAYM0Ft)aiPKfg&wkBL$l%8SH$0CPF zQL+iF?zm=$sG)I``>}V0d9cVRghJyc@iQ88#IjF`Tt8|drF6#Hu}tWTKM}j;5WS=U zXET?V6XO)REAYoNhZ5DT@Ft%UeT?K!dKLOL;CSGpzm*v`i_#P!;ec=r}k-HpqB zT~Z4YWn^%t>c>B6p>Yna<-I_uKCf@f09Tj;Ah2DlBD6QpFwHOnfAuu zOIaIku&$HGExf<^2-D;7C|3(8%(6 z6d*-Bx>gd&kU>lnF?ydS>Q^>)M*I{uoEap=Cu6;?b`KpW(JBT~KBVNnlRYE5BdgV; zoCNey-8&RkEr&S>1vE}+#n#bT3{{kbKXxhq_GxKl04zIc=8uUD`1^v+oWYiG`Z`Ab_`%Y( z8gCg^>3~Pn9kt}E!mmC&#c#40AOHF-G^oMFtzZJYw|0C2vz+k!ruFo zotnn_KK}uX+U*7i<%DY`!a%pS=eG&py2Y}YqDvK^)$9R3-vrc@v=yu5t-}5nq5cpp literal 0 HcmV?d00001 diff --git a/src/assets/instagram.png b/src/assets/instagram.png new file mode 100644 index 0000000000000000000000000000000000000000..98e24ea6a98ac8c523b1ba211b2d6ed5cb72abc8 GIT binary patch literal 405 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 literal 0 HcmV?d00001 diff --git a/src/assets/login-button.png b/src/assets/login-button.png new file mode 100644 index 0000000000000000000000000000000000000000..0e8654874cea547aae41354d81c3f21ecdea5c49 GIT binary patch literal 968 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 literal 0 HcmV?d00001 diff --git a/src/assets/panda-face-logo.png b/src/assets/panda-face-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..6b2a63e99177918a9d1b90637d784779ab4d718e GIT binary patch literal 1508 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 D*X~Ho literal 0 HcmV?d00001 diff --git a/src/assets/panda-logo-small.png b/src/assets/panda-logo-small.png new file mode 100644 index 0000000000000000000000000000000000000000..3d644886701b8e493265cd77860fde1afb794341 GIT binary patch literal 9102 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 F{{t8^Xxjh) literal 0 HcmV?d00001 diff --git a/src/assets/panda-logo.png b/src/assets/panda-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..d2ceb6dd7735943e145521241aee8ee86a59203c GIT binary patch literal 17977 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 By;A@H literal 0 HcmV?d00001 diff --git a/src/assets/register.png b/src/assets/register.png new file mode 100644 index 0000000000000000000000000000000000000000..90dcbd06e0342ba67b7027cee9209b5e12567000 GIT binary patch literal 9841 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 literal 0 HcmV?d00001 diff --git a/src/assets/search-icon.png b/src/assets/search-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..193933c0600b1d5ad90e9c419288586871c77ab0 GIT binary patch literal 1307 zcmV+$1?2jPP)PLxXq|>E!%!56B0Q5oZpvtRwvdhfTSmxJZTd{D%Xh3hQ}{ z5#2pgP&fA%4a^$HEG!b2em9D+*@RVzio^mMsLAlJWX&cJtsP1W#O!XzN94Mjl?&wN`K{H;YExUJ$rwp>RbA{p z`*i?MaL`u<{qj1U(Dz@xOEw@(Es>@Hb^f6!rHIDn1w8Y|c6>@7$K`dMTU@awwL~%+ zd*w9>a)%N@dKqX#7?4F}rR83c9}40uQeoEB?LM8p;YOGqCl1T&3T6v}IEzGPy;EK@ zmIwCD^re(`H1!OExVsybI_7>Rvu`U)H`UnGm2^2Lk%q&hTXr?2Rf_gVD=P|OyPT6q z*3}$}63q-P!2w*A?r#iL6NGRQDbK4S(c8?>A{3Xh zxrK)+2M*LeaeoU0k(R(sB!fz(efPb5nRZ3y?{DPX-$^883DP>3ivdoU`TJ9{`wxV0 z5-GB5x%5~)w8S*?pR**TOa>vGM4BeBXnv7TjTCkfd6rUlFKQr_nNk*d{QmhQjO^h zf;fxBsemo}o_xR%4Z)RB+QoL}7HR93u4&aeOmZI$l>m+{?r6X>g_~)M6?v#>)ov+0 z(BkphFf3Z>w|H+#XCtIxQ`C>2P`FqjNFq6jua7aTM5u2SjqW z=&oq*l--VndN1jE>|$&|wpO}Q`p8!ULafcr0}i@_D_EvMcnC{J)J1V@LoYe!ZWEY?Kfc-b%FFa+jBDDnBE>BvlC9xHkkb4f_4c=tE=@b6zLs-6bx z=95eHusY&Gd6{&hM#0+TJF+O_^d*;p<6oZ+ja_;fwsV=NP+n&y7t9qop_Dq+cjm=x z&Z#(1dKSw2^ewla@~D_wsv{N^`qf2ljCBInw@{7FadX3vZn#5tU4LX`aK?zs9n|%> z?o4pHXhP1XP>m0}&tMDV{vAC)mnsUMcP&OE+^YE2|xJR}s)DUhoU;J{bc zE#V4)ZNN*{XbgOHmNbJ8wj|a|vMO?AbLL|-F%Sp@0)apv5C{YUfk5CJiqx!002ovPDHLkV1ma;V!HqU literal 0 HcmV?d00001 diff --git a/src/assets/search.png b/src/assets/search.png new file mode 100644 index 0000000000000000000000000000000000000000..7e1af94ab2912c608b388b03fc6fc3aad2e836a9 GIT binary patch literal 16452 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 aWo=zvC%-#qk^nCK<0-#XS1gma2>CxW=mKv5 literal 0 HcmV?d00001 diff --git a/src/assets/sort-icon.png b/src/assets/sort-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..1afeea23076bbde4f006ca8d30591407eabb0e63 GIT binary patch literal 1963 zcmb7_c~sL^7RU1oVO5q81T-MlP{e|gvJU|wvP#)pz#uy_1dvtPi(xG&#zHG73}JJ? z27)C7MiVhWqU4|l7{C~@js8dj4H85MI|+mdr~PmKnZ9%G``mZmeeb?=zkj@npa5@8 zjUyTm2t@OokH-ZCm-kIgMKQYu&)-!*J>4fX0|H6y+c)4XNHb6bfs6~@XCYnxF`8E_ zVDWDLZV(8q>cCEnG6bS}=A4JyrCea~L*R8}@KKgzDppH?ywig^M7e8OcaGK*cqSFi zd3DU8u7QPD0`w(jzgv=!ThMlLvt_=K?kh3&u544f8mj!2PUyolX%#5T@>Nv%%Y%FA zOGEYw=`uO-o}6ntmM9+{8yrZcWIj#MPh04W+9Me@79IY__IhXBMLX=1L1%)1{x zH86dYQU+3Ej{)2W8)t#-C%pzuz&(1;$1Npv`=W+L-MeoXOU0N+J104_A?V%J`9YFx z36@&Ws}<7{M4niELRL7KXm3 zd_7izaqBAXY(^vnUs0>WobM_w^nITYl7>kBPK_bo`ur~!jVM#GRGdRXG7xiSA=L#5 z)V(fl_+xB7_~r*e6B?NN;26wn7_$}{rOA3pvoEL1q(?gB%foSxuQ2^=`Yal)j911R z3O8Vdh*bAIk@?yzp0Fm&%Fp~3tf5b|y6_XI+n4A42jqd>WtzN9y!&1zu0pw3-4KdE z!_1=9{8&15MPHy5&4ZS+UamsQ`KKA7jTVeS7S?&8A{&)(dys9iDb zWTrKd)-*zmIz^&v({_JPtbgK!b&V4TMx#Troo-{xB3)%0p1rvKKyH=8NZ}+i%2n3& zZ?|0 z3#8O;cN##Yh-G>a`NPg^Esn~25Ik6jN?6S@NDlsNmwvd)D8lR=+t*U<(QMIzUIZ`P z?A-%Fl0ZDC7k*D4iYMQtDnyyI>!hn^o7)SdGtY<{<~M#6QWiR=Q&OYJJ!!Fa^EWq~ zR-8P!10rU}7yIvVToQLsM3$F^{swN?1roet#dq_FEAaT+7kxp zIw&oQwuz)&^3yw|HDx0XLst93%Q>4#-{b4m6wO(L52@aEumy(ClO<&pTP+fmqb*i~ zV_J^w1uJk9=}TmuqC~6XrxxieuNyU75o`aFA-D=J@U##Wv0A>L?W2WlFR+H2d#WCH;z#o35d*5Gc0Y1HK_UXA?D+Hpx!T50Iy4_o+0%zB zw|)SKbR>B~`y<0YW!Z#2Zckt5nrZF5tZQu!Aks0w(nN*~49ZW*us9Vf*+2=5Rg$NX zSE(tf4?QeFIgH6s<8PM#nnVg)yT!rWDWV%D%0QL@ZQ7pR4kzX~0%>0hH~PW8pJzb$+#NiO_p;)D|3t z=hnVRo0j$bNPl{WVA^zz`Ol)9m(NNn?QSE8J#d#(=!YC!JPZFmVZ_ee}fM=^V%%dXOg1@aE7PX<&3jHlX4791E8&2Fr zK$~dk3fe%Mo}v{b!baCn`b!~Dd`gd^2Pc4x`0I+W8&rg-uD~(#;ppZ(MYo zH)>WY2uJs??Nb-spS4dL1QF~TJ%CwbQlDOj;q}5qWyS<>|EK)RgS(7%czzSipME&D PfA*YbfJfKa=#u{e!0D9Q literal 0 HcmV?d00001 diff --git a/src/assets/twiter.png b/src/assets/twiter.png new file mode 100644 index 0000000000000000000000000000000000000000..36b751a47a0beaf36fabaed4b39f2caf0d69dc70 GIT binary patch literal 326 zcmeAS@N?(olHy`uVBq!ia0vp^B0wy_!3HG7B;uuk6lZ})WHAE+w=f7ZGR&GI0Tg5` z4sv&5Sa(k5C6L3C?&#~tz_78O`%fY(kbm3L#WAFUap{ys!6pTfHhJF%961xDpK$a( z;K*y3{etZ#%Qi>TM&$_MKeqfPK`j^Fzq5b;;OA#%e^yrpg@^9vtY$7;EwE_Yvt>>v zgBUk2Ty}U8_v+Npvcf#IsmC`o&7U+?HtqdXwbqh~d72FQ|IOCTvk1%a{dDEZkBpOr zcC6csCHtb!MRaZZJV)AWOaJjCmix2sHI+!JJ(H=5RqsA=&;H@N>%7#zuy~ON%#B|o VjJ95Wat`QC22WQ%mvv4FO#qQkfdK#j literal 0 HcmV?d00001 diff --git a/src/assets/youtube.png b/src/assets/youtube.png new file mode 100644 index 0000000000000000000000000000000000000000..f51731d4091084e7f089930baa2cf5a328ba421b GIT binary patch literal 288 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE-VXMsm#F#`j)FbFd;%$g$s6l5$8 za(7}_cTVOdki(Mh=6C-KhYWaJ=XO*ZJDDZ0M6_}y zFiSKFO0c>mG?g?@jEGw_}Qh)J=eKMyFFTUcim|^L8qg!Be#)azc$S;>H zy51?aNTx-GR9Ldc1Y( fJF-jW+HvW|<9Bp#OWLFZJ;31U>gTe~DWM4f3?^xf literal 0 HcmV?d00001 diff --git "a/src/hooks/\buseProducts.js" "b/src/hooks/\buseProducts.js" new file mode 100644 index 00000000..0a3e936a --- /dev/null +++ "b/src/hooks/\buseProducts.js" @@ -0,0 +1,40 @@ +import { useState, useEffect } from "react"; +import { fetchProducts } from "../utils/fetchProducts"; + +const useProducts = ({ + orderBy = "recent", + page = 1, + pageSize = 10, + keyword = "", +}) => { + const [products, setProducts] = useState([]); + const [isLoading, setIsLoading] = useState(true); + const [hasError, setHasError] = useState(false); + + useEffect(() => { + const getProducts = async () => { + setIsLoading(true); + setHasError(false); + try { + const data = await fetchProducts({ + orderBy, + page, + pageSize, + keyword, + }); + setProducts(data.list); + } catch (error) { + console.error("상품 로딩 실패:", error); + setHasError(true); + } finally { + setIsLoading(false); + } + }; + + getProducts(); + }, [orderBy, page, pageSize, keyword]); + + return { products, isLoading, hasError }; +}; + +export default useProducts; diff --git a/src/hooks/useResponsiveCount.js b/src/hooks/useResponsiveCount.js new file mode 100644 index 00000000..4743b662 --- /dev/null +++ b/src/hooks/useResponsiveCount.js @@ -0,0 +1,32 @@ +import { useState, useLayoutEffect } from "react"; + +const useResponsiveCount = ({ pc = 4, tablet = 2, mobile = 1 }) => { + const [count, setCount] = useState(mobile); + + useLayoutEffect(() => { + const updateCount = () => { + const width = window.innerWidth; + if (width >= BREAKPOINTS.pc) { + setCount(pc); + } else if (width >= BREAKPOINTS.tablet) { + setCount(tablet); + } else { + setCount(mobile); + } + }; + + updateCount(); + window.addEventListener("resize", updateCount); + return () => window.removeEventListener("resize", updateCount); + }, [pc, tablet, mobile]); + + return count; +}; + +export default useResponsiveCount; + +// breakpoints.js +export const BREAKPOINTS = { + pc: 1200, + tablet: 768, +}; diff --git a/src/index.css b/src/index.css new file mode 100644 index 00000000..ce06e49d --- /dev/null +++ b/src/index.css @@ -0,0 +1,15 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +/* Tailwind 글로벌 스타일 */ +@layer base { + * { + box-sizing: border-box; + margin: 0; + padding: 0; + } + body { + font-family: "Pretendard", sans-serif; + } +} diff --git a/src/main.jsx b/src/main.jsx new file mode 100644 index 00000000..3f2d3d05 --- /dev/null +++ b/src/main.jsx @@ -0,0 +1,5 @@ +import { createRoot } from "react-dom/client"; +import App from "./App.jsx"; +import "./index.css"; + +createRoot(document.getElementById("root")).render(); diff --git a/src/pages/ErrorPage.jsx b/src/pages/ErrorPage.jsx new file mode 100644 index 00000000..fe550d31 --- /dev/null +++ b/src/pages/ErrorPage.jsx @@ -0,0 +1,32 @@ +import { Link } from "react-router-dom"; + +import Nav from "../Components/Common/Nav"; + +const ErrorPage = () => { + return ( + <> +
+ ); }; diff --git a/src/Components/Common/Loading.jsx b/src/Components/Common/Loading.jsx index 6c47531a..e624ce2d 100644 --- a/src/Components/Common/Loading.jsx +++ b/src/Components/Common/Loading.jsx @@ -1,9 +1,28 @@ -const Loading = ({ message = "로딩 중입니다..." }) => { +const Loading = ({ categori }) => { return ( -
-
-

{message}

-
+ <> + {categori === "best" ? ( +
+
+ panda-loading-img +
+ ) : ( +
+
+ panda-loading-img +
+ )} + ); }; diff --git a/src/Components/Common/MyErrorBoundary.jsx b/src/Components/Common/MyErrorBoundary.jsx new file mode 100644 index 00000000..33237752 --- /dev/null +++ b/src/Components/Common/MyErrorBoundary.jsx @@ -0,0 +1,16 @@ +import { ErrorBoundary } from "react-error-boundary"; +import ErrorMessage from "./ErrorMessage"; + +const MyErrorBoundary = ({ children }) => { + return ( + ( + + )} + > + {children} + + ); +}; + +export default MyErrorBoundary; diff --git a/src/Components/Common/Nav.jsx b/src/Components/Common/Nav.jsx index 1af672a1..5956d455 100644 --- a/src/Components/Common/Nav.jsx +++ b/src/Components/Common/Nav.jsx @@ -1,8 +1,12 @@ import pandaFace from "../../assets/panda-face.png"; import pandaFaceLogo from "../../assets/panda-logo.png"; -import { Link } from "react-router-dom"; +import { Link, useLocation } from "react-router-dom"; const Nav = ({ darkMode }) => { + const location = useLocation(); + const isItemsPage = location.pathname === "/items"; + const isBoardsPage = location.pathname === "/boards"; + const isAddItemPage = location.pathname === "/additem"; return (
{isLoading ? ( -

로딩 중...

+ ) : ( )}
{searchKeyword ? null : ( - + )}
); }; -export default AllProcuts; +export default AllProducts; diff --git a/src/Components/items/BestProducts.jsx b/src/Components/items/BestProducts.jsx index 93b0f60f..a714b97a 100644 --- a/src/Components/items/BestProducts.jsx +++ b/src/Components/items/BestProducts.jsx @@ -5,30 +5,27 @@ import useResponsiveCount from "../../hooks/useResponsiveCount"; import useProducts from "../../hooks/\buseProducts"; const BestProducts = () => { - const { products, isLoading, hasError } = useProducts({ + const visibleCount = useResponsiveCount({ pc: 4, tablet: 2, mobile: 1 }); + const { products, isLoading } = useProducts({ orderBy: "favorite", page: 1, - pageSize: 10, + pageSize: visibleCount, }); - const visibleCount = useResponsiveCount({ pc: 4, tablet: 2, mobile: 1 }); - - if (isLoading) return ; - if (hasError) - return ( - window.location.reload()} - /> - ); return (
베스트 상품
- {products.slice(0, visibleCount).map((product) => ( - - ))} + {isLoading ? ( + + ) : ( + products + .slice(0, visibleCount) + .map((product) => ( + + )) + )}
diff --git a/src/Components/items/Pagination.jsx b/src/Components/items/Pagination.jsx index ad38efb1..3c8e61d7 100644 --- a/src/Components/items/Pagination.jsx +++ b/src/Components/items/Pagination.jsx @@ -1,7 +1,23 @@ import btnRight from "../../assets/btn-right.png"; import btnLeft from "../../assets/btn-left.png"; -const Pagination = ({ currentPage, onPageClick }) => { +const Pagination = ({ + currentPage, + onPageClick, + totalCount, + visibleCount, + pageSize, +}) => { + const totalPages = Math.ceil(totalCount / pageSize); + console.log(totalCount); + console.log(visibleCount); + console.log(totalPages); + + const pageGroupSize = 5; + const currentGroup = Math.floor((currentPage - 1) / pageGroupSize); + const startPage = currentGroup * pageGroupSize + 1; + const endPage = Math.min(startPage + pageGroupSize - 1, totalPages); + const handlePrevPage = () => { if (currentPage > 1) { onPageClick(currentPage - 1); @@ -20,7 +36,10 @@ const Pagination = ({ currentPage, onPageClick }) => { {/* 페이지 번호 버튼 */} - {[1, 2, 3, 4, 5].map((pageNum) => ( + {Array.from( + { length: endPage - startPage + 1 }, + (_, i) => startPage + i + ).map((pageNum) => ( ))} {/* 다음 페이지 버튼 */} -
diff --git a/src/Components/items/useAllProductsController.jsx b/src/Components/items/useAllProductsController.jsx index 6e3cf06e..a15da46f 100644 --- a/src/Components/items/useAllProductsController.jsx +++ b/src/Components/items/useAllProductsController.jsx @@ -1,20 +1,28 @@ -import { useState } from "react"; +import { useEffect } from "react"; import { useSearchParams } from "react-router-dom"; import useResponsiveCount from "../../hooks/useResponsiveCount"; import useProducts from "../../hooks/\buseProducts"; const useAllProductsController = () => { - const [sortOption, setSortOption] = useState("최신순"); - const [searchKeyword, setSearchKeyword] = useState(""); - const orderBy = sortOption === "좋아요순" ? "favorite" : "recent"; const [searchParams, setSearchParams] = useSearchParams(); + const currentPage = Number(searchParams.get("page")) || 1; + const searchKeyword = searchParams.get("keyword") || ""; + const sort = searchParams.get("sort") || "recent"; + const sortOption = sort === "favorite" ? "좋아요순" : "최신순"; + const orderBy = sortOption === "좋아요순" ? "favorite" : "recent"; - const { products = [], isLoading } = useProducts({ + const pageSize = useResponsiveCount({ pc: 10, tablet: 6, mobile: 4 }); + + const { + products = [], + totalCount = 0, + isLoading, + } = useProducts({ orderBy, keyword: searchKeyword, page: currentPage, - pageSize: 10, + pageSize, }); const visibleCount = useResponsiveCount({ @@ -24,9 +32,38 @@ const useAllProductsController = () => { }); const handlePageClick = (pageNum) => { - setSearchParams({ page: pageNum }); + setSearchParams((prev) => { + return { + ...Object.fromEntries(prev), + page: pageNum, + }; + }); }; + const setSortOption = (newSortOption) => { + const newSort = newSortOption === "좋아요순" ? "favorite" : "recent"; + setSearchParams((prev) => ({ + ...Object.fromEntries(prev), + sort: newSort, + page: 1, + })); + }; + + const setSearchKeyword = (newKeyword) => { + setSearchKeyword((prev) => ({ + ...Object.fromEntries(prev), + keyword: newKeyword, + page: 1, + })); + }; + + useEffect(() => { + const maxPage = Math.ceil(totalCount / pageSize); + if (currentPage > maxPage && maxPage > 0) { + setSearchParams({ page: 1 }); + } + }, [totalCount, pageSize, currentPage, setSearchParams]); // 모바일에서 페이지 수는 67개인데 67번째 페이지에서 크기를 늘리면 (태블릿:45, 피씨:27 페이지까지 밖에 없음) 페이지번호가 렌더링되지 않는 불편함 개선을 위해 추가한 로직 + return { sortOption, setSortOption, @@ -37,6 +74,8 @@ const useAllProductsController = () => { visibleCount, currentPage, handlePageClick, + totalCount, + pageSize, }; }; diff --git a/src/assets/add-item.png b/src/assets/add-item.png new file mode 100644 index 0000000000000000000000000000000000000000..88af341438718f718189f682468f581c0b70ac94 GIT binary patch literal 4547 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 SkD<)~0000 { const [products, setProducts] = useState([]); + const [totalCount, setTotalCount] = useState(0); const [isLoading, setIsLoading] = useState(true); - const [hasError, setHasError] = useState(false); useEffect(() => { const getProducts = async () => { setIsLoading(true); - setHasError(false); - try { - const data = await fetchProducts({ - orderBy, - page, - pageSize, - keyword, - }); - setProducts(data.list); - } catch (error) { - console.error("상품 로딩 실패:", error); - setHasError(true); - } finally { - setIsLoading(false); - } + + const data = await fetchProducts({ + orderBy, + page, + pageSize, + keyword, + }); + setProducts(data.list); + setTotalCount(data.totalCount); + setIsLoading(false); }; getProducts(); }, [orderBy, page, pageSize, keyword]); - return { products, isLoading, hasError }; + return { + products, + totalCount, + isLoading, + }; }; export default useProducts; diff --git a/src/hooks/useResponsiveCount.js b/src/hooks/useResponsiveCount.js index 4743b662..79288092 100644 --- a/src/hooks/useResponsiveCount.js +++ b/src/hooks/useResponsiveCount.js @@ -1,7 +1,7 @@ import { useState, useLayoutEffect } from "react"; const useResponsiveCount = ({ pc = 4, tablet = 2, mobile = 1 }) => { - const [count, setCount] = useState(mobile); + const [count, setCount] = useState(pc); useLayoutEffect(() => { const updateCount = () => { diff --git a/src/pages/AddItemPage.jsx b/src/pages/AddItemPage.jsx new file mode 100644 index 00000000..e22378ca --- /dev/null +++ b/src/pages/AddItemPage.jsx @@ -0,0 +1,77 @@ +import { useRef } from "react"; +import { useState } from "react"; + +import Nav from "../Components/Common/Nav"; +import addItem from "../assets/add-item.png"; +import xIcon from "../assets/x-icon.png"; + +const AddItemPage = () => { + const [previewUrl, setPreviewUrl] = useState(""); + const imageInputRef = useRef(null); + + const handleUploadClick = () => { + imageInputRef.current.click(); + }; + + const handleFileChange = (e) => { + const file = e.target.files[0]; + if (file) { + const reader = new FileReader(); + reader.onloadend = () => { + setPreviewUrl(reader.result); + }; + reader.readAsDataURL(file); + } + e.target.value = ""; + }; + return ( +
+
+ ); +}; + +export default AddItemPage; diff --git a/src/pages/BoardsPage.jsx b/src/pages/BoardsPage.jsx new file mode 100644 index 00000000..0ee0b637 --- /dev/null +++ b/src/pages/BoardsPage.jsx @@ -0,0 +1,11 @@ +import Nav from "../Components/Common/Nav"; + +const BoardsPage = () => { + return ( +
+
+ ); +}; + +export default BoardsPage; diff --git a/src/pages/ItemsPage.jsx b/src/pages/ItemsPage.jsx index d328acac..137f219f 100644 --- a/src/pages/ItemsPage.jsx +++ b/src/pages/ItemsPage.jsx @@ -1,16 +1,19 @@ import Nav from "../Components/Common/Nav"; -import ErrorBoundary from "../Components/Common/ErrorBoundary"; import BestProducts from "../Components/items/BestProducts"; import AllProducts from "../Components/items/AllProducts"; +import MyErrorBoundary from "../Components/Common/MyErrorBoundary"; const ItemsPage = () => { return (
); }; From 870cb375417f1ac683045851940e8d7f210239f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=B5=9C=EA=B6=8C=EC=A7=84?= Date: Sun, 13 Apr 2025 21:21:39 +0900 Subject: [PATCH 8/8] =?UTF-8?q?=EB=AF=B8=EC=85=986=20=EC=99=84=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 17 ++++ package.json | 1 + src/Components/Additem/FormField.jsx | 18 ++++ src/Components/Additem/FormHeader.jsx | 20 ++++ src/Components/Additem/ImageUploader.jsx | 77 +++++++++++++++ src/Components/Additem/TagInput.jsx | 56 +++++++++++ src/Components/Common/FormInput.jsx | 65 +++++++++++++ src/Components/Login/Login.jsx | 6 +- src/Components/Signup/Signup.jsx | 9 +- src/pages/AddItemPage.jsx | 114 ++++++++++++----------- 10 files changed, 321 insertions(+), 62 deletions(-) create mode 100644 src/Components/Additem/FormField.jsx create mode 100644 src/Components/Additem/FormHeader.jsx create mode 100644 src/Components/Additem/ImageUploader.jsx create mode 100644 src/Components/Additem/TagInput.jsx create mode 100644 src/Components/Common/FormInput.jsx diff --git a/package-lock.json b/package-lock.json index 2303ee67..933e9713 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,6 +12,7 @@ "react": "^19.0.0", "react-dom": "^19.0.0", "react-error-boundary": "^5.0.0", + "react-hook-form": "^7.55.0", "react-router-dom": "^7.2.0" }, "devDependencies": { @@ -3280,6 +3281,22 @@ "react": ">=16.13.1" } }, + "node_modules/react-hook-form": { + "version": "7.55.0", + "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.55.0.tgz", + "integrity": "sha512-XRnjsH3GVMQz1moZTW53MxfoWN7aDpUg/GpVNc4A3eXRVNdGXfbzJ4vM4aLQ8g6XCUh1nIbx70aaNCl7kxnjog==", + "license": "MIT", + "engines": { + "node": ">=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/react-hook-form" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17 || ^18 || ^19" + } + }, "node_modules/react-refresh": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", diff --git a/package.json b/package.json index f0889814..b07b2d2b 100644 --- a/package.json +++ b/package.json @@ -14,6 +14,7 @@ "react": "^19.0.0", "react-dom": "^19.0.0", "react-error-boundary": "^5.0.0", + "react-hook-form": "^7.55.0", "react-router-dom": "^7.2.0" }, "devDependencies": { diff --git a/src/Components/Additem/FormField.jsx b/src/Components/Additem/FormField.jsx new file mode 100644 index 00000000..c2857925 --- /dev/null +++ b/src/Components/Additem/FormField.jsx @@ -0,0 +1,18 @@ +import React from "react"; +import FormInput from "../Common/FormInput"; + +const FormField = ({ label, id, type = "text", placeholder, register }) => { + return ( +
+ + +
+ ); +}; + +export default FormField; diff --git a/src/Components/Additem/FormHeader.jsx b/src/Components/Additem/FormHeader.jsx new file mode 100644 index 00000000..53e6e077 --- /dev/null +++ b/src/Components/Additem/FormHeader.jsx @@ -0,0 +1,20 @@ +const FormHeader = ({ title, isSubmitEnabled }) => { + return ( +
+
+
{title}
+ +
+
+ ); +}; + +export default FormHeader; diff --git a/src/Components/Additem/ImageUploader.jsx b/src/Components/Additem/ImageUploader.jsx new file mode 100644 index 00000000..3f7cb5d2 --- /dev/null +++ b/src/Components/Additem/ImageUploader.jsx @@ -0,0 +1,77 @@ +import addItem from "../../assets/add-item.png"; +import xIcon from "../../assets/x-icon.png"; + +import FormInput from "../Common/FormInput"; + +const ImageUploader = ({ + previewUrl, + setPreviewUrl, + showWarning, + setShowWarning, + imageInputRef, +}) => { + const handleUploadClick = () => { + imageInputRef.current.click(); + }; + + const handleFileChange = (e) => { + const file = e.target.files[0]; + if (previewUrl) { + setShowWarning(true); + } else if (file) { + const reader = new FileReader(); + reader.onloadend = () => { + setPreviewUrl(reader.result); + setShowWarning(false); + }; + reader.readAsDataURL(file); + } + e.target.value = ""; + }; + return ( +
+
+ 상품 이미지 +
+
+
+ {showWarning && ( +
+ *이미지 등록은 최대 1개까지 가능합니다. +
+ )} +
+ ); +}; + +export default ImageUploader; diff --git a/src/Components/Additem/TagInput.jsx b/src/Components/Additem/TagInput.jsx new file mode 100644 index 00000000..33cb6621 --- /dev/null +++ b/src/Components/Additem/TagInput.jsx @@ -0,0 +1,56 @@ +import { useState } from "react"; + +const TagInput = ({ tags, setTags }) => { + const [tagInput, setTagInput] = useState(""); + + const handleKeyDown = (e) => { + if (e.nativeEvent.isComposing) return; + + if (e.key === "Enter") { + e.preventDefault(); + const trimmed = tagInput.trim(); + if (trimmed && !tags.includes(trimmed)) { + setTags([...tags, trimmed]); + } + setTagInput(""); + } + }; + const removeTag = (index) => { + setTags(tags.filter((_, i) => i !== index)); + }; + return ( + <> + + setTagInput(e.target.value)} + onKeyDown={handleKeyDown} + placeholder="태그를 입력해주세요" + className="input-primary" + /> + +
+ {tags.map((tag, i) => ( +
+ #{tag} + +
+ ))} +
+ + ); +}; + +export default TagInput; diff --git a/src/Components/Common/FormInput.jsx b/src/Components/Common/FormInput.jsx new file mode 100644 index 00000000..3d49d549 --- /dev/null +++ b/src/Components/Common/FormInput.jsx @@ -0,0 +1,65 @@ +import React from "react"; + +const FormInput = ({ + id, + type = "text", + label, + placeholder, + onBlur, + error, + hidden = false, + className = "", + rightIcon, + accept, + ref, + ...rest +}) => { + return ( +
+ {label && !hidden && ( + + )} +
+ {type === "textarea" ? ( +