diff --git a/.github/workflows/test.yml-template b/.github/workflows/test.yml-template new file mode 100644 index 000000000..8b5743ecb --- /dev/null +++ b/.github/workflows/test.yml-template @@ -0,0 +1,29 @@ +name: Test + +on: + pull_request: + branches: [ master ] + +jobs: + build: + + runs-on: ubuntu-latest + + strategy: + matrix: + node-version: [20.x] + + steps: + - uses: actions/checkout@v2 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v1 + with: + node-version: ${{ matrix.node-version }} + - run: npm install + - run: npm test + - name: Upload HTML report(backstop data) + if: ${{ always() }} + uses: actions/upload-artifact@v2 + with: + name: report + path: backstop_data diff --git a/package-lock.json b/package-lock.json index 05ac51229..51fb88c1a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,14 +13,15 @@ "@linthtml/linthtml": "^0.9.6", "@mate-academy/bemlint": "latest", "@mate-academy/linthtml-config": "latest", - "@mate-academy/scripts": "^1.8.6", + "@mate-academy/scripts": "^1.9.12", "@mate-academy/stylelint-config": "latest", - "@parcel/transformer-sass": "^2.12.0", + "@parcel/transformer-sass": "^2.13.2", "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", "prettier": "^3.3.2", "stylelint": "^16.7.0", - "stylelint-scss": "^6.4.1" + "stylelint-scss": "^6.4.1", + "svgo": "^3.3.2" } }, "node_modules/@ampproject/remapping": { @@ -1049,16 +1050,18 @@ } }, "node_modules/@lezer/common": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.2.1.tgz", - "integrity": "sha512-yemX0ZD2xS/73llMZIK6KplkjIjf2EvAHcinDi/TfJ9hS25G0388+ClHt6/3but0oOxinTcQHJLDXh6w1crzFQ==", - "dev": true + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.2.3.tgz", + "integrity": "sha512-w7ojc8ejBqr2REPsWxJjrMFsA/ysDCFICn8zEOR9mrqzOu2amhITYuLD8ag6XZf0CFXDrhKqw7+tW8cX66NaDA==", + "dev": true, + "license": "MIT" }, "node_modules/@lezer/lr": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-1.4.1.tgz", - "integrity": "sha512-CHsKq8DMKBf9b3yXPDIU4DbH+ZJd/sJdYOW2llbW/HudP5u0VS6Bfq1hLYfgU7uAYGFIyGGQIsSOXGPEErZiJw==", + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-1.4.2.tgz", + "integrity": "sha512-pu0K1jCIdnQ12aWNaAVU5bzi7Bd1w54J3ECgANPmYLtQKP0HBj2cE/5coBD66MT10xbtIuUr7tg0Shbsvk0mDA==", "dev": true, + "license": "MIT", "dependencies": { "@lezer/common": "^1.0.0" } @@ -1129,10 +1132,12 @@ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" - ] + ], + "peer": true }, "node_modules/@lmdb/lmdb-darwin-x64": { "version": "2.8.5", @@ -1142,10 +1147,12 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" - ] + ], + "peer": true }, "node_modules/@lmdb/lmdb-linux-arm": { "version": "2.8.5", @@ -1155,10 +1162,12 @@ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" - ] + ], + "peer": true }, "node_modules/@lmdb/lmdb-linux-arm64": { "version": "2.8.5", @@ -1168,10 +1177,12 @@ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" - ] + ], + "peer": true }, "node_modules/@lmdb/lmdb-linux-x64": { "version": "2.8.5", @@ -1181,10 +1192,12 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" - ] + ], + "peer": true }, "node_modules/@lmdb/lmdb-win32-x64": { "version": "2.8.5", @@ -1194,10 +1207,12 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" - ] + ], + "peer": true }, "node_modules/@mate-academy/bemlint": { "version": "0.1.2", @@ -1222,10 +1237,11 @@ "dev": true }, "node_modules/@mate-academy/scripts": { - "version": "1.8.6", - "resolved": "https://registry.npmjs.org/@mate-academy/scripts/-/scripts-1.8.6.tgz", - "integrity": "sha512-b4om/whj4G9emyi84ORE3FRZzCRwRIesr8tJHXa8EvJdOaAPDpzcJ8A0sFfMsWH9NUOVmOwkBtOXDu5eZZ00Ig==", + "version": "1.9.12", + "resolved": "https://registry.npmjs.org/@mate-academy/scripts/-/scripts-1.9.12.tgz", + "integrity": "sha512-/OcmxMa34lYLFlGx7Ig926W1U1qjrnXbjFJ2TzUcDaLmED+A5se652NcWwGOidXRuMAOYLPU2jNYBEkKyXrFJA==", "dev": true, + "license": "MIT", "dependencies": { "@octokit/rest": "^17.11.2", "@types/get-port": "^4.2.0", @@ -1782,6 +1798,7 @@ "resolved": "https://registry.npmjs.org/@mischnic/json-sourcemap/-/json-sourcemap-0.1.1.tgz", "integrity": "sha512-iA7+tyVqfrATAIsIRWQG+a7ZLLD0VaOCKV2Wd/v4mqIU3J9c4jx9p7S0nw1XH3gJCKNBOOwACOPYYSUu9pgT+w==", "dev": true, + "license": "MIT", "dependencies": { "@lezer/common": "^1.0.0", "@lezer/lr": "^1.0.0", @@ -1799,10 +1816,12 @@ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" - ] + ], + "peer": true }, "node_modules/@msgpackr-extract/msgpackr-extract-darwin-x64": { "version": "3.0.3", @@ -1812,10 +1831,12 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" - ] + ], + "peer": true }, "node_modules/@msgpackr-extract/msgpackr-extract-linux-arm": { "version": "3.0.3", @@ -1825,10 +1846,12 @@ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" - ] + ], + "peer": true }, "node_modules/@msgpackr-extract/msgpackr-extract-linux-arm64": { "version": "3.0.3", @@ -1838,10 +1861,12 @@ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" - ] + ], + "peer": true }, "node_modules/@msgpackr-extract/msgpackr-extract-linux-x64": { "version": "3.0.3", @@ -1851,10 +1876,12 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" - ] + ], + "peer": true }, "node_modules/@msgpackr-extract/msgpackr-extract-win32-x64": { "version": "3.0.3", @@ -1864,10 +1891,12 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" - ] + ], + "peer": true }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", @@ -2239,78 +2268,99 @@ } }, "node_modules/@parcel/cache": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/cache/-/cache-2.12.0.tgz", - "integrity": "sha512-FX5ZpTEkxvq/yvWklRHDESVRz+c7sLTXgFuzz6uEnBcXV38j6dMSikflNpHA6q/L4GKkCqRywm9R6XQwhwIMyw==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/cache/-/cache-2.13.2.tgz", + "integrity": "sha512-Y0nWlCMWDSp1lxiPI5zCWTGD0InnVZ+IfqeyLWmROAqValYyd0QZCvnSljKJ144jWTr0jXxDveir+DVF8sAYaA==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "@parcel/fs": "2.12.0", - "@parcel/logger": "2.12.0", - "@parcel/utils": "2.12.0", + "@parcel/fs": "2.13.2", + "@parcel/logger": "2.13.2", + "@parcel/utils": "2.13.2", "lmdb": "2.8.5" }, "engines": { - "node": ">= 12.0.0" + "node": ">= 16.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/parcel" }, "peerDependencies": { - "@parcel/core": "^2.12.0" + "@parcel/core": "^2.13.2" } }, "node_modules/@parcel/codeframe": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/codeframe/-/codeframe-2.12.0.tgz", - "integrity": "sha512-v2VmneILFiHZJTxPiR7GEF1wey1/IXPdZMcUlNXBiPZyWDfcuNgGGVQkx/xW561rULLIvDPharOMdxz5oHOKQg==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/codeframe/-/codeframe-2.13.2.tgz", + "integrity": "sha512-qFMiS14orb6QSQj5/J/QN+gJElUfedVAKBTNkp9QB4i8ObdLHDqHRUzFb55ZQJI3G4vsxOOWAOUXGirtLwrxGQ==", "dev": true, + "license": "MIT", "dependencies": { - "chalk": "^4.1.0" + "chalk": "^4.1.2" }, "engines": { - "node": ">= 12.0.0" + "node": ">= 16.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/parcel" } }, + "node_modules/@parcel/codeframe/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/@parcel/core": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/core/-/core-2.12.0.tgz", - "integrity": "sha512-s+6pwEj+GfKf7vqGUzN9iSEPueUssCCQrCBUlcAfKrJe0a22hTUCjewpB0I7lNrCIULt8dkndD+sMdOrXsRl6Q==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/core/-/core-2.13.2.tgz", + "integrity": "sha512-1zC5Au4z9or5XyP6ipfvJqHktuB0jD7WuxMcV1CWAZGARHKylLe+0ccl+Wx7HN5O+xAvfCDtTlKrATY8qyrIyw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "@mischnic/json-sourcemap": "^0.1.0", - "@parcel/cache": "2.12.0", - "@parcel/diagnostic": "2.12.0", - "@parcel/events": "2.12.0", - "@parcel/fs": "2.12.0", - "@parcel/graph": "3.2.0", - "@parcel/logger": "2.12.0", - "@parcel/package-manager": "2.12.0", - "@parcel/plugin": "2.12.0", - "@parcel/profiler": "2.12.0", - "@parcel/rust": "2.12.0", + "@parcel/cache": "2.13.2", + "@parcel/diagnostic": "2.13.2", + "@parcel/events": "2.13.2", + "@parcel/feature-flags": "2.13.2", + "@parcel/fs": "2.13.2", + "@parcel/graph": "3.3.2", + "@parcel/logger": "2.13.2", + "@parcel/package-manager": "2.13.2", + "@parcel/plugin": "2.13.2", + "@parcel/profiler": "2.13.2", + "@parcel/rust": "2.13.2", "@parcel/source-map": "^2.1.1", - "@parcel/types": "2.12.0", - "@parcel/utils": "2.12.0", - "@parcel/workers": "2.12.0", - "abortcontroller-polyfill": "^1.1.9", + "@parcel/types": "2.13.2", + "@parcel/utils": "2.13.2", + "@parcel/workers": "2.13.2", "base-x": "^3.0.8", "browserslist": "^4.6.6", "clone": "^2.1.1", - "dotenv": "^7.0.0", - "dotenv-expand": "^5.1.0", + "dotenv": "^16.4.5", + "dotenv-expand": "^11.0.6", "json5": "^2.2.0", "msgpackr": "^1.9.9", "nullthrows": "^1.1.1", "semver": "^7.5.2" }, "engines": { - "node": ">= 12.0.0" + "node": ">= 16.0.0" }, "funding": { "type": "opencollective", @@ -2318,26 +2368,31 @@ } }, "node_modules/@parcel/core/node_modules/dotenv": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-7.0.0.tgz", - "integrity": "sha512-M3NhsLbV1i6HuGzBUH8vXrtxOk+tWmzWKDMbAVSUp3Zsjm7ywFeuwrUXhmhQyRK1q5B5GGy7hcXPbj3bnfZg2g==", + "version": "16.4.5", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", + "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", "dev": true, + "license": "BSD-2-Clause", "peer": true, "engines": { - "node": ">=6" + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" } }, "node_modules/@parcel/diagnostic": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/diagnostic/-/diagnostic-2.12.0.tgz", - "integrity": "sha512-8f1NOsSFK+F4AwFCKynyIu9Kr/uWHC+SywAv4oS6Bv3Acig0gtwUjugk0C9UaB8ztBZiW5TQZhw+uPZn9T/lJA==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/diagnostic/-/diagnostic-2.13.2.tgz", + "integrity": "sha512-6Au0JEJ5SY2gYrY0/m0i0sTuqTvK0k2E9azhBJR+zzCREbUxLiDdLZ+vXAfLW7t/kPAcWtdNU0Bj7pnZcMiMXg==", "dev": true, + "license": "MIT", "dependencies": { "@mischnic/json-sourcemap": "^0.1.0", "nullthrows": "^1.1.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">= 16.0.0" }, "funding": { "type": "opencollective", @@ -2345,12 +2400,27 @@ } }, "node_modules/@parcel/events": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/events/-/events-2.12.0.tgz", - "integrity": "sha512-nmAAEIKLjW1kB2cUbCYSmZOGbnGj8wCzhqnK727zCCWaA25ogzAtt657GPOeFyqW77KyosU728Tl63Fc8hphIA==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/events/-/events-2.13.2.tgz", + "integrity": "sha512-BVB9hW1RGh/tMaDHfpa+uIgz5PMULorCnjmWr/KvrlhdUSUQoaPYfRcTDYrKhoKuNIKsWSnTGvXrxE53L5qo0w==", "dev": true, + "license": "MIT", "engines": { - "node": ">= 12.0.0" + "node": ">= 16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/feature-flags": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/feature-flags/-/feature-flags-2.13.2.tgz", + "integrity": "sha512-cCwDAKD4Er24EkuQ+loVZXSURpM0gAGRsLJVoBtFiCSbB3nmIJJ6FLRwSBI/5OsOUExiUXDvSpfUCA5ldGTzbw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 16.0.0" }, "funding": { "type": "opencollective", @@ -2358,39 +2428,44 @@ } }, "node_modules/@parcel/fs": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/fs/-/fs-2.12.0.tgz", - "integrity": "sha512-NnFkuvou1YBtPOhTdZr44WN7I60cGyly2wpHzqRl62yhObyi1KvW0SjwOMa0QGNcBOIzp4G0CapoZ93hD0RG5Q==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/fs/-/fs-2.13.2.tgz", + "integrity": "sha512-bdeIMuAXhMnROvqV55JWRUmjD438/T7h3r3NsFnkq+Mp4z2nuAn0STxbqDNxIgTMJHNunSDzncqRNMT7xJCe8A==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "@parcel/rust": "2.12.0", - "@parcel/types": "2.12.0", - "@parcel/utils": "2.12.0", + "@parcel/feature-flags": "2.13.2", + "@parcel/rust": "2.13.2", + "@parcel/types-internal": "2.13.2", + "@parcel/utils": "2.13.2", "@parcel/watcher": "^2.0.7", - "@parcel/workers": "2.12.0" + "@parcel/workers": "2.13.2" }, "engines": { - "node": ">= 12.0.0" + "node": ">= 16.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/parcel" }, "peerDependencies": { - "@parcel/core": "^2.12.0" + "@parcel/core": "^2.13.2" } }, "node_modules/@parcel/graph": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@parcel/graph/-/graph-3.2.0.tgz", - "integrity": "sha512-xlrmCPqy58D4Fg5umV7bpwDx5Vyt7MlnQPxW68vae5+BA4GSWetfZt+Cs5dtotMG2oCHzZxhIPt7YZ7NRyQzLA==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@parcel/graph/-/graph-3.3.2.tgz", + "integrity": "sha512-aAysQLRr8SOonSHWqdKHMJzfcrDFXKK8IYZEurlOzosiSgZXrAK7q8b8JcaJ4r84/jlvQYNYneNZeFQxKjHXkA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { + "@parcel/feature-flags": "2.13.2", "nullthrows": "^1.1.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">= 16.0.0" }, "funding": { "type": "opencollective", @@ -2398,16 +2473,17 @@ } }, "node_modules/@parcel/logger": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/logger/-/logger-2.12.0.tgz", - "integrity": "sha512-cJ7Paqa7/9VJ7C+KwgJlwMqTQBOjjn71FbKk0G07hydUEBISU2aDfmc/52o60ErL9l+vXB26zTrIBanbxS8rVg==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/logger/-/logger-2.13.2.tgz", + "integrity": "sha512-SFVABAMqaT9jIDn4maPgaQQauPDz8fpoKUGEuLF44Q0aQFbBUy7vX7KYs/EvYSWZo4VyJcUDHvIInBlepA0/ZQ==", "dev": true, + "license": "MIT", "dependencies": { - "@parcel/diagnostic": "2.12.0", - "@parcel/events": "2.12.0" + "@parcel/diagnostic": "2.13.2", + "@parcel/events": "2.13.2" }, "engines": { - "node": ">= 12.0.0" + "node": ">= 16.0.0" }, "funding": { "type": "opencollective", @@ -2415,37 +2491,57 @@ } }, "node_modules/@parcel/markdown-ansi": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/markdown-ansi/-/markdown-ansi-2.12.0.tgz", - "integrity": "sha512-WZz3rzL8k0H3WR4qTHX6Ic8DlEs17keO9gtD4MNGyMNQbqQEvQ61lWJaIH0nAtgEetu0SOITiVqdZrb8zx/M7w==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/markdown-ansi/-/markdown-ansi-2.13.2.tgz", + "integrity": "sha512-MIEoetfT/snk1GqWzBI3AhifV257i2xke9dvyQl14PPiMl+TlVhwnbQyA09WJBvDor+MuxZypHL7xoFdW8ff3A==", "dev": true, + "license": "MIT", "dependencies": { - "chalk": "^4.1.0" + "chalk": "^4.1.2" }, "engines": { - "node": ">= 12.0.0" + "node": ">= 16.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/parcel" } }, + "node_modules/@parcel/markdown-ansi/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/@parcel/node-resolver-core": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@parcel/node-resolver-core/-/node-resolver-core-3.3.0.tgz", - "integrity": "sha512-rhPW9DYPEIqQBSlYzz3S0AjXxjN6Ub2yS6tzzsW/4S3Gpsgk/uEq4ZfxPvoPf/6TgZndVxmKwpmxaKtGMmf3cA==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/@parcel/node-resolver-core/-/node-resolver-core-3.4.2.tgz", + "integrity": "sha512-SwnKLcZRG1VdB5JeM/Ax5VMWWh2QfXufmMQCKKx0/Kk41nUpie+aIZKj3LH6Z/fJsnKig/vXpeWoxGhmG523qg==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { "@mischnic/json-sourcemap": "^0.1.0", - "@parcel/diagnostic": "2.12.0", - "@parcel/fs": "2.12.0", - "@parcel/rust": "2.12.0", - "@parcel/utils": "2.12.0", + "@parcel/diagnostic": "2.13.2", + "@parcel/fs": "2.13.2", + "@parcel/rust": "2.13.2", + "@parcel/utils": "2.13.2", "nullthrows": "^1.1.1", "semver": "^7.5.2" }, "engines": { - "node": ">= 12.0.0" + "node": ">= 16.0.0" }, "funding": { "type": "opencollective", @@ -2453,42 +2549,45 @@ } }, "node_modules/@parcel/package-manager": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/package-manager/-/package-manager-2.12.0.tgz", - "integrity": "sha512-0nvAezcjPx9FT+hIL+LS1jb0aohwLZXct7jAh7i0MLMtehOi0z1Sau+QpgMlA9rfEZZ1LIeFdnZZwqSy7Ccspw==", - "dev": true, - "dependencies": { - "@parcel/diagnostic": "2.12.0", - "@parcel/fs": "2.12.0", - "@parcel/logger": "2.12.0", - "@parcel/node-resolver-core": "3.3.0", - "@parcel/types": "2.12.0", - "@parcel/utils": "2.12.0", - "@parcel/workers": "2.12.0", - "@swc/core": "^1.3.36", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/package-manager/-/package-manager-2.13.2.tgz", + "integrity": "sha512-6HjfbdJUjHyNKzYB7GSYnOCtLwqCGW7yT95GlnnTKyFffvXYsqvBSyepMuPRlbX0mFUm4S9l2DH3OVZrk108AA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@parcel/diagnostic": "2.13.2", + "@parcel/fs": "2.13.2", + "@parcel/logger": "2.13.2", + "@parcel/node-resolver-core": "3.4.2", + "@parcel/types": "2.13.2", + "@parcel/utils": "2.13.2", + "@parcel/workers": "2.13.2", + "@swc/core": "^1.7.26", "semver": "^7.5.2" }, "engines": { - "node": ">= 12.0.0" + "node": ">= 16.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/parcel" }, "peerDependencies": { - "@parcel/core": "^2.12.0" + "@parcel/core": "^2.13.2" } }, "node_modules/@parcel/plugin": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/plugin/-/plugin-2.12.0.tgz", - "integrity": "sha512-nc/uRA8DiMoe4neBbzV6kDndh/58a4wQuGKw5oEoIwBCHUvE2W8ZFSu7ollSXUGRzfacTt4NdY8TwS73ScWZ+g==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/plugin/-/plugin-2.13.2.tgz", + "integrity": "sha512-Q+RIENS1B185yLPhrGdzBK1oJrZmh/RXrYMnzJs78Tog8SpihjeNBNR6z4PT85o2F+Gy2y1S9A26fpiGq161qQ==", "dev": true, + "license": "MIT", "dependencies": { - "@parcel/types": "2.12.0" + "@parcel/types": "2.13.2" }, "engines": { - "node": ">= 12.0.0" + "node": ">= 16.0.0" }, "funding": { "type": "opencollective", @@ -2496,17 +2595,19 @@ } }, "node_modules/@parcel/profiler": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/profiler/-/profiler-2.12.0.tgz", - "integrity": "sha512-q53fvl5LDcFYzMUtSusUBZSjQrKjMlLEBgKeQHFwkimwR1mgoseaDBDuNz0XvmzDzF1UelJ02TUKCGacU8W2qA==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/profiler/-/profiler-2.13.2.tgz", + "integrity": "sha512-fur6Oq2HkX6AiM8rtqmDvldH5JWz0sqXA1ylz8cE3XOiDZIuvCulZmQ+hH+4odaNH6QocI1MwfV+GDh3HlQoCA==", "dev": true, + "license": "MIT", "dependencies": { - "@parcel/diagnostic": "2.12.0", - "@parcel/events": "2.12.0", + "@parcel/diagnostic": "2.13.2", + "@parcel/events": "2.13.2", + "@parcel/types-internal": "2.13.2", "chrome-trace-event": "^1.0.2" }, "engines": { - "node": ">= 12.0.0" + "node": ">= 16.0.0" }, "funding": { "type": "opencollective", @@ -2514,12 +2615,13 @@ } }, "node_modules/@parcel/rust": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/rust/-/rust-2.12.0.tgz", - "integrity": "sha512-005cldMdFZFDPOjbDVEXcINQ3wT4vrxvSavRWI3Az0e3E18exO/x/mW9f648KtXugOXMAqCEqhFHcXECL9nmMw==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/rust/-/rust-2.13.2.tgz", + "integrity": "sha512-XFIewSwxkrDYOnnSP/XZ1LDLdXTs7L9CjQUWtl46Vir5Pq/rinemwLJeKGIwKLHy7fhUZQjYxquH6fBL+AY8DA==", "dev": true, + "license": "MIT", "engines": { - "node": ">= 12.0.0" + "node": ">= 16.0.0" }, "funding": { "type": "opencollective", @@ -2531,6 +2633,7 @@ "resolved": "https://registry.npmjs.org/@parcel/source-map/-/source-map-2.1.1.tgz", "integrity": "sha512-Ejx1P/mj+kMjQb8/y5XxDUn4reGdr+WyKYloBljpppUy8gs42T+BNoEOuRYqDVdgPc6NxduzIDoJS9pOFfV5Ew==", "dev": true, + "license": "MIT", "dependencies": { "detect-libc": "^1.0.3" }, @@ -2539,18 +2642,19 @@ } }, "node_modules/@parcel/transformer-sass": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/transformer-sass/-/transformer-sass-2.12.0.tgz", - "integrity": "sha512-xLLoSLPST+2AHJwFRLl4foArDjjy6P1RChP3TxMU2MVS1sbKGJnfFhFpHAacH8ASjuGtu5rbpfpHRZePlvoZxw==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/transformer-sass/-/transformer-sass-2.13.2.tgz", + "integrity": "sha512-FemdyKa6wvkitG2DQgkDI6NkyJCsQ2My/z3idcFAyf8kb3KBIJ+a0ZK4QALvLnJiC9ugeIKsZk5uFjoJAHX1XQ==", "dev": true, + "license": "MIT", "dependencies": { - "@parcel/plugin": "2.12.0", + "@parcel/plugin": "2.13.2", "@parcel/source-map": "^2.1.1", "sass": "^1.38.0" }, "engines": { - "node": ">= 12.0.0", - "parcel": "^2.12.0" + "node": ">= 16.0.0", + "parcel": "^2.13.2" }, "funding": { "type": "opencollective", @@ -2558,48 +2662,78 @@ } }, "node_modules/@parcel/types": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/types/-/types-2.12.0.tgz", - "integrity": "sha512-8zAFiYNCwNTQcglIObyNwKfRYQK5ELlL13GuBOrSMxueUiI5ylgsGbTS1N7J3dAGZixHO8KhHGv5a71FILn9rQ==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/types/-/types-2.13.2.tgz", + "integrity": "sha512-6ixqjk2pjKELn4sQ/jdvpbCVTeH6xXQTdotkN8Wzk68F2K2MtSPIRAEocumlexScfffbRQplr2MdIf1JJWLogA==", "dev": true, + "license": "MIT", "dependencies": { - "@parcel/cache": "2.12.0", - "@parcel/diagnostic": "2.12.0", - "@parcel/fs": "2.12.0", - "@parcel/package-manager": "2.12.0", + "@parcel/types-internal": "2.13.2", + "@parcel/workers": "2.13.2" + } + }, + "node_modules/@parcel/types-internal": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/types-internal/-/types-internal-2.13.2.tgz", + "integrity": "sha512-j0zb3WNM8O/+d8CArll7/4w4AyBED3Jbo32/unz89EPVN0VklmgBrRCAI5QXDKuJAGdAZSL5/a8bNYbwl7/Wxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/diagnostic": "2.13.2", + "@parcel/feature-flags": "2.13.2", "@parcel/source-map": "^2.1.1", - "@parcel/workers": "2.12.0", "utility-types": "^3.10.0" } }, "node_modules/@parcel/utils": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/utils/-/utils-2.12.0.tgz", - "integrity": "sha512-z1JhLuZ8QmDaYoEIuUCVZlhcFrS7LMfHrb2OCRui5SQFntRWBH2fNM6H/fXXUkT9SkxcuFP2DUA6/m4+Gkz72g==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/utils/-/utils-2.13.2.tgz", + "integrity": "sha512-BkFtRo5xenmonwnBy+X4sVbHIRrx+ZHMPpS/6hFqyTvoUUFq2yTFQnfRGVVOOvscVUxpGom+kewnrTG3HHbZoA==", "dev": true, + "license": "MIT", "dependencies": { - "@parcel/codeframe": "2.12.0", - "@parcel/diagnostic": "2.12.0", - "@parcel/logger": "2.12.0", - "@parcel/markdown-ansi": "2.12.0", - "@parcel/rust": "2.12.0", + "@parcel/codeframe": "2.13.2", + "@parcel/diagnostic": "2.13.2", + "@parcel/logger": "2.13.2", + "@parcel/markdown-ansi": "2.13.2", + "@parcel/rust": "2.13.2", "@parcel/source-map": "^2.1.1", - "chalk": "^4.1.0", + "chalk": "^4.1.2", "nullthrows": "^1.1.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">= 16.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/parcel" } }, + "node_modules/@parcel/utils/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/@parcel/watcher": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.4.1.tgz", - "integrity": "sha512-HNjmfLQEVRZmHRET336f20H/8kOozUGwk7yajvsonjNxbj2wBTK1WsQuHkD5yYh9RxFGL2EyDHryOihOwUoKDA==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.0.tgz", + "integrity": "sha512-i0GV1yJnm2n3Yq1qw6QrUrd/LI9bE8WEBOTtOkpCXHHdyN3TAGgqAK/DAT05z4fq2x04cARXt2pDmjWjL92iTQ==", "dev": true, + "hasInstallScript": true, + "license": "MIT", + "peer": true, "dependencies": { "detect-libc": "^1.0.3", "is-glob": "^4.0.3", @@ -2614,32 +2748,35 @@ "url": "https://opencollective.com/parcel" }, "optionalDependencies": { - "@parcel/watcher-android-arm64": "2.4.1", - "@parcel/watcher-darwin-arm64": "2.4.1", - "@parcel/watcher-darwin-x64": "2.4.1", - "@parcel/watcher-freebsd-x64": "2.4.1", - "@parcel/watcher-linux-arm-glibc": "2.4.1", - "@parcel/watcher-linux-arm64-glibc": "2.4.1", - "@parcel/watcher-linux-arm64-musl": "2.4.1", - "@parcel/watcher-linux-x64-glibc": "2.4.1", - "@parcel/watcher-linux-x64-musl": "2.4.1", - "@parcel/watcher-win32-arm64": "2.4.1", - "@parcel/watcher-win32-ia32": "2.4.1", - "@parcel/watcher-win32-x64": "2.4.1" + "@parcel/watcher-android-arm64": "2.5.0", + "@parcel/watcher-darwin-arm64": "2.5.0", + "@parcel/watcher-darwin-x64": "2.5.0", + "@parcel/watcher-freebsd-x64": "2.5.0", + "@parcel/watcher-linux-arm-glibc": "2.5.0", + "@parcel/watcher-linux-arm-musl": "2.5.0", + "@parcel/watcher-linux-arm64-glibc": "2.5.0", + "@parcel/watcher-linux-arm64-musl": "2.5.0", + "@parcel/watcher-linux-x64-glibc": "2.5.0", + "@parcel/watcher-linux-x64-musl": "2.5.0", + "@parcel/watcher-win32-arm64": "2.5.0", + "@parcel/watcher-win32-ia32": "2.5.0", + "@parcel/watcher-win32-x64": "2.5.0" } }, "node_modules/@parcel/watcher-android-arm64": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.4.1.tgz", - "integrity": "sha512-LOi/WTbbh3aTn2RYddrO8pnapixAziFl6SMxHM69r3tvdSm94JtCenaKgk1GRg5FJ5wpMCpHeW+7yqPlvZv7kg==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.0.tgz", + "integrity": "sha512-qlX4eS28bUcQCdribHkg/herLe+0A9RyYC+mm2PXpncit8z5b3nSqGVzMNR3CmtAOgRutiZ02eIJJgP/b1iEFQ==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ], + "peer": true, "engines": { "node": ">= 10.0.0" }, @@ -2649,17 +2786,19 @@ } }, "node_modules/@parcel/watcher-darwin-arm64": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.4.1.tgz", - "integrity": "sha512-ln41eihm5YXIY043vBrrHfn94SIBlqOWmoROhsMVTSXGh0QahKGy77tfEywQ7v3NywyxBBkGIfrWRHm0hsKtzA==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.0.tgz", + "integrity": "sha512-hyZ3TANnzGfLpRA2s/4U1kbw2ZI4qGxaRJbBH2DCSREFfubMswheh8TeiC1sGZ3z2jUf3s37P0BBlrD3sjVTUw==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" ], + "peer": true, "engines": { "node": ">= 10.0.0" }, @@ -2669,17 +2808,19 @@ } }, "node_modules/@parcel/watcher-darwin-x64": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.4.1.tgz", - "integrity": "sha512-yrw81BRLjjtHyDu7J61oPuSoeYWR3lDElcPGJyOvIXmor6DEo7/G2u1o7I38cwlcoBHQFULqF6nesIX3tsEXMg==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.0.tgz", + "integrity": "sha512-9rhlwd78saKf18fT869/poydQK8YqlU26TMiNg7AIu7eBp9adqbJZqmdFOsbZ5cnLp5XvRo9wcFmNHgHdWaGYA==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" ], + "peer": true, "engines": { "node": ">= 10.0.0" }, @@ -2689,17 +2830,19 @@ } }, "node_modules/@parcel/watcher-freebsd-x64": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.4.1.tgz", - "integrity": "sha512-TJa3Pex/gX3CWIx/Co8k+ykNdDCLx+TuZj3f3h7eOjgpdKM+Mnix37RYsYU4LHhiYJz3DK5nFCCra81p6g050w==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.0.tgz", + "integrity": "sha512-syvfhZzyM8kErg3VF0xpV8dixJ+RzbUaaGaeb7uDuz0D3FK97/mZ5AJQ3XNnDsXX7KkFNtyQyFrXZzQIcN49Tw==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "freebsd" ], + "peer": true, "engines": { "node": ">= 10.0.0" }, @@ -2709,17 +2852,41 @@ } }, "node_modules/@parcel/watcher-linux-arm-glibc": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.4.1.tgz", - "integrity": "sha512-4rVYDlsMEYfa537BRXxJ5UF4ddNwnr2/1O4MHM5PjI9cvV2qymvhwZSFgXqbS8YoTk5i/JR0L0JDs69BUn45YA==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.0.tgz", + "integrity": "sha512-0VQY1K35DQET3dVYWpOaPFecqOT9dbuCfzjxoQyif1Wc574t3kOSkKevULddcR9znz1TcklCE7Ht6NIxjvTqLA==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], + "peer": true, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-musl": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.0.tgz", + "integrity": "sha512-6uHywSIzz8+vi2lAzFeltnYbdHsDm3iIB57d4g5oaB9vKwjb6N6dRIgZMujw4nm5r6v9/BQH0noq6DzHrqr2pA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, "engines": { "node": ">= 10.0.0" }, @@ -2729,17 +2896,19 @@ } }, "node_modules/@parcel/watcher-linux-arm64-glibc": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.4.1.tgz", - "integrity": "sha512-BJ7mH985OADVLpbrzCLgrJ3TOpiZggE9FMblfO65PlOCdG++xJpKUJ0Aol74ZUIYfb8WsRlUdgrZxKkz3zXWYA==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.0.tgz", + "integrity": "sha512-BfNjXwZKxBy4WibDb/LDCriWSKLz+jJRL3cM/DllnHH5QUyoiUNEp3GmL80ZqxeumoADfCCP19+qiYiC8gUBjA==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], + "peer": true, "engines": { "node": ">= 10.0.0" }, @@ -2749,17 +2918,19 @@ } }, "node_modules/@parcel/watcher-linux-arm64-musl": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.4.1.tgz", - "integrity": "sha512-p4Xb7JGq3MLgAfYhslU2SjoV9G0kI0Xry0kuxeG/41UfpjHGOhv7UoUDAz/jb1u2elbhazy4rRBL8PegPJFBhA==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.0.tgz", + "integrity": "sha512-S1qARKOphxfiBEkwLUbHjCY9BWPdWnW9j7f7Hb2jPplu8UZ3nes7zpPOW9bkLbHRvWM0WDTsjdOTUgW0xLBN1Q==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], + "peer": true, "engines": { "node": ">= 10.0.0" }, @@ -2769,17 +2940,19 @@ } }, "node_modules/@parcel/watcher-linux-x64-glibc": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.4.1.tgz", - "integrity": "sha512-s9O3fByZ/2pyYDPoLM6zt92yu6P4E39a03zvO0qCHOTjxmt3GHRMLuRZEWhWLASTMSrrnVNWdVI/+pUElJBBBg==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.0.tgz", + "integrity": "sha512-d9AOkusyXARkFD66S6zlGXyzx5RvY+chTP9Jp0ypSTC9d4lzyRs9ovGf/80VCxjKddcUvnsGwCHWuF2EoPgWjw==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], + "peer": true, "engines": { "node": ">= 10.0.0" }, @@ -2789,17 +2962,19 @@ } }, "node_modules/@parcel/watcher-linux-x64-musl": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.4.1.tgz", - "integrity": "sha512-L2nZTYR1myLNST0O632g0Dx9LyMNHrn6TOt76sYxWLdff3cB22/GZX2UPtJnaqQPdCRoszoY5rcOj4oMTtp5fQ==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.0.tgz", + "integrity": "sha512-iqOC+GoTDoFyk/VYSFHwjHhYrk8bljW6zOhPuhi5t9ulqiYq1togGJB5e3PwYVFFfeVgc6pbz3JdQyDoBszVaA==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], + "peer": true, "engines": { "node": ">= 10.0.0" }, @@ -2809,17 +2984,19 @@ } }, "node_modules/@parcel/watcher-win32-arm64": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.4.1.tgz", - "integrity": "sha512-Uq2BPp5GWhrq/lcuItCHoqxjULU1QYEcyjSO5jqqOK8RNFDBQnenMMx4gAl3v8GiWa59E9+uDM7yZ6LxwUIfRg==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.0.tgz", + "integrity": "sha512-twtft1d+JRNkM5YbmexfcH/N4znDtjgysFaV9zvZmmJezQsKpkfLYJ+JFV3uygugK6AtIM2oADPkB2AdhBrNig==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ], + "peer": true, "engines": { "node": ">= 10.0.0" }, @@ -2829,17 +3006,19 @@ } }, "node_modules/@parcel/watcher-win32-ia32": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.4.1.tgz", - "integrity": "sha512-maNRit5QQV2kgHFSYwftmPBxiuK5u4DXjbXx7q6eKjq5dsLXZ4FJiVvlcw35QXzk0KrUecJmuVFbj4uV9oYrcw==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.0.tgz", + "integrity": "sha512-+rgpsNRKwo8A53elqbbHXdOMtY/tAtTzManTWShB5Kk54N8Q9mzNWV7tV+IbGueCbcj826MfWGU3mprWtuf1TA==", "cpu": [ "ia32" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ], + "peer": true, "engines": { "node": ">= 10.0.0" }, @@ -2849,17 +3028,19 @@ } }, "node_modules/@parcel/watcher-win32-x64": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.4.1.tgz", - "integrity": "sha512-+DvS92F9ezicfswqrvIRM2njcYJbd5mb9CUgtrHCHmvn7pPPa+nMDRu1o1bYYz/l5IB2NVGNJWiH7h1E58IF2A==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.0.tgz", + "integrity": "sha512-lPrxve92zEHdgeff3aiu4gDOIt4u7sJYha6wbdEZDCDUhtjTsOMiaJzG5lMY4GkWH8p0fMmO2Ppq5G5XXG+DQw==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ], + "peer": true, "engines": { "node": ">= 10.0.0" }, @@ -2869,27 +3050,28 @@ } }, "node_modules/@parcel/workers": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@parcel/workers/-/workers-2.12.0.tgz", - "integrity": "sha512-zv5We5Jmb+ZWXlU6A+AufyjY4oZckkxsZ8J4dvyWL0W8IQvGO1JB4FGeryyttzQv3RM3OxcN/BpTGPiDG6keBw==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@parcel/workers/-/workers-2.13.2.tgz", + "integrity": "sha512-P78BpH0yTT9KK09wgK4eabtlb5OlcWAmZebOToN5UYuwWEylKt0gWZx1+d+LPQupvK84/iZ+AutDScsATjgUMw==", "dev": true, + "license": "MIT", "dependencies": { - "@parcel/diagnostic": "2.12.0", - "@parcel/logger": "2.12.0", - "@parcel/profiler": "2.12.0", - "@parcel/types": "2.12.0", - "@parcel/utils": "2.12.0", + "@parcel/diagnostic": "2.13.2", + "@parcel/logger": "2.13.2", + "@parcel/profiler": "2.13.2", + "@parcel/types-internal": "2.13.2", + "@parcel/utils": "2.13.2", "nullthrows": "^1.1.1" }, "engines": { - "node": ">= 12.0.0" + "node": ">= 16.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/parcel" }, "peerDependencies": { - "@parcel/core": "^2.12.0" + "@parcel/core": "^2.13.2" } }, "node_modules/@sinclair/typebox": { @@ -2943,14 +3125,16 @@ "dev": true }, "node_modules/@swc/core": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.7.0.tgz", - "integrity": "sha512-d4vMzH6ICllDwlPuhset2h8gu/USHdbyfJim+2hQEdxC0UONtfpmu38XBgNqRjStrji1Q5M10jfeUZL3cu1i8g==", + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.9.3.tgz", + "integrity": "sha512-oRj0AFePUhtatX+BscVhnzaAmWjpfAeySpM1TCbxA1rtBDeH/JDhi5yYzAKneDYtVtBvA7ApfeuzhMC9ye4xSg==", "dev": true, "hasInstallScript": true, + "license": "Apache-2.0", + "peer": true, "dependencies": { "@swc/counter": "^0.1.3", - "@swc/types": "^0.1.9" + "@swc/types": "^0.1.17" }, "engines": { "node": ">=10" @@ -2960,16 +3144,16 @@ "url": "https://opencollective.com/swc" }, "optionalDependencies": { - "@swc/core-darwin-arm64": "1.7.0", - "@swc/core-darwin-x64": "1.7.0", - "@swc/core-linux-arm-gnueabihf": "1.7.0", - "@swc/core-linux-arm64-gnu": "1.7.0", - "@swc/core-linux-arm64-musl": "1.7.0", - "@swc/core-linux-x64-gnu": "1.7.0", - "@swc/core-linux-x64-musl": "1.7.0", - "@swc/core-win32-arm64-msvc": "1.7.0", - "@swc/core-win32-ia32-msvc": "1.7.0", - "@swc/core-win32-x64-msvc": "1.7.0" + "@swc/core-darwin-arm64": "1.9.3", + "@swc/core-darwin-x64": "1.9.3", + "@swc/core-linux-arm-gnueabihf": "1.9.3", + "@swc/core-linux-arm64-gnu": "1.9.3", + "@swc/core-linux-arm64-musl": "1.9.3", + "@swc/core-linux-x64-gnu": "1.9.3", + "@swc/core-linux-x64-musl": "1.9.3", + "@swc/core-win32-arm64-msvc": "1.9.3", + "@swc/core-win32-ia32-msvc": "1.9.3", + "@swc/core-win32-x64-msvc": "1.9.3" }, "peerDependencies": { "@swc/helpers": "*" @@ -2981,161 +3165,181 @@ } }, "node_modules/@swc/core-darwin-arm64": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.7.0.tgz", - "integrity": "sha512-2ylhM7f0HwUwLrFYZAe/dse8PCbPsYcJS3Dt7Q8NT3PUn7vy6QOMxNcOPPuDrnmaXqQQO3oxdmRapguTxaat9g==", + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.9.3.tgz", + "integrity": "sha512-hGfl/KTic/QY4tB9DkTbNuxy5cV4IeejpPD4zo+Lzt4iLlDWIeANL4Fkg67FiVceNJboqg48CUX+APhDHO5G1w==", "cpu": [ "arm64" ], "dev": true, + "license": "Apache-2.0 AND MIT", "optional": true, "os": [ "darwin" ], + "peer": true, "engines": { "node": ">=10" } }, "node_modules/@swc/core-darwin-x64": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.7.0.tgz", - "integrity": "sha512-SgVnN4gT1Rb9YfTkp4FCUITqSs7Yj0uB2SUciu5CV3HuGvS5YXCUzh+KrwpLFtx8NIgivISKcNnb41mJi98X8Q==", + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.9.3.tgz", + "integrity": "sha512-IaRq05ZLdtgF5h9CzlcgaNHyg4VXuiStnOFpfNEMuI5fm5afP2S0FHq8WdakUz5WppsbddTdplL+vpeApt/WCQ==", "cpu": [ "x64" ], "dev": true, + "license": "Apache-2.0 AND MIT", "optional": true, "os": [ "darwin" ], + "peer": true, "engines": { "node": ">=10" } }, "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.7.0.tgz", - "integrity": "sha512-+Z9Dayart1iKJQEJJ9N/KS4z5EdXJE3WPFikY0jonKTo4Dd8RuyVz5yLvqcIMeVdz/SwximATaL6iJXw7hZS9A==", + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.9.3.tgz", + "integrity": "sha512-Pbwe7xYprj/nEnZrNBvZfjnTxlBIcfApAGdz2EROhjpPj+FBqBa3wOogqbsuGGBdCphf8S+KPprL1z+oDWkmSQ==", "cpu": [ "arm" ], "dev": true, + "license": "Apache-2.0", "optional": true, "os": [ "linux" ], + "peer": true, "engines": { "node": ">=10" } }, "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.7.0.tgz", - "integrity": "sha512-UnLrCiZ1EI4shznJn0xP6DLgsXUSwtfsdgHhGYCrvbgVBBve3S9iFgVFEB3SPl7Q/TdowNbrN4zHU0oChfiNfw==", + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.9.3.tgz", + "integrity": "sha512-AQ5JZiwNGVV/2K2TVulg0mw/3LYfqpjZO6jDPtR2evNbk9Yt57YsVzS+3vHSlUBQDRV9/jqMuZYVU3P13xrk+g==", "cpu": [ "arm64" ], "dev": true, + "license": "Apache-2.0 AND MIT", "optional": true, "os": [ "linux" ], + "peer": true, "engines": { "node": ">=10" } }, "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.7.0.tgz", - "integrity": "sha512-H724UANA+ptsfwKRr9mnaDa9cb5fw0oFysiGKTgb3DMYcgk3Od0jMTnXVPFSVpo7FlmyxeC9K8ueUPBOoOK6XA==", + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.9.3.tgz", + "integrity": "sha512-tzVH480RY6RbMl/QRgh5HK3zn1ZTFsThuxDGo6Iuk1MdwIbdFYUY034heWUTI4u3Db97ArKh0hNL0xhO3+PZdg==", "cpu": [ "arm64" ], "dev": true, + "license": "Apache-2.0 AND MIT", "optional": true, "os": [ "linux" ], + "peer": true, "engines": { "node": ">=10" } }, "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.7.0.tgz", - "integrity": "sha512-SY3HA0K0Dpqt1HIfMLGpwL4hd4UaL2xHP5oZXPlRQPhUDZrbb4PbI3ZJnh66c63eL4ZR8EJ+HRFI0Alx5p69Zw==", + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.9.3.tgz", + "integrity": "sha512-ivXXBRDXDc9k4cdv10R21ccBmGebVOwKXT/UdH1PhxUn9m/h8erAWjz5pcELwjiMf27WokqPgaWVfaclDbgE+w==", "cpu": [ "x64" ], "dev": true, + "license": "Apache-2.0 AND MIT", "optional": true, "os": [ "linux" ], + "peer": true, "engines": { "node": ">=10" } }, "node_modules/@swc/core-linux-x64-musl": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.7.0.tgz", - "integrity": "sha512-cEJ2ebtV1v/5Ilb55E05J6F5SrHKQWzUttIhR5Mkayyo+yvPslcpByuFC3D+J7X1ebziTOBpWuMpUdjLfh3SMQ==", + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.9.3.tgz", + "integrity": "sha512-ILsGMgfnOz1HwdDz+ZgEuomIwkP1PHT6maigZxaCIuC6OPEhKE8uYna22uU63XvYcLQvZYDzpR3ms47WQPuNEg==", "cpu": [ "x64" ], "dev": true, + "license": "Apache-2.0 AND MIT", "optional": true, "os": [ "linux" ], + "peer": true, "engines": { "node": ">=10" } }, "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.7.0.tgz", - "integrity": "sha512-ecQOOmzEssz+m0pR4xDYCGuvn3E/l0nQ3tk5jp1NA1lsAy4bMV0YbYCHjptYvWL/UjhIerIp3IlCJ8x5DodSog==", + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.9.3.tgz", + "integrity": "sha512-e+XmltDVIHieUnNJHtspn6B+PCcFOMYXNJB1GqoCcyinkEIQNwC8KtWgMqUucUbEWJkPc35NHy9k8aCXRmw9Kg==", "cpu": [ "arm64" ], "dev": true, + "license": "Apache-2.0 AND MIT", "optional": true, "os": [ "win32" ], + "peer": true, "engines": { "node": ">=10" } }, "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.7.0.tgz", - "integrity": "sha512-gz81seZkRn3zMnVOc7L5k6F4vQC82gIxmHiL+GedK+A37XI/X26AASU3zxvORnqQbwQYXQ+AEVckxBmFlz3v2g==", + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.9.3.tgz", + "integrity": "sha512-rqpzNfpAooSL4UfQnHhkW8aL+oyjqJniDP0qwZfGnjDoJSbtPysHg2LpcOBEdSnEH+uIZq6J96qf0ZFD8AGfXA==", "cpu": [ "ia32" ], "dev": true, + "license": "Apache-2.0 AND MIT", "optional": true, "os": [ "win32" ], + "peer": true, "engines": { "node": ">=10" } }, "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.7.0.tgz", - "integrity": "sha512-b5Fd1xEOw9uqBpj2lqsaR4Iq9UhiL84hNDcEsi6DQA7Y1l85waQAslTbS0E4/pJ1PISAs0jW0zIGLco1eaWBOg==", + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.9.3.tgz", + "integrity": "sha512-3YJJLQ5suIEHEKc1GHtqVq475guiyqisKSoUnoaRtxkDaW5g1yvPt9IoSLOe2mRs7+FFhGGU693RsBUSwOXSdQ==", "cpu": [ "x64" ], "dev": true, + "license": "Apache-2.0 AND MIT", "optional": true, "os": [ "win32" ], + "peer": true, "engines": { "node": ">=10" } @@ -3144,13 +3348,17 @@ "version": "0.1.3", "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", - "dev": true + "dev": true, + "license": "Apache-2.0", + "peer": true }, "node_modules/@swc/types": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.12.tgz", - "integrity": "sha512-wBJA+SdtkbFhHjTMYH+dEH1y4VpfGdAc2Kw/LK09i9bXd/K6j6PkDcFCEzb6iVfZMkPRrl/q0e3toqTAJdkIVA==", + "version": "0.1.17", + "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.17.tgz", + "integrity": "sha512-V5gRru+aD8YVyCOMAjMpWR1Ui577DD5KSJsHP8RAxopAH22jFz6GZd/qxqjO6MJHQhcsjvjOFXyDhyLQUnMveQ==", "dev": true, + "license": "Apache-2.0", + "peer": true, "dependencies": { "@swc/counter": "^0.1.3" } @@ -3164,6 +3372,16 @@ "node": ">= 10" } }, + "node_modules/@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/@types/babel__core": { "version": "7.20.5", "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", @@ -3344,13 +3562,6 @@ "deprecated": "Use your platform's native atob() and btoa() methods instead", "dev": true }, - "node_modules/abortcontroller-polyfill": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.5.tgz", - "integrity": "sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ==", - "dev": true, - "peer": true - }, "node_modules/acorn": { "version": "8.12.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", @@ -3652,6 +3863,7 @@ "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.10.tgz", "integrity": "sha512-7d0s06rR9rYaIWHkpfLIFICM/tkSVdoPC9qYAQRpxn9DdKNWNsKC0uk++akckyLq16Tx2WIinnZ6WRriAt6njQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "safe-buffer": "^5.0.1" @@ -3707,6 +3919,13 @@ "readable-stream": "^3.4.0" } }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true, + "license": "ISC" + }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -3924,6 +4143,7 @@ "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.0" } @@ -4018,6 +4238,7 @@ "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", "dev": true, + "license": "MIT", "peer": true, "engines": { "node": ">=0.8" @@ -4174,6 +4395,82 @@ "node": ">=12 || >=16" } }, + "node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-select/node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/css-select/node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/css-select/node_modules/domutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/css-select/node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, "node_modules/css-tree": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", @@ -4187,6 +4484,19 @@ "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" } }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, "node_modules/cssesc": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", @@ -4199,6 +4509,42 @@ "node": ">=4" } }, + "node_modules/csso": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", + "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "css-tree": "~2.2.0" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", + "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.28", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.28", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", + "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", + "dev": true, + "license": "CC0-1.0" + }, "node_modules/cssom": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", @@ -4367,6 +4713,7 @@ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", "dev": true, + "license": "Apache-2.0", "bin": { "detect-libc": "bin/detect-libc.js" }, @@ -4500,11 +4847,35 @@ } }, "node_modules/dotenv-expand": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", - "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==", + "version": "11.0.7", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-11.0.7.tgz", + "integrity": "sha512-zIHwmZPRshsCdpMDyVsqGmgyP0yT8GAgXUnkdAoJisxvf33k7yO6OuoKmcTGuXPWSsm8Oh88nZicRLA9Y0rUeA==", "dev": true, - "peer": true + "license": "BSD-2-Clause", + "peer": true, + "dependencies": { + "dotenv": "^16.4.5" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/dotenv-expand/node_modules/dotenv": { + "version": "16.4.5", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", + "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", + "dev": true, + "license": "BSD-2-Clause", + "peer": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } }, "node_modules/electron-to-chromium": { "version": "1.4.832", @@ -6400,6 +6771,8 @@ "integrity": "sha512-9bMdFfc80S+vSldBmG3HOuLVHnxRdNTlpzR6QDnzqCQtCzGUEAGTzBKYMeIM+I/sU4oZfgbcbS7X7F65/z/oxQ==", "dev": true, "hasInstallScript": true, + "license": "MIT", + "peer": true, "dependencies": { "msgpackr": "^1.9.5", "node-addon-api": "^6.1.0", @@ -6423,7 +6796,9 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz", "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==", - "dev": true + "dev": true, + "license": "MIT", + "peer": true }, "node_modules/locate-path": { "version": "5.0.0", @@ -6694,10 +7069,12 @@ "dev": true }, "node_modules/msgpackr": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-1.11.0.tgz", - "integrity": "sha512-I8qXuuALqJe5laEBYoFykChhSXLikZmUhccjGsPuSJ/7uPip2TJ7lwdIQwWSAi0jGZDXv4WOP8Qg65QZRuXxXw==", + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-1.11.2.tgz", + "integrity": "sha512-F9UngXRlPyWCDEASDpTf6c9uNhGPTqnTeLVt7bN+bU1eajoR/8V9ys2BRaV5C/e5ihE6sJ9uPIKaYt6bFuO32g==", "dev": true, + "license": "MIT", + "peer": true, "optionalDependencies": { "msgpackr-extract": "^3.0.2" } @@ -6708,7 +7085,9 @@ "integrity": "sha512-P0efT1C9jIdVRefqjzOQ9Xml57zpOXnIuS+csaB4MdZbTdmGDLo8XhzBG1N7aO11gKDDkJvBLULeFTo46wwreA==", "dev": true, "hasInstallScript": true, + "license": "MIT", "optional": true, + "peer": true, "dependencies": { "node-gyp-build-optional-packages": "5.2.2" }, @@ -6729,7 +7108,9 @@ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", "dev": true, + "license": "Apache-2.0", "optional": true, + "peer": true, "engines": { "node": ">=8" } @@ -6739,7 +7120,9 @@ "resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.2.2.tgz", "integrity": "sha512-s+w+rBWnpTMwSFbaE0UXsRlg7hU4FjekKU4eyAih5T8nJuNZT1nNsskXpxmeqSK9UzkBl6UgRlnKc8hz8IEqOw==", "dev": true, + "license": "MIT", "optional": true, + "peer": true, "dependencies": { "detect-libc": "^2.0.1" }, @@ -6820,7 +7203,9 @@ "version": "7.1.1", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", - "dev": true + "dev": true, + "license": "MIT", + "peer": true }, "node_modules/node-fetch": { "version": "2.7.0", @@ -6869,6 +7254,8 @@ "resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.1.1.tgz", "integrity": "sha512-+P72GAjVAbTxjjwUmwjVrqrdZROD4nf8KgpBoDxqXXTiYZZt/ud60dE5yvCSr9lRO8e8yv6kgJIC0K0PfZFVQw==", "dev": true, + "license": "MIT", + "peer": true, "dependencies": { "detect-libc": "^2.0.1" }, @@ -6883,6 +7270,8 @@ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", "dev": true, + "license": "Apache-2.0", + "peer": true, "engines": { "node": ">=8" } @@ -6935,11 +7324,25 @@ "node": ">=8" } }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, "node_modules/nullthrows": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz", "integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/nwsapi": { "version": "2.2.12", @@ -7011,10 +7414,12 @@ } }, "node_modules/ordered-binary": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.5.1.tgz", - "integrity": "sha512-5VyHfHY3cd0iza71JepYG50My+YUbrFtGoUz2ooEydPyPM7Aai/JW098juLr+RG6+rDJuzNNTsEQu2DZa1A41A==", - "dev": true + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.5.3.tgz", + "integrity": "sha512-oGFr3T+pYdTGJ+YFEILMpS3es+GiIbs9h/XQrclBXUtd44ey7XwfsMzM31f64I1SQOawDoDr/D823kNCADI8TA==", + "dev": true, + "license": "MIT", + "peer": true }, "node_modules/os-name": { "version": "3.1.0", @@ -8343,6 +8748,32 @@ "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==", "dev": true }, + "node_modules/svgo": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz", + "integrity": "sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^5.1.0", + "css-tree": "^2.3.1", + "css-what": "^6.1.0", + "csso": "^5.0.5", + "picocolors": "^1.0.0" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/svgo" + } + }, "node_modules/symbol-tree": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", @@ -8602,6 +9033,7 @@ "resolved": "https://registry.npmjs.org/utility-types/-/utility-types-3.11.0.tgz", "integrity": "sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4" } @@ -8664,7 +9096,9 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/weak-lru-cache/-/weak-lru-cache-1.2.2.tgz", "integrity": "sha512-DEAoo25RfSYMuTGc9vPJzZcZullwIqRDSI9LOy+fkCJPi6hykCnfKaXTuPBDuXAUcqHXyOgFtHNp/kB2FjYHbw==", - "dev": true + "dev": true, + "license": "MIT", + "peer": true }, "node_modules/webidl-conversions": { "version": "7.0.0", diff --git a/package.json b/package.json index 83c8373ca..65d30e41a 100644 --- a/package.json +++ b/package.json @@ -18,19 +18,19 @@ "keywords": [], "author": "Mate Academy", "license": "GPL-3.0", - "dependencies": {}, "devDependencies": { "@linthtml/linthtml": "^0.9.6", "@mate-academy/bemlint": "latest", "@mate-academy/linthtml-config": "latest", - "@mate-academy/scripts": "^1.8.6", + "@mate-academy/scripts": "^1.9.12", "@mate-academy/stylelint-config": "latest", - "@parcel/transformer-sass": "^2.12.0", + "@parcel/transformer-sass": "^2.13.2", "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", "prettier": "^3.3.2", "stylelint": "^16.7.0", - "stylelint-scss": "^6.4.1" + "stylelint-scss": "^6.4.1", + "svgo": "^3.3.2" }, "mateAcademy": { "projectType": "layout", diff --git a/src/images/arrows/btnArrowBlacksvg.svg b/src/images/arrows/btnArrowBlacksvg.svg new file mode 100644 index 000000000..97035ef84 --- /dev/null +++ b/src/images/arrows/btnArrowBlacksvg.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/images/arrows/btnArrowWhitesvg.svg b/src/images/arrows/btnArrowWhitesvg.svg new file mode 100644 index 000000000..799b8a91d --- /dev/null +++ b/src/images/arrows/btnArrowWhitesvg.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/images/arrows/toTop.svg b/src/images/arrows/toTop.svg new file mode 100644 index 000000000..3ac7d7967 --- /dev/null +++ b/src/images/arrows/toTop.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/images/backgrounds/lion.svg b/src/images/backgrounds/lion.svg new file mode 100644 index 000000000..3adcbba86 --- /dev/null +++ b/src/images/backgrounds/lion.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/images/backgrounds/skyForDesktop.svg b/src/images/backgrounds/skyForDesktop.svg new file mode 100644 index 000000000..ac9c6c01b --- /dev/null +++ b/src/images/backgrounds/skyForDesktop.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/images/backgrounds/skysvg.svg b/src/images/backgrounds/skysvg.svg new file mode 100644 index 000000000..ac9c6c01b --- /dev/null +++ b/src/images/backgrounds/skysvg.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/images/backgrounds/skysvgSMALL.svg b/src/images/backgrounds/skysvgSMALL.svg new file mode 100644 index 000000000..e21a2c8fd --- /dev/null +++ b/src/images/backgrounds/skysvgSMALL.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/images/backgrounds/subscribe.svg b/src/images/backgrounds/subscribe.svg new file mode 100644 index 000000000..1b3cdc9e9 --- /dev/null +++ b/src/images/backgrounds/subscribe.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/images/events/event1.svg b/src/images/events/event1.svg new file mode 100644 index 000000000..80a4f9a5f --- /dev/null +++ b/src/images/events/event1.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/images/events/event2.svg b/src/images/events/event2.svg new file mode 100644 index 000000000..3592ed435 --- /dev/null +++ b/src/images/events/event2.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/images/gallery/gallery1.svg b/src/images/gallery/gallery1.svg new file mode 100644 index 000000000..a06d0cca1 --- /dev/null +++ b/src/images/gallery/gallery1.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/images/gallery/gallery2.svg b/src/images/gallery/gallery2.svg new file mode 100644 index 000000000..5f361fa66 --- /dev/null +++ b/src/images/gallery/gallery2.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/images/gallery/gallery2ForDesktop.svg b/src/images/gallery/gallery2ForDesktop.svg new file mode 100644 index 000000000..9713e6944 --- /dev/null +++ b/src/images/gallery/gallery2ForDesktop.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/images/gallery/gallery3ForDesktop.svg b/src/images/gallery/gallery3ForDesktop.svg new file mode 100644 index 000000000..721eeccff --- /dev/null +++ b/src/images/gallery/gallery3ForDesktop.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/images/gallery/gallery4ForDesktop.svg b/src/images/gallery/gallery4ForDesktop.svg new file mode 100644 index 000000000..b84f7eb63 --- /dev/null +++ b/src/images/gallery/gallery4ForDesktop.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/images/icons/burgerMenu.svg b/src/images/icons/burgerMenu.svg new file mode 100644 index 000000000..4808d19e1 --- /dev/null +++ b/src/images/icons/burgerMenu.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/images/icons/closeMenusvg.svg b/src/images/icons/closeMenusvg.svg new file mode 100644 index 000000000..e675b3fe5 --- /dev/null +++ b/src/images/icons/closeMenusvg.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/images/icons/facebook-letter-logo.svg b/src/images/icons/facebook-letter-logo.svg new file mode 100644 index 000000000..4ccaf0aba --- /dev/null +++ b/src/images/icons/facebook-letter-logo.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/images/icons/insta.svg b/src/images/icons/insta.svg new file mode 100644 index 000000000..89a59272d --- /dev/null +++ b/src/images/icons/insta.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/images/logo/NAMU.svg b/src/images/logo/NAMU.svg new file mode 100644 index 000000000..a4c9234aa --- /dev/null +++ b/src/images/logo/NAMU.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/index.html b/src/index.html index 8019b83ec..f8ca4253b 100644 --- a/src/index.html +++ b/src/index.html @@ -6,14 +6,423 @@ name="viewport" content="width=device-width, initial-scale=1.0" /> - Title + + + + + NAMU - -

