From 9ed38e694771e9e2b48e242223a7cf78645aa59b Mon Sep 17 00:00:00 2001 From: eliascoding365 Date: Tue, 9 Jul 2024 15:28:19 -0300 Subject: [PATCH 1/7] Initial commit --- Bulidbox-challenge/.eslintrc.cjs | 18 + Bulidbox-challenge/.gitignore | 24 + Bulidbox-challenge/README.md | 30 + Bulidbox-challenge/index.html | 13 + Bulidbox-challenge/package-lock.json | 3255 +++++++++++++++++++++++ Bulidbox-challenge/package.json | 28 + Bulidbox-challenge/public/vite.svg | 1 + Bulidbox-challenge/src/App.css | 42 + Bulidbox-challenge/src/App.tsx | 35 + Bulidbox-challenge/src/assets/react.svg | 1 + Bulidbox-challenge/src/index.css | 68 + Bulidbox-challenge/src/main.tsx | 10 + Bulidbox-challenge/src/vite-env.d.ts | 1 + Bulidbox-challenge/tsconfig.app.json | 27 + Bulidbox-challenge/tsconfig.json | 11 + Bulidbox-challenge/tsconfig.node.json | 13 + Bulidbox-challenge/vite.config.ts | 7 + 17 files changed, 3584 insertions(+) create mode 100644 Bulidbox-challenge/.eslintrc.cjs create mode 100644 Bulidbox-challenge/.gitignore create mode 100644 Bulidbox-challenge/README.md create mode 100644 Bulidbox-challenge/index.html create mode 100644 Bulidbox-challenge/package-lock.json create mode 100644 Bulidbox-challenge/package.json create mode 100644 Bulidbox-challenge/public/vite.svg create mode 100644 Bulidbox-challenge/src/App.css create mode 100644 Bulidbox-challenge/src/App.tsx create mode 100644 Bulidbox-challenge/src/assets/react.svg create mode 100644 Bulidbox-challenge/src/index.css create mode 100644 Bulidbox-challenge/src/main.tsx create mode 100644 Bulidbox-challenge/src/vite-env.d.ts create mode 100644 Bulidbox-challenge/tsconfig.app.json create mode 100644 Bulidbox-challenge/tsconfig.json create mode 100644 Bulidbox-challenge/tsconfig.node.json create mode 100644 Bulidbox-challenge/vite.config.ts diff --git a/Bulidbox-challenge/.eslintrc.cjs b/Bulidbox-challenge/.eslintrc.cjs new file mode 100644 index 00000000..d6c95379 --- /dev/null +++ b/Bulidbox-challenge/.eslintrc.cjs @@ -0,0 +1,18 @@ +module.exports = { + root: true, + env: { browser: true, es2020: true }, + extends: [ + 'eslint:recommended', + 'plugin:@typescript-eslint/recommended', + 'plugin:react-hooks/recommended', + ], + ignorePatterns: ['dist', '.eslintrc.cjs'], + parser: '@typescript-eslint/parser', + plugins: ['react-refresh'], + rules: { + 'react-refresh/only-export-components': [ + 'warn', + { allowConstantExport: true }, + ], + }, +} diff --git a/Bulidbox-challenge/.gitignore b/Bulidbox-challenge/.gitignore new file mode 100644 index 00000000..a547bf36 --- /dev/null +++ b/Bulidbox-challenge/.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/Bulidbox-challenge/README.md b/Bulidbox-challenge/README.md new file mode 100644 index 00000000..0d6babed --- /dev/null +++ b/Bulidbox-challenge/README.md @@ -0,0 +1,30 @@ +# React + TypeScript + 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 updating the configuration to enable type aware lint rules: + +- Configure the top-level `parserOptions` property like this: + +```js +export default { + // other rules... + parserOptions: { + ecmaVersion: 'latest', + sourceType: 'module', + project: ['./tsconfig.json', './tsconfig.node.json'], + tsconfigRootDir: __dirname, + }, +} +``` + +- Replace `plugin:@typescript-eslint/recommended` to `plugin:@typescript-eslint/recommended-type-checked` or `plugin:@typescript-eslint/strict-type-checked` +- Optionally add `plugin:@typescript-eslint/stylistic-type-checked` +- Install [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) and add `plugin:react/recommended` & `plugin:react/jsx-runtime` to the `extends` list diff --git a/Bulidbox-challenge/index.html b/Bulidbox-challenge/index.html new file mode 100644 index 00000000..e4b78eae --- /dev/null +++ b/Bulidbox-challenge/index.html @@ -0,0 +1,13 @@ + + + + + + + Vite + React + TS + + +
+ + + diff --git a/Bulidbox-challenge/package-lock.json b/Bulidbox-challenge/package-lock.json new file mode 100644 index 00000000..cdef83c7 --- /dev/null +++ b/Bulidbox-challenge/package-lock.json @@ -0,0 +1,3255 @@ +{ + "name": "bulidbox-challenge", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "bulidbox-challenge", + "version": "0.0.0", + "dependencies": { + "react": "^18.3.1", + "react-dom": "^18.3.1" + }, + "devDependencies": { + "@types/react": "^18.3.3", + "@types/react-dom": "^18.3.0", + "@typescript-eslint/eslint-plugin": "^7.13.1", + "@typescript-eslint/parser": "^7.13.1", + "@vitejs/plugin-react": "^4.3.1", + "eslint": "^8.57.0", + "eslint-plugin-react-hooks": "^4.6.2", + "eslint-plugin-react-refresh": "^0.4.7", + "typescript": "^5.2.2", + "vite": "^5.3.1" + } + }, + "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, + "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.24.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.24.7", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.7.tgz", + "integrity": "sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.7.tgz", + "integrity": "sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.24.7", + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helpers": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/template": "^7.24.7", + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7", + "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/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz", + "integrity": "sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.7", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.7.tgz", + "integrity": "sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.24.7", + "@babel/helper-validator-option": "^7.24.7", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz", + "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz", + "integrity": "sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==", + "dev": true, + "dependencies": { + "@babel/template": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz", + "integrity": "sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", + "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.7.tgz", + "integrity": "sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-simple-access": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.7.tgz", + "integrity": "sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", + "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz", + "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz", + "integrity": "sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.7.tgz", + "integrity": "sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.7.tgz", + "integrity": "sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==", + "dev": true, + "dependencies": { + "@babel/template": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", + "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.24.7", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz", + "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.24.7.tgz", + "integrity": "sha512-fOPQYbGSgH0HUp4UJO4sMBFjY6DuWq+2i8rixyUMb3CdGixs/gccURvYOAhajBdKDoGajFr3mUq5rH3phtkGzw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.24.7.tgz", + "integrity": "sha512-J2z+MWzZHVOemyLweMqngXrgGC42jQ//R0KdxqkIz/OrbVIIlhFI3WigZ5fO+nwFvBlncr4MGapd8vTyc7RPNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz", + "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz", + "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.24.7", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-hoist-variables": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", + "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz", + "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.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": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/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, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/js": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "deprecated": "Use @eslint/config-array instead", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/config-array/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, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", + "dev": true + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, + "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, + "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, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "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, + "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, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.1.tgz", + "integrity": "sha512-lncuC4aHicncmbORnx+dUaAgzee9cm/PbIqgWz1PpXuwc+sa1Ct83tnqUDy/GFKleLiN7ZIeytM6KJ4cAn1SxA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.1.tgz", + "integrity": "sha512-F/tkdw0WSs4ojqz5Ovrw5r9odqzFjb5LIgHdHZG65dFI1lWTWRVy32KDJLKRISHgJvqUeUhdIvy43fX41znyDg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.1.tgz", + "integrity": "sha512-vk+ma8iC1ebje/ahpxpnrfVQJibTMyHdWpOGZ3JpQ7Mgn/3QNHmPq7YwjZbIE7km73dH5M1e6MRRsnEBW7v5CQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.1.tgz", + "integrity": "sha512-IgpzXKauRe1Tafcej9STjSSuG0Ghu/xGYH+qG6JwsAUxXrnkvNHcq/NL6nz1+jzvWAnQkuAJ4uIwGB48K9OCGA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.1.tgz", + "integrity": "sha512-P9bSiAUnSSM7EmyRK+e5wgpqai86QOSv8BwvkGjLwYuOpaeomiZWifEos517CwbG+aZl1T4clSE1YqqH2JRs+g==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.1.tgz", + "integrity": "sha512-5RnjpACoxtS+aWOI1dURKno11d7krfpGDEn19jI8BuWmSBbUC4ytIADfROM1FZrFhQPSoP+KEa3NlEScznBTyQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.1.tgz", + "integrity": "sha512-8mwmGD668m8WaGbthrEYZ9CBmPug2QPGWxhJxh/vCgBjro5o96gL04WLlg5BA233OCWLqERy4YUzX3bJGXaJgQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.1.tgz", + "integrity": "sha512-dJX9u4r4bqInMGOAQoGYdwDP8lQiisWb9et+T84l2WXk41yEej8v2iGKodmdKimT8cTAYt0jFb+UEBxnPkbXEQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.1.tgz", + "integrity": "sha512-V72cXdTl4EI0x6FNmho4D502sy7ed+LuVW6Ym8aI6DRQ9hQZdp5sj0a2usYOlqvFBNKQnLQGwmYnujo2HvjCxQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.1.tgz", + "integrity": "sha512-f+pJih7sxoKmbjghrM2RkWo2WHUW8UbfxIQiWo5yeCaCM0TveMEuAzKJte4QskBp1TIinpnRcxkquY+4WuY/tg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.1.tgz", + "integrity": "sha512-qb1hMMT3Fr/Qz1OKovCuUM11MUNLUuHeBC2DPPAWUYYUAOFWaxInaTwTQmc7Fl5La7DShTEpmYwgdt2hG+4TEg==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.1.tgz", + "integrity": "sha512-7O5u/p6oKUFYjRbZkL2FLbwsyoJAjyeXHCU3O4ndvzg2OFO2GinFPSJFGbiwFDaCFc+k7gs9CF243PwdPQFh5g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.1.tgz", + "integrity": "sha512-pDLkYITdYrH/9Cv/Vlj8HppDuLMDUBmgsM0+N+xLtFd18aXgM9Nyqupb/Uw+HeidhfYg2lD6CXvz6CjoVOaKjQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.1.tgz", + "integrity": "sha512-W2ZNI323O/8pJdBGil1oCauuCzmVd9lDmWBBqxYZcOqWD6aWqJtVBQ1dFrF4dYpZPks6F+xCZHfzG5hYlSHZ6g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.1.tgz", + "integrity": "sha512-ELfEX1/+eGZYMaCIbK4jqLxO1gyTSOIlZr6pbC4SRYFaSIDVKOnZNMdoZ+ON0mrFDp4+H5MhwNC1H/AhE3zQLg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.1.tgz", + "integrity": "sha512-yjk2MAkQmoaPYCSu35RLJ62+dz358nE83VfTePJRp8CG7aMg25mEJYpXFiD+NcevhX8LxD5OP5tktPXnXN7GDw==", + "cpu": [ + "x64" + ], + "dev": true, + "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, + "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, + "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, + "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, + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true + }, + "node_modules/@types/prop-types": { + "version": "15.7.12", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz", + "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==", + "dev": true + }, + "node_modules/@types/react": { + "version": "18.3.3", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.3.tgz", + "integrity": "sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==", + "dev": true, + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.3.0", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz", + "integrity": "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==", + "dev": true, + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.16.0.tgz", + "integrity": "sha512-py1miT6iQpJcs1BiJjm54AMzeuMPBSPuKPlnT8HlfudbcS5rYeX5jajpLf3mrdRh9dA/Ec2FVUY0ifeVNDIhZw==", + "dev": true, + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "7.16.0", + "@typescript-eslint/type-utils": "7.16.0", + "@typescript-eslint/utils": "7.16.0", + "@typescript-eslint/visitor-keys": "7.16.0", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^7.0.0", + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.16.0.tgz", + "integrity": "sha512-ar9E+k7CU8rWi2e5ErzQiC93KKEFAXA2Kky0scAlPcxYblLt8+XZuHUZwlyfXILyQa95P6lQg+eZgh/dDs3+Vw==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "7.16.0", + "@typescript-eslint/types": "7.16.0", + "@typescript-eslint/typescript-estree": "7.16.0", + "@typescript-eslint/visitor-keys": "7.16.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.16.0.tgz", + "integrity": "sha512-8gVv3kW6n01Q6TrI1cmTZ9YMFi3ucDT7i7aI5lEikk2ebk1AEjrwX8MDTdaX5D7fPXMBLvnsaa0IFTAu+jcfOw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.16.0", + "@typescript-eslint/visitor-keys": "7.16.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.16.0.tgz", + "integrity": "sha512-j0fuUswUjDHfqV/UdW6mLtOQQseORqfdmoBNDFOqs9rvNVR2e+cmu6zJu/Ku4SDuqiJko6YnhwcL8x45r8Oqxg==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "7.16.0", + "@typescript-eslint/utils": "7.16.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.16.0.tgz", + "integrity": "sha512-fecuH15Y+TzlUutvUl9Cc2XJxqdLr7+93SQIbcZfd4XRGGKoxyljK27b+kxKamjRkU7FYC6RrbSCg0ALcZn/xw==", + "dev": true, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.16.0.tgz", + "integrity": "sha512-a5NTvk51ZndFuOLCh5OaJBELYc2O3Zqxfl3Js78VFE1zE46J2AaVuW+rEbVkQznjkmlzWsUI15BG5tQMixzZLw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.16.0", + "@typescript-eslint/visitor-keys": "7.16.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.16.0.tgz", + "integrity": "sha512-PqP4kP3hb4r7Jav+NiRCntlVzhxBNWq6ZQ+zQwII1y/G/1gdIPeYDCKr2+dH6049yJQsWZiHU6RlwvIFBXXGNA==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "7.16.0", + "@typescript-eslint/types": "7.16.0", + "@typescript-eslint/typescript-estree": "7.16.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.16.0.tgz", + "integrity": "sha512-rMo01uPy9C7XxG7AFsxa8zLnWXTF8N3PYclekWSrurvhwiw1eW88mrKiAYe6s53AUY57nTRz8dJsuuXdkAhzCg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.16.0", + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, + "node_modules/@vitejs/plugin-react": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.1.tgz", + "integrity": "sha512-m/V2syj5CuVnaxcUJOQRel/Wr31FFXRFlnOoq1TVtkCxsY5veGMTEmpWHndrhB2U8ScHtCQB1e+4hWYExQc6Lg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.24.5", + "@babel/plugin-transform-react-jsx-self": "^7.24.5", + "@babel/plugin-transform-react-jsx-source": "^7.24.1", + "@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" + } + }, + "node_modules/acorn": { + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.23.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.1.tgz", + "integrity": "sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==", + "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" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001629", + "electron-to-chromium": "^1.4.796", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.16" + }, + "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, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001640", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001640.tgz", + "integrity": "sha512-lA4VMpW0PSUrFnkmVuEKBUovSWKhj7puyCg8StBChgu298N1AtuF1sKWEvfDuimSEDbhlb/KqPKC3fs1HbuQUA==", + "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" + } + ] + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/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 + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "dev": true + }, + "node_modules/debug": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.820", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.820.tgz", + "integrity": "sha512-kK/4O/YunacfboFEk/BDf7VO1HoPmDudLTJAU9NmXIOSjsV7qVIX3OrI4REZo0VmdqhcpUcncQc6N8Q3aEXlHg==", + "dev": true + }, + "node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz", + "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/eslint-plugin-react-refresh": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.7.tgz", + "integrity": "sha512-yrj+KInFmwuQS2UQcg1SF83ha1tuHC1jMQbRNyuWtlEzzKRDgAl7L4Yp4NlDUZTZNlWvHEzOtJhMi40R7JxcSw==", + "dev": true, + "peerDependencies": { + "eslint": ">=7" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/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, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "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, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "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, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "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, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob/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, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/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, + "engines": { + "node": ">=4" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "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, + "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, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "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, + "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, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", + "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", + "dev": true, + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.4.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.39.tgz", + "integrity": "sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.1", + "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.18.1.tgz", + "integrity": "sha512-Elx2UT8lzxxOXMpy5HWQGZqkrQOtrVDDa/bm9l10+U4rQnVzbL/LgZ4NOM1MPIDyHk69W4InuYDF5dzRh4Kw1A==", + "dev": true, + "dependencies": { + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.18.1", + "@rollup/rollup-android-arm64": "4.18.1", + "@rollup/rollup-darwin-arm64": "4.18.1", + "@rollup/rollup-darwin-x64": "4.18.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.18.1", + "@rollup/rollup-linux-arm-musleabihf": "4.18.1", + "@rollup/rollup-linux-arm64-gnu": "4.18.1", + "@rollup/rollup-linux-arm64-musl": "4.18.1", + "@rollup/rollup-linux-powerpc64le-gnu": "4.18.1", + "@rollup/rollup-linux-riscv64-gnu": "4.18.1", + "@rollup/rollup-linux-s390x-gnu": "4.18.1", + "@rollup/rollup-linux-x64-gnu": "4.18.1", + "@rollup/rollup-linux-x64-musl": "4.18.1", + "@rollup/rollup-win32-arm64-msvc": "4.18.1", + "@rollup/rollup-win32-ia32-msvc": "4.18.1", + "@rollup/rollup-win32-x64-msvc": "4.18.1", + "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" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map-js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "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, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-api-utils": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", + "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", + "dev": true, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typescript": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.3.tgz", + "integrity": "sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", + "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", + "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" + } + ], + "dependencies": { + "escalade": "^3.1.2", + "picocolors": "^1.0.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, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/vite": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.3.3.tgz", + "integrity": "sha512-NPQdeCU0Dv2z5fu+ULotpuq5yfCS1BzKUIPhNbP3YBfAMGJXbt2nS+sbTFu+qchaqWTD+H3JK++nRwr6XIcp6A==", + "dev": true, + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.39", + "rollup": "^4.13.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.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", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "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, + "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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/Bulidbox-challenge/package.json b/Bulidbox-challenge/package.json new file mode 100644 index 00000000..43a614a8 --- /dev/null +++ b/Bulidbox-challenge/package.json @@ -0,0 +1,28 @@ +{ + "name": "bulidbox-challenge", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc -b && vite build", + "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0", + "preview": "vite preview" + }, + "dependencies": { + "react": "^18.3.1", + "react-dom": "^18.3.1" + }, + "devDependencies": { + "@types/react": "^18.3.3", + "@types/react-dom": "^18.3.0", + "@typescript-eslint/eslint-plugin": "^7.13.1", + "@typescript-eslint/parser": "^7.13.1", + "@vitejs/plugin-react": "^4.3.1", + "eslint": "^8.57.0", + "eslint-plugin-react-hooks": "^4.6.2", + "eslint-plugin-react-refresh": "^0.4.7", + "typescript": "^5.2.2", + "vite": "^5.3.1" + } +} diff --git a/Bulidbox-challenge/public/vite.svg b/Bulidbox-challenge/public/vite.svg new file mode 100644 index 00000000..e7b8dfb1 --- /dev/null +++ b/Bulidbox-challenge/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Bulidbox-challenge/src/App.css b/Bulidbox-challenge/src/App.css new file mode 100644 index 00000000..b9d355df --- /dev/null +++ b/Bulidbox-challenge/src/App.css @@ -0,0 +1,42 @@ +#root { + max-width: 1280px; + margin: 0 auto; + padding: 2rem; + text-align: center; +} + +.logo { + height: 6em; + padding: 1.5em; + will-change: filter; + transition: filter 300ms; +} +.logo:hover { + filter: drop-shadow(0 0 2em #646cffaa); +} +.logo.react:hover { + filter: drop-shadow(0 0 2em #61dafbaa); +} + +@keyframes logo-spin { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} + +@media (prefers-reduced-motion: no-preference) { + a:nth-of-type(2) .logo { + animation: logo-spin infinite 20s linear; + } +} + +.card { + padding: 2em; +} + +.read-the-docs { + color: #888; +} diff --git a/Bulidbox-challenge/src/App.tsx b/Bulidbox-challenge/src/App.tsx new file mode 100644 index 00000000..afe48ac7 --- /dev/null +++ b/Bulidbox-challenge/src/App.tsx @@ -0,0 +1,35 @@ +import { useState } from 'react' +import reactLogo from './assets/react.svg' +import viteLogo from '/vite.svg' +import './App.css' + +function App() { + const [count, setCount] = useState(0) + + return ( + <> +
+ + Vite logo + + + React logo + +
+

