├── .gitignore ├── README.md ├── next-env.d.ts ├── next.config.js ├── package-lock.json ├── package.json ├── pages ├── _app.js ├── api │ └── hello.ts └── index.js ├── postcss.config.js ├── prettier.config.js ├── public ├── Cloud.png ├── Scene.png ├── Sun.png ├── Train.png ├── favicon.ico └── vercel.svg ├── styles └── globals.css ├── tailwind.config.js └── tsconfig.json /.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # next.js 12 | /.next/ 13 | /out/ 14 | 15 | # production 16 | /build 17 | 18 | # misc 19 | .DS_Store 20 | *.pem 21 | 22 | # debug 23 | npm-debug.log* 24 | yarn-debug.log* 25 | yarn-error.log* 26 | .pnpm-debug.log* 27 | 28 | # local env files 29 | .env.local 30 | .env.development.local 31 | .env.test.local 32 | .env.production.local 33 | 34 | # vercel 35 | .vercel 36 | 37 | # typescript 38 | *.tsbuildinfo 39 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Parallax a very 🆒 looking effect which can be achieved by changing the speed of the layers in the background 🌃. 2 | 3 | ![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2jj2ehdf4lihxfbzidor.gif) 4 | 5 | Today lets explore how we can make a similar parallax effect in nextjs using a package called react-scroll-parallax 🥰. 6 | 7 | ![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/r0gnrrri24a9z971iiur.png) 8 | 9 | https://react-scroll-parallax.damnthat.tv/docs/intro 10 | 11 | ``` 12 | npm i react-scroll-parallax 13 | ``` 14 | 15 | lets initialize our project using create-next-app 16 | 17 | ``` 18 | npx create-next-app --example with-tailwindcss parallax 19 | ``` 20 | 21 | I made a complete tutorial on youtube you can also check it out 22 | 23 | {% youtube vPhdhA3lZVs %} 24 | 25 | now lets continue our blog 26 | 27 | First of all replace all typescript file to JavaScript as the starter template comes configured with typescript 😞 or you can also write normal JavaScript 😲 inside the typescript file not a big deal 28 | 29 | So first wrap our Component in _app.js with ParallaxProvider and as we are creating our parallax in horizontal scrolling so we have to mention the scrollAxis='horizontal' 30 | 31 | ```js 32 | import '../styles/globals.css' 33 | import { ParallaxProvider } from 'react-scroll-parallax' 34 | 35 | function MyApp({ Component, pageProps }) { 36 | return ( 37 | 38 | 39 | 40 | ) 41 | } 42 | 43 | export default MyApp 44 | ``` 45 | 46 | the final effect that we want is something like this 👇🏻 47 | 48 | ![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wcccgz4jn4y333uw62e2.gif) 49 | 50 | So as there is our main scene and there are some different components like train, cloud and sun and we want to move the cloud and train with relative to our background image and we want to make sun to be static so we will use useRef and useParallax from react-scroll-parallax to achieve this we will create a const target which will store the outermost div and and then we will use useParallax to create the refs for the inner divs and pass speed and targetElement in the useParallax here is the code 👇🏻 51 | 52 | ```js 53 | import { useParallax } from "react-scroll-parallax"; 54 | import React, { useRef } from "react"; 55 | import Image from "next/image"; 56 | 57 | const index = () => { 58 | const target = useRef(null); 59 | const train = useParallax({ 60 | speed: 500, 61 | targetElement: target.current, 62 | }) 63 | 64 | const cloud = useParallax({ 65 | speed: 200, 66 | targetElement: target.current, 67 | }) 68 | 69 | return ( 70 |
76 |
77 | 78 |
79 |
85 | 86 |
87 |
88 | 89 |
90 |
91 | ); 92 | } 93 | export default index; 94 | 95 | ``` 96 | 97 | 🥳🥳🥳🥳🎊🎊🎊🎊 Hurrayyyyy!!!! you have created a parallax effect I would recommend you to check out some of these resources for more knowledge 👇🏻 98 | 99 | - https://react-scroll-parallax.damnthat.tv/docs/intro 100 | 101 | - https://jscottsmith.github.io/react-scroll-parallax-examples/examples/parallax-test/ 102 | 103 | - https://react-scroll-parallax-examples.vercel.app/ 104 | 105 | - https://bestofreactjs.com/repo/jscottsmith-react-scroll-parallax-react-image 106 | 107 | Connect me on Twitter :- [Twitter 🤝🏻](https://twitter.com/nyctonio) 108 | 109 | Do check out my Github for amazing projects:- [Github 🤝🏻](https://github.com/nyctonio/) 110 | 111 | Connect me on LinkedIn :- [Linkedin 🤝🏻](https://www.linkedin.com/in/nyctonio) 112 | 113 | Read my another article :- [Authentication in nodejs with mongodb bcrypt and jwt web tokens](https://dev.to/nyctonio/authentication-in-node-js-with-mongodb-bcrypt-and-jwt-web-tokens-with-cookies-hl3) 114 | 115 | [All React Hooks in A single Post](https://dev.to/nyctonio/all-react-hooks-and-concepts-in-a-single-post-1daf) 116 | -------------------------------------------------------------------------------- /next-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | 4 | // NOTE: This file should not be edited 5 | // see https://nextjs.org/docs/basic-features/typescript for more information. 6 | -------------------------------------------------------------------------------- /next.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('next').NextConfig} */ 2 | module.exports = { 3 | reactStrictMode: true, 4 | } 5 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "parallax", 3 | "lockfileVersion": 2, 4 | "requires": true, 5 | "packages": { 6 | "": { 7 | "dependencies": { 8 | "next": "latest", 9 | "react": "18.1.0", 10 | "react-dom": "18.1.0", 11 | "react-scroll-parallax": "^3.2.0" 12 | }, 13 | "devDependencies": { 14 | "@types/node": "17.0.35", 15 | "@types/react": "18.0.9", 16 | "@types/react-dom": "18.0.5", 17 | "autoprefixer": "^10.4.7", 18 | "postcss": "^8.4.14", 19 | "tailwindcss": "^3.0.24", 20 | "typescript": "4.7.2" 21 | } 22 | }, 23 | "node_modules/@next/env": { 24 | "version": "12.1.6", 25 | "resolved": "https://registry.npmjs.org/@next/env/-/env-12.1.6.tgz", 26 | "integrity": "sha512-Te/OBDXFSodPU6jlXYPAXpmZr/AkG6DCATAxttQxqOWaq6eDFX25Db3dK0120GZrSZmv4QCe9KsZmJKDbWs4OA==" 27 | }, 28 | "node_modules/@next/swc-android-arm-eabi": { 29 | "version": "12.1.6", 30 | "resolved": "https://registry.npmjs.org/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.1.6.tgz", 31 | "integrity": "sha512-BxBr3QAAAXWgk/K7EedvzxJr2dE014mghBSA9iOEAv0bMgF+MRq4PoASjuHi15M2zfowpcRG8XQhMFtxftCleQ==", 32 | "cpu": [ 33 | "arm" 34 | ], 35 | "optional": true, 36 | "os": [ 37 | "android" 38 | ], 39 | "engines": { 40 | "node": ">= 10" 41 | } 42 | }, 43 | "node_modules/@next/swc-android-arm64": { 44 | "version": "12.1.6", 45 | "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-12.1.6.tgz", 46 | "integrity": "sha512-EboEk3ROYY7U6WA2RrMt/cXXMokUTXXfnxe2+CU+DOahvbrO8QSWhlBl9I9ZbFzJx28AGB9Yo3oQHCvph/4Lew==", 47 | "cpu": [ 48 | "arm64" 49 | ], 50 | "optional": true, 51 | "os": [ 52 | "android" 53 | ], 54 | "engines": { 55 | "node": ">= 10" 56 | } 57 | }, 58 | "node_modules/@next/swc-darwin-arm64": { 59 | "version": "12.1.6", 60 | "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.1.6.tgz", 61 | "integrity": "sha512-P0EXU12BMSdNj1F7vdkP/VrYDuCNwBExtRPDYawgSUakzi6qP0iKJpya2BuLvNzXx+XPU49GFuDC5X+SvY0mOw==", 62 | "cpu": [ 63 | "arm64" 64 | ], 65 | "optional": true, 66 | "os": [ 67 | "darwin" 68 | ], 69 | "engines": { 70 | "node": ">= 10" 71 | } 72 | }, 73 | "node_modules/@next/swc-darwin-x64": { 74 | "version": "12.1.6", 75 | "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-12.1.6.tgz", 76 | "integrity": "sha512-9FptMnbgHJK3dRDzfTpexs9S2hGpzOQxSQbe8omz6Pcl7rnEp9x4uSEKY51ho85JCjL4d0tDLBcXEJZKKLzxNg==", 77 | "cpu": [ 78 | "x64" 79 | ], 80 | "optional": true, 81 | "os": [ 82 | "darwin" 83 | ], 84 | "engines": { 85 | "node": ">= 10" 86 | } 87 | }, 88 | "node_modules/@next/swc-linux-arm-gnueabihf": { 89 | "version": "12.1.6", 90 | "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.1.6.tgz", 91 | "integrity": "sha512-PvfEa1RR55dsik/IDkCKSFkk6ODNGJqPY3ysVUZqmnWMDSuqFtf7BPWHFa/53znpvVB5XaJ5Z1/6aR5CTIqxPw==", 92 | "cpu": [ 93 | "arm" 94 | ], 95 | "optional": true, 96 | "os": [ 97 | "linux" 98 | ], 99 | "engines": { 100 | "node": ">= 10" 101 | } 102 | }, 103 | "node_modules/@next/swc-linux-arm64-gnu": { 104 | "version": "12.1.6", 105 | "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.1.6.tgz", 106 | "integrity": "sha512-53QOvX1jBbC2ctnmWHyRhMajGq7QZfl974WYlwclXarVV418X7ed7o/EzGY+YVAEKzIVaAB9JFFWGXn8WWo0gQ==", 107 | "cpu": [ 108 | "arm64" 109 | ], 110 | "optional": true, 111 | "os": [ 112 | "linux" 113 | ], 114 | "engines": { 115 | "node": ">= 10" 116 | } 117 | }, 118 | "node_modules/@next/swc-linux-arm64-musl": { 119 | "version": "12.1.6", 120 | "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.1.6.tgz", 121 | "integrity": "sha512-CMWAkYqfGdQCS+uuMA1A2UhOfcUYeoqnTW7msLr2RyYAys15pD960hlDfq7QAi8BCAKk0sQ2rjsl0iqMyziohQ==", 122 | "cpu": [ 123 | "arm64" 124 | ], 125 | "optional": true, 126 | "os": [ 127 | "linux" 128 | ], 129 | "engines": { 130 | "node": ">= 10" 131 | } 132 | }, 133 | "node_modules/@next/swc-linux-x64-gnu": { 134 | "version": "12.1.6", 135 | "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.1.6.tgz", 136 | "integrity": "sha512-AC7jE4Fxpn0s3ujngClIDTiEM/CQiB2N2vkcyWWn6734AmGT03Duq6RYtPMymFobDdAtZGFZd5nR95WjPzbZAQ==", 137 | "cpu": [ 138 | "x64" 139 | ], 140 | "optional": true, 141 | "os": [ 142 | "linux" 143 | ], 144 | "engines": { 145 | "node": ">= 10" 146 | } 147 | }, 148 | "node_modules/@next/swc-linux-x64-musl": { 149 | "version": "12.1.6", 150 | "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.1.6.tgz", 151 | "integrity": "sha512-c9Vjmi0EVk0Kou2qbrynskVarnFwfYIi+wKufR9Ad7/IKKuP6aEhOdZiIIdKsYWRtK2IWRF3h3YmdnEa2WLUag==", 152 | "cpu": [ 153 | "x64" 154 | ], 155 | "optional": true, 156 | "os": [ 157 | "linux" 158 | ], 159 | "engines": { 160 | "node": ">= 10" 161 | } 162 | }, 163 | "node_modules/@next/swc-win32-arm64-msvc": { 164 | "version": "12.1.6", 165 | "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.1.6.tgz", 166 | "integrity": "sha512-3UTOL/5XZSKFelM7qN0it35o3Cegm6LsyuERR3/OoqEExyj3aCk7F025b54/707HTMAnjlvQK3DzLhPu/xxO4g==", 167 | "cpu": [ 168 | "arm64" 169 | ], 170 | "optional": true, 171 | "os": [ 172 | "win32" 173 | ], 174 | "engines": { 175 | "node": ">= 10" 176 | } 177 | }, 178 | "node_modules/@next/swc-win32-ia32-msvc": { 179 | "version": "12.1.6", 180 | "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.1.6.tgz", 181 | "integrity": "sha512-8ZWoj6nCq6fI1yCzKq6oK0jE6Mxlz4MrEsRyu0TwDztWQWe7rh4XXGLAa2YVPatYcHhMcUL+fQQbqd1MsgaSDA==", 182 | "cpu": [ 183 | "ia32" 184 | ], 185 | "optional": true, 186 | "os": [ 187 | "win32" 188 | ], 189 | "engines": { 190 | "node": ">= 10" 191 | } 192 | }, 193 | "node_modules/@next/swc-win32-x64-msvc": { 194 | "version": "12.1.6", 195 | "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.1.6.tgz", 196 | "integrity": "sha512-4ZEwiRuZEicXhXqmhw3+de8Z4EpOLQj/gp+D9fFWo6ii6W1kBkNNvvEx4A90ugppu+74pT1lIJnOuz3A9oQeJA==", 197 | "cpu": [ 198 | "x64" 199 | ], 200 | "optional": true, 201 | "os": [ 202 | "win32" 203 | ], 204 | "engines": { 205 | "node": ">= 10" 206 | } 207 | }, 208 | "node_modules/@nodelib/fs.scandir": { 209 | "version": "2.1.5", 210 | "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", 211 | "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", 212 | "dev": true, 213 | "dependencies": { 214 | "@nodelib/fs.stat": "2.0.5", 215 | "run-parallel": "^1.1.9" 216 | }, 217 | "engines": { 218 | "node": ">= 8" 219 | } 220 | }, 221 | "node_modules/@nodelib/fs.stat": { 222 | "version": "2.0.5", 223 | "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", 224 | "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", 225 | "dev": true, 226 | "engines": { 227 | "node": ">= 8" 228 | } 229 | }, 230 | "node_modules/@nodelib/fs.walk": { 231 | "version": "1.2.8", 232 | "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", 233 | "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", 234 | "dev": true, 235 | "dependencies": { 236 | "@nodelib/fs.scandir": "2.1.5", 237 | "fastq": "^1.6.0" 238 | }, 239 | "engines": { 240 | "node": ">= 8" 241 | } 242 | }, 243 | "node_modules/@types/node": { 244 | "version": "17.0.35", 245 | "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.35.tgz", 246 | "integrity": "sha512-vu1SrqBjbbZ3J6vwY17jBs8Sr/BKA+/a/WtjRG+whKg1iuLFOosq872EXS0eXWILdO36DHQQeku/ZcL6hz2fpg==", 247 | "dev": true 248 | }, 249 | "node_modules/@types/prop-types": { 250 | "version": "15.7.5", 251 | "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", 252 | "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==", 253 | "dev": true 254 | }, 255 | "node_modules/@types/react": { 256 | "version": "18.0.9", 257 | "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.9.tgz", 258 | "integrity": "sha512-9bjbg1hJHUm4De19L1cHiW0Jvx3geel6Qczhjd0qY5VKVE2X5+x77YxAepuCwVh4vrgZJdgEJw48zrhRIeF4Nw==", 259 | "dev": true, 260 | "dependencies": { 261 | "@types/prop-types": "*", 262 | "@types/scheduler": "*", 263 | "csstype": "^3.0.2" 264 | } 265 | }, 266 | "node_modules/@types/react-dom": { 267 | "version": "18.0.5", 268 | "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.5.tgz", 269 | "integrity": "sha512-OWPWTUrY/NIrjsAPkAk1wW9LZeIjSvkXRhclsFO8CZcZGCOg2G0YZy4ft+rOyYxy8B7ui5iZzi9OkDebZ7/QSA==", 270 | "dev": true, 271 | "dependencies": { 272 | "@types/react": "*" 273 | } 274 | }, 275 | "node_modules/@types/scheduler": { 276 | "version": "0.16.2", 277 | "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", 278 | "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==", 279 | "dev": true 280 | }, 281 | "node_modules/acorn": { 282 | "version": "7.4.1", 283 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", 284 | "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", 285 | "dev": true, 286 | "bin": { 287 | "acorn": "bin/acorn" 288 | }, 289 | "engines": { 290 | "node": ">=0.4.0" 291 | } 292 | }, 293 | "node_modules/acorn-node": { 294 | "version": "1.8.2", 295 | "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", 296 | "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", 297 | "dev": true, 298 | "dependencies": { 299 | "acorn": "^7.0.0", 300 | "acorn-walk": "^7.0.0", 301 | "xtend": "^4.0.2" 302 | } 303 | }, 304 | "node_modules/acorn-walk": { 305 | "version": "7.2.0", 306 | "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", 307 | "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", 308 | "dev": true, 309 | "engines": { 310 | "node": ">=0.4.0" 311 | } 312 | }, 313 | "node_modules/anymatch": { 314 | "version": "3.1.2", 315 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", 316 | "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", 317 | "dev": true, 318 | "dependencies": { 319 | "normalize-path": "^3.0.0", 320 | "picomatch": "^2.0.4" 321 | }, 322 | "engines": { 323 | "node": ">= 8" 324 | } 325 | }, 326 | "node_modules/arg": { 327 | "version": "5.0.1", 328 | "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.1.tgz", 329 | "integrity": "sha512-e0hDa9H2Z9AwFkk2qDlwhoMYE4eToKarchkQHovNdLTCYMHZHeRjI71crOh+dio4K6u1IcwubQqo79Ga4CyAQA==", 330 | "dev": true 331 | }, 332 | "node_modules/autoprefixer": { 333 | "version": "10.4.7", 334 | "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.7.tgz", 335 | "integrity": "sha512-ypHju4Y2Oav95SipEcCcI5J7CGPuvz8oat7sUtYj3ClK44bldfvtvcxK6IEK++7rqB7YchDGzweZIBG+SD0ZAA==", 336 | "dev": true, 337 | "funding": [ 338 | { 339 | "type": "opencollective", 340 | "url": "https://opencollective.com/postcss/" 341 | }, 342 | { 343 | "type": "tidelift", 344 | "url": "https://tidelift.com/funding/github/npm/autoprefixer" 345 | } 346 | ], 347 | "dependencies": { 348 | "browserslist": "^4.20.3", 349 | "caniuse-lite": "^1.0.30001335", 350 | "fraction.js": "^4.2.0", 351 | "normalize-range": "^0.1.2", 352 | "picocolors": "^1.0.0", 353 | "postcss-value-parser": "^4.2.0" 354 | }, 355 | "bin": { 356 | "autoprefixer": "bin/autoprefixer" 357 | }, 358 | "engines": { 359 | "node": "^10 || ^12 || >=14" 360 | }, 361 | "peerDependencies": { 362 | "postcss": "^8.1.0" 363 | } 364 | }, 365 | "node_modules/bezier-easing": { 366 | "version": "2.1.0", 367 | "resolved": "https://registry.npmjs.org/bezier-easing/-/bezier-easing-2.1.0.tgz", 368 | "integrity": "sha512-gbIqZ/eslnUFC1tjEvtz0sgx+xTK20wDnYMIA27VA04R7w6xxXQPZDbibjA9DTWZRA2CXtwHykkVzlCaAJAZig==" 369 | }, 370 | "node_modules/binary-extensions": { 371 | "version": "2.2.0", 372 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", 373 | "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", 374 | "dev": true, 375 | "engines": { 376 | "node": ">=8" 377 | } 378 | }, 379 | "node_modules/braces": { 380 | "version": "3.0.2", 381 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", 382 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", 383 | "dev": true, 384 | "dependencies": { 385 | "fill-range": "^7.0.1" 386 | }, 387 | "engines": { 388 | "node": ">=8" 389 | } 390 | }, 391 | "node_modules/browserslist": { 392 | "version": "4.20.3", 393 | "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.3.tgz", 394 | "integrity": "sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==", 395 | "dev": true, 396 | "funding": [ 397 | { 398 | "type": "opencollective", 399 | "url": "https://opencollective.com/browserslist" 400 | }, 401 | { 402 | "type": "tidelift", 403 | "url": "https://tidelift.com/funding/github/npm/browserslist" 404 | } 405 | ], 406 | "dependencies": { 407 | "caniuse-lite": "^1.0.30001332", 408 | "electron-to-chromium": "^1.4.118", 409 | "escalade": "^3.1.1", 410 | "node-releases": "^2.0.3", 411 | "picocolors": "^1.0.0" 412 | }, 413 | "bin": { 414 | "browserslist": "cli.js" 415 | }, 416 | "engines": { 417 | "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" 418 | } 419 | }, 420 | "node_modules/camelcase-css": { 421 | "version": "2.0.1", 422 | "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", 423 | "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", 424 | "dev": true, 425 | "engines": { 426 | "node": ">= 6" 427 | } 428 | }, 429 | "node_modules/caniuse-lite": { 430 | "version": "1.0.30001344", 431 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001344.tgz", 432 | "integrity": "sha512-0ZFjnlCaXNOAYcV7i+TtdKBp0L/3XEU2MF/x6Du1lrh+SRX4IfzIVL4HNJg5pB2PmFb8rszIGyOvsZnqqRoc2g==", 433 | "funding": [ 434 | { 435 | "type": "opencollective", 436 | "url": "https://opencollective.com/browserslist" 437 | }, 438 | { 439 | "type": "tidelift", 440 | "url": "https://tidelift.com/funding/github/npm/caniuse-lite" 441 | } 442 | ] 443 | }, 444 | "node_modules/chokidar": { 445 | "version": "3.5.3", 446 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", 447 | "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", 448 | "dev": true, 449 | "funding": [ 450 | { 451 | "type": "individual", 452 | "url": "https://paulmillr.com/funding/" 453 | } 454 | ], 455 | "dependencies": { 456 | "anymatch": "~3.1.2", 457 | "braces": "~3.0.2", 458 | "glob-parent": "~5.1.2", 459 | "is-binary-path": "~2.1.0", 460 | "is-glob": "~4.0.1", 461 | "normalize-path": "~3.0.0", 462 | "readdirp": "~3.6.0" 463 | }, 464 | "engines": { 465 | "node": ">= 8.10.0" 466 | }, 467 | "optionalDependencies": { 468 | "fsevents": "~2.3.2" 469 | } 470 | }, 471 | "node_modules/chokidar/node_modules/glob-parent": { 472 | "version": "5.1.2", 473 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 474 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 475 | "dev": true, 476 | "dependencies": { 477 | "is-glob": "^4.0.1" 478 | }, 479 | "engines": { 480 | "node": ">= 6" 481 | } 482 | }, 483 | "node_modules/color-name": { 484 | "version": "1.1.4", 485 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 486 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 487 | "dev": true 488 | }, 489 | "node_modules/cssesc": { 490 | "version": "3.0.0", 491 | "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", 492 | "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", 493 | "dev": true, 494 | "bin": { 495 | "cssesc": "bin/cssesc" 496 | }, 497 | "engines": { 498 | "node": ">=4" 499 | } 500 | }, 501 | "node_modules/csstype": { 502 | "version": "3.1.0", 503 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.0.tgz", 504 | "integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==", 505 | "dev": true 506 | }, 507 | "node_modules/defined": { 508 | "version": "1.0.0", 509 | "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", 510 | "integrity": "sha512-Y2caI5+ZwS5c3RiNDJ6u53VhQHv+hHKwhkI1iHvceKUHw9Df6EK2zRLfjejRgMuCuxK7PfSWIMwWecceVvThjQ==", 511 | "dev": true 512 | }, 513 | "node_modules/detective": { 514 | "version": "5.2.1", 515 | "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.1.tgz", 516 | "integrity": "sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==", 517 | "dev": true, 518 | "dependencies": { 519 | "acorn-node": "^1.8.2", 520 | "defined": "^1.0.0", 521 | "minimist": "^1.2.6" 522 | }, 523 | "bin": { 524 | "detective": "bin/detective.js" 525 | }, 526 | "engines": { 527 | "node": ">=0.8.0" 528 | } 529 | }, 530 | "node_modules/didyoumean": { 531 | "version": "1.2.2", 532 | "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", 533 | "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", 534 | "dev": true 535 | }, 536 | "node_modules/dlv": { 537 | "version": "1.1.3", 538 | "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", 539 | "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", 540 | "dev": true 541 | }, 542 | "node_modules/electron-to-chromium": { 543 | "version": "1.4.141", 544 | "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.141.tgz", 545 | "integrity": "sha512-mfBcbqc0qc6RlxrsIgLG2wCqkiPAjEezHxGTu7p3dHHFOurH4EjS9rFZndX5axC8264rI1Pcbw8uQP39oZckeA==", 546 | "dev": true 547 | }, 548 | "node_modules/escalade": { 549 | "version": "3.1.1", 550 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", 551 | "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", 552 | "dev": true, 553 | "engines": { 554 | "node": ">=6" 555 | } 556 | }, 557 | "node_modules/fast-glob": { 558 | "version": "3.2.11", 559 | "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", 560 | "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", 561 | "dev": true, 562 | "dependencies": { 563 | "@nodelib/fs.stat": "^2.0.2", 564 | "@nodelib/fs.walk": "^1.2.3", 565 | "glob-parent": "^5.1.2", 566 | "merge2": "^1.3.0", 567 | "micromatch": "^4.0.4" 568 | }, 569 | "engines": { 570 | "node": ">=8.6.0" 571 | } 572 | }, 573 | "node_modules/fast-glob/node_modules/glob-parent": { 574 | "version": "5.1.2", 575 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 576 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 577 | "dev": true, 578 | "dependencies": { 579 | "is-glob": "^4.0.1" 580 | }, 581 | "engines": { 582 | "node": ">= 6" 583 | } 584 | }, 585 | "node_modules/fastq": { 586 | "version": "1.13.0", 587 | "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", 588 | "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", 589 | "dev": true, 590 | "dependencies": { 591 | "reusify": "^1.0.4" 592 | } 593 | }, 594 | "node_modules/fill-range": { 595 | "version": "7.0.1", 596 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", 597 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", 598 | "dev": true, 599 | "dependencies": { 600 | "to-regex-range": "^5.0.1" 601 | }, 602 | "engines": { 603 | "node": ">=8" 604 | } 605 | }, 606 | "node_modules/fraction.js": { 607 | "version": "4.2.0", 608 | "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", 609 | "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", 610 | "dev": true, 611 | "engines": { 612 | "node": "*" 613 | }, 614 | "funding": { 615 | "type": "patreon", 616 | "url": "https://www.patreon.com/infusion" 617 | } 618 | }, 619 | "node_modules/fsevents": { 620 | "version": "2.3.2", 621 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", 622 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", 623 | "dev": true, 624 | "hasInstallScript": true, 625 | "optional": true, 626 | "os": [ 627 | "darwin" 628 | ], 629 | "engines": { 630 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0" 631 | } 632 | }, 633 | "node_modules/function-bind": { 634 | "version": "1.1.1", 635 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 636 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 637 | "dev": true 638 | }, 639 | "node_modules/glob-parent": { 640 | "version": "6.0.2", 641 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", 642 | "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", 643 | "dev": true, 644 | "dependencies": { 645 | "is-glob": "^4.0.3" 646 | }, 647 | "engines": { 648 | "node": ">=10.13.0" 649 | } 650 | }, 651 | "node_modules/has": { 652 | "version": "1.0.3", 653 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 654 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 655 | "dev": true, 656 | "dependencies": { 657 | "function-bind": "^1.1.1" 658 | }, 659 | "engines": { 660 | "node": ">= 0.4.0" 661 | } 662 | }, 663 | "node_modules/is-binary-path": { 664 | "version": "2.1.0", 665 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", 666 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", 667 | "dev": true, 668 | "dependencies": { 669 | "binary-extensions": "^2.0.0" 670 | }, 671 | "engines": { 672 | "node": ">=8" 673 | } 674 | }, 675 | "node_modules/is-core-module": { 676 | "version": "2.9.0", 677 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", 678 | "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", 679 | "dev": true, 680 | "dependencies": { 681 | "has": "^1.0.3" 682 | }, 683 | "funding": { 684 | "url": "https://github.com/sponsors/ljharb" 685 | } 686 | }, 687 | "node_modules/is-extglob": { 688 | "version": "2.1.1", 689 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 690 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", 691 | "dev": true, 692 | "engines": { 693 | "node": ">=0.10.0" 694 | } 695 | }, 696 | "node_modules/is-glob": { 697 | "version": "4.0.3", 698 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", 699 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", 700 | "dev": true, 701 | "dependencies": { 702 | "is-extglob": "^2.1.1" 703 | }, 704 | "engines": { 705 | "node": ">=0.10.0" 706 | } 707 | }, 708 | "node_modules/is-number": { 709 | "version": "7.0.0", 710 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", 711 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", 712 | "dev": true, 713 | "engines": { 714 | "node": ">=0.12.0" 715 | } 716 | }, 717 | "node_modules/js-tokens": { 718 | "version": "4.0.0", 719 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 720 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" 721 | }, 722 | "node_modules/lilconfig": { 723 | "version": "2.0.5", 724 | "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.5.tgz", 725 | "integrity": "sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==", 726 | "dev": true, 727 | "engines": { 728 | "node": ">=10" 729 | } 730 | }, 731 | "node_modules/loose-envify": { 732 | "version": "1.4.0", 733 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", 734 | "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", 735 | "dependencies": { 736 | "js-tokens": "^3.0.0 || ^4.0.0" 737 | }, 738 | "bin": { 739 | "loose-envify": "cli.js" 740 | } 741 | }, 742 | "node_modules/merge2": { 743 | "version": "1.4.1", 744 | "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", 745 | "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", 746 | "dev": true, 747 | "engines": { 748 | "node": ">= 8" 749 | } 750 | }, 751 | "node_modules/micromatch": { 752 | "version": "4.0.5", 753 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", 754 | "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", 755 | "dev": true, 756 | "dependencies": { 757 | "braces": "^3.0.2", 758 | "picomatch": "^2.3.1" 759 | }, 760 | "engines": { 761 | "node": ">=8.6" 762 | } 763 | }, 764 | "node_modules/minimist": { 765 | "version": "1.2.6", 766 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", 767 | "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", 768 | "dev": true 769 | }, 770 | "node_modules/nanoid": { 771 | "version": "3.3.4", 772 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", 773 | "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", 774 | "bin": { 775 | "nanoid": "bin/nanoid.cjs" 776 | }, 777 | "engines": { 778 | "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" 779 | } 780 | }, 781 | "node_modules/next": { 782 | "version": "12.1.6", 783 | "resolved": "https://registry.npmjs.org/next/-/next-12.1.6.tgz", 784 | "integrity": "sha512-cebwKxL3/DhNKfg9tPZDQmbRKjueqykHHbgaoG4VBRH3AHQJ2HO0dbKFiS1hPhe1/qgc2d/hFeadsbPicmLD+A==", 785 | "dependencies": { 786 | "@next/env": "12.1.6", 787 | "caniuse-lite": "^1.0.30001332", 788 | "postcss": "8.4.5", 789 | "styled-jsx": "5.0.2" 790 | }, 791 | "bin": { 792 | "next": "dist/bin/next" 793 | }, 794 | "engines": { 795 | "node": ">=12.22.0" 796 | }, 797 | "optionalDependencies": { 798 | "@next/swc-android-arm-eabi": "12.1.6", 799 | "@next/swc-android-arm64": "12.1.6", 800 | "@next/swc-darwin-arm64": "12.1.6", 801 | "@next/swc-darwin-x64": "12.1.6", 802 | "@next/swc-linux-arm-gnueabihf": "12.1.6", 803 | "@next/swc-linux-arm64-gnu": "12.1.6", 804 | "@next/swc-linux-arm64-musl": "12.1.6", 805 | "@next/swc-linux-x64-gnu": "12.1.6", 806 | "@next/swc-linux-x64-musl": "12.1.6", 807 | "@next/swc-win32-arm64-msvc": "12.1.6", 808 | "@next/swc-win32-ia32-msvc": "12.1.6", 809 | "@next/swc-win32-x64-msvc": "12.1.6" 810 | }, 811 | "peerDependencies": { 812 | "fibers": ">= 3.1.0", 813 | "node-sass": "^6.0.0 || ^7.0.0", 814 | "react": "^17.0.2 || ^18.0.0-0", 815 | "react-dom": "^17.0.2 || ^18.0.0-0", 816 | "sass": "^1.3.0" 817 | }, 818 | "peerDependenciesMeta": { 819 | "fibers": { 820 | "optional": true 821 | }, 822 | "node-sass": { 823 | "optional": true 824 | }, 825 | "sass": { 826 | "optional": true 827 | } 828 | } 829 | }, 830 | "node_modules/next/node_modules/postcss": { 831 | "version": "8.4.5", 832 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz", 833 | "integrity": "sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==", 834 | "dependencies": { 835 | "nanoid": "^3.1.30", 836 | "picocolors": "^1.0.0", 837 | "source-map-js": "^1.0.1" 838 | }, 839 | "engines": { 840 | "node": "^10 || ^12 || >=14" 841 | }, 842 | "funding": { 843 | "type": "opencollective", 844 | "url": "https://opencollective.com/postcss/" 845 | } 846 | }, 847 | "node_modules/node-releases": { 848 | "version": "2.0.5", 849 | "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.5.tgz", 850 | "integrity": "sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==", 851 | "dev": true 852 | }, 853 | "node_modules/normalize-path": { 854 | "version": "3.0.0", 855 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", 856 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", 857 | "dev": true, 858 | "engines": { 859 | "node": ">=0.10.0" 860 | } 861 | }, 862 | "node_modules/normalize-range": { 863 | "version": "0.1.2", 864 | "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", 865 | "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", 866 | "dev": true, 867 | "engines": { 868 | "node": ">=0.10.0" 869 | } 870 | }, 871 | "node_modules/object-hash": { 872 | "version": "3.0.0", 873 | "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", 874 | "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", 875 | "dev": true, 876 | "engines": { 877 | "node": ">= 6" 878 | } 879 | }, 880 | "node_modules/parallax-controller": { 881 | "version": "1.5.0", 882 | "resolved": "https://registry.npmjs.org/parallax-controller/-/parallax-controller-1.5.0.tgz", 883 | "integrity": "sha512-X7FKD0bH27hJHdknH/UNEznmw6xjcWz/QA4M6RLlE/gUXfbePKhk+ld/20e58aAfjMqj+Q7RURryISFcDIVmtA==", 884 | "dependencies": { 885 | "bezier-easing": "^2.1.0" 886 | }, 887 | "engines": { 888 | "node": ">=12" 889 | } 890 | }, 891 | "node_modules/path-parse": { 892 | "version": "1.0.7", 893 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", 894 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", 895 | "dev": true 896 | }, 897 | "node_modules/picocolors": { 898 | "version": "1.0.0", 899 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", 900 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" 901 | }, 902 | "node_modules/picomatch": { 903 | "version": "2.3.1", 904 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", 905 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", 906 | "dev": true, 907 | "engines": { 908 | "node": ">=8.6" 909 | }, 910 | "funding": { 911 | "url": "https://github.com/sponsors/jonschlinkert" 912 | } 913 | }, 914 | "node_modules/postcss": { 915 | "version": "8.4.14", 916 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", 917 | "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", 918 | "dev": true, 919 | "funding": [ 920 | { 921 | "type": "opencollective", 922 | "url": "https://opencollective.com/postcss/" 923 | }, 924 | { 925 | "type": "tidelift", 926 | "url": "https://tidelift.com/funding/github/npm/postcss" 927 | } 928 | ], 929 | "dependencies": { 930 | "nanoid": "^3.3.4", 931 | "picocolors": "^1.0.0", 932 | "source-map-js": "^1.0.2" 933 | }, 934 | "engines": { 935 | "node": "^10 || ^12 || >=14" 936 | } 937 | }, 938 | "node_modules/postcss-js": { 939 | "version": "4.0.0", 940 | "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.0.tgz", 941 | "integrity": "sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==", 942 | "dev": true, 943 | "dependencies": { 944 | "camelcase-css": "^2.0.1" 945 | }, 946 | "engines": { 947 | "node": "^12 || ^14 || >= 16" 948 | }, 949 | "funding": { 950 | "type": "opencollective", 951 | "url": "https://opencollective.com/postcss/" 952 | }, 953 | "peerDependencies": { 954 | "postcss": "^8.3.3" 955 | } 956 | }, 957 | "node_modules/postcss-load-config": { 958 | "version": "3.1.4", 959 | "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", 960 | "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", 961 | "dev": true, 962 | "dependencies": { 963 | "lilconfig": "^2.0.5", 964 | "yaml": "^1.10.2" 965 | }, 966 | "engines": { 967 | "node": ">= 10" 968 | }, 969 | "funding": { 970 | "type": "opencollective", 971 | "url": "https://opencollective.com/postcss/" 972 | }, 973 | "peerDependencies": { 974 | "postcss": ">=8.0.9", 975 | "ts-node": ">=9.0.0" 976 | }, 977 | "peerDependenciesMeta": { 978 | "postcss": { 979 | "optional": true 980 | }, 981 | "ts-node": { 982 | "optional": true 983 | } 984 | } 985 | }, 986 | "node_modules/postcss-nested": { 987 | "version": "5.0.6", 988 | "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-5.0.6.tgz", 989 | "integrity": "sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==", 990 | "dev": true, 991 | "dependencies": { 992 | "postcss-selector-parser": "^6.0.6" 993 | }, 994 | "engines": { 995 | "node": ">=12.0" 996 | }, 997 | "funding": { 998 | "type": "opencollective", 999 | "url": "https://opencollective.com/postcss/" 1000 | }, 1001 | "peerDependencies": { 1002 | "postcss": "^8.2.14" 1003 | } 1004 | }, 1005 | "node_modules/postcss-selector-parser": { 1006 | "version": "6.0.10", 1007 | "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", 1008 | "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", 1009 | "dev": true, 1010 | "dependencies": { 1011 | "cssesc": "^3.0.0", 1012 | "util-deprecate": "^1.0.2" 1013 | }, 1014 | "engines": { 1015 | "node": ">=4" 1016 | } 1017 | }, 1018 | "node_modules/postcss-value-parser": { 1019 | "version": "4.2.0", 1020 | "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", 1021 | "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", 1022 | "dev": true 1023 | }, 1024 | "node_modules/queue-microtask": { 1025 | "version": "1.2.3", 1026 | "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", 1027 | "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", 1028 | "dev": true, 1029 | "funding": [ 1030 | { 1031 | "type": "github", 1032 | "url": "https://github.com/sponsors/feross" 1033 | }, 1034 | { 1035 | "type": "patreon", 1036 | "url": "https://www.patreon.com/feross" 1037 | }, 1038 | { 1039 | "type": "consulting", 1040 | "url": "https://feross.org/support" 1041 | } 1042 | ] 1043 | }, 1044 | "node_modules/quick-lru": { 1045 | "version": "5.1.1", 1046 | "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", 1047 | "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", 1048 | "dev": true, 1049 | "engines": { 1050 | "node": ">=10" 1051 | }, 1052 | "funding": { 1053 | "url": "https://github.com/sponsors/sindresorhus" 1054 | } 1055 | }, 1056 | "node_modules/react": { 1057 | "version": "18.1.0", 1058 | "resolved": "https://registry.npmjs.org/react/-/react-18.1.0.tgz", 1059 | "integrity": "sha512-4oL8ivCz5ZEPyclFQXaNksK3adutVS8l2xzZU0cqEFrE9Sb7fC0EFK5uEk74wIreL1DERyjvsU915j1pcT2uEQ==", 1060 | "dependencies": { 1061 | "loose-envify": "^1.1.0" 1062 | }, 1063 | "engines": { 1064 | "node": ">=0.10.0" 1065 | } 1066 | }, 1067 | "node_modules/react-dom": { 1068 | "version": "18.1.0", 1069 | "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.1.0.tgz", 1070 | "integrity": "sha512-fU1Txz7Budmvamp7bshe4Zi32d0ll7ect+ccxNu9FlObT605GOEB8BfO4tmRJ39R5Zj831VCpvQ05QPBW5yb+w==", 1071 | "dependencies": { 1072 | "loose-envify": "^1.1.0", 1073 | "scheduler": "^0.22.0" 1074 | }, 1075 | "peerDependencies": { 1076 | "react": "^18.1.0" 1077 | } 1078 | }, 1079 | "node_modules/react-scroll-parallax": { 1080 | "version": "3.2.0", 1081 | "resolved": "https://registry.npmjs.org/react-scroll-parallax/-/react-scroll-parallax-3.2.0.tgz", 1082 | "integrity": "sha512-jZYFHbO+pE+IbNacHCpBKqw+WhGTA7t5WmXmQzC8i4DGdSYJ25d64R7ZD02K3CwMWdw5uKuc1LUZX/0OA/HCVA==", 1083 | "dependencies": { 1084 | "parallax-controller": "^1.5.0" 1085 | }, 1086 | "engines": { 1087 | "node": ">=10" 1088 | }, 1089 | "peerDependencies": { 1090 | "react": "^16.8.0-0 || >=17.0.1", 1091 | "react-dom": "^16.8.0-0 || >=17.0.1" 1092 | } 1093 | }, 1094 | "node_modules/readdirp": { 1095 | "version": "3.6.0", 1096 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", 1097 | "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", 1098 | "dev": true, 1099 | "dependencies": { 1100 | "picomatch": "^2.2.1" 1101 | }, 1102 | "engines": { 1103 | "node": ">=8.10.0" 1104 | } 1105 | }, 1106 | "node_modules/resolve": { 1107 | "version": "1.22.0", 1108 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", 1109 | "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", 1110 | "dev": true, 1111 | "dependencies": { 1112 | "is-core-module": "^2.8.1", 1113 | "path-parse": "^1.0.7", 1114 | "supports-preserve-symlinks-flag": "^1.0.0" 1115 | }, 1116 | "bin": { 1117 | "resolve": "bin/resolve" 1118 | }, 1119 | "funding": { 1120 | "url": "https://github.com/sponsors/ljharb" 1121 | } 1122 | }, 1123 | "node_modules/reusify": { 1124 | "version": "1.0.4", 1125 | "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", 1126 | "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", 1127 | "dev": true, 1128 | "engines": { 1129 | "iojs": ">=1.0.0", 1130 | "node": ">=0.10.0" 1131 | } 1132 | }, 1133 | "node_modules/run-parallel": { 1134 | "version": "1.2.0", 1135 | "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", 1136 | "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", 1137 | "dev": true, 1138 | "funding": [ 1139 | { 1140 | "type": "github", 1141 | "url": "https://github.com/sponsors/feross" 1142 | }, 1143 | { 1144 | "type": "patreon", 1145 | "url": "https://www.patreon.com/feross" 1146 | }, 1147 | { 1148 | "type": "consulting", 1149 | "url": "https://feross.org/support" 1150 | } 1151 | ], 1152 | "dependencies": { 1153 | "queue-microtask": "^1.2.2" 1154 | } 1155 | }, 1156 | "node_modules/scheduler": { 1157 | "version": "0.22.0", 1158 | "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.22.0.tgz", 1159 | "integrity": "sha512-6QAm1BgQI88NPYymgGQLCZgvep4FyePDWFpXVK+zNSUgHwlqpJy8VEh8Et0KxTACS4VWwMousBElAZOH9nkkoQ==", 1160 | "dependencies": { 1161 | "loose-envify": "^1.1.0" 1162 | } 1163 | }, 1164 | "node_modules/source-map-js": { 1165 | "version": "1.0.2", 1166 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", 1167 | "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", 1168 | "engines": { 1169 | "node": ">=0.10.0" 1170 | } 1171 | }, 1172 | "node_modules/styled-jsx": { 1173 | "version": "5.0.2", 1174 | "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.0.2.tgz", 1175 | "integrity": "sha512-LqPQrbBh3egD57NBcHET4qcgshPks+yblyhPlH2GY8oaDgKs8SK4C3dBh3oSJjgzJ3G5t1SYEZGHkP+QEpX9EQ==", 1176 | "engines": { 1177 | "node": ">= 12.0.0" 1178 | }, 1179 | "peerDependencies": { 1180 | "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0" 1181 | }, 1182 | "peerDependenciesMeta": { 1183 | "@babel/core": { 1184 | "optional": true 1185 | }, 1186 | "babel-plugin-macros": { 1187 | "optional": true 1188 | } 1189 | } 1190 | }, 1191 | "node_modules/supports-preserve-symlinks-flag": { 1192 | "version": "1.0.0", 1193 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", 1194 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", 1195 | "dev": true, 1196 | "engines": { 1197 | "node": ">= 0.4" 1198 | }, 1199 | "funding": { 1200 | "url": "https://github.com/sponsors/ljharb" 1201 | } 1202 | }, 1203 | "node_modules/tailwindcss": { 1204 | "version": "3.0.24", 1205 | "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.0.24.tgz", 1206 | "integrity": "sha512-H3uMmZNWzG6aqmg9q07ZIRNIawoiEcNFKDfL+YzOPuPsXuDXxJxB9icqzLgdzKNwjG3SAro2h9SYav8ewXNgig==", 1207 | "dev": true, 1208 | "dependencies": { 1209 | "arg": "^5.0.1", 1210 | "chokidar": "^3.5.3", 1211 | "color-name": "^1.1.4", 1212 | "detective": "^5.2.0", 1213 | "didyoumean": "^1.2.2", 1214 | "dlv": "^1.1.3", 1215 | "fast-glob": "^3.2.11", 1216 | "glob-parent": "^6.0.2", 1217 | "is-glob": "^4.0.3", 1218 | "lilconfig": "^2.0.5", 1219 | "normalize-path": "^3.0.0", 1220 | "object-hash": "^3.0.0", 1221 | "picocolors": "^1.0.0", 1222 | "postcss": "^8.4.12", 1223 | "postcss-js": "^4.0.0", 1224 | "postcss-load-config": "^3.1.4", 1225 | "postcss-nested": "5.0.6", 1226 | "postcss-selector-parser": "^6.0.10", 1227 | "postcss-value-parser": "^4.2.0", 1228 | "quick-lru": "^5.1.1", 1229 | "resolve": "^1.22.0" 1230 | }, 1231 | "bin": { 1232 | "tailwind": "lib/cli.js", 1233 | "tailwindcss": "lib/cli.js" 1234 | }, 1235 | "engines": { 1236 | "node": ">=12.13.0" 1237 | }, 1238 | "peerDependencies": { 1239 | "postcss": "^8.0.9" 1240 | } 1241 | }, 1242 | "node_modules/to-regex-range": { 1243 | "version": "5.0.1", 1244 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", 1245 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", 1246 | "dev": true, 1247 | "dependencies": { 1248 | "is-number": "^7.0.0" 1249 | }, 1250 | "engines": { 1251 | "node": ">=8.0" 1252 | } 1253 | }, 1254 | "node_modules/typescript": { 1255 | "version": "4.7.2", 1256 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.2.tgz", 1257 | "integrity": "sha512-Mamb1iX2FDUpcTRzltPxgWMKy3fhg0TN378ylbktPGPK/99KbDtMQ4W1hwgsbPAsG3a0xKa1vmw4VKZQbkvz5A==", 1258 | "dev": true, 1259 | "bin": { 1260 | "tsc": "bin/tsc", 1261 | "tsserver": "bin/tsserver" 1262 | }, 1263 | "engines": { 1264 | "node": ">=4.2.0" 1265 | } 1266 | }, 1267 | "node_modules/util-deprecate": { 1268 | "version": "1.0.2", 1269 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 1270 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", 1271 | "dev": true 1272 | }, 1273 | "node_modules/xtend": { 1274 | "version": "4.0.2", 1275 | "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", 1276 | "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", 1277 | "dev": true, 1278 | "engines": { 1279 | "node": ">=0.4" 1280 | } 1281 | }, 1282 | "node_modules/yaml": { 1283 | "version": "1.10.2", 1284 | "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", 1285 | "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", 1286 | "dev": true, 1287 | "engines": { 1288 | "node": ">= 6" 1289 | } 1290 | } 1291 | }, 1292 | "dependencies": { 1293 | "@next/env": { 1294 | "version": "12.1.6", 1295 | "resolved": "https://registry.npmjs.org/@next/env/-/env-12.1.6.tgz", 1296 | "integrity": "sha512-Te/OBDXFSodPU6jlXYPAXpmZr/AkG6DCATAxttQxqOWaq6eDFX25Db3dK0120GZrSZmv4QCe9KsZmJKDbWs4OA==" 1297 | }, 1298 | "@next/swc-android-arm-eabi": { 1299 | "version": "12.1.6", 1300 | "resolved": "https://registry.npmjs.org/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.1.6.tgz", 1301 | "integrity": "sha512-BxBr3QAAAXWgk/K7EedvzxJr2dE014mghBSA9iOEAv0bMgF+MRq4PoASjuHi15M2zfowpcRG8XQhMFtxftCleQ==", 1302 | "optional": true 1303 | }, 1304 | "@next/swc-android-arm64": { 1305 | "version": "12.1.6", 1306 | "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-12.1.6.tgz", 1307 | "integrity": "sha512-EboEk3ROYY7U6WA2RrMt/cXXMokUTXXfnxe2+CU+DOahvbrO8QSWhlBl9I9ZbFzJx28AGB9Yo3oQHCvph/4Lew==", 1308 | "optional": true 1309 | }, 1310 | "@next/swc-darwin-arm64": { 1311 | "version": "12.1.6", 1312 | "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.1.6.tgz", 1313 | "integrity": "sha512-P0EXU12BMSdNj1F7vdkP/VrYDuCNwBExtRPDYawgSUakzi6qP0iKJpya2BuLvNzXx+XPU49GFuDC5X+SvY0mOw==", 1314 | "optional": true 1315 | }, 1316 | "@next/swc-darwin-x64": { 1317 | "version": "12.1.6", 1318 | "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-12.1.6.tgz", 1319 | "integrity": "sha512-9FptMnbgHJK3dRDzfTpexs9S2hGpzOQxSQbe8omz6Pcl7rnEp9x4uSEKY51ho85JCjL4d0tDLBcXEJZKKLzxNg==", 1320 | "optional": true 1321 | }, 1322 | "@next/swc-linux-arm-gnueabihf": { 1323 | "version": "12.1.6", 1324 | "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.1.6.tgz", 1325 | "integrity": "sha512-PvfEa1RR55dsik/IDkCKSFkk6ODNGJqPY3ysVUZqmnWMDSuqFtf7BPWHFa/53znpvVB5XaJ5Z1/6aR5CTIqxPw==", 1326 | "optional": true 1327 | }, 1328 | "@next/swc-linux-arm64-gnu": { 1329 | "version": "12.1.6", 1330 | "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.1.6.tgz", 1331 | "integrity": "sha512-53QOvX1jBbC2ctnmWHyRhMajGq7QZfl974WYlwclXarVV418X7ed7o/EzGY+YVAEKzIVaAB9JFFWGXn8WWo0gQ==", 1332 | "optional": true 1333 | }, 1334 | "@next/swc-linux-arm64-musl": { 1335 | "version": "12.1.6", 1336 | "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.1.6.tgz", 1337 | "integrity": "sha512-CMWAkYqfGdQCS+uuMA1A2UhOfcUYeoqnTW7msLr2RyYAys15pD960hlDfq7QAi8BCAKk0sQ2rjsl0iqMyziohQ==", 1338 | "optional": true 1339 | }, 1340 | "@next/swc-linux-x64-gnu": { 1341 | "version": "12.1.6", 1342 | "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.1.6.tgz", 1343 | "integrity": "sha512-AC7jE4Fxpn0s3ujngClIDTiEM/CQiB2N2vkcyWWn6734AmGT03Duq6RYtPMymFobDdAtZGFZd5nR95WjPzbZAQ==", 1344 | "optional": true 1345 | }, 1346 | "@next/swc-linux-x64-musl": { 1347 | "version": "12.1.6", 1348 | "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.1.6.tgz", 1349 | "integrity": "sha512-c9Vjmi0EVk0Kou2qbrynskVarnFwfYIi+wKufR9Ad7/IKKuP6aEhOdZiIIdKsYWRtK2IWRF3h3YmdnEa2WLUag==", 1350 | "optional": true 1351 | }, 1352 | "@next/swc-win32-arm64-msvc": { 1353 | "version": "12.1.6", 1354 | "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.1.6.tgz", 1355 | "integrity": "sha512-3UTOL/5XZSKFelM7qN0it35o3Cegm6LsyuERR3/OoqEExyj3aCk7F025b54/707HTMAnjlvQK3DzLhPu/xxO4g==", 1356 | "optional": true 1357 | }, 1358 | "@next/swc-win32-ia32-msvc": { 1359 | "version": "12.1.6", 1360 | "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.1.6.tgz", 1361 | "integrity": "sha512-8ZWoj6nCq6fI1yCzKq6oK0jE6Mxlz4MrEsRyu0TwDztWQWe7rh4XXGLAa2YVPatYcHhMcUL+fQQbqd1MsgaSDA==", 1362 | "optional": true 1363 | }, 1364 | "@next/swc-win32-x64-msvc": { 1365 | "version": "12.1.6", 1366 | "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.1.6.tgz", 1367 | "integrity": "sha512-4ZEwiRuZEicXhXqmhw3+de8Z4EpOLQj/gp+D9fFWo6ii6W1kBkNNvvEx4A90ugppu+74pT1lIJnOuz3A9oQeJA==", 1368 | "optional": true 1369 | }, 1370 | "@nodelib/fs.scandir": { 1371 | "version": "2.1.5", 1372 | "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", 1373 | "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", 1374 | "dev": true, 1375 | "requires": { 1376 | "@nodelib/fs.stat": "2.0.5", 1377 | "run-parallel": "^1.1.9" 1378 | } 1379 | }, 1380 | "@nodelib/fs.stat": { 1381 | "version": "2.0.5", 1382 | "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", 1383 | "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", 1384 | "dev": true 1385 | }, 1386 | "@nodelib/fs.walk": { 1387 | "version": "1.2.8", 1388 | "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", 1389 | "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", 1390 | "dev": true, 1391 | "requires": { 1392 | "@nodelib/fs.scandir": "2.1.5", 1393 | "fastq": "^1.6.0" 1394 | } 1395 | }, 1396 | "@types/node": { 1397 | "version": "17.0.35", 1398 | "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.35.tgz", 1399 | "integrity": "sha512-vu1SrqBjbbZ3J6vwY17jBs8Sr/BKA+/a/WtjRG+whKg1iuLFOosq872EXS0eXWILdO36DHQQeku/ZcL6hz2fpg==", 1400 | "dev": true 1401 | }, 1402 | "@types/prop-types": { 1403 | "version": "15.7.5", 1404 | "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", 1405 | "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==", 1406 | "dev": true 1407 | }, 1408 | "@types/react": { 1409 | "version": "18.0.9", 1410 | "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.9.tgz", 1411 | "integrity": "sha512-9bjbg1hJHUm4De19L1cHiW0Jvx3geel6Qczhjd0qY5VKVE2X5+x77YxAepuCwVh4vrgZJdgEJw48zrhRIeF4Nw==", 1412 | "dev": true, 1413 | "requires": { 1414 | "@types/prop-types": "*", 1415 | "@types/scheduler": "*", 1416 | "csstype": "^3.0.2" 1417 | } 1418 | }, 1419 | "@types/react-dom": { 1420 | "version": "18.0.5", 1421 | "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.5.tgz", 1422 | "integrity": "sha512-OWPWTUrY/NIrjsAPkAk1wW9LZeIjSvkXRhclsFO8CZcZGCOg2G0YZy4ft+rOyYxy8B7ui5iZzi9OkDebZ7/QSA==", 1423 | "dev": true, 1424 | "requires": { 1425 | "@types/react": "*" 1426 | } 1427 | }, 1428 | "@types/scheduler": { 1429 | "version": "0.16.2", 1430 | "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", 1431 | "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==", 1432 | "dev": true 1433 | }, 1434 | "acorn": { 1435 | "version": "7.4.1", 1436 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", 1437 | "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", 1438 | "dev": true 1439 | }, 1440 | "acorn-node": { 1441 | "version": "1.8.2", 1442 | "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", 1443 | "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", 1444 | "dev": true, 1445 | "requires": { 1446 | "acorn": "^7.0.0", 1447 | "acorn-walk": "^7.0.0", 1448 | "xtend": "^4.0.2" 1449 | } 1450 | }, 1451 | "acorn-walk": { 1452 | "version": "7.2.0", 1453 | "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", 1454 | "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", 1455 | "dev": true 1456 | }, 1457 | "anymatch": { 1458 | "version": "3.1.2", 1459 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", 1460 | "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", 1461 | "dev": true, 1462 | "requires": { 1463 | "normalize-path": "^3.0.0", 1464 | "picomatch": "^2.0.4" 1465 | } 1466 | }, 1467 | "arg": { 1468 | "version": "5.0.1", 1469 | "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.1.tgz", 1470 | "integrity": "sha512-e0hDa9H2Z9AwFkk2qDlwhoMYE4eToKarchkQHovNdLTCYMHZHeRjI71crOh+dio4K6u1IcwubQqo79Ga4CyAQA==", 1471 | "dev": true 1472 | }, 1473 | "autoprefixer": { 1474 | "version": "10.4.7", 1475 | "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.7.tgz", 1476 | "integrity": "sha512-ypHju4Y2Oav95SipEcCcI5J7CGPuvz8oat7sUtYj3ClK44bldfvtvcxK6IEK++7rqB7YchDGzweZIBG+SD0ZAA==", 1477 | "dev": true, 1478 | "requires": { 1479 | "browserslist": "^4.20.3", 1480 | "caniuse-lite": "^1.0.30001335", 1481 | "fraction.js": "^4.2.0", 1482 | "normalize-range": "^0.1.2", 1483 | "picocolors": "^1.0.0", 1484 | "postcss-value-parser": "^4.2.0" 1485 | } 1486 | }, 1487 | "bezier-easing": { 1488 | "version": "2.1.0", 1489 | "resolved": "https://registry.npmjs.org/bezier-easing/-/bezier-easing-2.1.0.tgz", 1490 | "integrity": "sha512-gbIqZ/eslnUFC1tjEvtz0sgx+xTK20wDnYMIA27VA04R7w6xxXQPZDbibjA9DTWZRA2CXtwHykkVzlCaAJAZig==" 1491 | }, 1492 | "binary-extensions": { 1493 | "version": "2.2.0", 1494 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", 1495 | "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", 1496 | "dev": true 1497 | }, 1498 | "braces": { 1499 | "version": "3.0.2", 1500 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", 1501 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", 1502 | "dev": true, 1503 | "requires": { 1504 | "fill-range": "^7.0.1" 1505 | } 1506 | }, 1507 | "browserslist": { 1508 | "version": "4.20.3", 1509 | "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.3.tgz", 1510 | "integrity": "sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==", 1511 | "dev": true, 1512 | "requires": { 1513 | "caniuse-lite": "^1.0.30001332", 1514 | "electron-to-chromium": "^1.4.118", 1515 | "escalade": "^3.1.1", 1516 | "node-releases": "^2.0.3", 1517 | "picocolors": "^1.0.0" 1518 | } 1519 | }, 1520 | "camelcase-css": { 1521 | "version": "2.0.1", 1522 | "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", 1523 | "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", 1524 | "dev": true 1525 | }, 1526 | "caniuse-lite": { 1527 | "version": "1.0.30001344", 1528 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001344.tgz", 1529 | "integrity": "sha512-0ZFjnlCaXNOAYcV7i+TtdKBp0L/3XEU2MF/x6Du1lrh+SRX4IfzIVL4HNJg5pB2PmFb8rszIGyOvsZnqqRoc2g==" 1530 | }, 1531 | "chokidar": { 1532 | "version": "3.5.3", 1533 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", 1534 | "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", 1535 | "dev": true, 1536 | "requires": { 1537 | "anymatch": "~3.1.2", 1538 | "braces": "~3.0.2", 1539 | "fsevents": "~2.3.2", 1540 | "glob-parent": "~5.1.2", 1541 | "is-binary-path": "~2.1.0", 1542 | "is-glob": "~4.0.1", 1543 | "normalize-path": "~3.0.0", 1544 | "readdirp": "~3.6.0" 1545 | }, 1546 | "dependencies": { 1547 | "glob-parent": { 1548 | "version": "5.1.2", 1549 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 1550 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 1551 | "dev": true, 1552 | "requires": { 1553 | "is-glob": "^4.0.1" 1554 | } 1555 | } 1556 | } 1557 | }, 1558 | "color-name": { 1559 | "version": "1.1.4", 1560 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 1561 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 1562 | "dev": true 1563 | }, 1564 | "cssesc": { 1565 | "version": "3.0.0", 1566 | "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", 1567 | "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", 1568 | "dev": true 1569 | }, 1570 | "csstype": { 1571 | "version": "3.1.0", 1572 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.0.tgz", 1573 | "integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==", 1574 | "dev": true 1575 | }, 1576 | "defined": { 1577 | "version": "1.0.0", 1578 | "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", 1579 | "integrity": "sha512-Y2caI5+ZwS5c3RiNDJ6u53VhQHv+hHKwhkI1iHvceKUHw9Df6EK2zRLfjejRgMuCuxK7PfSWIMwWecceVvThjQ==", 1580 | "dev": true 1581 | }, 1582 | "detective": { 1583 | "version": "5.2.1", 1584 | "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.1.tgz", 1585 | "integrity": "sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==", 1586 | "dev": true, 1587 | "requires": { 1588 | "acorn-node": "^1.8.2", 1589 | "defined": "^1.0.0", 1590 | "minimist": "^1.2.6" 1591 | } 1592 | }, 1593 | "didyoumean": { 1594 | "version": "1.2.2", 1595 | "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", 1596 | "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", 1597 | "dev": true 1598 | }, 1599 | "dlv": { 1600 | "version": "1.1.3", 1601 | "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", 1602 | "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", 1603 | "dev": true 1604 | }, 1605 | "electron-to-chromium": { 1606 | "version": "1.4.141", 1607 | "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.141.tgz", 1608 | "integrity": "sha512-mfBcbqc0qc6RlxrsIgLG2wCqkiPAjEezHxGTu7p3dHHFOurH4EjS9rFZndX5axC8264rI1Pcbw8uQP39oZckeA==", 1609 | "dev": true 1610 | }, 1611 | "escalade": { 1612 | "version": "3.1.1", 1613 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", 1614 | "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", 1615 | "dev": true 1616 | }, 1617 | "fast-glob": { 1618 | "version": "3.2.11", 1619 | "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", 1620 | "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", 1621 | "dev": true, 1622 | "requires": { 1623 | "@nodelib/fs.stat": "^2.0.2", 1624 | "@nodelib/fs.walk": "^1.2.3", 1625 | "glob-parent": "^5.1.2", 1626 | "merge2": "^1.3.0", 1627 | "micromatch": "^4.0.4" 1628 | }, 1629 | "dependencies": { 1630 | "glob-parent": { 1631 | "version": "5.1.2", 1632 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 1633 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 1634 | "dev": true, 1635 | "requires": { 1636 | "is-glob": "^4.0.1" 1637 | } 1638 | } 1639 | } 1640 | }, 1641 | "fastq": { 1642 | "version": "1.13.0", 1643 | "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", 1644 | "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", 1645 | "dev": true, 1646 | "requires": { 1647 | "reusify": "^1.0.4" 1648 | } 1649 | }, 1650 | "fill-range": { 1651 | "version": "7.0.1", 1652 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", 1653 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", 1654 | "dev": true, 1655 | "requires": { 1656 | "to-regex-range": "^5.0.1" 1657 | } 1658 | }, 1659 | "fraction.js": { 1660 | "version": "4.2.0", 1661 | "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", 1662 | "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", 1663 | "dev": true 1664 | }, 1665 | "fsevents": { 1666 | "version": "2.3.2", 1667 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", 1668 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", 1669 | "dev": true, 1670 | "optional": true 1671 | }, 1672 | "function-bind": { 1673 | "version": "1.1.1", 1674 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 1675 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 1676 | "dev": true 1677 | }, 1678 | "glob-parent": { 1679 | "version": "6.0.2", 1680 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", 1681 | "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", 1682 | "dev": true, 1683 | "requires": { 1684 | "is-glob": "^4.0.3" 1685 | } 1686 | }, 1687 | "has": { 1688 | "version": "1.0.3", 1689 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 1690 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 1691 | "dev": true, 1692 | "requires": { 1693 | "function-bind": "^1.1.1" 1694 | } 1695 | }, 1696 | "is-binary-path": { 1697 | "version": "2.1.0", 1698 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", 1699 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", 1700 | "dev": true, 1701 | "requires": { 1702 | "binary-extensions": "^2.0.0" 1703 | } 1704 | }, 1705 | "is-core-module": { 1706 | "version": "2.9.0", 1707 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", 1708 | "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", 1709 | "dev": true, 1710 | "requires": { 1711 | "has": "^1.0.3" 1712 | } 1713 | }, 1714 | "is-extglob": { 1715 | "version": "2.1.1", 1716 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 1717 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", 1718 | "dev": true 1719 | }, 1720 | "is-glob": { 1721 | "version": "4.0.3", 1722 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", 1723 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", 1724 | "dev": true, 1725 | "requires": { 1726 | "is-extglob": "^2.1.1" 1727 | } 1728 | }, 1729 | "is-number": { 1730 | "version": "7.0.0", 1731 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", 1732 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", 1733 | "dev": true 1734 | }, 1735 | "js-tokens": { 1736 | "version": "4.0.0", 1737 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 1738 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" 1739 | }, 1740 | "lilconfig": { 1741 | "version": "2.0.5", 1742 | "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.5.tgz", 1743 | "integrity": "sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==", 1744 | "dev": true 1745 | }, 1746 | "loose-envify": { 1747 | "version": "1.4.0", 1748 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", 1749 | "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", 1750 | "requires": { 1751 | "js-tokens": "^3.0.0 || ^4.0.0" 1752 | } 1753 | }, 1754 | "merge2": { 1755 | "version": "1.4.1", 1756 | "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", 1757 | "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", 1758 | "dev": true 1759 | }, 1760 | "micromatch": { 1761 | "version": "4.0.5", 1762 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", 1763 | "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", 1764 | "dev": true, 1765 | "requires": { 1766 | "braces": "^3.0.2", 1767 | "picomatch": "^2.3.1" 1768 | } 1769 | }, 1770 | "minimist": { 1771 | "version": "1.2.6", 1772 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", 1773 | "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", 1774 | "dev": true 1775 | }, 1776 | "nanoid": { 1777 | "version": "3.3.4", 1778 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", 1779 | "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==" 1780 | }, 1781 | "next": { 1782 | "version": "12.1.6", 1783 | "resolved": "https://registry.npmjs.org/next/-/next-12.1.6.tgz", 1784 | "integrity": "sha512-cebwKxL3/DhNKfg9tPZDQmbRKjueqykHHbgaoG4VBRH3AHQJ2HO0dbKFiS1hPhe1/qgc2d/hFeadsbPicmLD+A==", 1785 | "requires": { 1786 | "@next/env": "12.1.6", 1787 | "@next/swc-android-arm-eabi": "12.1.6", 1788 | "@next/swc-android-arm64": "12.1.6", 1789 | "@next/swc-darwin-arm64": "12.1.6", 1790 | "@next/swc-darwin-x64": "12.1.6", 1791 | "@next/swc-linux-arm-gnueabihf": "12.1.6", 1792 | "@next/swc-linux-arm64-gnu": "12.1.6", 1793 | "@next/swc-linux-arm64-musl": "12.1.6", 1794 | "@next/swc-linux-x64-gnu": "12.1.6", 1795 | "@next/swc-linux-x64-musl": "12.1.6", 1796 | "@next/swc-win32-arm64-msvc": "12.1.6", 1797 | "@next/swc-win32-ia32-msvc": "12.1.6", 1798 | "@next/swc-win32-x64-msvc": "12.1.6", 1799 | "caniuse-lite": "^1.0.30001332", 1800 | "postcss": "8.4.5", 1801 | "styled-jsx": "5.0.2" 1802 | }, 1803 | "dependencies": { 1804 | "postcss": { 1805 | "version": "8.4.5", 1806 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz", 1807 | "integrity": "sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==", 1808 | "requires": { 1809 | "nanoid": "^3.1.30", 1810 | "picocolors": "^1.0.0", 1811 | "source-map-js": "^1.0.1" 1812 | } 1813 | } 1814 | } 1815 | }, 1816 | "node-releases": { 1817 | "version": "2.0.5", 1818 | "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.5.tgz", 1819 | "integrity": "sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==", 1820 | "dev": true 1821 | }, 1822 | "normalize-path": { 1823 | "version": "3.0.0", 1824 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", 1825 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", 1826 | "dev": true 1827 | }, 1828 | "normalize-range": { 1829 | "version": "0.1.2", 1830 | "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", 1831 | "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", 1832 | "dev": true 1833 | }, 1834 | "object-hash": { 1835 | "version": "3.0.0", 1836 | "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", 1837 | "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", 1838 | "dev": true 1839 | }, 1840 | "parallax-controller": { 1841 | "version": "1.5.0", 1842 | "resolved": "https://registry.npmjs.org/parallax-controller/-/parallax-controller-1.5.0.tgz", 1843 | "integrity": "sha512-X7FKD0bH27hJHdknH/UNEznmw6xjcWz/QA4M6RLlE/gUXfbePKhk+ld/20e58aAfjMqj+Q7RURryISFcDIVmtA==", 1844 | "requires": { 1845 | "bezier-easing": "^2.1.0" 1846 | } 1847 | }, 1848 | "path-parse": { 1849 | "version": "1.0.7", 1850 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", 1851 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", 1852 | "dev": true 1853 | }, 1854 | "picocolors": { 1855 | "version": "1.0.0", 1856 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", 1857 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" 1858 | }, 1859 | "picomatch": { 1860 | "version": "2.3.1", 1861 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", 1862 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", 1863 | "dev": true 1864 | }, 1865 | "postcss": { 1866 | "version": "8.4.14", 1867 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", 1868 | "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", 1869 | "dev": true, 1870 | "requires": { 1871 | "nanoid": "^3.3.4", 1872 | "picocolors": "^1.0.0", 1873 | "source-map-js": "^1.0.2" 1874 | } 1875 | }, 1876 | "postcss-js": { 1877 | "version": "4.0.0", 1878 | "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.0.tgz", 1879 | "integrity": "sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==", 1880 | "dev": true, 1881 | "requires": { 1882 | "camelcase-css": "^2.0.1" 1883 | } 1884 | }, 1885 | "postcss-load-config": { 1886 | "version": "3.1.4", 1887 | "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", 1888 | "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", 1889 | "dev": true, 1890 | "requires": { 1891 | "lilconfig": "^2.0.5", 1892 | "yaml": "^1.10.2" 1893 | } 1894 | }, 1895 | "postcss-nested": { 1896 | "version": "5.0.6", 1897 | "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-5.0.6.tgz", 1898 | "integrity": "sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==", 1899 | "dev": true, 1900 | "requires": { 1901 | "postcss-selector-parser": "^6.0.6" 1902 | } 1903 | }, 1904 | "postcss-selector-parser": { 1905 | "version": "6.0.10", 1906 | "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", 1907 | "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", 1908 | "dev": true, 1909 | "requires": { 1910 | "cssesc": "^3.0.0", 1911 | "util-deprecate": "^1.0.2" 1912 | } 1913 | }, 1914 | "postcss-value-parser": { 1915 | "version": "4.2.0", 1916 | "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", 1917 | "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", 1918 | "dev": true 1919 | }, 1920 | "queue-microtask": { 1921 | "version": "1.2.3", 1922 | "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", 1923 | "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", 1924 | "dev": true 1925 | }, 1926 | "quick-lru": { 1927 | "version": "5.1.1", 1928 | "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", 1929 | "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", 1930 | "dev": true 1931 | }, 1932 | "react": { 1933 | "version": "18.1.0", 1934 | "resolved": "https://registry.npmjs.org/react/-/react-18.1.0.tgz", 1935 | "integrity": "sha512-4oL8ivCz5ZEPyclFQXaNksK3adutVS8l2xzZU0cqEFrE9Sb7fC0EFK5uEk74wIreL1DERyjvsU915j1pcT2uEQ==", 1936 | "requires": { 1937 | "loose-envify": "^1.1.0" 1938 | } 1939 | }, 1940 | "react-dom": { 1941 | "version": "18.1.0", 1942 | "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.1.0.tgz", 1943 | "integrity": "sha512-fU1Txz7Budmvamp7bshe4Zi32d0ll7ect+ccxNu9FlObT605GOEB8BfO4tmRJ39R5Zj831VCpvQ05QPBW5yb+w==", 1944 | "requires": { 1945 | "loose-envify": "^1.1.0", 1946 | "scheduler": "^0.22.0" 1947 | } 1948 | }, 1949 | "react-scroll-parallax": { 1950 | "version": "3.2.0", 1951 | "resolved": "https://registry.npmjs.org/react-scroll-parallax/-/react-scroll-parallax-3.2.0.tgz", 1952 | "integrity": "sha512-jZYFHbO+pE+IbNacHCpBKqw+WhGTA7t5WmXmQzC8i4DGdSYJ25d64R7ZD02K3CwMWdw5uKuc1LUZX/0OA/HCVA==", 1953 | "requires": { 1954 | "parallax-controller": "^1.5.0" 1955 | } 1956 | }, 1957 | "readdirp": { 1958 | "version": "3.6.0", 1959 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", 1960 | "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", 1961 | "dev": true, 1962 | "requires": { 1963 | "picomatch": "^2.2.1" 1964 | } 1965 | }, 1966 | "resolve": { 1967 | "version": "1.22.0", 1968 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", 1969 | "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", 1970 | "dev": true, 1971 | "requires": { 1972 | "is-core-module": "^2.8.1", 1973 | "path-parse": "^1.0.7", 1974 | "supports-preserve-symlinks-flag": "^1.0.0" 1975 | } 1976 | }, 1977 | "reusify": { 1978 | "version": "1.0.4", 1979 | "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", 1980 | "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", 1981 | "dev": true 1982 | }, 1983 | "run-parallel": { 1984 | "version": "1.2.0", 1985 | "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", 1986 | "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", 1987 | "dev": true, 1988 | "requires": { 1989 | "queue-microtask": "^1.2.2" 1990 | } 1991 | }, 1992 | "scheduler": { 1993 | "version": "0.22.0", 1994 | "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.22.0.tgz", 1995 | "integrity": "sha512-6QAm1BgQI88NPYymgGQLCZgvep4FyePDWFpXVK+zNSUgHwlqpJy8VEh8Et0KxTACS4VWwMousBElAZOH9nkkoQ==", 1996 | "requires": { 1997 | "loose-envify": "^1.1.0" 1998 | } 1999 | }, 2000 | "source-map-js": { 2001 | "version": "1.0.2", 2002 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", 2003 | "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" 2004 | }, 2005 | "styled-jsx": { 2006 | "version": "5.0.2", 2007 | "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.0.2.tgz", 2008 | "integrity": "sha512-LqPQrbBh3egD57NBcHET4qcgshPks+yblyhPlH2GY8oaDgKs8SK4C3dBh3oSJjgzJ3G5t1SYEZGHkP+QEpX9EQ==", 2009 | "requires": {} 2010 | }, 2011 | "supports-preserve-symlinks-flag": { 2012 | "version": "1.0.0", 2013 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", 2014 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", 2015 | "dev": true 2016 | }, 2017 | "tailwindcss": { 2018 | "version": "3.0.24", 2019 | "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.0.24.tgz", 2020 | "integrity": "sha512-H3uMmZNWzG6aqmg9q07ZIRNIawoiEcNFKDfL+YzOPuPsXuDXxJxB9icqzLgdzKNwjG3SAro2h9SYav8ewXNgig==", 2021 | "dev": true, 2022 | "requires": { 2023 | "arg": "^5.0.1", 2024 | "chokidar": "^3.5.3", 2025 | "color-name": "^1.1.4", 2026 | "detective": "^5.2.0", 2027 | "didyoumean": "^1.2.2", 2028 | "dlv": "^1.1.3", 2029 | "fast-glob": "^3.2.11", 2030 | "glob-parent": "^6.0.2", 2031 | "is-glob": "^4.0.3", 2032 | "lilconfig": "^2.0.5", 2033 | "normalize-path": "^3.0.0", 2034 | "object-hash": "^3.0.0", 2035 | "picocolors": "^1.0.0", 2036 | "postcss": "^8.4.12", 2037 | "postcss-js": "^4.0.0", 2038 | "postcss-load-config": "^3.1.4", 2039 | "postcss-nested": "5.0.6", 2040 | "postcss-selector-parser": "^6.0.10", 2041 | "postcss-value-parser": "^4.2.0", 2042 | "quick-lru": "^5.1.1", 2043 | "resolve": "^1.22.0" 2044 | } 2045 | }, 2046 | "to-regex-range": { 2047 | "version": "5.0.1", 2048 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", 2049 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", 2050 | "dev": true, 2051 | "requires": { 2052 | "is-number": "^7.0.0" 2053 | } 2054 | }, 2055 | "typescript": { 2056 | "version": "4.7.2", 2057 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.2.tgz", 2058 | "integrity": "sha512-Mamb1iX2FDUpcTRzltPxgWMKy3fhg0TN378ylbktPGPK/99KbDtMQ4W1hwgsbPAsG3a0xKa1vmw4VKZQbkvz5A==", 2059 | "dev": true 2060 | }, 2061 | "util-deprecate": { 2062 | "version": "1.0.2", 2063 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 2064 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", 2065 | "dev": true 2066 | }, 2067 | "xtend": { 2068 | "version": "4.0.2", 2069 | "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", 2070 | "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", 2071 | "dev": true 2072 | }, 2073 | "yaml": { 2074 | "version": "1.10.2", 2075 | "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", 2076 | "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", 2077 | "dev": true 2078 | } 2079 | } 2080 | } 2081 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "scripts": { 4 | "dev": "next dev", 5 | "build": "next build", 6 | "start": "next start" 7 | }, 8 | "dependencies": { 9 | "next": "latest", 10 | "react": "18.1.0", 11 | "react-dom": "18.1.0", 12 | "react-scroll-parallax": "^3.2.0" 13 | }, 14 | "devDependencies": { 15 | "@types/node": "17.0.35", 16 | "@types/react": "18.0.9", 17 | "@types/react-dom": "18.0.5", 18 | "autoprefixer": "^10.4.7", 19 | "postcss": "^8.4.14", 20 | "tailwindcss": "^3.0.24", 21 | "typescript": "4.7.2" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /pages/_app.js: -------------------------------------------------------------------------------- 1 | import '../styles/globals.css' 2 | import { ParallaxProvider } from 'react-scroll-parallax' 3 | 4 | function MyApp({ Component, pageProps }) { 5 | return ( 6 | 7 | 8 | 9 | ) 10 | } 11 | 12 | export default MyApp 13 | -------------------------------------------------------------------------------- /pages/api/hello.ts: -------------------------------------------------------------------------------- 1 | // Next.js API route support: https://nextjs.org/docs/api-routes/introduction 2 | import type { NextApiRequest, NextApiResponse } from 'next' 3 | 4 | type Data = { 5 | name: string 6 | } 7 | 8 | export default function handler( 9 | req: NextApiRequest, 10 | res: NextApiResponse 11 | ) { 12 | res.status(200).json({ name: 'John Doe' }) 13 | } 14 | -------------------------------------------------------------------------------- /pages/index.js: -------------------------------------------------------------------------------- 1 | import { useParallax } from "react-scroll-parallax"; 2 | import React, { useRef } from "react"; 3 | import Image from "next/image"; 4 | 5 | const index = () => { 6 | const target = useRef(null); 7 | const train = useParallax({ 8 | speed: 500, 9 | targetElement: target.current, 10 | }) 11 | 12 | const cloud = useParallax({ 13 | speed: 200, 14 | targetElement: target.current, 15 | }) 16 | 17 | return ( 18 |
24 |
25 | 26 |
27 |
33 | 34 |
35 |
36 | 37 |
38 |
39 | ); 40 | } 41 | 42 | export default index; -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | } 7 | -------------------------------------------------------------------------------- /prettier.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | singleQuote: true, 3 | semi: false, 4 | } 5 | -------------------------------------------------------------------------------- /public/Cloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyctonio/yt-parallax-tutorial/e57567b788e0ddb251d37d4ad9ba017184cd13e0/public/Cloud.png -------------------------------------------------------------------------------- /public/Scene.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyctonio/yt-parallax-tutorial/e57567b788e0ddb251d37d4ad9ba017184cd13e0/public/Scene.png -------------------------------------------------------------------------------- /public/Sun.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyctonio/yt-parallax-tutorial/e57567b788e0ddb251d37d4ad9ba017184cd13e0/public/Sun.png -------------------------------------------------------------------------------- /public/Train.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyctonio/yt-parallax-tutorial/e57567b788e0ddb251d37d4ad9ba017184cd13e0/public/Train.png -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nyctonio/yt-parallax-tutorial/e57567b788e0ddb251d37d4ad9ba017184cd13e0/public/favicon.ico -------------------------------------------------------------------------------- /public/vercel.svg: -------------------------------------------------------------------------------- 1 | 3 | 4 | -------------------------------------------------------------------------------- /styles/globals.css: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; 4 | -------------------------------------------------------------------------------- /tailwind.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | content: [ 3 | './pages/**/*.{js,ts,jsx,tsx}', 4 | './components/**/*.{js,ts,jsx,tsx}', 5 | ], 6 | theme: { 7 | extend: {}, 8 | }, 9 | plugins: [], 10 | } 11 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es5", 4 | "lib": [ 5 | "dom", 6 | "dom.iterable", 7 | "esnext" 8 | ], 9 | "allowJs": true, 10 | "skipLibCheck": true, 11 | "strict": true, 12 | "forceConsistentCasingInFileNames": true, 13 | "noEmit": true, 14 | "esModuleInterop": true, 15 | "module": "esnext", 16 | "moduleResolution": "node", 17 | "resolveJsonModule": true, 18 | "isolatedModules": true, 19 | "jsx": "preserve", 20 | "incremental": true 21 | }, 22 | "include": [ 23 | "next-env.d.ts", 24 | "**/*.ts", 25 | "**/*.tsx", 26 | "pages/index.js", 27 | "pages/_app.js" 28 | ], 29 | "exclude": [ 30 | "node_modules" 31 | ] 32 | } --------------------------------------------------------------------------------