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
+
+
+
+
+
+
+
+
+
+
+
+
+
Актуальні події
+
+
+
+
+
+
+
ВИСТАВКА
+
26.08-29.11.2019
+
+
+
Йду і повертаюсь
+
+ Національний Художній Музей України презентує унікальну частину колекції Градобанку - українське мистецтво другої половини 1980-1995 років.
+
+
+
+
+
+
+
+
+
ВИСТАВКА
+
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;