Vite + React

+
+ +

+ Edit src/App.tsx and save to test HMR +

+
+

+ Click on the Vite and React logos to learn more +

+ + ) +} + +export default App diff --git a/Bulidbox-challenge/src/assets/react.svg b/Bulidbox-challenge/src/assets/react.svg new file mode 100644 index 00000000..6c87de9b --- /dev/null +++ b/Bulidbox-challenge/src/assets/react.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Bulidbox-challenge/src/index.css b/Bulidbox-challenge/src/index.css new file mode 100644 index 00000000..6119ad9a --- /dev/null +++ b/Bulidbox-challenge/src/index.css @@ -0,0 +1,68 @@ +:root { + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + line-height: 1.5; + font-weight: 400; + + color-scheme: light dark; + color: rgba(255, 255, 255, 0.87); + background-color: #242424; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +a { + font-weight: 500; + color: #646cff; + text-decoration: inherit; +} +a:hover { + color: #535bf2; +} + +body { + margin: 0; + display: flex; + place-items: center; + min-width: 320px; + min-height: 100vh; +} + +h1 { + font-size: 3.2em; + line-height: 1.1; +} + +button { + border-radius: 8px; + border: 1px solid transparent; + padding: 0.6em 1.2em; + font-size: 1em; + font-weight: 500; + font-family: inherit; + background-color: #1a1a1a; + cursor: pointer; + transition: border-color 0.25s; +} +button:hover { + border-color: #646cff; +} +button:focus, +button:focus-visible { + outline: 4px auto -webkit-focus-ring-color; +} + +@media (prefers-color-scheme: light) { + :root { + color: #213547; + background-color: #ffffff; + } + a:hover { + color: #747bff; + } + button { + background-color: #f9f9f9; + } +} diff --git a/Bulidbox-challenge/src/main.tsx b/Bulidbox-challenge/src/main.tsx new file mode 100644 index 00000000..3d7150da --- /dev/null +++ b/Bulidbox-challenge/src/main.tsx @@ -0,0 +1,10 @@ +import React from 'react' +import ReactDOM from 'react-dom/client' +import App from './App.tsx' +import './index.css' + +ReactDOM.createRoot(document.getElementById('root')!).render( + + + , +) diff --git a/Bulidbox-challenge/src/vite-env.d.ts b/Bulidbox-challenge/src/vite-env.d.ts new file mode 100644 index 00000000..11f02fe2 --- /dev/null +++ b/Bulidbox-challenge/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/Bulidbox-challenge/tsconfig.app.json b/Bulidbox-challenge/tsconfig.app.json new file mode 100644 index 00000000..d739292a --- /dev/null +++ b/Bulidbox-challenge/tsconfig.app.json @@ -0,0 +1,27 @@ +{ + "compilerOptions": { + "composite": true, + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo", + "target": "ES2020", + "useDefineForClassFields": true, + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "moduleDetection": "force", + "noEmit": true, + "jsx": "react-jsx", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src"] +} diff --git a/Bulidbox-challenge/tsconfig.json b/Bulidbox-challenge/tsconfig.json new file mode 100644 index 00000000..ea9d0cd8 --- /dev/null +++ b/Bulidbox-challenge/tsconfig.json @@ -0,0 +1,11 @@ +{ + "files": [], + "references": [ + { + "path": "./tsconfig.app.json" + }, + { + "path": "./tsconfig.node.json" + } + ] +} diff --git a/Bulidbox-challenge/tsconfig.node.json b/Bulidbox-challenge/tsconfig.node.json new file mode 100644 index 00000000..3afdd6e3 --- /dev/null +++ b/Bulidbox-challenge/tsconfig.node.json @@ -0,0 +1,13 @@ +{ + "compilerOptions": { + "composite": true, + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo", + "skipLibCheck": true, + "module": "ESNext", + "moduleResolution": "bundler", + "allowSyntheticDefaultImports": true, + "strict": true, + "noEmit": true + }, + "include": ["vite.config.ts"] +} diff --git a/Bulidbox-challenge/vite.config.ts b/Bulidbox-challenge/vite.config.ts new file mode 100644 index 00000000..5a33944a --- /dev/null +++ b/Bulidbox-challenge/vite.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from 'vite' +import react from '@vitejs/plugin-react' + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [react()], +}) From ed1c9b5c79faddbeac867520b954937dd970ab90 Mon Sep 17 00:00:00 2001 From: eliascoding365 Date: Tue, 9 Jul 2024 15:44:12 -0300 Subject: [PATCH 2/7] Setting up tailwind --- Bulidbox-challenge/package-lock.json | 983 +++++++++++++++++++++++++- Bulidbox-challenge/package.json | 3 + Bulidbox-challenge/postcss.config.js | 6 + Bulidbox-challenge/src/App.tsx | 27 +- Bulidbox-challenge/src/index.css | 58 +- Bulidbox-challenge/tailwind.config.js | 12 + 6 files changed, 1008 insertions(+), 81 deletions(-) create mode 100644 Bulidbox-challenge/postcss.config.js create mode 100644 Bulidbox-challenge/tailwind.config.js diff --git a/Bulidbox-challenge/package-lock.json b/Bulidbox-challenge/package-lock.json index cdef83c7..1543040e 100644 --- a/Bulidbox-challenge/package-lock.json +++ b/Bulidbox-challenge/package-lock.json @@ -17,13 +17,28 @@ "@typescript-eslint/eslint-plugin": "^7.13.1", "@typescript-eslint/parser": "^7.13.1", "@vitejs/plugin-react": "^4.3.1", + "autoprefixer": "^10.4.19", "eslint": "^8.57.0", "eslint-plugin-react-hooks": "^4.6.2", "eslint-plugin-react-refresh": "^0.4.7", + "postcss": "^8.4.39", + "tailwindcss": "^3.4.4", "typescript": "^5.2.2", "vite": "^5.3.1" } }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@ampproject/remapping": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", @@ -905,6 +920,50 @@ "deprecated": "Use @eslint/object-schema instead", "dev": true }, + "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, + "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/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/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, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.5", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", @@ -988,6 +1047,16 @@ "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, + "optional": true, + "engines": { + "node": ">=14" + } + }, "node_modules/@rollup/rollup-android-arm-eabi": { "version": "4.18.1", "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.1.tgz", @@ -1536,6 +1605,31 @@ "node": ">=4" } }, + "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 + }, + "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, + "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 + }, "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", @@ -1551,12 +1645,61 @@ "node": ">=8" } }, + "node_modules/autoprefixer": { + "version": "10.4.19", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.19.tgz", + "integrity": "sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==", + "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" + } + ], + "dependencies": { + "browserslist": "^4.23.0", + "caniuse-lite": "^1.0.30001599", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "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 }, + "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, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/brace-expansion": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", @@ -1619,6 +1762,15 @@ "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, + "engines": { + "node": ">= 6" + } + }, "node_modules/caniuse-lite": { "version": "1.0.30001640", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001640.tgz", @@ -1653,6 +1805,42 @@ "node": ">=4" } }, + "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, + "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, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", @@ -1668,6 +1856,15 @@ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true }, + "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, + "engines": { + "node": ">= 6" + } + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -1694,6 +1891,18 @@ "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, + "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", @@ -1723,6 +1932,12 @@ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, + "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 + }, "node_modules/dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", @@ -1735,6 +1950,12 @@ "node": ">=8" } }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true + }, "node_modules/doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", @@ -1747,12 +1968,24 @@ "node": ">=6.0.0" } }, + "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 + }, "node_modules/electron-to-chromium": { "version": "1.4.820", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.820.tgz", "integrity": "sha512-kK/4O/YunacfboFEk/BDf7VO1HoPmDudLTJAU9NmXIOSjsV7qVIX3OrI4REZo0VmdqhcpUcncQc6N8Q3aEXlHg==", "dev": true }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, "node_modules/esbuild": { "version": "0.21.5", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", @@ -2206,6 +2439,35 @@ "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", "dev": true }, + "node_modules/foreground-child": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.2.1.tgz", + "integrity": "sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "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, + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -2226,6 +2488,15 @@ "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, + "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", @@ -2334,6 +2605,18 @@ "node": ">=4" } }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/ignore": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", @@ -2385,6 +2668,33 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, + "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, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.14.0.tgz", + "integrity": "sha512-a5dFJih5ZLYlRtDc0dZWP7RiKr6xIKzmn/oAYCDvdLThadVgyJwlaoQPmRtMSpz+rk0OGAgIu+TcM9HUF0fk1A==", + "dev": true, + "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", @@ -2394,6 +2704,15 @@ "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, + "engines": { + "node": ">=8" + } + }, "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", @@ -2430,6 +2749,33 @@ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true }, + "node_modules/jackspeak": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.2.tgz", + "integrity": "sha512-qH3nOSj8q/8+Eg8LUPOq3C+6HWkpUioIjDsq1+D4zY91oZvpPttw8GwtF1nReRYKXl+1AORyFqtm2f5Q1SB6/Q==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": "14 >=14.21 || 16 >=16.20 || >=18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jiti": { + "version": "1.21.6", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz", + "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==", + "dev": true, + "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", @@ -2511,6 +2857,21 @@ "node": ">= 0.8.0" } }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "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 + }, "node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -2589,12 +2950,32 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, + "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, + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, "node_modules/nanoid": { "version": "3.3.7", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", @@ -2625,6 +3006,42 @@ "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", "dev": true }, + "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, + "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, + "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, + "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, + "engines": { + "node": ">= 6" + } + }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -2681,6 +3098,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/package-json-from-dist": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", + "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==", + "dev": true + }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -2720,6 +3143,34 @@ "node": ">=8" } }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/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, + "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 + }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", @@ -2747,7 +3198,25 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/postcss": { + "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, + "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, + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss": { "version": "8.4.39", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.39.tgz", "integrity": "sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==", @@ -2775,6 +3244,127 @@ "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, + "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, + "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" + } + ], + "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-load-config/node_modules/lilconfig": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", + "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/postcss-nested": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", + "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.11" + }, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz", + "integrity": "sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==", + "dev": true, + "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 + }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -2845,6 +3435,44 @@ "node": ">=0.10.0" } }, + "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, + "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, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -2979,6 +3607,18 @@ "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, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -2997,6 +3637,71 @@ "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, + "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, + "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/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 + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/string-width/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, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -3009,6 +3714,19 @@ "node": ">=8" } }, + "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, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "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", @@ -3021,6 +3739,48 @@ "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, + "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/sucrase/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, + "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/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -3033,12 +3793,82 @@ "node": ">=4" } }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tailwindcss": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.4.tgz", + "integrity": "sha512-ZoyXOdJjISB7/BcLTR6SEsLgKtDStYyYZVLsUtWChO4Ps20CBad7lfJKVDiejocV4ME1hLmyY0WJE3hSDcmQ2A==", + "dev": true, + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.0", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.0", + "lilconfig": "^2.1.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.23", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.1", + "postcss-nested": "^6.0.1", + "postcss-selector-parser": "^6.0.11", + "resolve": "^1.22.2", + "sucrase": "^3.32.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, + "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, + "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, + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, "node_modules/to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", @@ -3072,6 +3902,12 @@ "typescript": ">=4.2.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 + }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -3148,6 +3984,12 @@ "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 + }, "node_modules/vite": { "version": "5.3.3", "resolved": "https://registry.npmjs.org/vite/-/vite-5.3.3.tgz", @@ -3227,6 +4069,133 @@ "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, + "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, + "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-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/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 + }, + "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, + "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/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "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, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/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, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -3239,6 +4208,18 @@ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true }, + "node_modules/yaml": { + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.5.tgz", + "integrity": "sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==", + "dev": true, + "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", diff --git a/Bulidbox-challenge/package.json b/Bulidbox-challenge/package.json index 43a614a8..eb94b890 100644 --- a/Bulidbox-challenge/package.json +++ b/Bulidbox-challenge/package.json @@ -19,9 +19,12 @@ "@typescript-eslint/eslint-plugin": "^7.13.1", "@typescript-eslint/parser": "^7.13.1", "@vitejs/plugin-react": "^4.3.1", + "autoprefixer": "^10.4.19", "eslint": "^8.57.0", "eslint-plugin-react-hooks": "^4.6.2", "eslint-plugin-react-refresh": "^0.4.7", + "postcss": "^8.4.39", + "tailwindcss": "^3.4.4", "typescript": "^5.2.2", "vite": "^5.3.1" } diff --git a/Bulidbox-challenge/postcss.config.js b/Bulidbox-challenge/postcss.config.js new file mode 100644 index 00000000..2e7af2b7 --- /dev/null +++ b/Bulidbox-challenge/postcss.config.js @@ -0,0 +1,6 @@ +export default { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +} diff --git a/Bulidbox-challenge/src/App.tsx b/Bulidbox-challenge/src/App.tsx index afe48ac7..ef645d36 100644 --- a/Bulidbox-challenge/src/App.tsx +++ b/Bulidbox-challenge/src/App.tsx @@ -1,33 +1,8 @@ -import { useState } from 'react' -import reactLogo from './assets/react.svg' -import viteLogo from '/vite.svg' -import './App.css' - function App() { - const [count, setCount] = useState(0) return ( <> -
- - Vite logo - - - React logo - -
-

Vite + React

-
- -

- Edit src/App.tsx and save to test HMR -

-
-

- Click on the Vite and React logos to learn more -

+

Test tailwind.

) } diff --git a/Bulidbox-challenge/src/index.css b/Bulidbox-challenge/src/index.css index 6119ad9a..fdea984d 100644 --- a/Bulidbox-challenge/src/index.css +++ b/Bulidbox-challenge/src/index.css @@ -1,3 +1,7 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + :root { font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; line-height: 1.5; @@ -12,57 +16,3 @@ -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } - -a { - font-weight: 500; - color: #646cff; - text-decoration: inherit; -} -a:hover { - color: #535bf2; -} - -body { - margin: 0; - display: flex; - place-items: center; - min-width: 320px; - min-height: 100vh; -} - -h1 { - font-size: 3.2em; - line-height: 1.1; -} - -button { - border-radius: 8px; - border: 1px solid transparent; - padding: 0.6em 1.2em; - font-size: 1em; - font-weight: 500; - font-family: inherit; - background-color: #1a1a1a; - cursor: pointer; - transition: border-color 0.25s; -} -button:hover { - border-color: #646cff; -} -button:focus, -button:focus-visible { - outline: 4px auto -webkit-focus-ring-color; -} - -@media (prefers-color-scheme: light) { - :root { - color: #213547; - background-color: #ffffff; - } - a:hover { - color: #747bff; - } - button { - background-color: #f9f9f9; - } -} diff --git a/Bulidbox-challenge/tailwind.config.js b/Bulidbox-challenge/tailwind.config.js new file mode 100644 index 00000000..d37737fc --- /dev/null +++ b/Bulidbox-challenge/tailwind.config.js @@ -0,0 +1,12 @@ +/** @type {import('tailwindcss').Config} */ +export default { + content: [ + "./index.html", + "./src/**/*.{js,ts,jsx,tsx}", + ], + theme: { + extend: {}, + }, + plugins: [], +} + From 6ce5b6a4778c3a8a9878dde6f3c4910951c2d315 Mon Sep 17 00:00:00 2001 From: eliascoding365 Date: Tue, 9 Jul 2024 22:01:11 -0300 Subject: [PATCH 3/7] Create card form, feed, button of creation and clear inputs --- Bulidbox-challenge/src/App.tsx | 30 +++++-- Bulidbox-challenge/src/assets/icon-img.png | Bin 0 -> 11771 bytes .../src/components/ButtonForm/index.tsx | 11 +++ .../src/components/Feed/index.tsx | 40 +++++++++ .../src/components/FormPost/index.tsx | 77 ++++++++++++++++++ .../src/components/InputForm/index.tsx | 27 ++++++ .../src/components/ParentComponent/index.tsx | 27 ++++++ 7 files changed, 206 insertions(+), 6 deletions(-) create mode 100644 Bulidbox-challenge/src/assets/icon-img.png create mode 100644 Bulidbox-challenge/src/components/ButtonForm/index.tsx create mode 100644 Bulidbox-challenge/src/components/Feed/index.tsx create mode 100644 Bulidbox-challenge/src/components/FormPost/index.tsx create mode 100644 Bulidbox-challenge/src/components/InputForm/index.tsx create mode 100644 Bulidbox-challenge/src/components/ParentComponent/index.tsx diff --git a/Bulidbox-challenge/src/App.tsx b/Bulidbox-challenge/src/App.tsx index ef645d36..359872c6 100644 --- a/Bulidbox-challenge/src/App.tsx +++ b/Bulidbox-challenge/src/App.tsx @@ -1,10 +1,28 @@ +import React, { useState, useEffect } from 'react'; +import Feed from './components/Feed'; +import FormPost, { Post } from './components/FormPost'; + function App() { + const [posts, setPosts] = useState([]); + + useEffect(() => { + const storedPosts = localStorage.getItem('posts'); + if (storedPosts) { + setPosts(JSON.parse(storedPosts)); + } + }, []); + + useEffect(() => { + localStorage.setItem('posts', JSON.stringify(posts)); + }, [posts]); - return ( - <> -

Test tailwind.

- - ) + return ( +
+ + +

Test tailwind.

+
+ ); } -export default App +export default App; diff --git a/Bulidbox-challenge/src/assets/icon-img.png b/Bulidbox-challenge/src/assets/icon-img.png new file mode 100644 index 0000000000000000000000000000000000000000..d489089f0534cd6a5ab58d6a72ab5be3723eed6c GIT binary patch literal 11771 zcmd6N2UL?=*XB#8O106Xih!5ik=_Js2o@lKgh-1JiX^nqi+~CU(tA-+F1;f?h#(~t z6_6%aARtn_p@uqdg3hORzJKogYt5SZSc@0VIs5GW>}T(D-g5SRqbvH1hdB=e0KjE%w)t$%Uo!vzA0Yq;x(fhXU{}x_ z0C-3Nz&soPlv4nJ?M_DhRaI~RVtq;f9Izh|gCl98b-!SsOZ%CM@`%(?Ezjg_01&6V za8B!n_t@eGOrxcp|MFk1C>iO~RELT~_^#$~Qgg8{HV9X&^Nn2P`Mq0>qm%+tz(vFN@rq#AN@BRz17 zVD|yJpEY|&y|g;3(hCA&`Oo}mlkTS5do@>-z9u7xv@0&k?7Gl_Ft(uxLR5({3z{WR zo5gOUt@eahR#LF@uJIKP3SIV?s|uZ490)$ZDA*V6>(b9yr~V!hKtpX3$lht6npIqB z{A`N@2+A@~LCQ)d&s3=LmDM{w!GS-W^Xn?Wpre!`e!PxPquV-o=){vskM&-c(Sbdh zAU(CT<>`!!_^Crhp5r3h2$L*VeM(K~tWI4e@mc(>;30LS?S7+Z`e-{~^i(%BU2^7V z@DPs${`*4wp>+x1_|lf2w6MqQ6YhFW=#xqdrv8WPqCi!L4$)javw_Mal?J7$o)Eow z9k`vTOLSCERiQRS3j$S>HcATFj>}VQ zp2B4c-7R)WyL3RNo0oc0sqLRw$L@J0k>x(9$`L>rFRUbHdbmhvA#T5$enAtMdum5S zO^(+@ggvoPUzJB|OT?N217=Uq=S%wg7VGCcr&`DU5Vq%5VFtFa3p@Ti&W0yyhVF7@ z($Aa#R_{};#5Y!mv#AWc0DPk#nt&nNgqa`nLQ?JYH$9PZL~%Oik!Y|^@#!Sce%CRA0}u8Z|H*;r$<&) zTT+94ev=8?=tOM6OM9Y=Ld|m^D5}o|b48*%2g{ktjdpuBVhCWDofFyYT#^#K9h{Xy ztC4-(R4Rvn&12|FE7n9Wv&Bu(m%FHkjSyh(B~NO+ad$(J!bIzs#`CIm%BvJXub(wIv>vVvWZD6A8rOln-qy6wE)!EHy zQ2-9j%C1IdVYkr8X)I_SeZ!6miIk0!;R8V3Pd0PK;XL(>=Drbrs;qvv+n{Y z-5u^+h;kr6x_!=VhGb+P@}vf&w7((D0tO~}lGpBif4ShK4*(~iapGu$>yogy0xxSj zMS+}CHYjbh;e0pd+*!d{d-(BN&YQJZxY!Y9XhUacR5?_D-IjC`bguzpTLrh7gfTkhWyK{>PcRKxtGUD$K z^8$0hvvvU`h1I7y!-w%YB)3^^?g?drZR` z_|hU(U_ghrS7faj{?4mR2wzn{B?Al~gzzOdjc4f<{As^&o4qTb1k~0ieOyK4eQA+= zmDH@j02+zk+IifZj9h0L4#4D|pamT7*k(!&JHfecRZ|3+J3TVp(1$yx6&EQ0M)CVY zyulv#5@`U(%0M9xjWUz2^kO-{D1B%i8H0x)tpYXZfWi6256nf1W_Cc1Njl<*3+-^) zXsZY%AU|F@9$am>JB4HfR-1MkxS^FrQh-r|0par!&9LL>@L@`TaipmsxcYjBg%yxP zA=_{gDqAc84BX>L9T~!ojm|@WX!hjA1`g=S8EO+Y;P!caN@RT^HNYvW1E&CPAS)*W zzgA))z*diD&HUP>s6TfN3`%Axn?=gy6lXdnvcuL-0Yw9wMUNOOF9_A*A6UglHn2j| z?QhW2?Atac#;;_m&ON6AOuFY9WqfBo7LA7>KNR_X(GUv_+g~}Sp1rn{0br$~y0q%5 zH>cKW-Ce(1iTF(?&*TLt18^##>3mhQRoCr2vnHfY%j1u3l067c@7srg53*`rteH>? z59g09qMn17Q2E)kVCE>-m3+i1m({v9FU2^d++46?XTZm1e0)v;h@eb8MK+7x4Z2Vd z)3h^fH@4?Q~iFs!zYmeKl}+!`97IZosOQ5*R>1=mAYIq;z5c5KIjOfiY!) zf)5Dv`9bONuNAs@D2qFbTygHUhf$~4;FVd5kIzi z*)UG5x3^Aih0r$PG6GUq@4Sn{NsKBW*EcSXfb9066wj2ZB}ncRlH&eRnoNCTQ& z9&3@Uo$icUp4;|?UFn<|?bfE`E6eW*uRCppOL*AQBaSk=(s{0jF$nwkeaCd?PNUBA zk}OOFZ(MpsvM#MA{LQ6OoFUpB!OI}gubdh`T1@kd_(sDJH7>k+Wnm^OY5~{Xq`{HK&)xx4Bwd5V4whk+X+Q!b)ysP;WKK)GJa6;Ci)A?q((aY*7mtcBpqmb zZ)7AR(K71RIraG3lMv95##xDmlP~F_yAO@NV+Xea)tNTTbN(A}KH=FJ68=-8lDvv{ zA6&-ORy32KZhb(aujz5<*bR40T$ZB&s7y4#IQDqkPD zn*?g8^kF}P&fI-NJA@9n^{hP!Md$OcE+A}b+Li#iqP@yn4;An7n5#Uu$C3c-+B#k7 zn(r96{%%E!EFW)Zdr4=mE(Sjo4&s?-8=uZ*%%!nGJ?MW0uJ*Nv`>BiWMh38yes<8G zLSDb_soJ5rfyQALP?=?|@!lkhqnwCUAC(Pg++*~GUwi$K(-*%^^6+|Y;~$cpdOm^Ub8!?CfIQ+y$83^!$ z+j#}4yQdmu`xU7`F4>|yrk=7NBN&n;Lv|~h`Hz3$PIV&TSx5IjJ$(%14zxGs64CgQ z!ib-{#P2?XZ_5 zPwGWiM)Mzc4kYXAJt+gH(;b&UlG3Ws66Q)3b}~MdY&YImjn9c9m>PtTxG2-g@}Rcz z^$XA=1vl5HjKjDjvQUg=6jqr6+zQ?fHg>X@-_j>*ZD$a;ecx0`lop&DSsa}s*nvQk zZMV4#+-CGT3Fcd|)F1B{v=~Uc$XgS2%RhBt&Qv7j-eE_oIunXWX<(& z&PzQOP<9J9(m29G#kx9Ca)l)XJ1;ERcUFf5I$+Z)u`@!!a;R#iT<_eBRQX z=^WTc-O&}AvGyVXY(1toa4|AED1_j6h1#n$3$MjbCl(xr)rJ|Tk)S474bs_68z0yp z>PAcH!Pce&%|I#~>-0guS?-;gkOf$m6;sLC@*Q1%x*}E!kZt#tBLgoiQF<{NF}+sD zL$HKGPP5C|Gea3XlTAKpv|%9hf{p_I($lPTVmk#ck{jG#W5^zvBd_vE-yOza>26ukmI`hym{dcaSh%)acJ{qWYE?=cu7I!K|1iy|bL zS~SrVp_o7hkJX0%uu{1dm!-65#IKZB2FwGRfhT52S-~pX-Jmht*h^3DwN2O^_)+M;go|Ow zg<2^>L~8W=zTSqZB|;xI2$Y@aNRG}iiou@@*UYoWM=^1egM9>g{0mMM+^Lks=^2AB zt~g$aSSBw9D%LP)!gYq+^Go8VO2gBkynjIz#Rmt4@J% zO4*<;Y!z@lG(sWL0*T|Q#MM&EQibGvgN5n z1_H?ooaEWbc@_wJ??lFu-k3j zQ8%Mq8~!Fmm=K_Id!UJ!z%TW(k#OfuyXu*9U^jZj8N46TuEhRGA&IT$st$C~FFH1u zPmyz~q+WX8j*bzUAw{C4Eqr1`sK6I3en=z@7d{g0 zc*n0#_J>{#p57_qz#Ea=(P#$0Xs%834EYxaz$d3i)R3v_Uy zlGw<9W4dc0{abYKt!dDcrdg6FX-&ejoZ5m+{q5mFuBtKObox2ZG+F*5rFyd5$NE2 zbE8BpM_XA&s+a8mJ39)NDNc^;(zdf_EVS*8`D8*~2bN{=>yq)4gB0TYkoC1$$MxQo zJ_<8y28K5!eK2_(*{6D8m1%PusDl;GV){fIDZuGu^yVMZ7tvwTMG1y@%Vx)W{400L zGF}mKSb}w<1Ckd}_0p=5c^EHsCkBSph)}`5NCU;JGto-j>{+c(M#oJVq{$?Ukx3qc zt0(DXN|*;XR6651DapH)^;~m8(@L!LPFP{3aft#=IBv8M^@C_-$@E!7$9G}-*=l06 zw3KZhERl>>zCqpsf6ivJsU2g;)cu8~Rf^Ev)>?rvx`%yiA4wQ)6pmy(Rf|aHLNYM4 zeN*Fd(zQMqdyO})Ywkzf(SxP(jvr=dD^cogYc=^!LcQqHX`)o(+A`pMi>W(+nCXly zBPm@!7-XHfxA3T8`+Md-U%Gt_Beu-@>`3zg4~xx-$_a1}C|Bgyy^#B;13JC>7KO_lmfRTB*H5uuA$ zit5N@O+DUOc1jq{R9oGHKJ2c_u*v06V5S{+c}yDy?s9Gjrfww4Zg%oLysxv$5BK`M z%wtkE?;fmv(Mk`d?qY5qeKy;kg;^sNfzO}dUPpUKOP0|rX_T10kZk4gu?g4XIV!JF zo*#8DBGmFTDO>dfzC~T`(Xb7OoNDu`^tYehW{p3B+9*IykT#oqVM3TwiW=ICe&u^( zqq54hFYBWt=#7F%@~C$Ku6NZb9$ir-Xu1R6Q@dWNPa8A;j>@aFzS|O9IMkb0*ZX{k znl7R{%B6j|n1DScFQ|;jrzPX$y2vo>V>++dccW)iW~)wVEPO2SQ;_V#6R+`9-?;JW zLtzP;Es`@@8j{soaWf&Z;-V+6sFA<$gqs09Dxj~E+RPf0pU_~s3%8c&b|D694frm> z|61VbpWsUHK*6u{P%^?^iz}(COqZgK@ZF*!_$A|(J8Y3@FGAb9%~RshD4Gg8d;8=@ z8OrJ=!V{vFL??CTW`@MY-okeun&wX)L*Mdr_+)iSplq%xuTC|2R=`Y6vVRrV8FhJS z6uE0y(w&!@Tv##k@hd+w?Y3k&DF|2d^-&HIz0YNZBzvA=%oKWrFfc)ijl!GR-&R&` zj?Xiz<*7|H&FdH1l{A2h|6AVf^4O1`rP455q!Y zP0xc5$iFnGST*$*gi2#Uph1o+^J17V@MceOpj;F7X6x0Kg$?-mr&F}RplF3;@t@QM zHEM%TmXPTa=fT7vHTcVb=@Z~%C@Wv7=FdhjH6Pg|fT2DLKCJ(2{IE>|qX`TC6$n50 zpi4nG{BHp8fzE;3FX-1V=17gdnIqf&-5l9=rzpu>PD~R&nglbL+Q<&(FJKc*aX=Se zIY}*q)cBiA|9cw;YJd25(D$>3VwBz6cv(xv8D$uk!}9g_zB<_G^QC{zX5A%vCY&}5La+SD^up;R zvP&V3D;L3j5&`+Dr9V5n|KE2)ADRht7d}7wO{e1wIZHk=V?5^RRzxoB8CVx5_#b!< z-d2p$O|6p21c49Jf@IO0a`5JRKpn=I^a4l@a#-Vh*M7yTxWCCR{7Y7_{6K3$w&~GJ zWH&;P+^jsrUky(d@J zLJ0GJzVfj`JZ~y(3>g+2b^_mhrEXNps8F_B4k46%*pS&7BBePV9UQ^fkX-!GpJ5-G ze9YN+kNcdZ<13q^+&+tuUZ43zwI;0i zhV^bF2{vD8!P;MGU<4@W#K2b@GRkS=y5GGd6ioad1G(xzhN#OsVg(yYA%l6thViIq zED-+z^@l`QA+pI43jFUU z?r4+Ps9z4sNTIOF7cWn$+h#D5*^hg6czd>x&}}FI?8zG>f=?lQ;P=Mq6F)CoFHeHW zLMH~YJxVxCN|N6%;3*)Yg6z;*g>Npk_h_8%%0gu8-aXGk3E3W!eK+zUUxc@fgk~~nM^$LTBIj?w)oxCBEB4*k z24x&)A*Ej*Nl*`mKxqAf{6U#2Jx}rP1xw$q!9Q4i44Q&{MBf7D9@g3oK}zR?C8$mA zdzHarYe%+$0f9pNE;VfEv5VTN#?sEbeQ%-hePG}iuLwclkR|pa|6KMTgcv~-}j%Yn_6EM_xl)Hrx;<^n9T^VCyAr3{?+m=@Lf}ROUY&~ zv%QqpOg!e#>>~hsh&)QO`Q3x5m8to)GkQbnJG1zuVW$KYG{&V{&1_`cb%G|yBt4@G ztcL2rbG(ZaRafR+Foz4)&QgOV0s|>cC>K{NxI3lm{Izd~0XciA;2`g|L zXVA3oVhbKiuO@S5<;fp`YAmlQLMg$@0_J)SXbG?vRbEVv`o(=x0l4*g|4Vh1XbB;P2Svi^z;pNCNcmJUH)rI#+`5w}3ZSbsN_X)k$Ap1i%8BN|gPsq;mbe+U7IMwR?c( z41T6a2CXI`<@tBolEt4pf}rytI`2Woy-$B z>gw+%{PCs&JdPd}0I;!O^~X^{!65b`tL^LrA{zj7zL%z2c7!GPrTFPd^ilaz1JFOF zI@4vL9eE7LRiCL43L9IejzIv?PrjqIUt74H^x=XU{kx;R4=I4G_Uh4UBG`8cE@(QF zyI}nu0Qx^7M)_MrzlP8};2k}|(OKik1e8H)?IR{Eh6Nd`;7(ILj~8xl06>r1bn$CtV zJSty53dEkSlk%O;m63FIkL>U^sgYcyI|&TLO4`M!-kfibb{RTT+8H%rtq&HvS)>Kx za?P$SQP(Wrc=yy#+;`Lr7^vmxOkY{7kaWxO(6P*Tx8hyn^^qIcdRsjzt?|e1DOz)- zF$~ecvrA;19av2*wa=a~-LtFNP#-|A7+XE21pIApO(tF+bNiFBn42J=B;V4rE*?M& zV7nVmmG&@?qspIHsLr)=rJK%jsxSe{OXZD{vM38*i5H6-flFPc1Wj1F+d2>6KFD0@ zi?=T`NS=spX&;xe>b$bf3%K_+DalwNO>YV=2AtcZt;Ktc{-HP)1`O~U;$Jvr92-wI z{W@^uuW`bRYKFLMYXDUc(^*O1*=aGC*>rW!9^0dCvf^gli2yq!Kb&(>G;D0F47$R-)Aa1`qyDk&tpe=2q-p4=6h&S_MU zthA!Y@s62J*wJ@c>K^~PXDZYp5;5It_MwkDNZT?~a^@T6#U)pV8&+ZyoT-V5cvt^o zCgAwYdnEzk+4`lX@~i$;_X0EhWkh9VIs#~dI^NA^WF(1>ZE~1GkQkF5WQG2E_tv@s zFz9lj1UGRrF56SScuT%4tL6$=ZSrh3(O;Dk$nR;ZlUYGI;Aj2{@NW2QjZ)|m8kI}8 zZQDuQWd;(>5{PyD8a@3ef0u9T+@is2mrZ(TQq$ICNd>EyyIw{0-_E9I2Kv*k#Ry}h z=+S{oJs~@WctpUG0{eev(e3|FRM7H$TKUwY&)nZ00;{0_L3drKyX`G^J7pV`9ry>3 zk&-?uE+r=}C3{0!QCaS+vh-O|DJf+ssg`2%fZrxKyV^R~WB%(2ecwO7Bzby4_sY2v IZFtE40I@1mFaQ7m literal 0 HcmV?d00001 diff --git a/Bulidbox-challenge/src/components/ButtonForm/index.tsx b/Bulidbox-challenge/src/components/ButtonForm/index.tsx new file mode 100644 index 00000000..5de7ca50 --- /dev/null +++ b/Bulidbox-challenge/src/components/ButtonForm/index.tsx @@ -0,0 +1,11 @@ +import React from 'react' + +const ButtonForm = () => { + return ( +
+ +
+ ) +} + +export default ButtonForm \ No newline at end of file diff --git a/Bulidbox-challenge/src/components/Feed/index.tsx b/Bulidbox-challenge/src/components/Feed/index.tsx new file mode 100644 index 00000000..4498d0db --- /dev/null +++ b/Bulidbox-challenge/src/components/Feed/index.tsx @@ -0,0 +1,40 @@ +import React from 'react'; + +type Post = { + username: string; + description: string; +}; + +type FeedProps = { + posts: Post[]; +}; + +const Feed: React.FC = ({ posts }) => { + return ( +
+
+

Feed

+
+ {posts.map((post, index) => ( +
+
+
+ +
+
+
+ {post.description} +
+

Enviado por:

+

{post.username}

+
+
+
+
+
+ ))} +
+ ); +}; + +export default Feed; diff --git a/Bulidbox-challenge/src/components/FormPost/index.tsx b/Bulidbox-challenge/src/components/FormPost/index.tsx new file mode 100644 index 00000000..a6a7181c --- /dev/null +++ b/Bulidbox-challenge/src/components/FormPost/index.tsx @@ -0,0 +1,77 @@ +import React, { ChangeEvent, FormEvent, useState } from 'react'; +import ButtonForm from '../ButtonForm'; +import InputField from '../InputForm'; + +export type Post = { + username: string; + description: string; +}; + +type FormPostProps = { + posts: Post[]; + setPosts: React.Dispatch>; +}; + +const FormPost: React.FC = ({ posts, setPosts }) => { + const [formData, setFormData] = useState({ + username: '', + description: '' + }); + + const handleChange = (event: ChangeEvent) => { + setFormData({ ...formData, [event.target.name]: event.target.value }); + }; + + const handleSubmit = (event: FormEvent) => { + event.preventDefault(); + const newPost = { ...formData }; + setPosts([...posts, newPost]); + setFormData({ username: '', description: '' }); + }; + + + const handleDiscard = () => { + setFormData({ username: '', description: '' }); + }; + + return ( +
+
+

Formulario de Post

+
+ +
+
+
+ + +
+ + +
+ +
+
+
+ ); +}; + +export default FormPost; diff --git a/Bulidbox-challenge/src/components/InputForm/index.tsx b/Bulidbox-challenge/src/components/InputForm/index.tsx new file mode 100644 index 00000000..9dda35e1 --- /dev/null +++ b/Bulidbox-challenge/src/components/InputForm/index.tsx @@ -0,0 +1,27 @@ +import React, { ChangeEvent } from 'react'; + +interface Props { + label: string; + type: string; + name: string; + value: string; + onChange: (event: ChangeEvent) => void; +} + +const InputField: React.FC = ({ label, type, name, value, onChange }) => { + return ( +
+ + +
+ ); +}; + +export default InputField; diff --git a/Bulidbox-challenge/src/components/ParentComponent/index.tsx b/Bulidbox-challenge/src/components/ParentComponent/index.tsx new file mode 100644 index 00000000..01b14cb7 --- /dev/null +++ b/Bulidbox-challenge/src/components/ParentComponent/index.tsx @@ -0,0 +1,27 @@ +import React, { useState, useEffect } from 'react'; +import FormPost, { Post } from '../FormPost'; +import Feed from '../Feed'; + +const ParentComponent = () => { + const [posts, setPosts] = useState([]); + + useEffect(() => { + const storedPosts = localStorage.getItem('posts'); + if (storedPosts) { + setPosts(JSON.parse(storedPosts)); + } + }, []); + + useEffect(() => { + localStorage.setItem('posts', JSON.stringify(posts)); + }, [posts]); + + return ( +
+ + +
+ ); +}; + +export default ParentComponent; From 3876d5c9c919976f423c778a031551adc30bc238 Mon Sep 17 00:00:00 2001 From: eliascoding365 Date: Wed, 10 Jul 2024 21:22:22 -0300 Subject: [PATCH 4/7] Create delete button, style Feed --- Bulidbox-challenge/package-lock.json | 27 ++++++++++++- Bulidbox-challenge/package.json | 4 +- Bulidbox-challenge/src/App.tsx | 3 +- .../src/assets/Moraine-Lake.jpg | Bin 0 -> 100803 bytes Bulidbox-challenge/src/assets/aa.jpg | Bin 0 -> 80914 bytes .../src/components/Feed/index.tsx | 23 ++++++++--- .../src/components/FormPost/index.tsx | 38 ++++++------------ .../src/components/InputForm/index.tsx | 17 ++++---- Bulidbox-challenge/src/index.css | 2 +- 9 files changed, 67 insertions(+), 47 deletions(-) create mode 100644 Bulidbox-challenge/src/assets/Moraine-Lake.jpg create mode 100644 Bulidbox-challenge/src/assets/aa.jpg diff --git a/Bulidbox-challenge/package-lock.json b/Bulidbox-challenge/package-lock.json index 1543040e..d383ccfd 100644 --- a/Bulidbox-challenge/package-lock.json +++ b/Bulidbox-challenge/package-lock.json @@ -9,7 +9,9 @@ "version": "0.0.0", "dependencies": { "react": "^18.3.1", - "react-dom": "^18.3.1" + "react-dom": "^18.3.1", + "react-hook-form": "^7.52.1", + "react-icons": "^5.2.1" }, "devDependencies": { "@types/react": "^18.3.3", @@ -3426,6 +3428,29 @@ "react": "^18.3.1" } }, + "node_modules/react-hook-form": { + "version": "7.52.1", + "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.52.1.tgz", + "integrity": "sha512-uNKIhaoICJ5KQALYZ4TOaOLElyM+xipord+Ha3crEFhTntdLvWZqVY49Wqd/0GiVCA/f9NjemLeiNPjG7Hpurg==", + "engines": { + "node": ">=12.22.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/react-hook-form" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17 || ^18 || ^19" + } + }, + "node_modules/react-icons": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-5.2.1.tgz", + "integrity": "sha512-zdbW5GstTzXaVKvGSyTaBalt7HSfuK5ovrzlpyiWHAFXndXTdd/1hdDHI4xBM1Mn7YriT6aqESucFl9kEXzrdw==", + "peerDependencies": { + "react": "*" + } + }, "node_modules/react-refresh": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", diff --git a/Bulidbox-challenge/package.json b/Bulidbox-challenge/package.json index eb94b890..ed9cfa3f 100644 --- a/Bulidbox-challenge/package.json +++ b/Bulidbox-challenge/package.json @@ -11,7 +11,9 @@ }, "dependencies": { "react": "^18.3.1", - "react-dom": "^18.3.1" + "react-dom": "^18.3.1", + "react-hook-form": "^7.52.1", + "react-icons": "^5.2.1" }, "devDependencies": { "@types/react": "^18.3.3", diff --git a/Bulidbox-challenge/src/App.tsx b/Bulidbox-challenge/src/App.tsx index 359872c6..166e9b04 100644 --- a/Bulidbox-challenge/src/App.tsx +++ b/Bulidbox-challenge/src/App.tsx @@ -19,8 +19,7 @@ function App() { return (
- -

Test tailwind.

+
); } diff --git a/Bulidbox-challenge/src/assets/Moraine-Lake.jpg b/Bulidbox-challenge/src/assets/Moraine-Lake.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fab3c1d296162d65f1ff9729ba6aa633b3d0d1ed GIT binary patch literal 100803 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%0A?jNjirWfF8rie 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 literal 0 HcmV?d00001 diff --git a/Bulidbox-challenge/src/components/Feed/index.tsx b/Bulidbox-challenge/src/components/Feed/index.tsx index 4498d0db..e52ec62f 100644 --- a/Bulidbox-challenge/src/components/Feed/index.tsx +++ b/Bulidbox-challenge/src/components/Feed/index.tsx @@ -1,4 +1,5 @@ import React from 'react'; +import { FaTrash } from "react-icons/fa"; type Post = { username: string; @@ -7,25 +8,35 @@ type Post = { type FeedProps = { posts: Post[]; + setPosts: React.Dispatch>; }; -const Feed: React.FC = ({ posts }) => { +const Feed: React.FC = ({ posts, setPosts }) => { + const handleDelete = (index: number) => { + setPosts(posts.filter((_, i) => i !== index)); + }; + return (

Feed

{posts.map((post, index) => ( -
-
-
- +
+
+
+
+ +
+
+ +
{post.description}
-

Enviado por:

+

Enviado por:

{post.username}

diff --git a/Bulidbox-challenge/src/components/FormPost/index.tsx b/Bulidbox-challenge/src/components/FormPost/index.tsx index a6a7181c..610b11c1 100644 --- a/Bulidbox-challenge/src/components/FormPost/index.tsx +++ b/Bulidbox-challenge/src/components/FormPost/index.tsx @@ -1,6 +1,7 @@ -import React, { ChangeEvent, FormEvent, useState } from 'react'; +import React from 'react'; import ButtonForm from '../ButtonForm'; import InputField from '../InputForm'; +import { useForm } from 'react-hook-form'; export type Post = { username: string; @@ -13,55 +14,40 @@ type FormPostProps = { }; const FormPost: React.FC = ({ posts, setPosts }) => { - const [formData, setFormData] = useState({ - username: '', - description: '' - }); - const handleChange = (event: ChangeEvent) => { - setFormData({ ...formData, [event.target.name]: event.target.value }); - }; - - const handleSubmit = (event: FormEvent) => { - event.preventDefault(); - const newPost = { ...formData }; - setPosts([...posts, newPost]); - setFormData({ username: '', description: '' }); - }; - + const { register, handleSubmit, reset } = useForm(); - const handleDiscard = () => { - setFormData({ username: '', description: '' }); + const onSubmit = (data: Post) => { + setPosts(prevPosts => [...prevPosts, data]); + reset() }; return ( -
-
+
+

Formulario de Post

-
+
diff --git a/Bulidbox-challenge/src/components/InputForm/index.tsx b/Bulidbox-challenge/src/components/InputForm/index.tsx index 9dda35e1..80b4cae5 100644 --- a/Bulidbox-challenge/src/components/InputForm/index.tsx +++ b/Bulidbox-challenge/src/components/InputForm/index.tsx @@ -1,24 +1,21 @@ -import React, { ChangeEvent } from 'react'; +import React from 'react'; +import { UseFormRegister } from 'react-hook-form'; -interface Props { +type InputFieldProps = { label: string; type: string; name: string; - value: string; - onChange: (event: ChangeEvent) => void; -} + register: UseFormRegister; +}; -const InputField: React.FC = ({ label, type, name, value, onChange }) => { +const InputField: React.FC = ({ label, type, name, register }) => { return (
); diff --git a/Bulidbox-challenge/src/index.css b/Bulidbox-challenge/src/index.css index fdea984d..92735a49 100644 --- a/Bulidbox-challenge/src/index.css +++ b/Bulidbox-challenge/src/index.css @@ -9,7 +9,7 @@ color-scheme: light dark; color: rgba(255, 255, 255, 0.87); - background-color: #242424; + background-color: #000000; font-synthesis: none; text-rendering: optimizeLegibility; From b7ce2145d0e18463a077e5ca5dd8edeef76cdb81 Mon Sep 17 00:00:00 2001 From: eliascoding365 Date: Thu, 11 Jul 2024 11:26:40 -0300 Subject: [PATCH 5/7] Create image uploader and render in feed --- Bulidbox-challenge/package-lock.json | 57 ++++++++++++++++++- Bulidbox-challenge/package.json | 1 + .../src/components/Feed/index.tsx | 5 +- .../src/components/FormPost/index.tsx | 42 ++++++++++++-- 4 files changed, 96 insertions(+), 9 deletions(-) diff --git a/Bulidbox-challenge/package-lock.json b/Bulidbox-challenge/package-lock.json index d383ccfd..5ee420e6 100644 --- a/Bulidbox-challenge/package-lock.json +++ b/Bulidbox-challenge/package-lock.json @@ -10,6 +10,7 @@ "dependencies": { "react": "^18.3.1", "react-dom": "^18.3.1", + "react-dropzone": "^14.2.3", "react-hook-form": "^7.52.1", "react-icons": "^5.2.1" }, @@ -1647,6 +1648,14 @@ "node": ">=8" } }, + "node_modules/attr-accept": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/attr-accept/-/attr-accept-2.2.2.tgz", + "integrity": "sha512-7prDjvt9HmqiZ0cl5CRjtS84sEyhsHP2coDkaZKRKVfCDo9s7iw7ChVmar78Gu9pC4SoR/28wFu/G5JJhTnqEg==", + "engines": { + "node": ">=4" + } + }, "node_modules/autoprefixer": { "version": "10.4.19", "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.19.tgz", @@ -2393,6 +2402,17 @@ "node": "^10.12.0 || >=12.0.0" } }, + "node_modules/file-selector": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/file-selector/-/file-selector-0.6.0.tgz", + "integrity": "sha512-QlZ5yJC0VxHxQQsQhXvBaC7VRJ2uaxTf+Tfpu4Z/OcVQJVpZO+DGU0rkoVW5ce2SccxugvpBJoMvUs59iILYdw==", + "dependencies": { + "tslib": "^2.4.0" + }, + "engines": { + "node": ">= 12" + } + }, "node_modules/fill-range": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", @@ -3030,7 +3050,6 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -3376,6 +3395,16 @@ "node": ">= 0.8.0" } }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", @@ -3428,6 +3457,22 @@ "react": "^18.3.1" } }, + "node_modules/react-dropzone": { + "version": "14.2.3", + "resolved": "https://registry.npmjs.org/react-dropzone/-/react-dropzone-14.2.3.tgz", + "integrity": "sha512-O3om8I+PkFKbxCukfIR3QAGftYXDZfOE2N1mr/7qebQJHs7U+/RSL/9xomJNpRg9kM5h9soQSdf0Gc7OHF5Fug==", + "dependencies": { + "attr-accept": "^2.2.2", + "file-selector": "^0.6.0", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">= 10.13" + }, + "peerDependencies": { + "react": ">= 16.8 || 18.0.0" + } + }, "node_modules/react-hook-form": { "version": "7.52.1", "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.52.1.tgz", @@ -3451,6 +3496,11 @@ "react": "*" } }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, "node_modules/react-refresh": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", @@ -3933,6 +3983,11 @@ "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", "dev": true }, + "node_modules/tslib": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", + "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==" + }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", diff --git a/Bulidbox-challenge/package.json b/Bulidbox-challenge/package.json index ed9cfa3f..e3bdf52b 100644 --- a/Bulidbox-challenge/package.json +++ b/Bulidbox-challenge/package.json @@ -12,6 +12,7 @@ "dependencies": { "react": "^18.3.1", "react-dom": "^18.3.1", + "react-dropzone": "^14.2.3", "react-hook-form": "^7.52.1", "react-icons": "^5.2.1" }, diff --git a/Bulidbox-challenge/src/components/Feed/index.tsx b/Bulidbox-challenge/src/components/Feed/index.tsx index e52ec62f..ca9770c7 100644 --- a/Bulidbox-challenge/src/components/Feed/index.tsx +++ b/Bulidbox-challenge/src/components/Feed/index.tsx @@ -4,6 +4,7 @@ import { FaTrash } from "react-icons/fa"; type Post = { username: string; description: string; + photo: string; }; type FeedProps = { @@ -26,10 +27,10 @@ const Feed: React.FC = ({ posts, setPosts }) => {
- +
- +
diff --git a/Bulidbox-challenge/src/components/FormPost/index.tsx b/Bulidbox-challenge/src/components/FormPost/index.tsx index 610b11c1..326a5d6e 100644 --- a/Bulidbox-challenge/src/components/FormPost/index.tsx +++ b/Bulidbox-challenge/src/components/FormPost/index.tsx @@ -1,4 +1,4 @@ -import React from 'react'; +import React, { useState } from 'react'; import ButtonForm from '../ButtonForm'; import InputField from '../InputForm'; import { useForm } from 'react-hook-form'; @@ -6,6 +6,7 @@ import { useForm } from 'react-hook-form'; export type Post = { username: string; description: string; + photo: string; }; type FormPostProps = { @@ -14,12 +15,29 @@ type FormPostProps = { }; const FormPost: React.FC = ({ posts, setPosts }) => { - const { register, handleSubmit, reset } = useForm(); + const [selectedFile, setSelectedFile] = useState(null); const onSubmit = (data: Post) => { - setPosts(prevPosts => [...prevPosts, data]); - reset() + if (selectedFile) { + const reader = new FileReader(); + reader.readAsDataURL(selectedFile); + reader.onloadend = () => { + const base64data = reader.result as string; + setPosts(prevPosts => [...prevPosts, { ...data, photo: base64data }]); + reset(); + setSelectedFile(null); + }; + } else { + setPosts(prevPosts => [...prevPosts, data]); + reset(); + } + }; + + const handleFileChange = (event: React.ChangeEvent) => { + if (event.target.files && event.target.files.length > 0) { + setSelectedFile(event.target.files[0]); + } }; return ( @@ -27,7 +45,16 @@ const FormPost: React.FC = ({ posts, setPosts }) => {

Formulario de Post

- + +
@@ -47,7 +74,10 @@ const FormPost: React.FC = ({ posts, setPosts }) => { From b9771170dcb05ef0c65b7621781cbc89f20fa2b8 Mon Sep 17 00:00:00 2001 From: eliascoding365 Date: Thu, 11 Jul 2024 12:14:46 -0300 Subject: [PATCH 6/7] Style components to styled components lib --- Bulidbox-challenge/package-lock.json | 132 +++++++++++++++-- Bulidbox-challenge/package.json | 3 +- Bulidbox-challenge/src/App.tsx | 2 +- .../src/components/ButtonForm/index.tsx | 37 ++++- .../src/components/Feed/index.tsx | 139 ++++++++++++++---- .../src/components/FormPost/index.tsx | 121 +++++++++++---- .../src/components/InputForm/index.tsx | 26 +++- .../src/components/ParentComponent/index.tsx | 4 +- 8 files changed, 387 insertions(+), 77 deletions(-) diff --git a/Bulidbox-challenge/package-lock.json b/Bulidbox-challenge/package-lock.json index 5ee420e6..286a575e 100644 --- a/Bulidbox-challenge/package-lock.json +++ b/Bulidbox-challenge/package-lock.json @@ -12,7 +12,8 @@ "react-dom": "^18.3.1", "react-dropzone": "^14.2.3", "react-hook-form": "^7.52.1", - "react-icons": "^5.2.1" + "react-icons": "^5.2.1", + "styled-components": "^6.1.11" }, "devDependencies": { "@types/react": "^18.3.3", @@ -405,6 +406,24 @@ "node": ">=6.9.0" } }, + "node_modules/@emotion/is-prop-valid": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.2.tgz", + "integrity": "sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw==", + "dependencies": { + "@emotion/memoize": "^0.8.1" + } + }, + "node_modules/@emotion/memoize": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz", + "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==" + }, + "node_modules/@emotion/unitless": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz", + "integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==" + }, "node_modules/@esbuild/aix-ppc64": { "version": "0.21.5", "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", @@ -1340,6 +1359,11 @@ "@types/react": "*" } }, + "node_modules/@types/stylis": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/@types/stylis/-/stylis-4.2.5.tgz", + "integrity": "sha512-1Xve+NMN7FWjY14vLoY5tL3BVEQ/n42YLwaqJIPYhotZ9uBHt87VceMwWQpzmdEt2TNXIorIFG+YeCUUW7RInw==" + }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "7.16.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.16.0.tgz", @@ -1782,6 +1806,14 @@ "node": ">= 6" } }, + "node_modules/camelize": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.1.tgz", + "integrity": "sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/caniuse-lite": { "version": "1.0.30001640", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001640.tgz", @@ -1902,6 +1934,24 @@ "node": ">= 8" } }, + "node_modules/css-color-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz", + "integrity": "sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==", + "engines": { + "node": ">=4" + } + }, + "node_modules/css-to-react-native": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.2.0.tgz", + "integrity": "sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ==", + "dependencies": { + "camelize": "^1.0.0", + "css-color-keywords": "^1.0.0", + "postcss-value-parser": "^4.0.2" + } + }, "node_modules/cssesc": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", @@ -1917,8 +1967,7 @@ "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 + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" }, "node_modules/debug": { "version": "4.3.5", @@ -3002,7 +3051,6 @@ "version": "3.3.7", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", - "dev": true, "funding": [ { "type": "github", @@ -3204,8 +3252,7 @@ "node_modules/picocolors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", - "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", - "dev": true + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==" }, "node_modules/picomatch": { "version": "2.3.1", @@ -3383,8 +3430,7 @@ "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 + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" }, "node_modules/prelude-ls": { "version": "1.2.1", @@ -3661,6 +3707,11 @@ "node": ">=10" } }, + "node_modules/shallowequal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -3707,7 +3758,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -3814,6 +3864,70 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/styled-components": { + "version": "6.1.11", + "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-6.1.11.tgz", + "integrity": "sha512-Ui0jXPzbp1phYij90h12ksljKGqF8ncGx+pjrNPsSPhbUUjWT2tD1FwGo2LF6USCnbrsIhNngDfodhxbegfEOA==", + "dependencies": { + "@emotion/is-prop-valid": "1.2.2", + "@emotion/unitless": "0.8.1", + "@types/stylis": "4.2.5", + "css-to-react-native": "3.2.0", + "csstype": "3.1.3", + "postcss": "8.4.38", + "shallowequal": "1.1.0", + "stylis": "4.3.2", + "tslib": "2.6.2" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/styled-components" + }, + "peerDependencies": { + "react": ">= 16.8.0", + "react-dom": ">= 16.8.0" + } + }, + "node_modules/styled-components/node_modules/postcss": { + "version": "8.4.38", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", + "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/styled-components/node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, + "node_modules/stylis": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.2.tgz", + "integrity": "sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg==" + }, "node_modules/sucrase": { "version": "3.35.0", "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", diff --git a/Bulidbox-challenge/package.json b/Bulidbox-challenge/package.json index e3bdf52b..d44b1739 100644 --- a/Bulidbox-challenge/package.json +++ b/Bulidbox-challenge/package.json @@ -14,7 +14,8 @@ "react-dom": "^18.3.1", "react-dropzone": "^14.2.3", "react-hook-form": "^7.52.1", - "react-icons": "^5.2.1" + "react-icons": "^5.2.1", + "styled-components": "^6.1.11" }, "devDependencies": { "@types/react": "^18.3.3", diff --git a/Bulidbox-challenge/src/App.tsx b/Bulidbox-challenge/src/App.tsx index 166e9b04..b78b60ce 100644 --- a/Bulidbox-challenge/src/App.tsx +++ b/Bulidbox-challenge/src/App.tsx @@ -1,4 +1,4 @@ -import React, { useState, useEffect } from 'react'; +import { useState, useEffect } from 'react'; import Feed from './components/Feed'; import FormPost, { Post } from './components/FormPost'; diff --git a/Bulidbox-challenge/src/components/ButtonForm/index.tsx b/Bulidbox-challenge/src/components/ButtonForm/index.tsx index 5de7ca50..9558a21b 100644 --- a/Bulidbox-challenge/src/components/ButtonForm/index.tsx +++ b/Bulidbox-challenge/src/components/ButtonForm/index.tsx @@ -1,11 +1,34 @@ -import React from 'react' +import styled from 'styled-components'; const ButtonForm = () => { return ( -
- -
- ) -} + + + publicar + + + ); +}; -export default ButtonForm \ No newline at end of file +const ButtonContainer = styled.div` + +`; + +const ButtonCreate = styled.button` + margin-top: 1rem; + margin-bottom: 1rem; + background-color: #22c55e; + padding: 0.25rem 0.75rem; + font-size: 0.875rem; + line-height: 1rem; + border-radius: 0.75rem; + color: white; + cursor: pointer; + border: none; + + &:hover { + background-color: #16a34a; + } +`; + +export default ButtonForm; diff --git a/Bulidbox-challenge/src/components/Feed/index.tsx b/Bulidbox-challenge/src/components/Feed/index.tsx index ca9770c7..669bbbab 100644 --- a/Bulidbox-challenge/src/components/Feed/index.tsx +++ b/Bulidbox-challenge/src/components/Feed/index.tsx @@ -1,4 +1,5 @@ import React from 'react'; +import styled from 'styled-components'; import { FaTrash } from "react-icons/fa"; type Post = { @@ -12,41 +13,127 @@ type FeedProps = { setPosts: React.Dispatch>; }; + + const Feed: React.FC = ({ posts, setPosts }) => { const handleDelete = (index: number) => { setPosts(posts.filter((_, i) => i !== index)); }; return ( -
-
-

Feed

-
+ + + Feed + {posts.map((post, index) => ( -
-
-
-
- -
-
- -
-
-
-
- {post.description} -
-

Enviado por:

-

{post.username}

-
-
-
-
-
+ + + + + + + + handleDelete(index)}> + + + + {post.description} + + Enviado por: + {post.username} + + + + ))} -
+ ); }; +const FeedContainer = styled.div` + display: flex; + align-items: center; + flex-direction: column; +`; + +const FeedHeader = styled.div` + display: flex; + align-items: center; + justify-content: start; + width: 600px; +`; + +const FeedTitle = styled.h2` + +`; + +const PostContainer = styled.div` + margin: 2.5rem 0; + background: rgba(255, 255, 255, 0.05); + display: flex; + align-items: center; + justify-content: center; +`; + +const PostContent = styled.div` + border: 1px solid #3f3f46; + border-radius: 0.125rem; + padding-left: 2.5rem; + display: flex; + flex-direction: column; + width: 600px; +`; + +const PostHeader = styled.div` + display: flex; + justify-content: space-between; + align-items: start; +`; + +const PostImageContainer = styled.div` + display: flex; + justify-content: center; + padding: 0.5rem; + align-items: center; + margin-top: 2.5rem; +`; + +const PostImage = styled.img` + border-radius: 100%; +`; + +const DeleteButtonContainer = styled.div` + padding: 2.5rem; +`; + +const DeleteButton = styled.button` + // You can add more styles if needed +`; + +const PostBody = styled.div` + display: flex; + flex-direction: column; + justify-content: center; + align-items: start; + margin-left: 1rem; + margin: 2.5rem 0; +`; + +const PostDescription = styled.span` + color: #a1a1aa; // Equivalent to text-zinc-300 +`; + +const PostSenderInfo = styled.div` + color: #71717a; // Equivalent to text-zinc-500 +`; + +const SenderTitle = styled.p` + font-size: 0.875rem; // Equivalent to text-sm + font-weight: 500; // Equivalent to font-medium +`; + +const SenderName = styled.h3` + font-size: 1rem; // Equivalent to text-md +`; + export default Feed; diff --git a/Bulidbox-challenge/src/components/FormPost/index.tsx b/Bulidbox-challenge/src/components/FormPost/index.tsx index 326a5d6e..ebff6582 100644 --- a/Bulidbox-challenge/src/components/FormPost/index.tsx +++ b/Bulidbox-challenge/src/components/FormPost/index.tsx @@ -2,6 +2,7 @@ import React, { useState } from 'react'; import ButtonForm from '../ButtonForm'; import InputField from '../InputForm'; import { useForm } from 'react-hook-form'; +import styled from 'styled-components'; export type Post = { username: string; @@ -14,7 +15,7 @@ type FormPostProps = { setPosts: React.Dispatch>; }; -const FormPost: React.FC = ({ posts, setPosts }) => { +const FormPost: React.FC = ({ setPosts }) => { const { register, handleSubmit, reset } = useForm(); const [selectedFile, setSelectedFile] = useState(null); @@ -41,23 +42,26 @@ const FormPost: React.FC = ({ posts, setPosts }) => { }; return ( -
-
-

Formulario de Post

-
- - + + Formulario de Post + selecione uma imagem + + -
-
- + + + + = ({ posts, setPosts }) => { name="description" register={register} /> -
- + -
- -
-
-
+ + + + + ); }; + +const Wrapper = styled.div` + margin: 3rem 0; + display: flex; + align-items: center; + border-bottom: 0.2px solid #3f3f46; + padding-bottom: 3rem; + justify-content: center; +`; + +const FormContainer = styled.div` + border: 1px solid #3f3f46; + border-radius: 0.125rem; + background: rgba(255, 255, 255, 0.05); + padding: 1rem; + width: 600px; +`; + +const Title = styled.h1` + font-size: 1.5rem; + font-weight: bold; + text-align: center; +`; + +const Paragraph = styled.p` + font-size: 0.75rem; + text-align: center; +` + +const PhotoUploadLabel = styled.label` + display: flex; + justify-content: center; + margin-top: 2.5rem; +`; + +const PhotoUploadImage = styled.img` + border-radius: 50%; + cursor: pointer; +`; + +const FormContent = styled.div` + display: flex; + flex-direction: column; + align-items: center; + margin-top: 1.5rem; + padding: 0 1.5rem; +`; + +const Form = styled.form` + width: 100%; +`; + +const ButtonContainer = styled.div` + display: flex; + justify-content: flex-end; + padding: 0 1.5rem; +`; + +const DiscardButton = styled.button` + margin: 1rem 0; + padding: 0.25rem 0.75rem; + text-decoration: underline; + font-size: 0.875rem; + border-radius: 0.75rem; +`; + export default FormPost; diff --git a/Bulidbox-challenge/src/components/InputForm/index.tsx b/Bulidbox-challenge/src/components/InputForm/index.tsx index 80b4cae5..0f29c8b6 100644 --- a/Bulidbox-challenge/src/components/InputForm/index.tsx +++ b/Bulidbox-challenge/src/components/InputForm/index.tsx @@ -1,4 +1,5 @@ import React from 'react'; +import styled from 'styled-components'; import { UseFormRegister } from 'react-hook-form'; type InputFieldProps = { @@ -10,15 +11,30 @@ type InputFieldProps = { const InputField: React.FC = ({ label, type, name, register }) => { return ( -
- - + {label} + -
+ ); }; +const InputFieldContainer = styled.div` + display: flex; + flex-direction: column; + padding: 0.5rem 0; +`; + +const InputLabel = styled.label` + +`; + +const Input = styled.input` + height: 2.5rem; + padding: 0.75rem; + border-radius: 0.5rem; + width: 100%; +`; export default InputField; diff --git a/Bulidbox-challenge/src/components/ParentComponent/index.tsx b/Bulidbox-challenge/src/components/ParentComponent/index.tsx index 01b14cb7..b691cb44 100644 --- a/Bulidbox-challenge/src/components/ParentComponent/index.tsx +++ b/Bulidbox-challenge/src/components/ParentComponent/index.tsx @@ -1,4 +1,4 @@ -import React, { useState, useEffect } from 'react'; +import { useState, useEffect } from 'react'; import FormPost, { Post } from '../FormPost'; import Feed from '../Feed'; @@ -19,7 +19,7 @@ const ParentComponent = () => { return (
- +
); }; From 5568a972d7cf04243bf1273edeb7c9c50a9abe34 Mon Sep 17 00:00:00 2001 From: eliascoding365 Date: Thu, 11 Jul 2024 14:54:27 -0300 Subject: [PATCH 7/7] Create formState error handler for empty field and change default picture --- Bulidbox-challenge/src/App.tsx | 20 ++-------- Bulidbox-challenge/src/assets/user.jpg | Bin 0 -> 28350 bytes .../src/components/Feed/index.tsx | 13 +++---- .../src/components/FormPost/index.tsx | 9 +++-- .../src/components/InputForm/index.tsx | 35 +++++++++++------- 5 files changed, 37 insertions(+), 40 deletions(-) create mode 100644 Bulidbox-challenge/src/assets/user.jpg diff --git a/Bulidbox-challenge/src/App.tsx b/Bulidbox-challenge/src/App.tsx index b78b60ce..64f9a629 100644 --- a/Bulidbox-challenge/src/App.tsx +++ b/Bulidbox-challenge/src/App.tsx @@ -1,25 +1,11 @@ -import { useState, useEffect } from 'react'; -import Feed from './components/Feed'; -import FormPost, { Post } from './components/FormPost'; -function App() { - const [posts, setPosts] = useState([]); - - useEffect(() => { - const storedPosts = localStorage.getItem('posts'); - if (storedPosts) { - setPosts(JSON.parse(storedPosts)); - } - }, []); +import ParentComponent from './components/ParentComponent'; - useEffect(() => { - localStorage.setItem('posts', JSON.stringify(posts)); - }, [posts]); +function App() { return (
- - +
); } diff --git a/Bulidbox-challenge/src/assets/user.jpg b/Bulidbox-challenge/src/assets/user.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7a8a84327d080b877818d9fb2f528a5e4784c790 GIT binary patch literal 28350 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 literal 0 HcmV?d00001 diff --git a/Bulidbox-challenge/src/components/Feed/index.tsx b/Bulidbox-challenge/src/components/Feed/index.tsx index 669bbbab..a4dc0e0c 100644 --- a/Bulidbox-challenge/src/components/Feed/index.tsx +++ b/Bulidbox-challenge/src/components/Feed/index.tsx @@ -30,7 +30,7 @@ const Feed: React.FC = ({ posts, setPosts }) => { - + handleDelete(index)}> @@ -107,7 +107,6 @@ const DeleteButtonContainer = styled.div` `; const DeleteButton = styled.button` - // You can add more styles if needed `; const PostBody = styled.div` @@ -120,20 +119,20 @@ const PostBody = styled.div` `; const PostDescription = styled.span` - color: #a1a1aa; // Equivalent to text-zinc-300 + color: #a1a1aa; `; const PostSenderInfo = styled.div` - color: #71717a; // Equivalent to text-zinc-500 + color: #71717a; `; const SenderTitle = styled.p` - font-size: 0.875rem; // Equivalent to text-sm - font-weight: 500; // Equivalent to font-medium + font-size: 0.875rem; + font-weight: 500; `; const SenderName = styled.h3` - font-size: 1rem; // Equivalent to text-md + font-size: 1rem; `; export default Feed; diff --git a/Bulidbox-challenge/src/components/FormPost/index.tsx b/Bulidbox-challenge/src/components/FormPost/index.tsx index ebff6582..f0e93978 100644 --- a/Bulidbox-challenge/src/components/FormPost/index.tsx +++ b/Bulidbox-challenge/src/components/FormPost/index.tsx @@ -16,7 +16,7 @@ type FormPostProps = { }; const FormPost: React.FC = ({ setPosts }) => { - const { register, handleSubmit, reset } = useForm(); + const { register, handleSubmit, reset, formState: { errors } } = useForm(); const [selectedFile, setSelectedFile] = useState(null); const onSubmit = (data: Post) => { @@ -48,7 +48,7 @@ const FormPost: React.FC = ({ setPosts }) => { selecione uma imagem @@ -67,12 +67,14 @@ const FormPost: React.FC = ({ setPosts }) => { type="text" name="username" register={register} + errors={errors} /> ; -}; - -const InputField: React.FC = ({ label, type, name, register }) => { - return ( - - {label} - - - ); + errors: any; }; const InputFieldContainer = styled.div` @@ -28,7 +17,7 @@ const InputFieldContainer = styled.div` `; const InputLabel = styled.label` - + `; const Input = styled.input` @@ -37,4 +26,24 @@ const Input = styled.input` border-radius: 0.5rem; width: 100%; `; + +const ErrorMessage = styled.span` + color: red; + margin-top: 0.25rem; + font-size: 0.875rem; +`; + +const InputField: React.FC = ({ label, type, name, register, errors }) => { + return ( + + {label} + + {errors[name] && {errors[name].message}} + + ); +}; + export default InputField;