Hello Mate Academy

+ +
+ + + +
+
+
+ burger menu + +
+ +
+
+
+ burger menu +
+

ХУДОЖНІЙ МУЗЕЙ

+ + +
+
КВИТКИ
+
+ arrow +
+
+
+
+
+ +
+
+

події

+
+
+
+
+
+ +
+
+
+

Актуальні події

+ +
+
+ event's photo +
+
+

ВИСТАВКА

+

26.08-29.11.2019

+
+ +

Йду і повертаюсь

+

+ Національний Художній Музей України презентує унікальну частину колекції Градобанку - українське мистецтво другої половини 1980-1995 років. +

+
+
+ +
+ event's photo +
+
+

ВИСТАВКА

+

26.08-29.11.2019

+
+ +

І спогади і мрії

+

+ Національний художній музей України до 100 річчя від дня народження видатної української художниці Тетяни Яблонської відкриває ретроспективну ювілейну виставку «І спогади і мрії». +

+
+
+
+
+
+ +
+
+
+
+

ЛЕКЦІЯ

+

26/08/2019 - 11:00

+
+

Від класицизму до романтизму

+
+
+
+ + + +
+
+ +
+
+
+ + + + diff --git a/src/scripts/main.js b/src/scripts/main.js index ad9a93a7c..10a0bd61d 100644 --- a/src/scripts/main.js +++ b/src/scripts/main.js @@ -1 +1,47 @@ 'use strict'; + +const body = document.querySelector('#body'); +const menu = document.querySelector('#menu'); +const background = document.querySelector('#background'); +const menuOpenBtn = document.querySelector('#menu-open'); +const menuOpenBtn2 = document.querySelector('#menu-open-2'); +const menuCloseBtn = document.querySelector('#menu-close'); +const toTop = document.querySelector('#to-top'); +const form = document.querySelector('#form'); +const input = document.querySelector('#input'); +const menuLinks = document.querySelectorAll('.menu_top_wrapper_link'); + +menuOpenBtn.addEventListener('click', openMenu); +menuOpenBtn2.addEventListener('click', openMenu); +menuCloseBtn.addEventListener('click', closeMenu); +background.addEventListener('click', closeMenu); +toTop.addEventListener('click', scrollToTop); +form.addEventListener('submit', validation); + +menuLinks.forEach(menuLink => { + menuLink.addEventListener('click', closeMenu); +}); + +function openMenu () { + menu.classList.remove('menu--closed'); + body.classList.add('body--no-scroll'); + background.classList.remove('body_background--not-visible'); +} + +function closeMenu () { + menu.classList.add('menu--closed'); + body.classList.remove('body--no-scroll'); + background.classList.add('body_background--not-visible'); +} + +function scrollToTop () { + window.scrollTo({ + top: 0, + behavior: 'smooth', + }) +} + +function validation (event) { + event.preventDefault(); + input.value = ''; +} diff --git a/src/scripts/slider.js b/src/scripts/slider.js new file mode 100644 index 000000000..4ea5b6beb --- /dev/null +++ b/src/scripts/slider.js @@ -0,0 +1,49 @@ +(function () { + 'use strict'; + + const slider = document.querySelector('#slider'); + const controls = document.querySelectorAll('.gallery_btns_btn'); + let currentPercent = 0; + + function getActiveBtn(getActiveBtn) { + controls.forEach(control => { + control.classList.remove('gallery_btns_btn--active'); + }); + + getActiveBtn.classList.add('gallery_btns_btn--active'); + } + + function sliderScroll(percent) { + currentPercent = percent; + + if (currentPercent > 106) { + currentPercent = 106; + } + + if (currentPercent < 0) { + currentPercent = 0; + } + + slider.style.transform = `translateX(-${currentPercent}%)`; + } + + document.querySelector('#slider-btn-1').addEventListener('click', function () { + sliderScroll(0); + getActiveBtn(this); + }); + + document.querySelector('#slider-btn-2').addEventListener('click', function () { + sliderScroll(33); + getActiveBtn(this); + }); + + document.querySelector('#slider-btn-3').addEventListener('click', function () { + sliderScroll(66); + getActiveBtn(this); + }); + + document.querySelector('#slider-btn-4').addEventListener('click', function () { + sliderScroll(106); + getActiveBtn(this); + }); +})(); diff --git a/src/styles/components/events.scss b/src/styles/components/events.scss new file mode 100644 index 000000000..7e8fc56cc --- /dev/null +++ b/src/styles/components/events.scss @@ -0,0 +1,119 @@ +.events { + &_title { + font-family: Montserrat; + font-size: 36px; + font-weight: 700; + line-height: 36px; + text-align: center; + margin-bottom: 40px; + margin-top: 70px; + + @include on-tablet { + font-size: 48px; + line-height: 48px; + text-align: left; + } + } + + &_container { + @include grid-net; + + gap: 60px; + margin-bottom: 60px; + } + + &_event { + grid-column: 1 / -1; + display: flex; + flex-direction: column; + + @include on-desktop { + flex-direction: row; + gap: 130px; + } + + &_img { + width: 100%; + margin-bottom: 20px; + transition: $t-400; + + @include on-tablet { + margin-bottom: 40px; + } + + &:hover { + transform: scale(1.05); + } + } + + &_bottom { + @include on-tablet { + width: 68%; + } + + &_wrapper { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 10px; + + @include on-tablet { + justify-content: left; + gap: 30px; + margin-bottom: 32px; + } + + &_title { + font-family: IBM Plex Sans; + font-size: 16px; + font-weight: 500; + line-height: 16px; + color: $c-small-title-grey; + } + + &_date { + font-family: IBM Plex Sans; + font-size: 16px; + line-height: 24px; + color: $c-green; + font-weight: 700; + } + } + + &_title { + display: inline-block; + margin-bottom: 10px; + font-family: Montserrat; + font-size: 28px; + line-height: 28px; + text-align: left; + color: $c-black; + position: relative; + + @include on-tablet { + font-size: 36px; + line-height: 36px; + margin-bottom: 15px; + } + + &::after { + position: absolute; + content: ''; + width: 10px; + height: 10px; + background: $c-orange; + top: 50%; + right: -25px; + transform: translateY(-50%); + } + } + + &_text { + font-family: IBM Plex Sans; + font-size: 16px; + line-height: 24px; + color: $c-paragraph-grey; + } + } + } +} diff --git a/src/styles/components/footer.scss b/src/styles/components/footer.scss new file mode 100644 index 000000000..d4d59423f --- /dev/null +++ b/src/styles/components/footer.scss @@ -0,0 +1,253 @@ +.footer { + + &_logo { + @include on-tablet { + width: 50px; + margin-bottom: 62px; + } + } + + &_wrapper { + padding: 50px 0 80px; + + @include grid-net; + + &_logo-and-icons { + grid-column: 1 / -1; + display: flex; + justify-content: space-between; + margin-bottom: 40px; + + @include on-tablet { + grid-column: span 1; + flex-direction: column; + justify-content: start; + } + + @include on-desktop { + grid-column: span 2; + } + } + + &_schedule-and-contacts { + grid-column: 1 / -1; + display: flex; + justify-content: space-between; + gap: 20px; + + @include on-tablet { + grid-column: span 4; + } + } + + &_schedule { + width: 50%; + + &_heading { + font-family: IBM Plex Sans; + font-size: 14px; + font-weight: 400; + line-height: 19.69px; + margin-bottom: 20px; + color: $c-black; + } + + &_dates { + font-family: IBM Plex Sans; + font-size: 14px; + font-weight: 400; + line-height: 21px; + color: $c-black; + } + + &_dates span { + font-family: IBM Plex Sans; + font-size: 14px; + font-weight: 600; + line-height: 21px; + + @media (max-width: $w-tablet) { + display: block; + } + } + } + + &_contacts { + width: 50%; + + &_heading { + font-family: IBM Plex Sans; + font-size: 14px; + font-weight: 400; + line-height: 19.69px; + margin-bottom: 20px; + color: $c-black; + } + + &_link { + font-family: IBM Plex Sans; + font-size: 14px; + font-weight: 400; + line-height: 21px; + color: $c-black; + + &_text { + transition: $t-400; + + &:hover { + color: $c-green; + } + } + } + } + + &_button { + grid-column: 1 / -1; + display: flex; + justify-content: flex-end; + margin-bottom: 20px; + + &_btn { + display: flex; + justify-content: center; + align-items: center; + padding: 16px; + border: 1px solid $c-green; + border-radius: 50%; + transition: $t-400; + + @include on-tablet { + display: none; + } + + &:hover { + transform: scale(1.1); + } + + &_img { + width: 12px; + height: 12px; + } + } + } + + &_line { + grid-column: 1 / -1; + width: 100%; + height: 1px; + background-color: $c-green; + margin-bottom: 40px; + + @include on-tablet { + grid-column: 2 / 6; + margin-top: 60px; + margin-bottom: 60px; + } + + @include on-desktop { + grid-column: 7 / 8; + grid-row: 1 / 3; + height: 260px; + width: 1px; + margin: 0 65px; + } + } + + &_menu { + grid-column: 1 / -1; + + @include on-tablet { + grid-column: 2 / 6; + margin-bottom: 100px; + } + + @include on-desktop { + grid-column: 8 / 11; + margin: 0; + grid-row: 1 / 3; + } + + &_ul { + display: flex; + gap: 20px; + list-style: none; + + @include on-tablet { + @include grid-net; + } + } + + &_container { + display: flex; + flex-direction: column; + gap: 20px; + + &--first { + @include on-tablet { + grid-column: span 2; + } + + @include on-desktop { + grid-column: span 6; + } + } + + &--second { + @include on-tablet { + grid-column: 4 / 6; + } + + @include on-desktop { + grid-column: 9 / -1; + } + } + } + + &_link { + font-family: IBM Plex Sans; + font-size: 14px; + font-weight: 400; + line-height: 14px; + color: $c-black; + transition: $t-400; + + &:hover { + color: $c-green; + } + } + } + } + + &_copyrights { + margin-bottom: 50px; + display: flex; + flex-direction: column; + text-align: center; + gap: 10px; + + @include on-tablet { + flex-direction: row; + justify-content: space-between; + } + + &_text { + font-family: IBM Plex Sans; + font-size: 12px; + font-weight: 300; + line-height: 16.88px; + } + } + + &_icons { + display: flex; + gap: 20px; + + &_icon { + transition: $t-400; + + &:hover { + transform: scale(1.2); + } + } + } +} diff --git a/src/styles/components/gallery.scss b/src/styles/components/gallery.scss new file mode 100644 index 000000000..5816b0a0d --- /dev/null +++ b/src/styles/components/gallery.scss @@ -0,0 +1,133 @@ +.gallery { + overflow: hidden; + + &_title { + font-family: Montserrat; + font-size: 36px; + line-height: 36px; + text-align: center; + margin-bottom: 40px; + + @include on-tablet { + font-size: 48px; + line-height: 48px; + text-align: left; + } + } + + &_photos { + @include grid-net; + + gap: 16px; + margin-bottom: 32px; + + @include on-tablet { + display: flex; + transition: transform $t-400 ease; + } + + @include on-desktop { + @include grid-net; + + transform: translateX(0); + gap: 30px; + margin-bottom: 200px; + } + + &_photo { + grid-column: 1 / -1; + width: 100%; + transition: $t-400; + + @include on-tablet { + width: 50%; + } + + @include on-desktop { + width: 100%; + } + + &--big { + display: none; + + @include on-desktop { + display: block; + } + } + + &--small { + @include on-desktop { + display: none; + } + } + + @include on-tablet { + grid-column: span 3; + } + + &--1 { + @include on-desktop { + grid-column: span 4; + grid-row: span 3; + } + } + + &--2 { + @include on-desktop { + grid-column: span 8; + grid-row: span 3; + } + } + + &--3 { + @include on-desktop { + grid-column: span 8; + grid-row: span 2; + } + } + + &--4 { + @include on-desktop { + grid-column: span 4; + grid-row: span 2; + } + } + + &:hover { + transform: scale(1.05); + } + } + } + + &_btns { + display: none; + justify-content: center; + gap: 22px; + margin-bottom: 100px; + + @include on-tablet { + display: flex; + } + + @include on-desktop { + display: none; + } + + &_btn { + width: 9px; + height: 9px; + background-color: $c-grey-btn; + border-radius: 50%; + transition: transform $t-400 ease; + cursor: pointer; + + &:hover { + transform: scale(2); + } + + &--active { + background-color: $c-green; + } + } + } +} diff --git a/src/styles/components/header.scss b/src/styles/components/header.scss new file mode 100644 index 000000000..af0926a7e --- /dev/null +++ b/src/styles/components/header.scss @@ -0,0 +1,247 @@ +.header { + &_elems { + @include grid-net; + + gap: 20px; + } + + &_elem { + @include on-desktop { + display: flex; + } + + grid-column: 1 / -1; + + &--first { + background-image: url('../images/backgrounds/lion.svg'); + background-repeat: no-repeat; + background-size: cover; + background-position: center; + position: relative; + aspect-ratio: 1 / 1; + width: 100%; + height: auto; + + @include on-tablet { + grid-column: span 3; + order: 1; + } + + @include on-desktop { + grid-column: span 6; + } + } + + &_wrapper { + display: flex; + flex-direction: column; + align-items: flex-start; + justify-content: space-between; + height: 100%; + width: 100%; + + &_container { + align-self: center; + margin-bottom: 20px; + + @include on-tablet { + align-self: flex-start; + } + + @include on-desktop { + margin-bottom: 118; + width: 100%; + position: relative; + } + } + } + + &--second { + text-align: center; + position: relative; + + @include on-tablet { + order: 0; + grid-column: span 3; + display: flex; + } + + @include on-desktop { + grid-column: span 6; + justify-content: flex-start; + width: 100%; + } + + &_paddings { + width: 100%; + padding-inline: 20px; + max-width: $w-mobile; + margin-inline: auto; + + @include on-tablet { + padding: 0 0 0 34px; + margin-inline: 0; + max-width: 100% + } + + @include on-desktop { + padding-left: 55px; + } + } + + &_events { + display: none; + left: 0; + bottom: 0; + transform: rotate(-90deg); + transform-origin: top left; + + @include on-desktop { + display: flex; + align-items: center; + gap: 20px; + } + + &_line { + width: 70px; + height: 1px; + background-color: $c-green; + } + + &_text { + font-family: IBM Plex Sans; + font-size: 14px; + line-height: 14px; + color: $c-small-title-grey; + text-transform: uppercase; + } + } + } + } + + &_logo { + position: absolute; + top: 9px; + left: 50%; + transform: translateX(-50%); + + @include on-tablet { + left: 30%; + } + + @include on-desktop { + left: 100px; + } + } + + &_burger-menu { + margin-top: 30px; + margin-left: 20px; + width: 20px; + height: 14px; + transition: $t-400; + + &:hover { + transform: scale(1.1); + } + + &--phone { + @include on-tablet { + display: none; + } + } + + &--tablet { + display: none; + + @include on-tablet { + display: block; + margin-left: 0; + } + } + } + + &_title { + font-family: Montserrat; + font-size: 45px; + font-weight: 700; + line-height: 45px; + margin-bottom: 20px; + color: $c-black; + + @include on-tablet { + margin-bottom: 40px; + text-align: left; + } + + @media (min-width: 720px) { + font-size: 54px; + line-height: 64.8px; + } + + @include on-desktop { + margin-bottom: 90px; + font-size: 72px; + line-height: 86.4px; + } + + & span { + display: block; + } + } + + &_btn { + display: flex; + cursor: pointer; + + @include on-desktop { + position: absolute; + right: 10; + } + + &_wrapper { + display: flex; + width: 100%; + height: 50px; + transition: $t-400; + + &:hover { + -webkit-box-shadow: 0px 8px 40px -13px rgba(26, 90, 76, 1); + -moz-box-shadow: 0px 8px 40px -13px rgba(26, 90, 76, 1); + box-shadow: 0px 8px 40px -13px rgba(26, 90, 76, 1); + } + + @include on-tablet { + height: 70px; + width: 270px; + } + + &--left { + display: flex; + justify-content: center; + align-items: center; + border: 1px solid $c-green; + flex-grow: 1; + font-family: IBM Plex Sans; + font-size: 16px; + font-weight: 500; + line-height: 16px; + text-align: left; + color: $c-black; + } + + &--right { + display: flex; + justify-content: center; + align-items: center; + max-width: 50px; + flex-basis: 50%; + background-color: $c-green; + + @include on-tablet { + max-width: 70px; + } + } + } + } +} diff --git a/src/styles/components/lection.scss b/src/styles/components/lection.scss new file mode 100644 index 000000000..e3ab47174 --- /dev/null +++ b/src/styles/components/lection.scss @@ -0,0 +1,104 @@ +.lection { + &--paddings { + @include on-tablet { + padding-inline: 34px; + max-width: $w-tablet; + margin-inline: auto; + } + + @include on-desktop { + padding-inline: 0; + max-width: 100%; + margin-inline: 0; + } + } + + &_wrapper { + background-image: url('../images/backgrounds/skysvgSMALL.svg'); + background-repeat: no-repeat; + background-size: cover; + background-position: center top; + position: relative; + margin-bottom: 200px; + aspect-ratio: 4 / 3; + + @include on-desktop { + background-image: url('../images/backgrounds/skyForDesktop.svg'); + aspect-ratio: 16 / 6; + } + } + + &_info { + background-color: #fff; + position: absolute; + width: calc(100% - 40px); + bottom: -40%; + left: 50%; + transform: translateX(-50%); + box-shadow: 0px 2px 0px 0px #1A5A4C40; + + @media (min-width: 380px) { + bottom: -25%; + } + + @media (min-width: 500px) { + bottom: -20%; + } + + @media (min-width: 600px) { + bottom: -15%; + } + + @include on-tablet { + width: 570px; + padding: 45px 55px; + box-sizing: border-box; + } + + &_container { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 20px; + margin-inline: 20px; + margin-top: 20px; + + @include on-tablet { + margin-inline: 0; + width: 70%; + } + } + + &_title { + font-family: IBM Plex Sans; + font-size: 16px; + font-weight: 500; + line-height: 16px; + color: $c-small-title-grey; + } + + &_date { + font-family: IBM Plex Sans; + font-size: 16px; + font-weight: 700; + line-height: 24px; + color: $c-green; + } + + &_text { + font-family: Montserrat; + font-size: 28px; + font-weight: 400; + line-height: 28px; + text-align: center; + color: $c-black; + margin-bottom: 20px; + + @include on-tablet { + font-size: 36px; + line-height: 36px; + text-align: left; + } + } + } +} diff --git a/src/styles/components/menu.scss b/src/styles/components/menu.scss new file mode 100644 index 000000000..ae74be7cc --- /dev/null +++ b/src/styles/components/menu.scss @@ -0,0 +1,169 @@ +.menu { + width: 100vw; + padding: 30px 0; + background-color: $c-green; + z-index: 2; + top: 0; + left: 0; + transform: translateY(0); + transition: transform $t-400 ease-in-out, opacity $t-400 ease-in-out; + opacity: 1; + + &_paddings { + max-width: 100%; + margin: 0; + } + + &--closed { + opacity: 0.5; + transform: translateY(-100%); + } + + &_wrapper { + display: flex; + flex-direction: column; + + @include on-tablet { + flex-direction: row; + justify-content: space-around; + } + } + + &_top { + display: flex; + gap: 28px; + + @include on-tablet { + gap: 48px; + } + + &_icon { + width: 18px; + height: 18px; + cursor: pointer; + transition: $t-400; + + &:hover { + transform: scale(1.1); + } + } + + &_wrapper { + margin-bottom: 20px; + + &_ul { + display: flex; + gap: 20px; + list-style: none; + } + + &_container { + display: flex; + gap: 20px; + flex-direction: column; + } + + &_link { + font-family: IBM Plex Sans; + font-size: 16px; + font-weight: 500; + line-height: 16px; + color: #fff; + position: relative; + transition: $t-400; + + &::after { + content: ''; + position: absolute; + left: 0; + bottom: -10px; + width: 0; + height: 1px; + background-color: #fff; + transition: $t-400; + } + + &:hover::after { + width: 100%; + } + + @include on-desktop { + font-size: 22px; + line-height: 22px; + } + } + } + } + + &_line { + width: 100%; + height: 1px; + background-color: #fff; + margin-bottom: 20px; + + @include on-tablet { + border-left: 1px solid #fff; + height: auto; + width: 1px; + margin-inline: 50px; + margin-bottom: 0; + } + + @include on-desktop { + margin-left: 100px; + } + } + + &_bottom { + color: #fff; + + &_schedule { + + &_dates_container { + @include on-tablet { + display: flex; + gap: 26px; + justify-content: space-around; + } + } + + &_dates_wrapper { + margin-bottom: 16px; + + @include on-tablet { + margin-bottom: 0; + flex-basis: 170px; + } + } + + &_heading { + font-family: IBM Plex Sans; + font-size: 14px; + font-weight: 400; + line-height: 19.69px; + margin-bottom: 20px; + } + + &_dates_date { + font-family: IBM Plex Sans; + font-size: 14px; + font-weight: 400; + line-height: 21px; + + &--info { + @include on-tablet { + flex-basis: 140px; + align-self: flex-end; + } + } + } + + &_dates_date span{ + font-family: IBM Plex Sans; + font-size: 14px; + font-weight: 600; + line-height: 21px; + } + } + } +} diff --git a/src/styles/components/subscribe.scss b/src/styles/components/subscribe.scss new file mode 100644 index 000000000..735d104a9 --- /dev/null +++ b/src/styles/components/subscribe.scss @@ -0,0 +1,102 @@ +.subscribe { + background-image: url('../images/backgrounds/subscribe.svg'); + background-repeat: no-repeat; + background-size: cover; + background-position: center; + + &_wrapper { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + color: #fff; + padding: 88px 0; + + &_title { + font-family: Montserrat; + font-size: 36px; + font-weight: 700; + line-height: 36px; + margin-bottom: 20px; + text-align: center; + + @include on-tablet { + font-size: 48px; + line-height: 48px; + } + } + + &_text { + font-family: IBM Plex Sans; + font-size: 18px; + line-height: 27px; + margin-bottom: 50px; + text-align: center; + + @include on-tablet { + margin-bottom: 65px; + } + } + + &_form-container { + display: flex; + height: 50px; + transition: $t-400; + display: flex; + align-items: center; + gap: 16px; + + @include on-tablet { + width: 460px; + height: 70px; + } + + @include on-tablet { + width: 570px; + } + + &:hover { + -webkit-box-shadow: 0px 0px 37px -10px rgba(241, 74, 39, 1); + -moz-box-shadow: 0px 0px 37px -10px rgba(241, 74, 39, 1); + box-shadow: 0px 0px 37px -10px rgba(241, 74, 39, 1); + } + + &_input { + outline: none; + border: none; + padding-left: 25px; + height: 100%; + width: 100%; + + &::placeholder { + font-family: Montserrat; + font-size: 14px; + line-height: 14px; + color: $c-small-title-grey; + } + } + + &_submit { + display: flex; + justify-content: center; + align-items: center; + outline: none; + width: 50px; + height: 50px; + border: none; + background-color: $c-orange; + cursor: pointer; + + @include on-tablet { + width: 70px; + height: 70px; + } + + &_arrow { + width: 8px; + height: 12px; + } + } + } + } +} diff --git a/src/styles/elements/burger-menu.scss b/src/styles/elements/burger-menu.scss new file mode 100644 index 000000000..bae88d109 --- /dev/null +++ b/src/styles/elements/burger-menu.scss @@ -0,0 +1,5 @@ +.burger-menu { + width: 24px; + height: 24px; + cursor: pointer; +} diff --git a/src/styles/main.scss b/src/styles/main.scss index fb9195d12..e0b66fdee 100644 --- a/src/styles/main.scss +++ b/src/styles/main.scss @@ -1,7 +1,70 @@ -@import 'utils'; -@import 'fonts'; -@import 'typography'; +@import './utils'; +@import './fonts'; +@import './typography'; +@import './elements/burger-menu'; +@import './components/menu'; +@import './components/header'; +@import './components/events'; +@import './components/lection'; +@import './components/subscribe'; +@import './components/footer'; +@import './components/gallery'; -body { - background: $c-gray; +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +html { + scroll-behavior: smooth; + overflow-x: hidden; +} + +input:-webkit-autofill, +input:-webkit-autofill:hover, +input:-webkit-autofill:focus, +textarea:-webkit-autofill, +textarea:-webkit-autofill:hover, +textarea:-webkit-autofill:focus, +select:-webkit-autofill, +select:-webkit-autofill:hover, +select:-webkit-autofill:focus { + border: none; + -webkit-text-fill-color: $c-orange; + -webkit-box-shadow: 0 0 0px 1000px #fff inset; + background: none; + transition: background-color $t-400 ease-in-out 0s; +} + +.body { + position: relative; + padding: 0; + width: 100%; + + &--no-scroll { + overflow: hidden; + } + + &_background { + width: 100%; + height: 100vh; + background-color: $c-black; + opacity: 0.6; + z-index: 1; + position: absolute; + + &--not-visible { + display: none; + } + } + + &_menu { + position: fixed; + z-index: 1; + } +} + +a { + text-decoration: none; } diff --git a/src/styles/utils/_mixins.scss b/src/styles/utils/_mixins.scss index 80c79780d..429725a67 100644 --- a/src/styles/utils/_mixins.scss +++ b/src/styles/utils/_mixins.scss @@ -1,6 +1,47 @@ -@mixin hover($_property, $_toValue) { - transition: #{$_property} 0.3s; - &:hover { - #{$_property}: $_toValue; +@mixin on-tablet { + @media (min-width: $w-tablet) { + @content; + } +} + +@mixin on-desktop { + @media (min-width: $w-desktop) { + @content; + } +} + +@mixin on-max-width { + @media (min-width: $w-max) { + @content; + } +} + +@mixin grid-net { + --columns: 2; + + display: grid; + grid-template-columns: repeat(var(--columns), 1fr); + + @include on-tablet { + --columns: 6; + } + + @include on-desktop() { + --columns: 12; + } +} + +.paddings { + padding-inline: 20px; + + @include on-tablet { + padding-inline: 34px; + max-width: $w-tablet; + margin-inline: auto; + } + + @include on-desktop { + padding-inline: 55px; + max-width: $w-max; } } diff --git a/src/styles/utils/_vars.scss b/src/styles/utils/_vars.scss index aeb006ffb..3b646eec3 100644 --- a/src/styles/utils/_vars.scss +++ b/src/styles/utils/_vars.scss @@ -1 +1,14 @@ +$w-mobile: 320px; +$w-tablet: 700px; +$w-desktop: 1280px; +$w-max: 1440px; + $c-gray: #eee; +$c-black: #0F0E08; +$c-green: #1A5A4C; +$c-small-title-grey: #687480; +$c-paragraph-grey: #4E4E4E; +$c-orange: #F14A27; +$c-grey-btn: #E0E0E0; + +$t-400: 400ms;