From fb7a4311c9d156711d168b25c2135bb4d464dea8 Mon Sep 17 00:00:00 2001 From: HeleneWestrin Date: Tue, 29 Oct 2024 12:50:15 +0100 Subject: [PATCH 01/17] Initial setup with component structure and favicon. --- .DS_Store | Bin 0 -> 6148 bytes helene-portfolio/.gitignore | 24 + helene-portfolio/README.md | 8 + helene-portfolio/eslint.config.js | 38 + helene-portfolio/index.html | 24 + helene-portfolio/package-lock.json | 4286 +++++++++++++++++ helene-portfolio/package.json | 28 + helene-portfolio/public/favicon-dark.png | Bin 0 -> 1178 bytes helene-portfolio/public/favicon-light.png | Bin 0 -> 1347 bytes helene-portfolio/src/App.css | 42 + helene-portfolio/src/App.jsx | 24 + helene-portfolio/src/assets/react.svg | 1 + .../src/components/common/Button.jsx | 27 + .../src/components/layout/Articles.jsx | 5 + .../src/components/layout/Footer.jsx | 9 + .../src/components/layout/Hero.jsx | 11 + .../src/components/layout/Projects.jsx | 5 + .../src/components/layout/SkillLists.jsx | 21 + .../src/components/layout/TechWords.jsx | 11 + .../src/data/projects.json | 23 +- helene-portfolio/src/index.css | 68 + helene-portfolio/src/main.jsx | 10 + helene-portfolio/vite.config.js | 7 + node_modules/.bin/loose-envify | 1 + node_modules/.package-lock.json | 51 + node_modules/js-tokens/CHANGELOG.md | 151 + node_modules/js-tokens/LICENSE | 21 + node_modules/js-tokens/README.md | 240 + node_modules/js-tokens/index.js | 23 + node_modules/js-tokens/package.json | 30 + node_modules/loose-envify/LICENSE | 21 + node_modules/loose-envify/README.md | 45 + node_modules/loose-envify/cli.js | 16 + node_modules/loose-envify/custom.js | 4 + node_modules/loose-envify/index.js | 3 + node_modules/loose-envify/loose-envify.js | 36 + node_modules/loose-envify/package.json | 36 + node_modules/loose-envify/replace.js | 65 + node_modules/object-assign/index.js | 90 + node_modules/object-assign/license | 21 + node_modules/object-assign/package.json | 42 + node_modules/object-assign/readme.md | 61 + node_modules/prop-types/LICENSE | 21 + node_modules/prop-types/README.md | 302 ++ node_modules/prop-types/checkPropTypes.js | 103 + node_modules/prop-types/factory.js | 19 + .../prop-types/factoryWithThrowingShims.js | 65 + .../prop-types/factoryWithTypeCheckers.js | 610 +++ node_modules/prop-types/index.js | 19 + .../prop-types/lib/ReactPropTypesSecret.js | 12 + node_modules/prop-types/lib/has.js | 1 + node_modules/prop-types/package.json | 60 + node_modules/prop-types/prop-types.js | 1315 +++++ node_modules/prop-types/prop-types.min.js | 1 + node_modules/react-is/LICENSE | 21 + node_modules/react-is/README.md | 104 + node_modules/react-is/build-info.json | 8 + .../react-is/cjs/react-is.development.js | 181 + .../react-is/cjs/react-is.production.min.js | 15 + node_modules/react-is/index.js | 7 + node_modules/react-is/package.json | 27 + .../react-is/umd/react-is.development.js | 181 + .../react-is/umd/react-is.production.min.js | 13 + package-lock.json | 56 + package.json | 5 + 65 files changed, 8759 insertions(+), 16 deletions(-) create mode 100644 .DS_Store create mode 100644 helene-portfolio/.gitignore create mode 100644 helene-portfolio/README.md create mode 100644 helene-portfolio/eslint.config.js create mode 100644 helene-portfolio/index.html create mode 100644 helene-portfolio/package-lock.json create mode 100644 helene-portfolio/package.json create mode 100644 helene-portfolio/public/favicon-dark.png create mode 100644 helene-portfolio/public/favicon-light.png create mode 100644 helene-portfolio/src/App.css create mode 100644 helene-portfolio/src/App.jsx create mode 100644 helene-portfolio/src/assets/react.svg create mode 100644 helene-portfolio/src/components/common/Button.jsx create mode 100644 helene-portfolio/src/components/layout/Articles.jsx create mode 100644 helene-portfolio/src/components/layout/Footer.jsx create mode 100644 helene-portfolio/src/components/layout/Hero.jsx create mode 100644 helene-portfolio/src/components/layout/Projects.jsx create mode 100644 helene-portfolio/src/components/layout/SkillLists.jsx create mode 100644 helene-portfolio/src/components/layout/TechWords.jsx rename projects.json => helene-portfolio/src/data/projects.json (50%) create mode 100644 helene-portfolio/src/index.css create mode 100644 helene-portfolio/src/main.jsx create mode 100644 helene-portfolio/vite.config.js create mode 120000 node_modules/.bin/loose-envify create mode 100644 node_modules/.package-lock.json create mode 100644 node_modules/js-tokens/CHANGELOG.md create mode 100644 node_modules/js-tokens/LICENSE create mode 100644 node_modules/js-tokens/README.md create mode 100644 node_modules/js-tokens/index.js create mode 100644 node_modules/js-tokens/package.json create mode 100644 node_modules/loose-envify/LICENSE create mode 100644 node_modules/loose-envify/README.md create mode 100755 node_modules/loose-envify/cli.js create mode 100644 node_modules/loose-envify/custom.js create mode 100644 node_modules/loose-envify/index.js create mode 100644 node_modules/loose-envify/loose-envify.js create mode 100644 node_modules/loose-envify/package.json create mode 100644 node_modules/loose-envify/replace.js create mode 100644 node_modules/object-assign/index.js create mode 100644 node_modules/object-assign/license create mode 100644 node_modules/object-assign/package.json create mode 100644 node_modules/object-assign/readme.md create mode 100644 node_modules/prop-types/LICENSE create mode 100644 node_modules/prop-types/README.md create mode 100644 node_modules/prop-types/checkPropTypes.js create mode 100644 node_modules/prop-types/factory.js create mode 100644 node_modules/prop-types/factoryWithThrowingShims.js create mode 100644 node_modules/prop-types/factoryWithTypeCheckers.js create mode 100644 node_modules/prop-types/index.js create mode 100644 node_modules/prop-types/lib/ReactPropTypesSecret.js create mode 100644 node_modules/prop-types/lib/has.js create mode 100644 node_modules/prop-types/package.json create mode 100644 node_modules/prop-types/prop-types.js create mode 100644 node_modules/prop-types/prop-types.min.js create mode 100644 node_modules/react-is/LICENSE create mode 100644 node_modules/react-is/README.md create mode 100644 node_modules/react-is/build-info.json create mode 100644 node_modules/react-is/cjs/react-is.development.js create mode 100644 node_modules/react-is/cjs/react-is.production.min.js create mode 100644 node_modules/react-is/index.js create mode 100644 node_modules/react-is/package.json create mode 100644 node_modules/react-is/umd/react-is.development.js create mode 100644 node_modules/react-is/umd/react-is.production.min.js create mode 100644 package-lock.json create mode 100644 package.json diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6 GIT binary patch literal 6148 zcmeH~Jr2S!425mzP>H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3 zem<@ulZcFPQ@L2!n>{z**++&mCkOWA81W14cNZlEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ zLs35+`xjp>T0 + + + + + + + Helene Westrin — Designer & Frontend Developer + + +
+ + + diff --git a/helene-portfolio/package-lock.json b/helene-portfolio/package-lock.json new file mode 100644 index 0000000000..6adeac4b70 --- /dev/null +++ b/helene-portfolio/package-lock.json @@ -0,0 +1,4286 @@ +{ + "name": "helene-portfolio", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "helene-portfolio", + "version": "0.0.0", + "dependencies": { + "react": "^18.3.1", + "react-dom": "^18.3.1" + }, + "devDependencies": { + "@eslint/js": "^9.13.0", + "@types/react": "^18.3.11", + "@types/react-dom": "^18.3.1", + "@vitejs/plugin-react": "^4.3.3", + "eslint": "^9.13.0", + "eslint-plugin-react": "^7.37.1", + "eslint-plugin-react-hooks": "^5.0.0", + "eslint-plugin-react-refresh": "^0.4.13", + "globals": "^15.11.0", + "vite": "^5.4.9" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.0.tgz", + "integrity": "sha512-INCKxTtbXtcNbUZ3YXutwMpEleqttcswhAdee7dhuoVrD2cnuc3PqtERBtxkX5nziX9vnBL8WXmSGwv8CuPV6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.0.tgz", + "integrity": "sha512-qETICbZSLe7uXv9VE8T/RWOdIE5qqyTucOt4zLYMafj2MRO271VGgLd4RACJMeBO37UPWhXiKMBk7YlJ0fOzQA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz", + "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.26.0", + "@babel/generator": "^7.26.0", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helpers": "^7.26.0", + "@babel/parser": "^7.26.0", + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.26.0", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.0.tgz", + "integrity": "sha512-/AIkAmInnWwgEAJGQr9vY0c66Mj6kjkE2ZPB1PurTRaRAh3U+J45sAQMjQDJdh4WbR3l0x5xkimXBKyBXXAu2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.26.0", + "@babel/types": "^7.26.0", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz", + "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", + "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz", + "integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", + "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz", + "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.26.1", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.1.tgz", + "integrity": "sha512-reoQYNiAJreZNsJzyrDNzFQ+IQ5JFiIzAHJg9bn94S3l+4++J7RsIhNMoB+lgP/9tpmiAQqspv+xfdxTSzREOw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.26.0" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.25.9.tgz", + "integrity": "sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.25.9.tgz", + "integrity": "sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", + "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.9.tgz", + "integrity": "sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.25.9", + "@babel/generator": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/template": "^7.25.9", + "@babel/types": "^7.25.9", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/types": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", + "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", + "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.18.0.tgz", + "integrity": "sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.4", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.7.0.tgz", + "integrity": "sha512-xp5Jirz5DyPYlPiKat8jaq0EmYvDXKKpzTbxXMpT9eqlRJkRKIz9AGMdlvYjih+im+QlhWrpvVjl8IPC/lHlUw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.1.0.tgz", + "integrity": "sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "9.13.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.13.0.tgz", + "integrity": "sha512-IFLyoY4d72Z5y/6o/BazFBezupzI/taV8sGumxTAVw3lXG9A6md1Dc34T9s1FoD/an9pJH8RHbAxsaEbBed9lA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.4.tgz", + "integrity": "sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.2.tgz", + "integrity": "sha512-CXtq5nR4Su+2I47WPOlWud98Y5Lv8Kyxp2ukhgFx/eW6Blm18VXJO5WuQylPugRo8nbluoi6GvvxBLqHcvqUUw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", + "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.3.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@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, + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.24.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.2.tgz", + "integrity": "sha512-ufoveNTKDg9t/b7nqI3lwbCG/9IJMhADBNjjz/Jn6LxIZxD7T5L8l2uO/wD99945F1Oo8FvgbbZJRguyk/BdzA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.24.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.24.2.tgz", + "integrity": "sha512-iZoYCiJz3Uek4NI0J06/ZxUgwAfNzqltK0MptPDO4OR0a88R4h0DSELMsflS6ibMCJ4PnLvq8f7O1d7WexUvIA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.24.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.24.2.tgz", + "integrity": "sha512-/UhrIxobHYCBfhi5paTkUDQ0w+jckjRZDZ1kcBL132WeHZQ6+S5v9jQPVGLVrLbNUebdIRpIt00lQ+4Z7ys4Rg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.24.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.24.2.tgz", + "integrity": "sha512-1F/jrfhxJtWILusgx63WeTvGTwE4vmsT9+e/z7cZLKU8sBMddwqw3UV5ERfOV+H1FuRK3YREZ46J4Gy0aP3qDA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.24.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.24.2.tgz", + "integrity": "sha512-1YWOpFcGuC6iGAS4EI+o3BV2/6S0H+m9kFOIlyFtp4xIX5rjSnL3AwbTBxROX0c8yWtiWM7ZI6mEPTI7VkSpZw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.24.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.24.2.tgz", + "integrity": "sha512-3qAqTewYrCdnOD9Gl9yvPoAoFAVmPJsBvleabvx4bnu1Kt6DrB2OALeRVag7BdWGWLhP1yooeMLEi6r2nYSOjg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.24.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.24.2.tgz", + "integrity": "sha512-ArdGtPHjLqWkqQuoVQ6a5UC5ebdX8INPuJuJNWRe0RGa/YNhVvxeWmCTFQ7LdmNCSUzVZzxAvUznKaYx645Rig==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.24.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.24.2.tgz", + "integrity": "sha512-B6UHHeNnnih8xH6wRKB0mOcJGvjZTww1FV59HqJoTJ5da9LCG6R4SEBt6uPqzlawv1LoEXSS0d4fBlHNWl6iYw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.24.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.24.2.tgz", + "integrity": "sha512-kr3gqzczJjSAncwOS6i7fpb4dlqcvLidqrX5hpGBIM1wtt0QEVtf4wFaAwVv8QygFU8iWUMYEoJZWuWxyua4GQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.24.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.24.2.tgz", + "integrity": "sha512-TDdHLKCWgPuq9vQcmyLrhg/bgbOvIQ8rtWQK7MRxJ9nvaxKx38NvY7/Lo6cYuEnNHqf6rMqnivOIPIQt6H2AoA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.24.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.24.2.tgz", + "integrity": "sha512-xv9vS648T3X4AxFFZGWeB5Dou8ilsv4VVqJ0+loOIgDO20zIhYfDLkk5xoQiej2RiSQkld9ijF/fhLeonrz2mw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.24.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.24.2.tgz", + "integrity": "sha512-tbtXwnofRoTt223WUZYiUnbxhGAOVul/3StZ947U4A5NNjnQJV5irKMm76G0LGItWs6y+SCjUn/Q0WaMLkEskg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.24.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.24.2.tgz", + "integrity": "sha512-gc97UebApwdsSNT3q79glOSPdfwgwj5ELuiyuiMY3pEWMxeVqLGKfpDFoum4ujivzxn6veUPzkGuSYoh5deQ2Q==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.24.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.2.tgz", + "integrity": "sha512-jOG/0nXb3z+EM6SioY8RofqqmZ+9NKYvJ6QQaa9Mvd3RQxlH68/jcB/lpyVt4lCiqr04IyaC34NzhUqcXbB5FQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.24.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.24.2.tgz", + "integrity": "sha512-XAo7cJec80NWx9LlZFEJQxqKOMz/lX3geWs2iNT5CHIERLFfd90f3RYLLjiCBm1IMaQ4VOX/lTC9lWfzzQm14Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.24.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.24.2.tgz", + "integrity": "sha512-A+JAs4+EhsTjnPQvo9XY/DC0ztaws3vfqzrMNMKlwQXuniBKOIIvAAI8M0fBYiTCxQnElYu7mLk7JrhlQ+HeOw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.24.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.24.2.tgz", + "integrity": "sha512-ZhcrakbqA1SCiJRMKSU64AZcYzlZ/9M5LaYil9QWxx9vLnkQ9Vnkve17Qn4SjlipqIIBFKjBES6Zxhnvh0EAEw==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.24.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.24.2.tgz", + "integrity": "sha512-2mLH46K1u3r6uwc95hU+OR9q/ggYMpnS7pSp83Ece1HUQgF9Nh/QwTK5rcgbFnV9j+08yBrU5sA/P0RK2MSBNA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", + "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/prop-types": { + "version": "15.7.13", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.13.tgz", + "integrity": "sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/react": { + "version": "18.3.12", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.12.tgz", + "integrity": "sha512-D2wOSq/d6Agt28q7rSI3jhU7G6aiuzljDGZ2hTZHIkrTLUI+AF3WMeKkEZ9nN2fkBAlcktT6vcZjDFiIhMYEQw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-qW1Mfv8taImTthu4KoXgDfLuk4bydU6Q/TkADnDWWHwi4NX4BR+LWfTp2sVmTqRrsHvyDDTelgelxJ+SsejKKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@vitejs/plugin-react": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.3.tgz", + "integrity": "sha512-NooDe9GpHGqNns1i8XDERg0Vsg5SSYRhRxxyTGogUdkdNt47jal+fbuYi+Yfq6pzRCKXyoPcWisfxE6RIM3GKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.25.2", + "@babel/plugin-transform-react-jsx-self": "^7.24.7", + "@babel/plugin-transform-react-jsx-source": "^7.24.7", + "@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.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", + "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlast": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", + "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", + "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/browserslist": { + "version": "4.24.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.2.tgz", + "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001669", + "electron-to-chromium": "^1.5.41", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.1" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001674", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001674.tgz", + "integrity": "sha512-jOsKlZVRnzfhLojb+Ykb+gyUSp9Xb57So+fAiFlLzzTKpqg8xxSav0e40c8/4F/v9N8QSvrRRaLeVzQbLqomYw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/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, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "dev": true, + "license": "MIT" + }, + "node_modules/data-view-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.49", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.49.tgz", + "integrity": "sha512-ZXfs1Of8fDb6z7WEYZjXpgIRF6MEu8JdeGA0A40aZq6OQbS+eJpnnV49epZRna2DU/YsEjSQuGtQPPtvt6J65A==", + "dev": true, + "license": "ISC" + }, + "node_modules/es-abstract": { + "version": "1.23.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", + "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "hasown": "^2.0.2", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.3", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.13", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.1", + "object-keys": "^1.1.1", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.2", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.6", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.15" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-iterator-helpers": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.1.0.tgz", + "integrity": "sha512-/SurEfycdyssORP/E+bj4sEu1CWw4EmLDsHynHwSXQ7utgbrMRWW195pTrCjFgFCddf/UkYm3oqKPRq5i8bJbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.3", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "globalthis": "^1.0.4", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.7", + "iterator.prototype": "^1.1.3", + "safe-array-concat": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.0" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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, + "license": "MIT", + "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.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "9.13.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.13.0.tgz", + "integrity": "sha512-EYZK6SX6zjFHST/HRytOdA/zE72Cq/bfw45LSyuwrdvcclb/gqV8RRQxywOBEWO2+WDpva6UZa4CcDeJKzUCFA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.11.0", + "@eslint/config-array": "^0.18.0", + "@eslint/core": "^0.7.0", + "@eslint/eslintrc": "^3.1.0", + "@eslint/js": "9.13.0", + "@eslint/plugin-kit": "^0.2.0", + "@humanfs/node": "^0.16.5", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.3.1", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.1.0", + "eslint-visitor-keys": "^4.1.0", + "espree": "^10.2.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.37.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.2.tgz", + "integrity": "sha512-EsTAnj9fLVr/GZleBLFbj/sSuXeWmp1eXIN60ceYnZveqEaUCyW4X+Vh4WTdUhCkW4xutXYqTXCUSyqD4rB75w==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", + "array.prototype.flatmap": "^1.3.2", + "array.prototype.tosorted": "^1.1.4", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.1.0", + "estraverse": "^5.3.0", + "hasown": "^2.0.2", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.8", + "object.fromentries": "^2.0.8", + "object.values": "^1.2.0", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.5", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.11", + "string.prototype.repeat": "^1.0.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.0.0.tgz", + "integrity": "sha512-hIOwI+5hYGpJEc4uPRmz2ulCjAGD/N13Lukkh8cLV0i2IRk/bdZDYjgLVHj+U9Z704kLIdIO6iueGvxNur0sgw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" + } + }, + "node_modules/eslint-plugin-react-refresh": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.14.tgz", + "integrity": "sha512-aXvzCTK7ZBv1e7fahFuR3Z/fyQQSIQ711yPgYRj+Oj64tyTgO4iQIDmYXDBqvSWQ/FA4OSCsXOStlF+noU0/NA==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "eslint": ">=7" + } + }, + "node_modules/eslint-scope": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.1.0.tgz", + "integrity": "sha512-14dSvlhaVhKKsa9Fx1l8A17s7ah7Ef7wCakJ10LYk6+GYmP9yDti2oq2SEwcyndt6knfcZyhyxwY3i9yL78EQw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.1.0.tgz", + "integrity": "sha512-Q7lok0mqMUSf5a/AdAZkA5a/gHcO6snwQClVNNvFKCAVlxXucdU8pKydU5ZVZjBx5xr37vGbFFWtLQYreLzrZg==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.2.0.tgz", + "integrity": "sha512-upbkBJbckcCNBDBDXEbuhjbP68n+scUd3k/U2EkyM9nw+I/jPiL4cLF/Al06CF96wRltFda16sxDFrxsI1v0/g==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.12.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.1.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true, + "license": "ISC" + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "15.11.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.11.0.tgz", + "integrity": "sha512-yeyNSjdbyVaWurlwCpcA6XNBrHTMIeDdj0/hnvX/OLJ9ekOXYbLsLinH/MucQyGvNnXhidTdNhTtJaffL2sMfw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/internal-slot": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-async-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", + "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", + "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finalizationregistry": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz", + "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", + "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/iterator.prototype": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.3.tgz", + "integrity": "sha512-FW5iMbeQ6rBGm/oKgzq2aW4KvAGpxPzYES8N4g4xNXUKpL1mclMvOe+76AcLDTvD+Ze+sOpVhgdAQEKF4L9iGQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "reflect.getprototypeof": "^1.0.4", + "set-function-name": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "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==", + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsx-ast-utils": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/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==", + "license": "MIT", + "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, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.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" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-releases": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", + "dev": true, + "license": "MIT" + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz", + "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.values": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", + "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "8.4.47", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz", + "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.1.0", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dev": true, + "license": "MIT", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/react-refresh": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", + "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz", + "integrity": "sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.1", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "globalthis": "^1.0.3", + "which-builtin-type": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz", + "integrity": "sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve": { + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", + "dev": true, + "license": "MIT", + "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", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/rollup": { + "version": "4.24.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.24.2.tgz", + "integrity": "sha512-do/DFGq5g6rdDhdpPq5qb2ecoczeK6y+2UAjdJ5trjQJj5f1AiVdLRWRc9A9/fFukfvJRgM0UXzxBIYMovm5ww==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.6" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.24.2", + "@rollup/rollup-android-arm64": "4.24.2", + "@rollup/rollup-darwin-arm64": "4.24.2", + "@rollup/rollup-darwin-x64": "4.24.2", + "@rollup/rollup-freebsd-arm64": "4.24.2", + "@rollup/rollup-freebsd-x64": "4.24.2", + "@rollup/rollup-linux-arm-gnueabihf": "4.24.2", + "@rollup/rollup-linux-arm-musleabihf": "4.24.2", + "@rollup/rollup-linux-arm64-gnu": "4.24.2", + "@rollup/rollup-linux-arm64-musl": "4.24.2", + "@rollup/rollup-linux-powerpc64le-gnu": "4.24.2", + "@rollup/rollup-linux-riscv64-gnu": "4.24.2", + "@rollup/rollup-linux-s390x-gnu": "4.24.2", + "@rollup/rollup-linux-x64-gnu": "4.24.2", + "@rollup/rollup-linux-x64-musl": "4.24.2", + "@rollup/rollup-win32-arm64-msvc": "4.24.2", + "@rollup/rollup-win32-ia32-msvc": "4.24.2", + "@rollup/rollup-win32-x64-msvc": "4.24.2", + "fsevents": "~2.3.2" + } + }, + "node_modules/safe-array-concat": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-regex-test": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-regex": "^1.1.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz", + "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.7", + "regexp.prototype.flags": "^1.5.2", + "set-function-name": "^2.0.2", + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.repeat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", + "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/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, + "license": "MIT" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", + "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", + "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/vite": { + "version": "5.4.10", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.10.tgz", + "integrity": "sha512-1hvaPshuPUtxeQ0hsVH3Mud0ZanOLwVTneA1EgbAM5LhaZEqyPWGRQ7BtaMvUrTDeEaC8pxtj6a6jku3x4z6SQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.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": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "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, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.4.tgz", + "integrity": "sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w==", + "dev": true, + "license": "MIT", + "dependencies": { + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.0.5", + "is-finalizationregistry": "^1.0.2", + "is-generator-function": "^1.0.10", + "is-regex": "^1.1.4", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.15" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/helene-portfolio/package.json b/helene-portfolio/package.json new file mode 100644 index 0000000000..ab07ee7a6c --- /dev/null +++ b/helene-portfolio/package.json @@ -0,0 +1,28 @@ +{ + "name": "helene-portfolio", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "lint": "eslint .", + "preview": "vite preview" + }, + "dependencies": { + "react": "^18.3.1", + "react-dom": "^18.3.1" + }, + "devDependencies": { + "@eslint/js": "^9.13.0", + "@types/react": "^18.3.11", + "@types/react-dom": "^18.3.1", + "@vitejs/plugin-react": "^4.3.3", + "eslint": "^9.13.0", + "eslint-plugin-react": "^7.37.1", + "eslint-plugin-react-hooks": "^5.0.0", + "eslint-plugin-react-refresh": "^0.4.13", + "globals": "^15.11.0", + "vite": "^5.4.9" + } +} diff --git a/helene-portfolio/public/favicon-dark.png b/helene-portfolio/public/favicon-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..737d402dea6ce8c12e0349e075d57cdbbf6dd226 GIT binary patch literal 1178 zcmeAS@N?(olHy`uVBq!ia0vp^(?FPm4M^HB7Cr(}oCO|{#S9GG!XV7ZFl&wkP>``W z$lZxy-8q?;Kn_c~qpu?a!^VE@KZ&eBuD+*>V@L(#+q-WIg$+gA9-8y8IItE4el*Y5W1GyrDIpexBA9j?kMwP z#cL#jYo6}n=sv-f`S6Ktf6gqW*DS$H^OH+*^ww6qUzz>&;9t4lwcEThbl1!go;Wkp za?PB}Mw=?w_jGTl6TJCuhr_QMnGxxUXPr{a6KlC&huq*ww9OZcb4!`6xaMqW zV(n!kqjkURn>UnQ&aAvT|3sKXQN;X1zXY$vq?Rgea&MElmRoWCo9!C&hvy4x`|Fo) zva;=4bMo)$KpC#bsf`=zTE2#zKCvz|Z29ls(|ujdb``JD+4TLD^6y2TCYo;dw0kxA zyU0z~)`@Fxsk}E)I=e@Ejmf4A!J9cgv!D3pyjy|%3n(M^!xr@f4ynI z(*1w4=jU&$Dt@tdkB-rDyDbanGat?O*d4|gqj0uG{h^+$o_gZmu==%c(j&?bg>k%= zR9v@OXH!Le_AP7f2~b1-zT&DTE*@SMaJ<5 z%dN-c)z`#`N*}C~ym{qzaaON=T?D`AeU5LnDZ=^UGlR2her_l_YTmThH^p!5$I{lR zvwu}7?f&w+FspaH`I%U)Wt~p?g;0 zHM29Hb{*4}HrrhiA$BLcQl!cvO!HXElcIjj-`G?CbmCD#1GY$R>Bm39?N03KSaZxV zY`LKH?;qEdHq}g+n)y;WBll0Xz~xJIEX`|t#Ftw?>=3w}5s%Nyh-(TTZ zCN(|vS04av*G|lC`P!nh$s$_f`2LO@?v|~MITK0+C7ah|3tXEPloGDJZ0Yku^(|YM z>lmf+7}w-HYnU-DPDw|3t-D)<`v-+hKPJxV{B>KUR7&&Q#=bR|d_OfSuW7oLGpU+a zA~7`SsM^o)x7(kFiad`Hjk=?3>dSW4#9>d;L6$`Fk;_TVxfR?Cc5XPQu)G94H-q@0 Zzqqg66w5p-81ep=fS?83{1OT^`{y_i$ literal 0 HcmV?d00001 diff --git a/helene-portfolio/public/favicon-light.png b/helene-portfolio/public/favicon-light.png new file mode 100644 index 0000000000000000000000000000000000000000..acbe70441e34b7a5f6284d5e47d6ba1dbe51cca5 GIT binary patch literal 1347 zcmb_ce>l?#7~fd=$}OZ@3a$Gh^(;K)x-2dx`_*bn8dlQWYGso%QE@n>gjnB^AD49f zSRPrdt#BE#qVMvfs3znjnu|+ied(F8TmSZN_df6E{XC!d^T+$g`@C<~b|w|OVA%o` z3WcT90)tIl_yxdxQ}sp1y*82Mue9)Z6w1o(3(%-PO6^TebbK&109DoL_|_yaJkmB2 z3Uy0lW#G&+$rtoMQphp%yMY}{2de$OkFiQMqmo8cY297x*uwN;JAaQScijLgJ;+9A z?oDd9lrJg(ksmghMeo`L9=on+y|8BC+PsU8y%aM>dg?3N&p8oVT`dl68ufJq!n76r z{Vn&9c8Bn;kw@?L?kV`?(5-SZ#M3DAzmJHhFG{;uB*A>}4-ks2aJz?j1<1%POt+ms znnRlReBxZ&zl{MEjzr#oODE0^`hEsN!tboI$d#7lhr2-clJgMKC4 ziL9orPG{mTzfYMA=cf8M>Mk!68=rYjNlvokRx4MPKQwC!tsc8PV=eucNSK+c?)6ux zFX-B;ujc^p#>a{7jUJjDIT3&y8B*q7M-=21AErnI#%S}Vw7@pz7bG(1HN?&$;nmaUFw9{@har3Ni-y+si@6&Ki zO|~j1Ds#@lpvq*?P#F^59x^V8(o-C{aKqB2oS5H@l&kibSRsuWh7N&FEywUhg#bae zQGU*AV=fF3Jen<<6S(7@o|c5YB&UMakeeBpbKCAM#eU-n_KzZczW>eTYB>L zr!j}}OQsQhXy_%VFPp*94a`T*=8-irwrLIZ7^jeG`}xgY$9q6N(vj>e-*@tr&xj7X z69?Vlk4Mr44CA!uY;Yv^-K0MBc7Hbl@*nq!k?Oz}B|Ikb5U2bJSX{#%CF9f}UkHp7 zz`qNbW*m1;>TW$`WVC|gQ5i_?0Vsvdy;&;>H{Q*aX&%&k8UV(9q9DXe72J)$0N)&R z5?6v!Y|atd+<-01fBHLhIpq AJpcdz literal 0 HcmV?d00001 diff --git a/helene-portfolio/src/App.css b/helene-portfolio/src/App.css new file mode 100644 index 0000000000..b9d355df2a --- /dev/null +++ b/helene-portfolio/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/helene-portfolio/src/App.jsx b/helene-portfolio/src/App.jsx new file mode 100644 index 0000000000..82d5e73d2d --- /dev/null +++ b/helene-portfolio/src/App.jsx @@ -0,0 +1,24 @@ +import Hero from "./components/layout/Hero"; +import TechWords from "./components/layout/TechWords"; +import Projects from "./components/layout/Projects"; +import SkillLists from "./components/layout/SkillLists"; +import Articles from "./components/layout/Articles"; +import Footer from "./components/layout/Footer"; +import "./App.css"; + +function App() { + return ( + <> +
+ + + + + +
+ diff --git a/helene-portfolio/src/components/layout/ProjectItem.css b/helene-portfolio/src/components/layout/ProjectItem.css index 6ce24a9ed4..f89e0f7dec 100644 --- a/helene-portfolio/src/components/layout/ProjectItem.css +++ b/helene-portfolio/src/components/layout/ProjectItem.css @@ -21,6 +21,7 @@ aspect-ratio: 6 / 4; object-fit: cover; height: 100%; + width: 100%; border-radius: var(--border-radius-lg); } } diff --git a/helene-portfolio/src/components/layout/ProjectItem.jsx b/helene-portfolio/src/components/layout/ProjectItem.jsx index 1145f11991..446aed9702 100644 --- a/helene-portfolio/src/components/layout/ProjectItem.jsx +++ b/helene-portfolio/src/components/layout/ProjectItem.jsx @@ -18,7 +18,7 @@ const ProjectItem = ({ data }) => { {description &&

{description}

} {tags && tags.length > 0 && ( - + {tags.map((tag, index) => ( {tag} ))} diff --git a/helene-portfolio/src/components/layout/Projects.css b/helene-portfolio/src/components/layout/Projects.css index 2de467b35a..791ca611ae 100644 --- a/helene-portfolio/src/components/layout/Projects.css +++ b/helene-portfolio/src/components/layout/Projects.css @@ -1,17 +1,4 @@ .section-projects { - padding-left: var(--spacing-3); - padding-right: var(--spacing-3); - - @media screen and (min-width: 768px) { - padding-left: var(--spacing-10); - padding-right: var(--spacing-10); - } - - @media screen and (min-width: 1025px) { - padding-left: var(--spacing-11); - padding-right: var(--spacing-11); - } - .section-heading { margin-bottom: var(--spacing-7); } diff --git a/helene-portfolio/src/components/layout/Projects.jsx b/helene-portfolio/src/components/layout/Projects.jsx index 354b11606d..e4aee93965 100644 --- a/helene-portfolio/src/components/layout/Projects.jsx +++ b/helene-portfolio/src/components/layout/Projects.jsx @@ -5,7 +5,7 @@ import "./Projects.css"; const Projects = () => { return ( -
+

Selected work

diff --git a/helene-portfolio/src/components/layout/SkillLists.css b/helene-portfolio/src/components/layout/SkillLists.css new file mode 100644 index 0000000000..b114b6e44d --- /dev/null +++ b/helene-portfolio/src/components/layout/SkillLists.css @@ -0,0 +1,20 @@ +.skill-lists { + .skill-lists-heading { + margin-bottom: 1rem; + } +} + +.skill-list { + list-style: none; + margin: 0; + padding: 0; + display: flex; + flex-flow: row wrap; + gap: 0.5rem; + + li { + padding: 0.5rem 1rem; + border-radius: 3rem; + background-color: var(--color-background-subtle-alternative); + } +} diff --git a/helene-portfolio/src/components/layout/SkillLists.jsx b/helene-portfolio/src/components/layout/SkillLists.jsx index a2217d1c84..582443d24e 100644 --- a/helene-portfolio/src/components/layout/SkillLists.jsx +++ b/helene-portfolio/src/components/layout/SkillLists.jsx @@ -1,20 +1,29 @@ +import skills from "../../data/skills.json"; +import "./SkillLists.css"; + const SkillLists = () => { return ( - <> -

Design

-
    -
  • Figma wizard
  • -
  • UI champion
  • -
  • User first, always
  • -
-

Development

-
    -
  • HTML & CSS
  • -
  • JavaScript
  • -
  • React
  • -
  • Node.js
  • -
- +
+
+ {skills.categories.map((skillCategory, index) => ( +
+
+

+ {skillCategory.name} +

+
    + {skillCategory.skills.map((skill, index) => ( +
  • {skill}
  • + ))} +
+
+
+ ))} +
+
); }; diff --git a/helene-portfolio/src/data/projects.json b/helene-portfolio/src/data/projects.json index 062c971f08..cc82ce6d8d 100644 --- a/helene-portfolio/src/data/projects.json +++ b/helene-portfolio/src/data/projects.json @@ -4,7 +4,7 @@ "id": 1, "name": "Happy thoughts", "description": "The chat bot app is a conversational AI-powered tool designed to enhance user experience by providing instant, personalized, and automated responses to user inquiries.", - "image": "https://images.unsplash.com/photo-1557008075-7f2c5efa4cfd?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=2497&q=80", + "image": "/projects/happy-thoughts-by-helene-westrin.png", "tags": ["HTML5", "CSS3", "React", "Skeleton loader", "API"], "netlify": "https://happy-thoughts-by-helene.netlify.app/", "github": "https://github.com/HeleneWestrin/project-happy-thoughts-vite" @@ -13,7 +13,7 @@ "id": 2, "name": "Weather app", "description": "The chat bot app is a conversational AI-powered tool designed to enhance user experience by providing instant, personalized, and automated responses to user inquiries.", - "image": "https://images.unsplash.com/photo-1520792532857-293bd046307a?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=2370&q=80", + "image": "/projects/weather-app-by-helene-westrin.png", "tags": ["HTML5", "CSS3", "JavaScript", "API"], "netlify": "https://accessible-weather.netlify.app/", "github": "https://github.com/HeleneWestrin/project-weather-app/tree/a11y" diff --git a/helene-portfolio/src/data/skills.json b/helene-portfolio/src/data/skills.json new file mode 100644 index 0000000000..c5e211c2ff --- /dev/null +++ b/helene-portfolio/src/data/skills.json @@ -0,0 +1,38 @@ +{ + "categories": [ + { + "name": "Design", + "skills": [ + "Figma expert", + "UI/UX strategist", + "Usability testing", + "UX psychology", + "Prototyping" + ] + }, + { + "name": "Frontend", + "skills": [ + "HTML & CSS", + "Accessibility", + "JavaScript", + "React", + "Web animations" + ] + }, + { + "name": "Backend", + "skills": ["Node.js", "Express.js", "API integration", "PHP & WordPress"] + }, + { + "name": "Product", + "skills": [ + "Product strategy", + "User needs", + "Agile", + "Cross-functional", + "Documentation" + ] + } + ] +} diff --git a/helene-portfolio/src/data/techstack.json b/helene-portfolio/src/data/techstack.json index aa4ae2b3a7..b319284d96 100644 --- a/helene-portfolio/src/data/techstack.json +++ b/helene-portfolio/src/data/techstack.json @@ -34,7 +34,7 @@ "name": "APIs" }, { - "name": "Mob-prgoramming" + "name": "Mob-programming" }, { "name": "Git" diff --git a/helene-portfolio/src/styles/index.css b/helene-portfolio/src/styles/index.css index 3b0675f40c..a863eabbfb 100644 --- a/helene-portfolio/src/styles/index.css +++ b/helene-portfolio/src/styles/index.css @@ -60,7 +60,7 @@ h3, font-weight: var(--font-weight-medium); color: var(--color-headings); text-transform: uppercase; - letter-spacing: 0.02rem; + letter-spacing: 0.06rem; } p { @@ -220,7 +220,7 @@ p { Spacing classes *************************************** */ -.section-spacing { +.section-spacing-vertical { padding-top: var(--spacing-10); padding-bottom: var(--spacing-10); @@ -234,3 +234,18 @@ p { padding-bottom: var(--spacing-12); } } + +.section-spacing-horizontal { + padding-left: var(--spacing-3); + padding-right: var(--spacing-3); + + @media screen and (min-width: 768px) { + padding-left: var(--spacing-10); + padding-right: var(--spacing-10); + } + + @media screen and (min-width: 1025px) { + padding-left: var(--spacing-11); + padding-right: var(--spacing-11); + } +} diff --git a/helene-portfolio/src/styles/variables.css b/helene-portfolio/src/styles/variables.css index 41c3d2985c..d89dfb6479 100644 --- a/helene-portfolio/src/styles/variables.css +++ b/helene-portfolio/src/styles/variables.css @@ -1,6 +1,5 @@ :root { /* Color Palette */ - --color-primary: #6be98e; --color-neutral-950: #1d1f21; --color-neutral-900: #2b2d31; --color-neutral-700: #4a4d53; @@ -10,12 +9,33 @@ --color-headings: var(--color-neutral-900); --color-text: var(--color-neutral-700); --color-text-inverted: var(--color-neutral-50); + --color-text-footer: var(--color-neutral-50); --color-background-main: var(--color-neutral-50); --color-background-subtle: var(--color-neutral-200); --color-background-subtle-alternative: var(--color-neutral-200); --color-background-footer: var(--color-neutral-900); --color-border-default: var(--color-neutral-300); + /* Buttons */ + --color-button-primary-bg: var(--color-neutral-900); + --color-button-primary-border: var(--color-neutral-900); + --color-button-primary-text: var(--color-neutral-50); + --color-button-primary-hover-bg: var(--color-neutral-300); + --color-button-primary-hover-border: var(--color-neutral-300); + --color-button-primary-hover-text: var(--color-neutral-900); + + --color-button-secondary-text: var(--color-neutral-900); + --color-button-secondary-border: var(--color-neutral-900); + --color-button-secondary-hover-bg: var(--color-neutral-900); + --color-button-secondary-hover-text: var(--color-neutral-200); + --color-button-secondary-hover-border: var(--color-neutral-900); + + --color-button-inverted-text: var(--color-neutral-50); + --color-button-inverted-border: var(--color-neutral-700); + --color-button-inverted-hover-bg: var(--color-neutral-50); + --color-button-inverted-hover-text: var(--color-neutral-950); + --color-button-inverted-hover-border: var(--color-neutral-50); + /* Body Typography */ --font-family-body: "Chivo", "Helvetica Neue", Arial, sans-serif; --font-size-small: 0.875rem; @@ -76,8 +96,8 @@ --spacing-9: 2rem; /* 32px */ --spacing-10: 2.5rem; /* 40px */ --spacing-11: 3.75rem; /* 60px */ - --spacing-11: 5rem; /* 80px */ - --spacing-12: 6.25rem; /* 100px */ + --spacing-12: 5rem; /* 80px */ + --spacing-13: 6.25rem; /* 100px */ /* Border-radius */ --border-radius-sm: var(--spacing-3); @@ -92,5 +112,20 @@ --color-background-footer: var(--color-neutral-950); --color-headings: var(--color-neutral-50); --color-text: var(--color-neutral-200); + --color-text-inverted: var(--color-neutral-900); --color-border-default: var(--color-neutral-700); + + /* Buttons */ + --color-button-primary-bg: var(--color-neutral-200); + --color-button-primary-border: var(--color-neutral-200); + --color-button-primary-text: var(--color-neutral-950); + --color-button-primary-hover-bg: var(--color-neutral-950); + --color-button-primary-hover-border: var(--color-neutral-950); + --color-button-primary-hover-text: var(--color-neutral-200); + + --color-button-secondary-text: var(--color-neutral-200); + --color-button-secondary-border: var(--color-neutral-200); + --color-button-secondary-hover-bg: var(--color-neutral-950); + --color-button-secondary-hover-text: var(--color-neutral-200); + --color-button-secondary-hover-border: var(--color-neutral-950); } From e3e50d473709c27fa1c0be1ecbc4058e9939c785 Mon Sep 17 00:00:00 2001 From: HeleneWestrin Date: Fri, 1 Nov 2024 13:59:29 +0100 Subject: [PATCH 09/17] Added artciles. Styling, text and images. Updated footer with last details. Layout styling. Etc. --- .../public/articles/imposter-syndrome.png | Bin 0 -> 18987 bytes .../public/articles/learn-to-love-code.png | Bin 0 -> 11492 bytes .../public/articles/learning-react.png | Bin 0 -> 20305 bytes helene-portfolio/src/App.jsx | 2 +- .../src/assets/icons/back-to-top.svg | 52 +++++---- helene-portfolio/src/assets/icons/mystery.svg | 8 ++ .../src/components/common/Button.css | 108 +++++++++++++++--- .../src/components/common/Button.jsx | 10 ++ .../src/components/common/Header.css | 40 ++++++- .../src/components/common/Icon.jsx | 26 +++++ .../src/components/common/Logo.css | 2 +- .../src/components/common/Pill.css | 4 +- .../src/components/layout/ArticleItem.css | 25 ++++ .../src/components/layout/ArticleItem.jsx | 46 ++++++++ .../src/components/layout/Articles.css | 7 ++ .../src/components/layout/Articles.jsx | 20 +++- .../src/components/layout/Footer.css | 106 ++++++++++++++++- .../src/components/layout/Footer.jsx | 39 ++++++- .../src/components/layout/Hero.css | 11 +- .../src/components/layout/Hero.jsx | 2 +- .../src/components/layout/ProjectItem.css | 5 +- .../src/components/layout/ProjectItem.jsx | 18 ++- .../src/components/layout/SkillLists.jsx | 7 +- .../src/components/layout/TechWords.css | 4 +- .../src/components/layout/TechWords.jsx | 2 +- helene-portfolio/src/data/articles.json | 22 ++++ helene-portfolio/src/data/skills.json | 19 ++- helene-portfolio/src/data/techstack.json | 3 + helene-portfolio/src/styles/animations.css | 12 ++ helene-portfolio/src/styles/index.css | 48 ++++++-- helene-portfolio/src/styles/variables.css | 25 +--- 31 files changed, 569 insertions(+), 104 deletions(-) create mode 100644 helene-portfolio/public/articles/imposter-syndrome.png create mode 100644 helene-portfolio/public/articles/learn-to-love-code.png create mode 100644 helene-portfolio/public/articles/learning-react.png create mode 100644 helene-portfolio/src/assets/icons/mystery.svg create mode 100644 helene-portfolio/src/components/common/Icon.jsx create mode 100644 helene-portfolio/src/components/layout/ArticleItem.css create mode 100644 helene-portfolio/src/components/layout/ArticleItem.jsx create mode 100644 helene-portfolio/src/components/layout/Articles.css create mode 100644 helene-portfolio/src/data/articles.json diff --git a/helene-portfolio/public/articles/imposter-syndrome.png b/helene-portfolio/public/articles/imposter-syndrome.png new file mode 100644 index 0000000000000000000000000000000000000000..f5f97ed80a4579c7dc3ff3311979aa990de91fc5 GIT binary patch literal 18987 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
-
+
diff --git a/helene-portfolio/src/assets/icons/back-to-top.svg b/helene-portfolio/src/assets/icons/back-to-top.svg index 1460261498..5404901cdf 100644 --- a/helene-portfolio/src/assets/icons/back-to-top.svg +++ b/helene-portfolio/src/assets/icons/back-to-top.svg @@ -1,28 +1,30 @@ - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + - - + + diff --git a/helene-portfolio/src/assets/icons/mystery.svg b/helene-portfolio/src/assets/icons/mystery.svg new file mode 100644 index 0000000000..0a0e4ed908 --- /dev/null +++ b/helene-portfolio/src/assets/icons/mystery.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/helene-portfolio/src/components/common/Button.css b/helene-portfolio/src/components/common/Button.css index a4ec1cdfc1..849e60694f 100644 --- a/helene-portfolio/src/components/common/Button.css +++ b/helene-portfolio/src/components/common/Button.css @@ -2,31 +2,101 @@ display: inline-flex; justify-content: center; align-items: center; - min-height: 3.5rem; font-family: var(--font-family-headings); font-weight: var(--font-weight-medium); - font-size: 1.125rem; + font-size: var(--font-size-medium); text-decoration: none; border: 2px solid transparent; border-radius: var(--border-radius-md); cursor: pointer; - padding: var(--spacing-4) var(--spacing-8); + padding: var(--spacing-3) var(--spacing-6); transition: 0.25s ease-out; transition-property: color, border, background; + @media screen and (min-width: 768px) { + padding: var(--spacing-3) var(--spacing-7); + } + + @media screen and (min-width: 1200px) { + padding: var(--spacing-3) var(--spacing-7); + } + + &.small { + font-size: var(--font-size-small); + padding: var(--spacing-2) var(--spacing-5); + } + + &.large { + font-size: var(--font-size-large); + padding: var(--spacing-4) var(--spacing-8); + } + + svg { + width: 0; + height: 1.5rem; + transition: all 0.2s ease-out; + + .small & { + height: 1rem; + } + + .large & { + height: 2rem; + } + + @media screen and (min-width: 768px) { + height: 1.5rem; + + .small & { + height: 1rem; + } + + .large & { + height: 2rem; + } + } + + @media screen and (min-width: 1200px) { + height: 2rem; + + .small & { + height: 1.5rem; + } + + .large & { + height: 2.5rem; + } + } + } + + &:hover, + &:focus-visible { + svg { + width: 2rem; + margin-left: 0.5rem; + + .small & { + width: 1.5rem; + } + + .large & { + width: 2.5rem; + } + } + } + &.primary { color: var(--color-button-primary-text); background-color: var(--color-button-primary-bg); border-color: transparent; - &:hover, - &:focus { - outline: none; - color: var(--color-button-primary-hover-text); - background-color: var(--color-button-primary-hover-bg); + svg { + path { + fill: var(--color-button-primary-text); + } } } @@ -34,11 +104,10 @@ color: var(--color-button-secondary-text); border-color: var(--color-button-secondary-border); - &:hover, - &:focus { - color: var(--color-button-secondary-hover-text); - background-color: var(--color-button-secondary-hover-bg); - border-color: var(--color-button-secondary-hover-border); + svg { + path { + fill: var(--color-button-secondary-text); + } } } @@ -46,11 +115,14 @@ color: var(--color-button-inverted-text); border-color: var(--color-button-inverted-border); - &:hover, - &:focus { - color: var(--color-button-inverted-hover-text); - background-color: var(--color-button-inverted-hover-bg); - border-color: var(--color-button-inverted-hover-border); + &:focus-visible { + outline-color: var(--color-neutral-50); + } + + svg { + path { + fill: var(--color-button-inverted-text); + } } } diff --git a/helene-portfolio/src/components/common/Button.jsx b/helene-portfolio/src/components/common/Button.jsx index b937b34496..4c553af94c 100644 --- a/helene-portfolio/src/components/common/Button.jsx +++ b/helene-portfolio/src/components/common/Button.jsx @@ -1,10 +1,12 @@ import PropTypes from "prop-types"; +import Icon from "./Icon"; import "./Button.css"; const Button = ({ type = "button", size = "medium", variant = "primary", + iconOnHover = "arrowForward", children, href, onClick, @@ -16,6 +18,7 @@ const Button = ({ return ( {children} + ); } @@ -31,6 +34,13 @@ Button.propTypes = { type: PropTypes.oneOf(["button", "submit", "reset"]), size: PropTypes.oneOf(["small", "medium", "large"]), variant: PropTypes.oneOf(["primary", "secondary", "inverted"]), + iconOnHover: PropTypes.oneOf([ + "arrowForward", + "arrowUpward", + "gitHub", + "linkedIn", + "mystery", + ]), children: PropTypes.node.isRequired, href: PropTypes.string, onClick: PropTypes.func, diff --git a/helene-portfolio/src/components/common/Header.css b/helene-portfolio/src/components/common/Header.css index c34ec5ebae..6749f6f53b 100644 --- a/helene-portfolio/src/components/common/Header.css +++ b/helene-portfolio/src/components/common/Header.css @@ -9,12 +9,48 @@ } .header__logo { - padding: var(--spacing-10); + padding: var(--spacing-8); + + @media screen and (min-width: 768px) { + padding: var(--spacing-9); + } + + @media screen and (min-width: 1200px) { + padding: var(--spacing-10); + } + + svg { + height: 1.875rem; + width: auto; + + @media screen and (min-width: 768px) { + height: 2.25rem; + width: auto; + } + } } .button-toggle-theme { border: none; background-color: transparent; - padding: var(--spacing-9); + padding: var(--spacing-7); cursor: pointer; + + svg { + width: 2rem; + height: 2rem; + } + + @media screen and (min-width: 768px) { + padding: var(--spacing-8); + + svg { + width: 2.5rem; + height: 2.5rem; + } + } + + @media screen and (min-width: 1200px) { + padding: var(--spacing-9); + } } diff --git a/helene-portfolio/src/components/common/Icon.jsx b/helene-portfolio/src/components/common/Icon.jsx new file mode 100644 index 0000000000..8895605dc2 --- /dev/null +++ b/helene-portfolio/src/components/common/Icon.jsx @@ -0,0 +1,26 @@ +import PropTypes from "prop-types"; +import ArrowForward from "../../assets/icons/arrow_forward.svg?react"; +import ArrowUpward from "../../assets/icons/arrow_upward.svg?react"; +import GitHub from "../../assets/icons/github.svg?react"; +import LinkedIn from "../../assets/icons/linkedin.svg?react"; +import Mystery from "../../assets/icons/mystery.svg?react"; + +const icons = { + arrowForward: ArrowForward, + arrowUpward: ArrowUpward, + gitHub: GitHub, + linkedIn: LinkedIn, + mystery: Mystery, +}; + +const Icon = ({ iconName, ...props }) => { + const IconComponent = icons[iconName]; + + return IconComponent ? : null; +}; + +Icon.propTypes = { + iconName: PropTypes.string.isRequired, +}; + +export default Icon; diff --git a/helene-portfolio/src/components/common/Logo.css b/helene-portfolio/src/components/common/Logo.css index 0032dd4279..54654b3a4a 100644 --- a/helene-portfolio/src/components/common/Logo.css +++ b/helene-portfolio/src/components/common/Logo.css @@ -40,7 +40,7 @@ font-weight: var(--font-weight-regular); color: var(--color-headings); - @media screen and (min-width: 1025px) { + @media screen and (min-width: 1200px) { font-size: 1.5rem; } } diff --git a/helene-portfolio/src/components/common/Pill.css b/helene-portfolio/src/components/common/Pill.css index fde4de618f..70ddaaedd3 100644 --- a/helene-portfolio/src/components/common/Pill.css +++ b/helene-portfolio/src/components/common/Pill.css @@ -9,7 +9,7 @@ font-size: var(--font-size-heading-sm); font-weight: var(--font-weight-regular); - @media screen and (min-width: 1025px) { + @media screen and (min-width: 1200px) { gap: var(--spacing-8); padding-right: var(--spacing-8); } @@ -23,7 +23,7 @@ height: 2.5rem; width: 2.5rem; - @media screen and (min-width: 1025px) { + @media screen and (min-width: 1200px) { height: 4.5rem; width: 4.5rem; } diff --git a/helene-portfolio/src/components/layout/ArticleItem.css b/helene-portfolio/src/components/layout/ArticleItem.css new file mode 100644 index 0000000000..b48ce0c524 --- /dev/null +++ b/helene-portfolio/src/components/layout/ArticleItem.css @@ -0,0 +1,25 @@ +.article { + display: flex; + flex-direction: column; + gap: var(--spacing-6); + margin-bottom: var(--spacing-6); + + @media screen and (min-width: 768px) { + gap: var(--spacing-7); + } + + @media screen and (min-width: 1200px) { + margin-bottom: 0; + } + + .article__text { + display: flex; + flex-direction: column; + gap: var(--spacing-3); + } + + img { + width: 100%; + height: auto; + } +} diff --git a/helene-portfolio/src/components/layout/ArticleItem.jsx b/helene-portfolio/src/components/layout/ArticleItem.jsx new file mode 100644 index 0000000000..38e93616a3 --- /dev/null +++ b/helene-portfolio/src/components/layout/ArticleItem.jsx @@ -0,0 +1,46 @@ +import PropTypes from "prop-types"; +import Button from "../common/Button"; +import { H3 } from "../common/Typography"; +import "./ArticleItem.css"; + +const ArticleItem = ({ data }) => { + const { name, excerpt, image, link } = data; + return ( +
+
+
+

{name}

+ {excerpt &&

{excerpt}

} +
+
+ {link && ( + + )} +
+ + ); +}; + +ArticleItem.propTypes = { + data: PropTypes.shape({ + name: PropTypes.string.isRequired, + excerpt: PropTypes.string, + image: PropTypes.string.isRequired, + link: PropTypes.string, + }).isRequired, +}; + +export default ArticleItem; diff --git a/helene-portfolio/src/components/layout/Articles.css b/helene-portfolio/src/components/layout/Articles.css new file mode 100644 index 0000000000..124117ffdb --- /dev/null +++ b/helene-portfolio/src/components/layout/Articles.css @@ -0,0 +1,7 @@ +.section-articles { + background-color: var(--color-background-subtle); +} + +.articles__title { + margin-bottom: var(--spacing-9); +} diff --git a/helene-portfolio/src/components/layout/Articles.jsx b/helene-portfolio/src/components/layout/Articles.jsx index 8e602f246b..5ce1fcdc85 100644 --- a/helene-portfolio/src/components/layout/Articles.jsx +++ b/helene-portfolio/src/components/layout/Articles.jsx @@ -1,5 +1,23 @@ +import { H2 } from "../common/Typography"; +import articlesData from "../../data/articles.json"; +import ArticleItem from "./ArticleItem"; +import "./Articles.css"; + const Articles = () => { - return
Here I will display articles
; + return ( +
+
+
+

Curated thoughts 💭

+
+ {articlesData.articles.map((article, index) => ( + + ))} +
+
+
+
+ ); }; export default Articles; diff --git a/helene-portfolio/src/components/layout/Footer.css b/helene-portfolio/src/components/layout/Footer.css index a99869fcc0..fa763e5300 100644 --- a/helene-portfolio/src/components/layout/Footer.css +++ b/helene-portfolio/src/components/layout/Footer.css @@ -1,9 +1,109 @@ footer { + position: relative; + display: flex; + flex-direction: column; + gap: var(--spacing-11); + color: var(--color-text-footer); background-color: var(--color-background-footer); - padding: calc(var(--spacing-11) * 2) var(--spacing-10); + padding: var(--spacing-11) 0 0; - h2 { + @media screen and (min-width: 768px) { + gap: calc(var(--spacing-11) * 2); + padding: calc(var(--spacing-11) * 2) var(--spacing-10) 0; + } + + @media screen and (min-width: 1200px) { + gap: calc(var(--spacing-11) * 2); + padding: calc(var(--spacing-11) * 2) var(--spacing-10) 0; + } + + .footer__title { color: var(--color-text-footer); - margin-bottom: var(--spacing-11); + margin-bottom: var(--spacing-9); + + @media screen and (min-width: 768px) { + margin-bottom: var(--spacing-10); + } + + @media screen and (min-width: 1200px) { + margin-bottom: var(--spacing-11); + } + + @media screen and (max-width: 767px) { + padding-right: var(--spacing-11); + } + } + + .footer__bottom { + border-top: 1px solid var(--color-border-footer); + } + + .footer__bottom__content { + display: flex; + flex-flow: row wrap; + gap: var(--spacing-5); + padding: var(--spacing-10) 0; + } + + .footer__links { + display: flex; + gap: var(--spacing-6); + + a { + display: flex; + gap: var(--spacing-2); + color: var(--color-text-footer); + text-decoration: none; + + &:hover, + &:focus-visible { + text-decoration: underline; + } + } + } + + svg { + width: 1.25rem; + height: 1.25rem; + + path { + fill: var(--color-text-footer); + } + } + + .back-to-top-link { + position: absolute; + right: 1rem; + top: 1rem; + + @media screen and (min-width: 768px) { + top: 2rem; + right: 2rem; + } + + @media screen and (min-width: 1200px) { + top: 3.75rem; + right: 3.75rem; + } + } + + .back-to-top { + height: 4.375rem; + width: auto; + + .circle { + animation: rotate-animation 10s infinite linear; + transform-origin: center; + } + + @media screen and (min-width: 768px) { + height: 5rem; + width: auto; + } + + @media screen and (min-width: 1200px) { + height: 8.75rem; + width: auto; + } } } diff --git a/helene-portfolio/src/components/layout/Footer.jsx b/helene-portfolio/src/components/layout/Footer.jsx index ab75af0d0b..5699f43bb4 100644 --- a/helene-portfolio/src/components/layout/Footer.jsx +++ b/helene-portfolio/src/components/layout/Footer.jsx @@ -1,12 +1,20 @@ import Button from "../common/Button"; +import Icon from "../common/Icon"; +import { H2 } from "../common/Typography"; +import BackToTop from "../../assets/icons/back-to-top.svg?react"; import "./Footer.css"; const Footer = () => { return (
); }; diff --git a/helene-portfolio/src/components/layout/Hero.css b/helene-portfolio/src/components/layout/Hero.css index f9b8ecd5a2..e61fa22e6e 100644 --- a/helene-portfolio/src/components/layout/Hero.css +++ b/helene-portfolio/src/components/layout/Hero.css @@ -12,14 +12,17 @@ } .hero { - padding: calc(var(--spacing-12) * 1.4) var(--spacing-3) var(--spacing-10); + padding-top: calc(var(--spacing-12) * 1.4); + padding-bottom: var(--spacing-10); @media screen and (min-width: 768px) { - padding: calc(var(--spacing-12) * 1.5) var(--spacing-10); + padding-top: calc(var(--spacing-12) * 1.5); + padding-bottom: calc(var(--spacing-12) * 1.5); } - @media screen and (min-width: 1025px) { - padding: calc(var(--spacing-12) * 2) var(--spacing-11); + @media screen and (min-width: 1200px) { + padding-top: calc(var(--spacing-12) * 2); + padding-bottom: calc(var(--spacing-12) * 2); } } diff --git a/helene-portfolio/src/components/layout/Hero.jsx b/helene-portfolio/src/components/layout/Hero.jsx index 667be18a5a..29b2b7eb09 100644 --- a/helene-portfolio/src/components/layout/Hero.jsx +++ b/helene-portfolio/src/components/layout/Hero.jsx @@ -4,7 +4,7 @@ import "./Hero.css"; const Hero = () => { return ( -
+

diff --git a/helene-portfolio/src/components/layout/ProjectItem.css b/helene-portfolio/src/components/layout/ProjectItem.css index f89e0f7dec..69fd42e915 100644 --- a/helene-portfolio/src/components/layout/ProjectItem.css +++ b/helene-portfolio/src/components/layout/ProjectItem.css @@ -1,7 +1,7 @@ .project { align-items: center; - @media screen and (min-width: 1025px) { + @media screen and (min-width: 1200px) { &:nth-child(even) { .project__info { order: 1; @@ -22,7 +22,6 @@ object-fit: cover; height: 100%; width: 100%; - border-radius: var(--border-radius-lg); } } @@ -33,7 +32,7 @@ padding-top: var(--spacing-4); padding-bottom: var(--spacing-4); - @media screen and (min-width: 1025px) { + @media screen and (min-width: 1200px) { padding-left: var(--spacing-7); padding-top: var(--spacing-9); padding-bottom: var(--spacing-9); diff --git a/helene-portfolio/src/components/layout/ProjectItem.jsx b/helene-portfolio/src/components/layout/ProjectItem.jsx index 446aed9702..0dec06b9f8 100644 --- a/helene-portfolio/src/components/layout/ProjectItem.jsx +++ b/helene-portfolio/src/components/layout/ProjectItem.jsx @@ -10,7 +10,7 @@ const ProjectItem = ({ data }) => { return (
- +

{name}

@@ -27,12 +27,24 @@ const ProjectItem = ({ data }) => {
{netlify && ( - )} {github && ( - )} diff --git a/helene-portfolio/src/components/layout/SkillLists.jsx b/helene-portfolio/src/components/layout/SkillLists.jsx index 582443d24e..d176717326 100644 --- a/helene-portfolio/src/components/layout/SkillLists.jsx +++ b/helene-portfolio/src/components/layout/SkillLists.jsx @@ -10,11 +10,14 @@ const SkillLists = () => {

{skillCategory.name}

-