├── .env ├── .gitignore ├── index.html ├── package-lock.json ├── package.json ├── src ├── App.css ├── App.jsx ├── components │ ├── MovieCard.jsx │ ├── Navbar.css │ └── Navbar.jsx ├── favicon.svg ├── index.css ├── logo.svg ├── main.jsx └── pages │ ├── Home.jsx │ ├── Movie.css │ ├── Movie.jsx │ ├── MoviesGrid.css │ └── Search.jsx └── vite.config.js /.env: -------------------------------------------------------------------------------- 1 | VITE_API_KEY=api_key=8ed200f50a6942ca5bc8b5cdec27ff22 2 | VITE_API=https://api.themoviedb.org/3/movie/ 3 | VITE_SEARCH=https://api.themoviedb.org/3/search/movie 4 | VITE_IMG=https://image.tmdb.org/t/p/w500/ 5 | 6 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Vite App 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "movie_lib", 3 | "version": "0.0.0", 4 | "lockfileVersion": 2, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "movie_lib", 9 | "version": "0.0.0", 10 | "dependencies": { 11 | "react": "^18.0.0", 12 | "react-dom": "^18.0.0", 13 | "react-icons": "^4.4.0", 14 | "react-router-dom": "^6.3.0" 15 | }, 16 | "devDependencies": { 17 | "@types/react": "^18.0.0", 18 | "@types/react-dom": "^18.0.0", 19 | "@vitejs/plugin-react": "^1.3.0", 20 | "vite": "^2.9.9" 21 | } 22 | }, 23 | "node_modules/@ampproject/remapping": { 24 | "version": "2.2.0", 25 | "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", 26 | "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", 27 | "dev": true, 28 | "dependencies": { 29 | "@jridgewell/gen-mapping": "^0.1.0", 30 | "@jridgewell/trace-mapping": "^0.3.9" 31 | }, 32 | "engines": { 33 | "node": ">=6.0.0" 34 | } 35 | }, 36 | "node_modules/@babel/code-frame": { 37 | "version": "7.18.6", 38 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", 39 | "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", 40 | "dev": true, 41 | "dependencies": { 42 | "@babel/highlight": "^7.18.6" 43 | }, 44 | "engines": { 45 | "node": ">=6.9.0" 46 | } 47 | }, 48 | "node_modules/@babel/compat-data": { 49 | "version": "7.18.6", 50 | "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.6.tgz", 51 | "integrity": "sha512-tzulrgDT0QD6U7BJ4TKVk2SDDg7wlP39P9yAx1RfLy7vP/7rsDRlWVfbWxElslu56+r7QOhB2NSDsabYYruoZQ==", 52 | "dev": true, 53 | "engines": { 54 | "node": ">=6.9.0" 55 | } 56 | }, 57 | "node_modules/@babel/core": { 58 | "version": "7.18.6", 59 | "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.6.tgz", 60 | "integrity": "sha512-cQbWBpxcbbs/IUredIPkHiAGULLV8iwgNRMFzvbhEXISp4f3rUUXE5+TIw6KwUWUR3DwyI6gmBRnmAtYaWehwQ==", 61 | "dev": true, 62 | "dependencies": { 63 | "@ampproject/remapping": "^2.1.0", 64 | "@babel/code-frame": "^7.18.6", 65 | "@babel/generator": "^7.18.6", 66 | "@babel/helper-compilation-targets": "^7.18.6", 67 | "@babel/helper-module-transforms": "^7.18.6", 68 | "@babel/helpers": "^7.18.6", 69 | "@babel/parser": "^7.18.6", 70 | "@babel/template": "^7.18.6", 71 | "@babel/traverse": "^7.18.6", 72 | "@babel/types": "^7.18.6", 73 | "convert-source-map": "^1.7.0", 74 | "debug": "^4.1.0", 75 | "gensync": "^1.0.0-beta.2", 76 | "json5": "^2.2.1", 77 | "semver": "^6.3.0" 78 | }, 79 | "engines": { 80 | "node": ">=6.9.0" 81 | }, 82 | "funding": { 83 | "type": "opencollective", 84 | "url": "https://opencollective.com/babel" 85 | } 86 | }, 87 | "node_modules/@babel/generator": { 88 | "version": "7.18.7", 89 | "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.7.tgz", 90 | "integrity": "sha512-shck+7VLlY72a2w9c3zYWuE1pwOKEiQHV7GTUbSnhyl5eu3i04t30tBY82ZRWrDfo3gkakCFtevExnxbkf2a3A==", 91 | "dev": true, 92 | "dependencies": { 93 | "@babel/types": "^7.18.7", 94 | "@jridgewell/gen-mapping": "^0.3.2", 95 | "jsesc": "^2.5.1" 96 | }, 97 | "engines": { 98 | "node": ">=6.9.0" 99 | } 100 | }, 101 | "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { 102 | "version": "0.3.2", 103 | "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", 104 | "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", 105 | "dev": true, 106 | "dependencies": { 107 | "@jridgewell/set-array": "^1.0.1", 108 | "@jridgewell/sourcemap-codec": "^1.4.10", 109 | "@jridgewell/trace-mapping": "^0.3.9" 110 | }, 111 | "engines": { 112 | "node": ">=6.0.0" 113 | } 114 | }, 115 | "node_modules/@babel/helper-annotate-as-pure": { 116 | "version": "7.18.6", 117 | "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", 118 | "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", 119 | "dev": true, 120 | "dependencies": { 121 | "@babel/types": "^7.18.6" 122 | }, 123 | "engines": { 124 | "node": ">=6.9.0" 125 | } 126 | }, 127 | "node_modules/@babel/helper-compilation-targets": { 128 | "version": "7.18.6", 129 | "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.6.tgz", 130 | "integrity": "sha512-vFjbfhNCzqdeAtZflUFrG5YIFqGTqsctrtkZ1D/NB0mDW9TwW3GmmUepYY4G9wCET5rY5ugz4OGTcLd614IzQg==", 131 | "dev": true, 132 | "dependencies": { 133 | "@babel/compat-data": "^7.18.6", 134 | "@babel/helper-validator-option": "^7.18.6", 135 | "browserslist": "^4.20.2", 136 | "semver": "^6.3.0" 137 | }, 138 | "engines": { 139 | "node": ">=6.9.0" 140 | }, 141 | "peerDependencies": { 142 | "@babel/core": "^7.0.0" 143 | } 144 | }, 145 | "node_modules/@babel/helper-environment-visitor": { 146 | "version": "7.18.6", 147 | "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.6.tgz", 148 | "integrity": "sha512-8n6gSfn2baOY+qlp+VSzsosjCVGFqWKmDF0cCWOybh52Dw3SEyoWR1KrhMJASjLwIEkkAufZ0xvr+SxLHSpy2Q==", 149 | "dev": true, 150 | "engines": { 151 | "node": ">=6.9.0" 152 | } 153 | }, 154 | "node_modules/@babel/helper-function-name": { 155 | "version": "7.18.6", 156 | "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.6.tgz", 157 | "integrity": "sha512-0mWMxV1aC97dhjCah5U5Ua7668r5ZmSC2DLfH2EZnf9c3/dHZKiFa5pRLMH5tjSl471tY6496ZWk/kjNONBxhw==", 158 | "dev": true, 159 | "dependencies": { 160 | "@babel/template": "^7.18.6", 161 | "@babel/types": "^7.18.6" 162 | }, 163 | "engines": { 164 | "node": ">=6.9.0" 165 | } 166 | }, 167 | "node_modules/@babel/helper-hoist-variables": { 168 | "version": "7.18.6", 169 | "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", 170 | "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", 171 | "dev": true, 172 | "dependencies": { 173 | "@babel/types": "^7.18.6" 174 | }, 175 | "engines": { 176 | "node": ">=6.9.0" 177 | } 178 | }, 179 | "node_modules/@babel/helper-module-imports": { 180 | "version": "7.18.6", 181 | "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", 182 | "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", 183 | "dev": true, 184 | "dependencies": { 185 | "@babel/types": "^7.18.6" 186 | }, 187 | "engines": { 188 | "node": ">=6.9.0" 189 | } 190 | }, 191 | "node_modules/@babel/helper-module-transforms": { 192 | "version": "7.18.6", 193 | "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.6.tgz", 194 | "integrity": "sha512-L//phhB4al5uucwzlimruukHB3jRd5JGClwRMD/ROrVjXfLqovYnvQrK/JK36WYyVwGGO7OD3kMyVTjx+WVPhw==", 195 | "dev": true, 196 | "dependencies": { 197 | "@babel/helper-environment-visitor": "^7.18.6", 198 | "@babel/helper-module-imports": "^7.18.6", 199 | "@babel/helper-simple-access": "^7.18.6", 200 | "@babel/helper-split-export-declaration": "^7.18.6", 201 | "@babel/helper-validator-identifier": "^7.18.6", 202 | "@babel/template": "^7.18.6", 203 | "@babel/traverse": "^7.18.6", 204 | "@babel/types": "^7.18.6" 205 | }, 206 | "engines": { 207 | "node": ">=6.9.0" 208 | } 209 | }, 210 | "node_modules/@babel/helper-plugin-utils": { 211 | "version": "7.18.6", 212 | "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.6.tgz", 213 | "integrity": "sha512-gvZnm1YAAxh13eJdkb9EWHBnF3eAub3XTLCZEehHT2kWxiKVRL64+ae5Y6Ivne0mVHmMYKT+xWgZO+gQhuLUBg==", 214 | "dev": true, 215 | "engines": { 216 | "node": ">=6.9.0" 217 | } 218 | }, 219 | "node_modules/@babel/helper-simple-access": { 220 | "version": "7.18.6", 221 | "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", 222 | "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", 223 | "dev": true, 224 | "dependencies": { 225 | "@babel/types": "^7.18.6" 226 | }, 227 | "engines": { 228 | "node": ">=6.9.0" 229 | } 230 | }, 231 | "node_modules/@babel/helper-split-export-declaration": { 232 | "version": "7.18.6", 233 | "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", 234 | "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", 235 | "dev": true, 236 | "dependencies": { 237 | "@babel/types": "^7.18.6" 238 | }, 239 | "engines": { 240 | "node": ">=6.9.0" 241 | } 242 | }, 243 | "node_modules/@babel/helper-validator-identifier": { 244 | "version": "7.18.6", 245 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", 246 | "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", 247 | "dev": true, 248 | "engines": { 249 | "node": ">=6.9.0" 250 | } 251 | }, 252 | "node_modules/@babel/helper-validator-option": { 253 | "version": "7.18.6", 254 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", 255 | "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", 256 | "dev": true, 257 | "engines": { 258 | "node": ">=6.9.0" 259 | } 260 | }, 261 | "node_modules/@babel/helpers": { 262 | "version": "7.18.6", 263 | "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.6.tgz", 264 | "integrity": "sha512-vzSiiqbQOghPngUYt/zWGvK3LAsPhz55vc9XNN0xAl2gV4ieShI2OQli5duxWHD+72PZPTKAcfcZDE1Cwc5zsQ==", 265 | "dev": true, 266 | "dependencies": { 267 | "@babel/template": "^7.18.6", 268 | "@babel/traverse": "^7.18.6", 269 | "@babel/types": "^7.18.6" 270 | }, 271 | "engines": { 272 | "node": ">=6.9.0" 273 | } 274 | }, 275 | "node_modules/@babel/highlight": { 276 | "version": "7.18.6", 277 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", 278 | "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", 279 | "dev": true, 280 | "dependencies": { 281 | "@babel/helper-validator-identifier": "^7.18.6", 282 | "chalk": "^2.0.0", 283 | "js-tokens": "^4.0.0" 284 | }, 285 | "engines": { 286 | "node": ">=6.9.0" 287 | } 288 | }, 289 | "node_modules/@babel/parser": { 290 | "version": "7.18.6", 291 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.6.tgz", 292 | "integrity": "sha512-uQVSa9jJUe/G/304lXspfWVpKpK4euFLgGiMQFOCpM/bgcAdeoHwi/OQz23O9GK2osz26ZiXRRV9aV+Yl1O8tw==", 293 | "dev": true, 294 | "bin": { 295 | "parser": "bin/babel-parser.js" 296 | }, 297 | "engines": { 298 | "node": ">=6.0.0" 299 | } 300 | }, 301 | "node_modules/@babel/plugin-syntax-jsx": { 302 | "version": "7.18.6", 303 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", 304 | "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", 305 | "dev": true, 306 | "dependencies": { 307 | "@babel/helper-plugin-utils": "^7.18.6" 308 | }, 309 | "engines": { 310 | "node": ">=6.9.0" 311 | }, 312 | "peerDependencies": { 313 | "@babel/core": "^7.0.0-0" 314 | } 315 | }, 316 | "node_modules/@babel/plugin-transform-react-jsx": { 317 | "version": "7.18.6", 318 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.18.6.tgz", 319 | "integrity": "sha512-Mz7xMPxoy9kPS/JScj6fJs03TZ/fZ1dJPlMjRAgTaxaS0fUBk8FV/A2rRgfPsVCZqALNwMexD+0Uaf5zlcKPpw==", 320 | "dev": true, 321 | "dependencies": { 322 | "@babel/helper-annotate-as-pure": "^7.18.6", 323 | "@babel/helper-module-imports": "^7.18.6", 324 | "@babel/helper-plugin-utils": "^7.18.6", 325 | "@babel/plugin-syntax-jsx": "^7.18.6", 326 | "@babel/types": "^7.18.6" 327 | }, 328 | "engines": { 329 | "node": ">=6.9.0" 330 | }, 331 | "peerDependencies": { 332 | "@babel/core": "^7.0.0-0" 333 | } 334 | }, 335 | "node_modules/@babel/plugin-transform-react-jsx-development": { 336 | "version": "7.18.6", 337 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz", 338 | "integrity": "sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==", 339 | "dev": true, 340 | "dependencies": { 341 | "@babel/plugin-transform-react-jsx": "^7.18.6" 342 | }, 343 | "engines": { 344 | "node": ">=6.9.0" 345 | }, 346 | "peerDependencies": { 347 | "@babel/core": "^7.0.0-0" 348 | } 349 | }, 350 | "node_modules/@babel/plugin-transform-react-jsx-self": { 351 | "version": "7.18.6", 352 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.18.6.tgz", 353 | "integrity": "sha512-A0LQGx4+4Jv7u/tWzoJF7alZwnBDQd6cGLh9P+Ttk4dpiL+J5p7NSNv/9tlEFFJDq3kjxOavWmbm6t0Gk+A3Ig==", 354 | "dev": true, 355 | "dependencies": { 356 | "@babel/helper-plugin-utils": "^7.18.6" 357 | }, 358 | "engines": { 359 | "node": ">=6.9.0" 360 | }, 361 | "peerDependencies": { 362 | "@babel/core": "^7.0.0-0" 363 | } 364 | }, 365 | "node_modules/@babel/plugin-transform-react-jsx-source": { 366 | "version": "7.18.6", 367 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.18.6.tgz", 368 | "integrity": "sha512-utZmlASneDfdaMh0m/WausbjUjEdGrQJz0vFK93d7wD3xf5wBtX219+q6IlCNZeguIcxS2f/CvLZrlLSvSHQXw==", 369 | "dev": true, 370 | "dependencies": { 371 | "@babel/helper-plugin-utils": "^7.18.6" 372 | }, 373 | "engines": { 374 | "node": ">=6.9.0" 375 | }, 376 | "peerDependencies": { 377 | "@babel/core": "^7.0.0-0" 378 | } 379 | }, 380 | "node_modules/@babel/runtime": { 381 | "version": "7.18.6", 382 | "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.6.tgz", 383 | "integrity": "sha512-t9wi7/AW6XtKahAe20Yw0/mMljKq0B1r2fPdvaAdV/KPDZewFXdaaa6K7lxmZBZ8FBNpCiAT6iHPmd6QO9bKfQ==", 384 | "dependencies": { 385 | "regenerator-runtime": "^0.13.4" 386 | }, 387 | "engines": { 388 | "node": ">=6.9.0" 389 | } 390 | }, 391 | "node_modules/@babel/template": { 392 | "version": "7.18.6", 393 | "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.6.tgz", 394 | "integrity": "sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw==", 395 | "dev": true, 396 | "dependencies": { 397 | "@babel/code-frame": "^7.18.6", 398 | "@babel/parser": "^7.18.6", 399 | "@babel/types": "^7.18.6" 400 | }, 401 | "engines": { 402 | "node": ">=6.9.0" 403 | } 404 | }, 405 | "node_modules/@babel/traverse": { 406 | "version": "7.18.6", 407 | "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.6.tgz", 408 | "integrity": "sha512-zS/OKyqmD7lslOtFqbscH6gMLFYOfG1YPqCKfAW5KrTeolKqvB8UelR49Fpr6y93kYkW2Ik00mT1LOGiAGvizw==", 409 | "dev": true, 410 | "dependencies": { 411 | "@babel/code-frame": "^7.18.6", 412 | "@babel/generator": "^7.18.6", 413 | "@babel/helper-environment-visitor": "^7.18.6", 414 | "@babel/helper-function-name": "^7.18.6", 415 | "@babel/helper-hoist-variables": "^7.18.6", 416 | "@babel/helper-split-export-declaration": "^7.18.6", 417 | "@babel/parser": "^7.18.6", 418 | "@babel/types": "^7.18.6", 419 | "debug": "^4.1.0", 420 | "globals": "^11.1.0" 421 | }, 422 | "engines": { 423 | "node": ">=6.9.0" 424 | } 425 | }, 426 | "node_modules/@babel/types": { 427 | "version": "7.18.7", 428 | "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.7.tgz", 429 | "integrity": "sha512-QG3yxTcTIBoAcQmkCs+wAPYZhu7Dk9rXKacINfNbdJDNERTbLQbHGyVG8q/YGMPeCJRIhSY0+fTc5+xuh6WPSQ==", 430 | "dev": true, 431 | "dependencies": { 432 | "@babel/helper-validator-identifier": "^7.18.6", 433 | "to-fast-properties": "^2.0.0" 434 | }, 435 | "engines": { 436 | "node": ">=6.9.0" 437 | } 438 | }, 439 | "node_modules/@jridgewell/gen-mapping": { 440 | "version": "0.1.1", 441 | "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", 442 | "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", 443 | "dev": true, 444 | "dependencies": { 445 | "@jridgewell/set-array": "^1.0.0", 446 | "@jridgewell/sourcemap-codec": "^1.4.10" 447 | }, 448 | "engines": { 449 | "node": ">=6.0.0" 450 | } 451 | }, 452 | "node_modules/@jridgewell/resolve-uri": { 453 | "version": "3.0.8", 454 | "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.8.tgz", 455 | "integrity": "sha512-YK5G9LaddzGbcucK4c8h5tWFmMPBvRZ/uyWmN1/SbBdIvqGUdWGkJ5BAaccgs6XbzVLsqbPJrBSFwKv3kT9i7w==", 456 | "dev": true, 457 | "engines": { 458 | "node": ">=6.0.0" 459 | } 460 | }, 461 | "node_modules/@jridgewell/set-array": { 462 | "version": "1.1.2", 463 | "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", 464 | "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", 465 | "dev": true, 466 | "engines": { 467 | "node": ">=6.0.0" 468 | } 469 | }, 470 | "node_modules/@jridgewell/sourcemap-codec": { 471 | "version": "1.4.14", 472 | "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", 473 | "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", 474 | "dev": true 475 | }, 476 | "node_modules/@jridgewell/trace-mapping": { 477 | "version": "0.3.14", 478 | "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", 479 | "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", 480 | "dev": true, 481 | "dependencies": { 482 | "@jridgewell/resolve-uri": "^3.0.3", 483 | "@jridgewell/sourcemap-codec": "^1.4.10" 484 | } 485 | }, 486 | "node_modules/@rollup/pluginutils": { 487 | "version": "4.2.1", 488 | "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", 489 | "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", 490 | "dev": true, 491 | "dependencies": { 492 | "estree-walker": "^2.0.1", 493 | "picomatch": "^2.2.2" 494 | }, 495 | "engines": { 496 | "node": ">= 8.0.0" 497 | } 498 | }, 499 | "node_modules/@types/prop-types": { 500 | "version": "15.7.5", 501 | "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", 502 | "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==", 503 | "dev": true 504 | }, 505 | "node_modules/@types/react": { 506 | "version": "18.0.14", 507 | "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.14.tgz", 508 | "integrity": "sha512-x4gGuASSiWmo0xjDLpm5mPb52syZHJx02VKbqUKdLmKtAwIh63XClGsiTI1K6DO5q7ox4xAsQrU+Gl3+gGXF9Q==", 509 | "dev": true, 510 | "dependencies": { 511 | "@types/prop-types": "*", 512 | "@types/scheduler": "*", 513 | "csstype": "^3.0.2" 514 | } 515 | }, 516 | "node_modules/@types/react-dom": { 517 | "version": "18.0.5", 518 | "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.5.tgz", 519 | "integrity": "sha512-OWPWTUrY/NIrjsAPkAk1wW9LZeIjSvkXRhclsFO8CZcZGCOg2G0YZy4ft+rOyYxy8B7ui5iZzi9OkDebZ7/QSA==", 520 | "dev": true, 521 | "dependencies": { 522 | "@types/react": "*" 523 | } 524 | }, 525 | "node_modules/@types/scheduler": { 526 | "version": "0.16.2", 527 | "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", 528 | "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==", 529 | "dev": true 530 | }, 531 | "node_modules/@vitejs/plugin-react": { 532 | "version": "1.3.2", 533 | "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-1.3.2.tgz", 534 | "integrity": "sha512-aurBNmMo0kz1O4qRoY+FM4epSA39y3ShWGuqfLRA/3z0oEJAdtoSfgA3aO98/PCCHAqMaduLxIxErWrVKIFzXA==", 535 | "dev": true, 536 | "dependencies": { 537 | "@babel/core": "^7.17.10", 538 | "@babel/plugin-transform-react-jsx": "^7.17.3", 539 | "@babel/plugin-transform-react-jsx-development": "^7.16.7", 540 | "@babel/plugin-transform-react-jsx-self": "^7.16.7", 541 | "@babel/plugin-transform-react-jsx-source": "^7.16.7", 542 | "@rollup/pluginutils": "^4.2.1", 543 | "react-refresh": "^0.13.0", 544 | "resolve": "^1.22.0" 545 | }, 546 | "engines": { 547 | "node": ">=12.0.0" 548 | } 549 | }, 550 | "node_modules/ansi-styles": { 551 | "version": "3.2.1", 552 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 553 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 554 | "dev": true, 555 | "dependencies": { 556 | "color-convert": "^1.9.0" 557 | }, 558 | "engines": { 559 | "node": ">=4" 560 | } 561 | }, 562 | "node_modules/browserslist": { 563 | "version": "4.21.1", 564 | "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.1.tgz", 565 | "integrity": "sha512-Nq8MFCSrnJXSc88yliwlzQe3qNe3VntIjhsArW9IJOEPSHNx23FalwApUVbzAWABLhYJJ7y8AynWI/XM8OdfjQ==", 566 | "dev": true, 567 | "funding": [ 568 | { 569 | "type": "opencollective", 570 | "url": "https://opencollective.com/browserslist" 571 | }, 572 | { 573 | "type": "tidelift", 574 | "url": "https://tidelift.com/funding/github/npm/browserslist" 575 | } 576 | ], 577 | "dependencies": { 578 | "caniuse-lite": "^1.0.30001359", 579 | "electron-to-chromium": "^1.4.172", 580 | "node-releases": "^2.0.5", 581 | "update-browserslist-db": "^1.0.4" 582 | }, 583 | "bin": { 584 | "browserslist": "cli.js" 585 | }, 586 | "engines": { 587 | "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" 588 | } 589 | }, 590 | "node_modules/caniuse-lite": { 591 | "version": "1.0.30001362", 592 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001362.tgz", 593 | "integrity": "sha512-PFykHuC7BQTzCGQFaV6wD8IDRM3HpI83BXr99nNJhoOyDufgSuKlt0QVlWYt5ZJtEYFeuNVF5QY3kJcu8hVFjQ==", 594 | "dev": true, 595 | "funding": [ 596 | { 597 | "type": "opencollective", 598 | "url": "https://opencollective.com/browserslist" 599 | }, 600 | { 601 | "type": "tidelift", 602 | "url": "https://tidelift.com/funding/github/npm/caniuse-lite" 603 | } 604 | ] 605 | }, 606 | "node_modules/chalk": { 607 | "version": "2.4.2", 608 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 609 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 610 | "dev": true, 611 | "dependencies": { 612 | "ansi-styles": "^3.2.1", 613 | "escape-string-regexp": "^1.0.5", 614 | "supports-color": "^5.3.0" 615 | }, 616 | "engines": { 617 | "node": ">=4" 618 | } 619 | }, 620 | "node_modules/color-convert": { 621 | "version": "1.9.3", 622 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 623 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 624 | "dev": true, 625 | "dependencies": { 626 | "color-name": "1.1.3" 627 | } 628 | }, 629 | "node_modules/color-name": { 630 | "version": "1.1.3", 631 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 632 | "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", 633 | "dev": true 634 | }, 635 | "node_modules/convert-source-map": { 636 | "version": "1.8.0", 637 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", 638 | "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", 639 | "dev": true, 640 | "dependencies": { 641 | "safe-buffer": "~5.1.1" 642 | } 643 | }, 644 | "node_modules/csstype": { 645 | "version": "3.1.0", 646 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.0.tgz", 647 | "integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==", 648 | "dev": true 649 | }, 650 | "node_modules/debug": { 651 | "version": "4.3.4", 652 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", 653 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", 654 | "dev": true, 655 | "dependencies": { 656 | "ms": "2.1.2" 657 | }, 658 | "engines": { 659 | "node": ">=6.0" 660 | }, 661 | "peerDependenciesMeta": { 662 | "supports-color": { 663 | "optional": true 664 | } 665 | } 666 | }, 667 | "node_modules/electron-to-chromium": { 668 | "version": "1.4.177", 669 | "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.177.tgz", 670 | "integrity": "sha512-FYPir3NSBEGexSZUEeht81oVhHfLFl6mhUKSkjHN/iB/TwEIt/WHQrqVGfTLN5gQxwJCQkIJBe05eOXjI7omgg==", 671 | "dev": true 672 | }, 673 | "node_modules/esbuild": { 674 | "version": "0.14.48", 675 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.48.tgz", 676 | "integrity": "sha512-w6N1Yn5MtqK2U1/WZTX9ZqUVb8IOLZkZ5AdHkT6x3cHDMVsYWC7WPdiLmx19w3i4Rwzy5LqsEMtVihG3e4rFzA==", 677 | "dev": true, 678 | "hasInstallScript": true, 679 | "bin": { 680 | "esbuild": "bin/esbuild" 681 | }, 682 | "engines": { 683 | "node": ">=12" 684 | }, 685 | "optionalDependencies": { 686 | "esbuild-android-64": "0.14.48", 687 | "esbuild-android-arm64": "0.14.48", 688 | "esbuild-darwin-64": "0.14.48", 689 | "esbuild-darwin-arm64": "0.14.48", 690 | "esbuild-freebsd-64": "0.14.48", 691 | "esbuild-freebsd-arm64": "0.14.48", 692 | "esbuild-linux-32": "0.14.48", 693 | "esbuild-linux-64": "0.14.48", 694 | "esbuild-linux-arm": "0.14.48", 695 | "esbuild-linux-arm64": "0.14.48", 696 | "esbuild-linux-mips64le": "0.14.48", 697 | "esbuild-linux-ppc64le": "0.14.48", 698 | "esbuild-linux-riscv64": "0.14.48", 699 | "esbuild-linux-s390x": "0.14.48", 700 | "esbuild-netbsd-64": "0.14.48", 701 | "esbuild-openbsd-64": "0.14.48", 702 | "esbuild-sunos-64": "0.14.48", 703 | "esbuild-windows-32": "0.14.48", 704 | "esbuild-windows-64": "0.14.48", 705 | "esbuild-windows-arm64": "0.14.48" 706 | } 707 | }, 708 | "node_modules/esbuild-android-64": { 709 | "version": "0.14.48", 710 | "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.48.tgz", 711 | "integrity": "sha512-3aMjboap/kqwCUpGWIjsk20TtxVoKck8/4Tu19rubh7t5Ra0Yrpg30Mt1QXXlipOazrEceGeWurXKeFJgkPOUg==", 712 | "cpu": [ 713 | "x64" 714 | ], 715 | "dev": true, 716 | "optional": true, 717 | "os": [ 718 | "android" 719 | ], 720 | "engines": { 721 | "node": ">=12" 722 | } 723 | }, 724 | "node_modules/esbuild-android-arm64": { 725 | "version": "0.14.48", 726 | "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.48.tgz", 727 | "integrity": "sha512-vptI3K0wGALiDq+EvRuZotZrJqkYkN5282iAfcffjI5lmGG9G1ta/CIVauhY42MBXwEgDJkweiDcDMRLzBZC4g==", 728 | "cpu": [ 729 | "arm64" 730 | ], 731 | "dev": true, 732 | "optional": true, 733 | "os": [ 734 | "android" 735 | ], 736 | "engines": { 737 | "node": ">=12" 738 | } 739 | }, 740 | "node_modules/esbuild-darwin-64": { 741 | "version": "0.14.48", 742 | "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.48.tgz", 743 | "integrity": "sha512-gGQZa4+hab2Va/Zww94YbshLuWteyKGD3+EsVon8EWTWhnHFRm5N9NbALNbwi/7hQ/hM1Zm4FuHg+k6BLsl5UA==", 744 | "cpu": [ 745 | "x64" 746 | ], 747 | "dev": true, 748 | "optional": true, 749 | "os": [ 750 | "darwin" 751 | ], 752 | "engines": { 753 | "node": ">=12" 754 | } 755 | }, 756 | "node_modules/esbuild-darwin-arm64": { 757 | "version": "0.14.48", 758 | "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.48.tgz", 759 | "integrity": "sha512-bFjnNEXjhZT+IZ8RvRGNJthLWNHV5JkCtuOFOnjvo5pC0sk2/QVk0Qc06g2PV3J0TcU6kaPC3RN9yy9w2PSLEA==", 760 | "cpu": [ 761 | "arm64" 762 | ], 763 | "dev": true, 764 | "optional": true, 765 | "os": [ 766 | "darwin" 767 | ], 768 | "engines": { 769 | "node": ">=12" 770 | } 771 | }, 772 | "node_modules/esbuild-freebsd-64": { 773 | "version": "0.14.48", 774 | "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.48.tgz", 775 | "integrity": "sha512-1NOlwRxmOsnPcWOGTB10JKAkYSb2nue0oM1AfHWunW/mv3wERfJmnYlGzL3UAOIUXZqW8GeA2mv+QGwq7DToqA==", 776 | "cpu": [ 777 | "x64" 778 | ], 779 | "dev": true, 780 | "optional": true, 781 | "os": [ 782 | "freebsd" 783 | ], 784 | "engines": { 785 | "node": ">=12" 786 | } 787 | }, 788 | "node_modules/esbuild-freebsd-arm64": { 789 | "version": "0.14.48", 790 | "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.48.tgz", 791 | "integrity": "sha512-gXqKdO8wabVcYtluAbikDH2jhXp+Klq5oCD5qbVyUG6tFiGhrC9oczKq3vIrrtwcxDQqK6+HDYK8Zrd4bCA9Gw==", 792 | "cpu": [ 793 | "arm64" 794 | ], 795 | "dev": true, 796 | "optional": true, 797 | "os": [ 798 | "freebsd" 799 | ], 800 | "engines": { 801 | "node": ">=12" 802 | } 803 | }, 804 | "node_modules/esbuild-linux-32": { 805 | "version": "0.14.48", 806 | "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.48.tgz", 807 | "integrity": "sha512-ghGyDfS289z/LReZQUuuKq9KlTiTspxL8SITBFQFAFRA/IkIvDpnZnCAKTCjGXAmUqroMQfKJXMxyjJA69c/nQ==", 808 | "cpu": [ 809 | "ia32" 810 | ], 811 | "dev": true, 812 | "optional": true, 813 | "os": [ 814 | "linux" 815 | ], 816 | "engines": { 817 | "node": ">=12" 818 | } 819 | }, 820 | "node_modules/esbuild-linux-64": { 821 | "version": "0.14.48", 822 | "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.48.tgz", 823 | "integrity": "sha512-vni3p/gppLMVZLghI7oMqbOZdGmLbbKR23XFARKnszCIBpEMEDxOMNIKPmMItQrmH/iJrL1z8Jt2nynY0bE1ug==", 824 | "cpu": [ 825 | "x64" 826 | ], 827 | "dev": true, 828 | "optional": true, 829 | "os": [ 830 | "linux" 831 | ], 832 | "engines": { 833 | "node": ">=12" 834 | } 835 | }, 836 | "node_modules/esbuild-linux-arm": { 837 | "version": "0.14.48", 838 | "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.48.tgz", 839 | "integrity": "sha512-+VfSV7Akh1XUiDNXgqgY1cUP1i2vjI+BmlyXRfVz5AfV3jbpde8JTs5Q9sYgaoq5cWfuKfoZB/QkGOI+QcL1Tw==", 840 | "cpu": [ 841 | "arm" 842 | ], 843 | "dev": true, 844 | "optional": true, 845 | "os": [ 846 | "linux" 847 | ], 848 | "engines": { 849 | "node": ">=12" 850 | } 851 | }, 852 | "node_modules/esbuild-linux-arm64": { 853 | "version": "0.14.48", 854 | "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.48.tgz", 855 | "integrity": "sha512-3CFsOlpoxlKPRevEHq8aAntgYGYkE1N9yRYAcPyng/p4Wyx0tPR5SBYsxLKcgPB9mR8chHEhtWYz6EZ+H199Zw==", 856 | "cpu": [ 857 | "arm64" 858 | ], 859 | "dev": true, 860 | "optional": true, 861 | "os": [ 862 | "linux" 863 | ], 864 | "engines": { 865 | "node": ">=12" 866 | } 867 | }, 868 | "node_modules/esbuild-linux-mips64le": { 869 | "version": "0.14.48", 870 | "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.48.tgz", 871 | "integrity": "sha512-cs0uOiRlPp6ymknDnjajCgvDMSsLw5mST2UXh+ZIrXTj2Ifyf2aAP3Iw4DiqgnyYLV2O/v/yWBJx+WfmKEpNLA==", 872 | "cpu": [ 873 | "mips64el" 874 | ], 875 | "dev": true, 876 | "optional": true, 877 | "os": [ 878 | "linux" 879 | ], 880 | "engines": { 881 | "node": ">=12" 882 | } 883 | }, 884 | "node_modules/esbuild-linux-ppc64le": { 885 | "version": "0.14.48", 886 | "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.48.tgz", 887 | "integrity": "sha512-+2F0vJMkuI0Wie/wcSPDCqXvSFEELH7Jubxb7mpWrA/4NpT+/byjxDz0gG6R1WJoeDefcrMfpBx4GFNN1JQorQ==", 888 | "cpu": [ 889 | "ppc64" 890 | ], 891 | "dev": true, 892 | "optional": true, 893 | "os": [ 894 | "linux" 895 | ], 896 | "engines": { 897 | "node": ">=12" 898 | } 899 | }, 900 | "node_modules/esbuild-linux-riscv64": { 901 | "version": "0.14.48", 902 | "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.48.tgz", 903 | "integrity": "sha512-BmaK/GfEE+5F2/QDrIXteFGKnVHGxlnK9MjdVKMTfvtmudjY3k2t8NtlY4qemKSizc+QwyombGWTBDc76rxePA==", 904 | "cpu": [ 905 | "riscv64" 906 | ], 907 | "dev": true, 908 | "optional": true, 909 | "os": [ 910 | "linux" 911 | ], 912 | "engines": { 913 | "node": ">=12" 914 | } 915 | }, 916 | "node_modules/esbuild-linux-s390x": { 917 | "version": "0.14.48", 918 | "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.48.tgz", 919 | "integrity": "sha512-tndw/0B9jiCL+KWKo0TSMaUm5UWBLsfCKVdbfMlb3d5LeV9WbijZ8Ordia8SAYv38VSJWOEt6eDCdOx8LqkC4g==", 920 | "cpu": [ 921 | "s390x" 922 | ], 923 | "dev": true, 924 | "optional": true, 925 | "os": [ 926 | "linux" 927 | ], 928 | "engines": { 929 | "node": ">=12" 930 | } 931 | }, 932 | "node_modules/esbuild-netbsd-64": { 933 | "version": "0.14.48", 934 | "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.48.tgz", 935 | "integrity": "sha512-V9hgXfwf/T901Lr1wkOfoevtyNkrxmMcRHyticybBUHookznipMOHoF41Al68QBsqBxnITCEpjjd4yAos7z9Tw==", 936 | "cpu": [ 937 | "x64" 938 | ], 939 | "dev": true, 940 | "optional": true, 941 | "os": [ 942 | "netbsd" 943 | ], 944 | "engines": { 945 | "node": ">=12" 946 | } 947 | }, 948 | "node_modules/esbuild-openbsd-64": { 949 | "version": "0.14.48", 950 | "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.48.tgz", 951 | "integrity": "sha512-+IHf4JcbnnBl4T52egorXMatil/za0awqzg2Vy6FBgPcBpisDWT2sVz/tNdrK9kAqj+GZG/jZdrOkj7wsrNTKA==", 952 | "cpu": [ 953 | "x64" 954 | ], 955 | "dev": true, 956 | "optional": true, 957 | "os": [ 958 | "openbsd" 959 | ], 960 | "engines": { 961 | "node": ">=12" 962 | } 963 | }, 964 | "node_modules/esbuild-sunos-64": { 965 | "version": "0.14.48", 966 | "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.48.tgz", 967 | "integrity": "sha512-77m8bsr5wOpOWbGi9KSqDphcq6dFeJyun8TA+12JW/GAjyfTwVtOnN8DOt6DSPUfEV+ltVMNqtXUeTeMAxl5KA==", 968 | "cpu": [ 969 | "x64" 970 | ], 971 | "dev": true, 972 | "optional": true, 973 | "os": [ 974 | "sunos" 975 | ], 976 | "engines": { 977 | "node": ">=12" 978 | } 979 | }, 980 | "node_modules/esbuild-windows-32": { 981 | "version": "0.14.48", 982 | "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.48.tgz", 983 | "integrity": "sha512-EPgRuTPP8vK9maxpTGDe5lSoIBHGKO/AuxDncg5O3NkrPeLNdvvK8oywB0zGaAZXxYWfNNSHskvvDgmfVTguhg==", 984 | "cpu": [ 985 | "ia32" 986 | ], 987 | "dev": true, 988 | "optional": true, 989 | "os": [ 990 | "win32" 991 | ], 992 | "engines": { 993 | "node": ">=12" 994 | } 995 | }, 996 | "node_modules/esbuild-windows-64": { 997 | "version": "0.14.48", 998 | "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.48.tgz", 999 | "integrity": "sha512-YmpXjdT1q0b8ictSdGwH3M8VCoqPpK1/UArze3X199w6u8hUx3V8BhAi1WjbsfDYRBanVVtduAhh2sirImtAvA==", 1000 | "cpu": [ 1001 | "x64" 1002 | ], 1003 | "dev": true, 1004 | "optional": true, 1005 | "os": [ 1006 | "win32" 1007 | ], 1008 | "engines": { 1009 | "node": ">=12" 1010 | } 1011 | }, 1012 | "node_modules/esbuild-windows-arm64": { 1013 | "version": "0.14.48", 1014 | "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.48.tgz", 1015 | "integrity": "sha512-HHaOMCsCXp0rz5BT2crTka6MPWVno121NKApsGs/OIW5QC0ggC69YMGs1aJct9/9FSUF4A1xNE/cLvgB5svR4g==", 1016 | "cpu": [ 1017 | "arm64" 1018 | ], 1019 | "dev": true, 1020 | "optional": true, 1021 | "os": [ 1022 | "win32" 1023 | ], 1024 | "engines": { 1025 | "node": ">=12" 1026 | } 1027 | }, 1028 | "node_modules/escalade": { 1029 | "version": "3.1.1", 1030 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", 1031 | "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", 1032 | "dev": true, 1033 | "engines": { 1034 | "node": ">=6" 1035 | } 1036 | }, 1037 | "node_modules/escape-string-regexp": { 1038 | "version": "1.0.5", 1039 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 1040 | "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", 1041 | "dev": true, 1042 | "engines": { 1043 | "node": ">=0.8.0" 1044 | } 1045 | }, 1046 | "node_modules/estree-walker": { 1047 | "version": "2.0.2", 1048 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", 1049 | "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", 1050 | "dev": true 1051 | }, 1052 | "node_modules/fsevents": { 1053 | "version": "2.3.2", 1054 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", 1055 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", 1056 | "dev": true, 1057 | "hasInstallScript": true, 1058 | "optional": true, 1059 | "os": [ 1060 | "darwin" 1061 | ], 1062 | "engines": { 1063 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0" 1064 | } 1065 | }, 1066 | "node_modules/function-bind": { 1067 | "version": "1.1.1", 1068 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 1069 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 1070 | "dev": true 1071 | }, 1072 | "node_modules/gensync": { 1073 | "version": "1.0.0-beta.2", 1074 | "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", 1075 | "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", 1076 | "dev": true, 1077 | "engines": { 1078 | "node": ">=6.9.0" 1079 | } 1080 | }, 1081 | "node_modules/globals": { 1082 | "version": "11.12.0", 1083 | "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", 1084 | "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", 1085 | "dev": true, 1086 | "engines": { 1087 | "node": ">=4" 1088 | } 1089 | }, 1090 | "node_modules/has": { 1091 | "version": "1.0.3", 1092 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 1093 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 1094 | "dev": true, 1095 | "dependencies": { 1096 | "function-bind": "^1.1.1" 1097 | }, 1098 | "engines": { 1099 | "node": ">= 0.4.0" 1100 | } 1101 | }, 1102 | "node_modules/has-flag": { 1103 | "version": "3.0.0", 1104 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 1105 | "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", 1106 | "dev": true, 1107 | "engines": { 1108 | "node": ">=4" 1109 | } 1110 | }, 1111 | "node_modules/history": { 1112 | "version": "5.3.0", 1113 | "resolved": "https://registry.npmjs.org/history/-/history-5.3.0.tgz", 1114 | "integrity": "sha512-ZqaKwjjrAYUYfLG+htGaIIZ4nioX2L70ZUMIFysS3xvBsSG4x/n1V6TXV3N8ZYNuFGlDirFg32T7B6WOUPDYcQ==", 1115 | "dependencies": { 1116 | "@babel/runtime": "^7.7.6" 1117 | } 1118 | }, 1119 | "node_modules/is-core-module": { 1120 | "version": "2.9.0", 1121 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", 1122 | "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", 1123 | "dev": true, 1124 | "dependencies": { 1125 | "has": "^1.0.3" 1126 | }, 1127 | "funding": { 1128 | "url": "https://github.com/sponsors/ljharb" 1129 | } 1130 | }, 1131 | "node_modules/js-tokens": { 1132 | "version": "4.0.0", 1133 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 1134 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" 1135 | }, 1136 | "node_modules/jsesc": { 1137 | "version": "2.5.2", 1138 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", 1139 | "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", 1140 | "dev": true, 1141 | "bin": { 1142 | "jsesc": "bin/jsesc" 1143 | }, 1144 | "engines": { 1145 | "node": ">=4" 1146 | } 1147 | }, 1148 | "node_modules/json5": { 1149 | "version": "2.2.1", 1150 | "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", 1151 | "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", 1152 | "dev": true, 1153 | "bin": { 1154 | "json5": "lib/cli.js" 1155 | }, 1156 | "engines": { 1157 | "node": ">=6" 1158 | } 1159 | }, 1160 | "node_modules/loose-envify": { 1161 | "version": "1.4.0", 1162 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", 1163 | "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", 1164 | "dependencies": { 1165 | "js-tokens": "^3.0.0 || ^4.0.0" 1166 | }, 1167 | "bin": { 1168 | "loose-envify": "cli.js" 1169 | } 1170 | }, 1171 | "node_modules/ms": { 1172 | "version": "2.1.2", 1173 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 1174 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", 1175 | "dev": true 1176 | }, 1177 | "node_modules/nanoid": { 1178 | "version": "3.3.4", 1179 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", 1180 | "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", 1181 | "dev": true, 1182 | "bin": { 1183 | "nanoid": "bin/nanoid.cjs" 1184 | }, 1185 | "engines": { 1186 | "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" 1187 | } 1188 | }, 1189 | "node_modules/node-releases": { 1190 | "version": "2.0.5", 1191 | "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.5.tgz", 1192 | "integrity": "sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==", 1193 | "dev": true 1194 | }, 1195 | "node_modules/path-parse": { 1196 | "version": "1.0.7", 1197 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", 1198 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", 1199 | "dev": true 1200 | }, 1201 | "node_modules/picocolors": { 1202 | "version": "1.0.0", 1203 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", 1204 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", 1205 | "dev": true 1206 | }, 1207 | "node_modules/picomatch": { 1208 | "version": "2.3.1", 1209 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", 1210 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", 1211 | "dev": true, 1212 | "engines": { 1213 | "node": ">=8.6" 1214 | }, 1215 | "funding": { 1216 | "url": "https://github.com/sponsors/jonschlinkert" 1217 | } 1218 | }, 1219 | "node_modules/postcss": { 1220 | "version": "8.4.14", 1221 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", 1222 | "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", 1223 | "dev": true, 1224 | "funding": [ 1225 | { 1226 | "type": "opencollective", 1227 | "url": "https://opencollective.com/postcss/" 1228 | }, 1229 | { 1230 | "type": "tidelift", 1231 | "url": "https://tidelift.com/funding/github/npm/postcss" 1232 | } 1233 | ], 1234 | "dependencies": { 1235 | "nanoid": "^3.3.4", 1236 | "picocolors": "^1.0.0", 1237 | "source-map-js": "^1.0.2" 1238 | }, 1239 | "engines": { 1240 | "node": "^10 || ^12 || >=14" 1241 | } 1242 | }, 1243 | "node_modules/react": { 1244 | "version": "18.2.0", 1245 | "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", 1246 | "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", 1247 | "dependencies": { 1248 | "loose-envify": "^1.1.0" 1249 | }, 1250 | "engines": { 1251 | "node": ">=0.10.0" 1252 | } 1253 | }, 1254 | "node_modules/react-dom": { 1255 | "version": "18.2.0", 1256 | "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", 1257 | "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", 1258 | "dependencies": { 1259 | "loose-envify": "^1.1.0", 1260 | "scheduler": "^0.23.0" 1261 | }, 1262 | "peerDependencies": { 1263 | "react": "^18.2.0" 1264 | } 1265 | }, 1266 | "node_modules/react-icons": { 1267 | "version": "4.4.0", 1268 | "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-4.4.0.tgz", 1269 | "integrity": "sha512-fSbvHeVYo/B5/L4VhB7sBA1i2tS8MkT0Hb9t2H1AVPkwGfVHLJCqyr2Py9dKMxsyM63Eng1GkdZfbWj+Fmv8Rg==", 1270 | "peerDependencies": { 1271 | "react": "*" 1272 | } 1273 | }, 1274 | "node_modules/react-refresh": { 1275 | "version": "0.13.0", 1276 | "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.13.0.tgz", 1277 | "integrity": "sha512-XP8A9BT0CpRBD+NYLLeIhld/RqG9+gktUjW1FkE+Vm7OCinbG1SshcK5tb9ls4kzvjZr9mOQc7HYgBngEyPAXg==", 1278 | "dev": true, 1279 | "engines": { 1280 | "node": ">=0.10.0" 1281 | } 1282 | }, 1283 | "node_modules/react-router": { 1284 | "version": "6.3.0", 1285 | "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.3.0.tgz", 1286 | "integrity": "sha512-7Wh1DzVQ+tlFjkeo+ujvjSqSJmkt1+8JO+T5xklPlgrh70y7ogx75ODRW0ThWhY7S+6yEDks8TYrtQe/aoboBQ==", 1287 | "dependencies": { 1288 | "history": "^5.2.0" 1289 | }, 1290 | "peerDependencies": { 1291 | "react": ">=16.8" 1292 | } 1293 | }, 1294 | "node_modules/react-router-dom": { 1295 | "version": "6.3.0", 1296 | "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.3.0.tgz", 1297 | "integrity": "sha512-uaJj7LKytRxZNQV8+RbzJWnJ8K2nPsOOEuX7aQstlMZKQT0164C+X2w6bnkqU3sjtLvpd5ojrezAyfZ1+0sStw==", 1298 | "dependencies": { 1299 | "history": "^5.2.0", 1300 | "react-router": "6.3.0" 1301 | }, 1302 | "peerDependencies": { 1303 | "react": ">=16.8", 1304 | "react-dom": ">=16.8" 1305 | } 1306 | }, 1307 | "node_modules/regenerator-runtime": { 1308 | "version": "0.13.9", 1309 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", 1310 | "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" 1311 | }, 1312 | "node_modules/resolve": { 1313 | "version": "1.22.1", 1314 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", 1315 | "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", 1316 | "dev": true, 1317 | "dependencies": { 1318 | "is-core-module": "^2.9.0", 1319 | "path-parse": "^1.0.7", 1320 | "supports-preserve-symlinks-flag": "^1.0.0" 1321 | }, 1322 | "bin": { 1323 | "resolve": "bin/resolve" 1324 | }, 1325 | "funding": { 1326 | "url": "https://github.com/sponsors/ljharb" 1327 | } 1328 | }, 1329 | "node_modules/rollup": { 1330 | "version": "2.75.7", 1331 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.75.7.tgz", 1332 | "integrity": "sha512-VSE1iy0eaAYNCxEXaleThdFXqZJ42qDBatAwrfnPlENEZ8erQ+0LYX4JXOLPceWfZpV1VtZwZ3dFCuOZiSyFtQ==", 1333 | "dev": true, 1334 | "bin": { 1335 | "rollup": "dist/bin/rollup" 1336 | }, 1337 | "engines": { 1338 | "node": ">=10.0.0" 1339 | }, 1340 | "optionalDependencies": { 1341 | "fsevents": "~2.3.2" 1342 | } 1343 | }, 1344 | "node_modules/safe-buffer": { 1345 | "version": "5.1.2", 1346 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 1347 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", 1348 | "dev": true 1349 | }, 1350 | "node_modules/scheduler": { 1351 | "version": "0.23.0", 1352 | "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", 1353 | "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", 1354 | "dependencies": { 1355 | "loose-envify": "^1.1.0" 1356 | } 1357 | }, 1358 | "node_modules/semver": { 1359 | "version": "6.3.0", 1360 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", 1361 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", 1362 | "dev": true, 1363 | "bin": { 1364 | "semver": "bin/semver.js" 1365 | } 1366 | }, 1367 | "node_modules/source-map-js": { 1368 | "version": "1.0.2", 1369 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", 1370 | "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", 1371 | "dev": true, 1372 | "engines": { 1373 | "node": ">=0.10.0" 1374 | } 1375 | }, 1376 | "node_modules/supports-color": { 1377 | "version": "5.5.0", 1378 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 1379 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 1380 | "dev": true, 1381 | "dependencies": { 1382 | "has-flag": "^3.0.0" 1383 | }, 1384 | "engines": { 1385 | "node": ">=4" 1386 | } 1387 | }, 1388 | "node_modules/supports-preserve-symlinks-flag": { 1389 | "version": "1.0.0", 1390 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", 1391 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", 1392 | "dev": true, 1393 | "engines": { 1394 | "node": ">= 0.4" 1395 | }, 1396 | "funding": { 1397 | "url": "https://github.com/sponsors/ljharb" 1398 | } 1399 | }, 1400 | "node_modules/to-fast-properties": { 1401 | "version": "2.0.0", 1402 | "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", 1403 | "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", 1404 | "dev": true, 1405 | "engines": { 1406 | "node": ">=4" 1407 | } 1408 | }, 1409 | "node_modules/update-browserslist-db": { 1410 | "version": "1.0.4", 1411 | "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.4.tgz", 1412 | "integrity": "sha512-jnmO2BEGUjsMOe/Fg9u0oczOe/ppIDZPebzccl1yDWGLFP16Pa1/RM5wEoKYPG2zstNcDuAStejyxsOuKINdGA==", 1413 | "dev": true, 1414 | "funding": [ 1415 | { 1416 | "type": "opencollective", 1417 | "url": "https://opencollective.com/browserslist" 1418 | }, 1419 | { 1420 | "type": "tidelift", 1421 | "url": "https://tidelift.com/funding/github/npm/browserslist" 1422 | } 1423 | ], 1424 | "dependencies": { 1425 | "escalade": "^3.1.1", 1426 | "picocolors": "^1.0.0" 1427 | }, 1428 | "bin": { 1429 | "browserslist-lint": "cli.js" 1430 | }, 1431 | "peerDependencies": { 1432 | "browserslist": ">= 4.21.0" 1433 | } 1434 | }, 1435 | "node_modules/vite": { 1436 | "version": "2.9.13", 1437 | "resolved": "https://registry.npmjs.org/vite/-/vite-2.9.13.tgz", 1438 | "integrity": "sha512-AsOBAaT0AD7Mhe8DuK+/kE4aWYFMx/i0ZNi98hJclxb4e0OhQcZYUrvLjIaQ8e59Ui7txcvKMiJC1yftqpQoDw==", 1439 | "dev": true, 1440 | "dependencies": { 1441 | "esbuild": "^0.14.27", 1442 | "postcss": "^8.4.13", 1443 | "resolve": "^1.22.0", 1444 | "rollup": "^2.59.0" 1445 | }, 1446 | "bin": { 1447 | "vite": "bin/vite.js" 1448 | }, 1449 | "engines": { 1450 | "node": ">=12.2.0" 1451 | }, 1452 | "optionalDependencies": { 1453 | "fsevents": "~2.3.2" 1454 | }, 1455 | "peerDependencies": { 1456 | "less": "*", 1457 | "sass": "*", 1458 | "stylus": "*" 1459 | }, 1460 | "peerDependenciesMeta": { 1461 | "less": { 1462 | "optional": true 1463 | }, 1464 | "sass": { 1465 | "optional": true 1466 | }, 1467 | "stylus": { 1468 | "optional": true 1469 | } 1470 | } 1471 | } 1472 | }, 1473 | "dependencies": { 1474 | "@ampproject/remapping": { 1475 | "version": "2.2.0", 1476 | "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", 1477 | "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", 1478 | "dev": true, 1479 | "requires": { 1480 | "@jridgewell/gen-mapping": "^0.1.0", 1481 | "@jridgewell/trace-mapping": "^0.3.9" 1482 | } 1483 | }, 1484 | "@babel/code-frame": { 1485 | "version": "7.18.6", 1486 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", 1487 | "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", 1488 | "dev": true, 1489 | "requires": { 1490 | "@babel/highlight": "^7.18.6" 1491 | } 1492 | }, 1493 | "@babel/compat-data": { 1494 | "version": "7.18.6", 1495 | "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.6.tgz", 1496 | "integrity": "sha512-tzulrgDT0QD6U7BJ4TKVk2SDDg7wlP39P9yAx1RfLy7vP/7rsDRlWVfbWxElslu56+r7QOhB2NSDsabYYruoZQ==", 1497 | "dev": true 1498 | }, 1499 | "@babel/core": { 1500 | "version": "7.18.6", 1501 | "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.6.tgz", 1502 | "integrity": "sha512-cQbWBpxcbbs/IUredIPkHiAGULLV8iwgNRMFzvbhEXISp4f3rUUXE5+TIw6KwUWUR3DwyI6gmBRnmAtYaWehwQ==", 1503 | "dev": true, 1504 | "requires": { 1505 | "@ampproject/remapping": "^2.1.0", 1506 | "@babel/code-frame": "^7.18.6", 1507 | "@babel/generator": "^7.18.6", 1508 | "@babel/helper-compilation-targets": "^7.18.6", 1509 | "@babel/helper-module-transforms": "^7.18.6", 1510 | "@babel/helpers": "^7.18.6", 1511 | "@babel/parser": "^7.18.6", 1512 | "@babel/template": "^7.18.6", 1513 | "@babel/traverse": "^7.18.6", 1514 | "@babel/types": "^7.18.6", 1515 | "convert-source-map": "^1.7.0", 1516 | "debug": "^4.1.0", 1517 | "gensync": "^1.0.0-beta.2", 1518 | "json5": "^2.2.1", 1519 | "semver": "^6.3.0" 1520 | } 1521 | }, 1522 | "@babel/generator": { 1523 | "version": "7.18.7", 1524 | "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.7.tgz", 1525 | "integrity": "sha512-shck+7VLlY72a2w9c3zYWuE1pwOKEiQHV7GTUbSnhyl5eu3i04t30tBY82ZRWrDfo3gkakCFtevExnxbkf2a3A==", 1526 | "dev": true, 1527 | "requires": { 1528 | "@babel/types": "^7.18.7", 1529 | "@jridgewell/gen-mapping": "^0.3.2", 1530 | "jsesc": "^2.5.1" 1531 | }, 1532 | "dependencies": { 1533 | "@jridgewell/gen-mapping": { 1534 | "version": "0.3.2", 1535 | "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", 1536 | "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", 1537 | "dev": true, 1538 | "requires": { 1539 | "@jridgewell/set-array": "^1.0.1", 1540 | "@jridgewell/sourcemap-codec": "^1.4.10", 1541 | "@jridgewell/trace-mapping": "^0.3.9" 1542 | } 1543 | } 1544 | } 1545 | }, 1546 | "@babel/helper-annotate-as-pure": { 1547 | "version": "7.18.6", 1548 | "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", 1549 | "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", 1550 | "dev": true, 1551 | "requires": { 1552 | "@babel/types": "^7.18.6" 1553 | } 1554 | }, 1555 | "@babel/helper-compilation-targets": { 1556 | "version": "7.18.6", 1557 | "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.6.tgz", 1558 | "integrity": "sha512-vFjbfhNCzqdeAtZflUFrG5YIFqGTqsctrtkZ1D/NB0mDW9TwW3GmmUepYY4G9wCET5rY5ugz4OGTcLd614IzQg==", 1559 | "dev": true, 1560 | "requires": { 1561 | "@babel/compat-data": "^7.18.6", 1562 | "@babel/helper-validator-option": "^7.18.6", 1563 | "browserslist": "^4.20.2", 1564 | "semver": "^6.3.0" 1565 | } 1566 | }, 1567 | "@babel/helper-environment-visitor": { 1568 | "version": "7.18.6", 1569 | "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.6.tgz", 1570 | "integrity": "sha512-8n6gSfn2baOY+qlp+VSzsosjCVGFqWKmDF0cCWOybh52Dw3SEyoWR1KrhMJASjLwIEkkAufZ0xvr+SxLHSpy2Q==", 1571 | "dev": true 1572 | }, 1573 | "@babel/helper-function-name": { 1574 | "version": "7.18.6", 1575 | "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.6.tgz", 1576 | "integrity": "sha512-0mWMxV1aC97dhjCah5U5Ua7668r5ZmSC2DLfH2EZnf9c3/dHZKiFa5pRLMH5tjSl471tY6496ZWk/kjNONBxhw==", 1577 | "dev": true, 1578 | "requires": { 1579 | "@babel/template": "^7.18.6", 1580 | "@babel/types": "^7.18.6" 1581 | } 1582 | }, 1583 | "@babel/helper-hoist-variables": { 1584 | "version": "7.18.6", 1585 | "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", 1586 | "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", 1587 | "dev": true, 1588 | "requires": { 1589 | "@babel/types": "^7.18.6" 1590 | } 1591 | }, 1592 | "@babel/helper-module-imports": { 1593 | "version": "7.18.6", 1594 | "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", 1595 | "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", 1596 | "dev": true, 1597 | "requires": { 1598 | "@babel/types": "^7.18.6" 1599 | } 1600 | }, 1601 | "@babel/helper-module-transforms": { 1602 | "version": "7.18.6", 1603 | "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.6.tgz", 1604 | "integrity": "sha512-L//phhB4al5uucwzlimruukHB3jRd5JGClwRMD/ROrVjXfLqovYnvQrK/JK36WYyVwGGO7OD3kMyVTjx+WVPhw==", 1605 | "dev": true, 1606 | "requires": { 1607 | "@babel/helper-environment-visitor": "^7.18.6", 1608 | "@babel/helper-module-imports": "^7.18.6", 1609 | "@babel/helper-simple-access": "^7.18.6", 1610 | "@babel/helper-split-export-declaration": "^7.18.6", 1611 | "@babel/helper-validator-identifier": "^7.18.6", 1612 | "@babel/template": "^7.18.6", 1613 | "@babel/traverse": "^7.18.6", 1614 | "@babel/types": "^7.18.6" 1615 | } 1616 | }, 1617 | "@babel/helper-plugin-utils": { 1618 | "version": "7.18.6", 1619 | "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.6.tgz", 1620 | "integrity": "sha512-gvZnm1YAAxh13eJdkb9EWHBnF3eAub3XTLCZEehHT2kWxiKVRL64+ae5Y6Ivne0mVHmMYKT+xWgZO+gQhuLUBg==", 1621 | "dev": true 1622 | }, 1623 | "@babel/helper-simple-access": { 1624 | "version": "7.18.6", 1625 | "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", 1626 | "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", 1627 | "dev": true, 1628 | "requires": { 1629 | "@babel/types": "^7.18.6" 1630 | } 1631 | }, 1632 | "@babel/helper-split-export-declaration": { 1633 | "version": "7.18.6", 1634 | "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", 1635 | "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", 1636 | "dev": true, 1637 | "requires": { 1638 | "@babel/types": "^7.18.6" 1639 | } 1640 | }, 1641 | "@babel/helper-validator-identifier": { 1642 | "version": "7.18.6", 1643 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", 1644 | "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", 1645 | "dev": true 1646 | }, 1647 | "@babel/helper-validator-option": { 1648 | "version": "7.18.6", 1649 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", 1650 | "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", 1651 | "dev": true 1652 | }, 1653 | "@babel/helpers": { 1654 | "version": "7.18.6", 1655 | "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.6.tgz", 1656 | "integrity": "sha512-vzSiiqbQOghPngUYt/zWGvK3LAsPhz55vc9XNN0xAl2gV4ieShI2OQli5duxWHD+72PZPTKAcfcZDE1Cwc5zsQ==", 1657 | "dev": true, 1658 | "requires": { 1659 | "@babel/template": "^7.18.6", 1660 | "@babel/traverse": "^7.18.6", 1661 | "@babel/types": "^7.18.6" 1662 | } 1663 | }, 1664 | "@babel/highlight": { 1665 | "version": "7.18.6", 1666 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", 1667 | "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", 1668 | "dev": true, 1669 | "requires": { 1670 | "@babel/helper-validator-identifier": "^7.18.6", 1671 | "chalk": "^2.0.0", 1672 | "js-tokens": "^4.0.0" 1673 | } 1674 | }, 1675 | "@babel/parser": { 1676 | "version": "7.18.6", 1677 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.6.tgz", 1678 | "integrity": "sha512-uQVSa9jJUe/G/304lXspfWVpKpK4euFLgGiMQFOCpM/bgcAdeoHwi/OQz23O9GK2osz26ZiXRRV9aV+Yl1O8tw==", 1679 | "dev": true 1680 | }, 1681 | "@babel/plugin-syntax-jsx": { 1682 | "version": "7.18.6", 1683 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", 1684 | "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", 1685 | "dev": true, 1686 | "requires": { 1687 | "@babel/helper-plugin-utils": "^7.18.6" 1688 | } 1689 | }, 1690 | "@babel/plugin-transform-react-jsx": { 1691 | "version": "7.18.6", 1692 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.18.6.tgz", 1693 | "integrity": "sha512-Mz7xMPxoy9kPS/JScj6fJs03TZ/fZ1dJPlMjRAgTaxaS0fUBk8FV/A2rRgfPsVCZqALNwMexD+0Uaf5zlcKPpw==", 1694 | "dev": true, 1695 | "requires": { 1696 | "@babel/helper-annotate-as-pure": "^7.18.6", 1697 | "@babel/helper-module-imports": "^7.18.6", 1698 | "@babel/helper-plugin-utils": "^7.18.6", 1699 | "@babel/plugin-syntax-jsx": "^7.18.6", 1700 | "@babel/types": "^7.18.6" 1701 | } 1702 | }, 1703 | "@babel/plugin-transform-react-jsx-development": { 1704 | "version": "7.18.6", 1705 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz", 1706 | "integrity": "sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==", 1707 | "dev": true, 1708 | "requires": { 1709 | "@babel/plugin-transform-react-jsx": "^7.18.6" 1710 | } 1711 | }, 1712 | "@babel/plugin-transform-react-jsx-self": { 1713 | "version": "7.18.6", 1714 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.18.6.tgz", 1715 | "integrity": "sha512-A0LQGx4+4Jv7u/tWzoJF7alZwnBDQd6cGLh9P+Ttk4dpiL+J5p7NSNv/9tlEFFJDq3kjxOavWmbm6t0Gk+A3Ig==", 1716 | "dev": true, 1717 | "requires": { 1718 | "@babel/helper-plugin-utils": "^7.18.6" 1719 | } 1720 | }, 1721 | "@babel/plugin-transform-react-jsx-source": { 1722 | "version": "7.18.6", 1723 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.18.6.tgz", 1724 | "integrity": "sha512-utZmlASneDfdaMh0m/WausbjUjEdGrQJz0vFK93d7wD3xf5wBtX219+q6IlCNZeguIcxS2f/CvLZrlLSvSHQXw==", 1725 | "dev": true, 1726 | "requires": { 1727 | "@babel/helper-plugin-utils": "^7.18.6" 1728 | } 1729 | }, 1730 | "@babel/runtime": { 1731 | "version": "7.18.6", 1732 | "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.6.tgz", 1733 | "integrity": "sha512-t9wi7/AW6XtKahAe20Yw0/mMljKq0B1r2fPdvaAdV/KPDZewFXdaaa6K7lxmZBZ8FBNpCiAT6iHPmd6QO9bKfQ==", 1734 | "requires": { 1735 | "regenerator-runtime": "^0.13.4" 1736 | } 1737 | }, 1738 | "@babel/template": { 1739 | "version": "7.18.6", 1740 | "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.6.tgz", 1741 | "integrity": "sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw==", 1742 | "dev": true, 1743 | "requires": { 1744 | "@babel/code-frame": "^7.18.6", 1745 | "@babel/parser": "^7.18.6", 1746 | "@babel/types": "^7.18.6" 1747 | } 1748 | }, 1749 | "@babel/traverse": { 1750 | "version": "7.18.6", 1751 | "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.6.tgz", 1752 | "integrity": "sha512-zS/OKyqmD7lslOtFqbscH6gMLFYOfG1YPqCKfAW5KrTeolKqvB8UelR49Fpr6y93kYkW2Ik00mT1LOGiAGvizw==", 1753 | "dev": true, 1754 | "requires": { 1755 | "@babel/code-frame": "^7.18.6", 1756 | "@babel/generator": "^7.18.6", 1757 | "@babel/helper-environment-visitor": "^7.18.6", 1758 | "@babel/helper-function-name": "^7.18.6", 1759 | "@babel/helper-hoist-variables": "^7.18.6", 1760 | "@babel/helper-split-export-declaration": "^7.18.6", 1761 | "@babel/parser": "^7.18.6", 1762 | "@babel/types": "^7.18.6", 1763 | "debug": "^4.1.0", 1764 | "globals": "^11.1.0" 1765 | } 1766 | }, 1767 | "@babel/types": { 1768 | "version": "7.18.7", 1769 | "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.7.tgz", 1770 | "integrity": "sha512-QG3yxTcTIBoAcQmkCs+wAPYZhu7Dk9rXKacINfNbdJDNERTbLQbHGyVG8q/YGMPeCJRIhSY0+fTc5+xuh6WPSQ==", 1771 | "dev": true, 1772 | "requires": { 1773 | "@babel/helper-validator-identifier": "^7.18.6", 1774 | "to-fast-properties": "^2.0.0" 1775 | } 1776 | }, 1777 | "@jridgewell/gen-mapping": { 1778 | "version": "0.1.1", 1779 | "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", 1780 | "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", 1781 | "dev": true, 1782 | "requires": { 1783 | "@jridgewell/set-array": "^1.0.0", 1784 | "@jridgewell/sourcemap-codec": "^1.4.10" 1785 | } 1786 | }, 1787 | "@jridgewell/resolve-uri": { 1788 | "version": "3.0.8", 1789 | "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.8.tgz", 1790 | "integrity": "sha512-YK5G9LaddzGbcucK4c8h5tWFmMPBvRZ/uyWmN1/SbBdIvqGUdWGkJ5BAaccgs6XbzVLsqbPJrBSFwKv3kT9i7w==", 1791 | "dev": true 1792 | }, 1793 | "@jridgewell/set-array": { 1794 | "version": "1.1.2", 1795 | "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", 1796 | "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", 1797 | "dev": true 1798 | }, 1799 | "@jridgewell/sourcemap-codec": { 1800 | "version": "1.4.14", 1801 | "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", 1802 | "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", 1803 | "dev": true 1804 | }, 1805 | "@jridgewell/trace-mapping": { 1806 | "version": "0.3.14", 1807 | "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", 1808 | "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", 1809 | "dev": true, 1810 | "requires": { 1811 | "@jridgewell/resolve-uri": "^3.0.3", 1812 | "@jridgewell/sourcemap-codec": "^1.4.10" 1813 | } 1814 | }, 1815 | "@rollup/pluginutils": { 1816 | "version": "4.2.1", 1817 | "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", 1818 | "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", 1819 | "dev": true, 1820 | "requires": { 1821 | "estree-walker": "^2.0.1", 1822 | "picomatch": "^2.2.2" 1823 | } 1824 | }, 1825 | "@types/prop-types": { 1826 | "version": "15.7.5", 1827 | "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", 1828 | "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==", 1829 | "dev": true 1830 | }, 1831 | "@types/react": { 1832 | "version": "18.0.14", 1833 | "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.14.tgz", 1834 | "integrity": "sha512-x4gGuASSiWmo0xjDLpm5mPb52syZHJx02VKbqUKdLmKtAwIh63XClGsiTI1K6DO5q7ox4xAsQrU+Gl3+gGXF9Q==", 1835 | "dev": true, 1836 | "requires": { 1837 | "@types/prop-types": "*", 1838 | "@types/scheduler": "*", 1839 | "csstype": "^3.0.2" 1840 | } 1841 | }, 1842 | "@types/react-dom": { 1843 | "version": "18.0.5", 1844 | "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.5.tgz", 1845 | "integrity": "sha512-OWPWTUrY/NIrjsAPkAk1wW9LZeIjSvkXRhclsFO8CZcZGCOg2G0YZy4ft+rOyYxy8B7ui5iZzi9OkDebZ7/QSA==", 1846 | "dev": true, 1847 | "requires": { 1848 | "@types/react": "*" 1849 | } 1850 | }, 1851 | "@types/scheduler": { 1852 | "version": "0.16.2", 1853 | "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", 1854 | "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==", 1855 | "dev": true 1856 | }, 1857 | "@vitejs/plugin-react": { 1858 | "version": "1.3.2", 1859 | "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-1.3.2.tgz", 1860 | "integrity": "sha512-aurBNmMo0kz1O4qRoY+FM4epSA39y3ShWGuqfLRA/3z0oEJAdtoSfgA3aO98/PCCHAqMaduLxIxErWrVKIFzXA==", 1861 | "dev": true, 1862 | "requires": { 1863 | "@babel/core": "^7.17.10", 1864 | "@babel/plugin-transform-react-jsx": "^7.17.3", 1865 | "@babel/plugin-transform-react-jsx-development": "^7.16.7", 1866 | "@babel/plugin-transform-react-jsx-self": "^7.16.7", 1867 | "@babel/plugin-transform-react-jsx-source": "^7.16.7", 1868 | "@rollup/pluginutils": "^4.2.1", 1869 | "react-refresh": "^0.13.0", 1870 | "resolve": "^1.22.0" 1871 | } 1872 | }, 1873 | "ansi-styles": { 1874 | "version": "3.2.1", 1875 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 1876 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 1877 | "dev": true, 1878 | "requires": { 1879 | "color-convert": "^1.9.0" 1880 | } 1881 | }, 1882 | "browserslist": { 1883 | "version": "4.21.1", 1884 | "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.1.tgz", 1885 | "integrity": "sha512-Nq8MFCSrnJXSc88yliwlzQe3qNe3VntIjhsArW9IJOEPSHNx23FalwApUVbzAWABLhYJJ7y8AynWI/XM8OdfjQ==", 1886 | "dev": true, 1887 | "requires": { 1888 | "caniuse-lite": "^1.0.30001359", 1889 | "electron-to-chromium": "^1.4.172", 1890 | "node-releases": "^2.0.5", 1891 | "update-browserslist-db": "^1.0.4" 1892 | } 1893 | }, 1894 | "caniuse-lite": { 1895 | "version": "1.0.30001362", 1896 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001362.tgz", 1897 | "integrity": "sha512-PFykHuC7BQTzCGQFaV6wD8IDRM3HpI83BXr99nNJhoOyDufgSuKlt0QVlWYt5ZJtEYFeuNVF5QY3kJcu8hVFjQ==", 1898 | "dev": true 1899 | }, 1900 | "chalk": { 1901 | "version": "2.4.2", 1902 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 1903 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 1904 | "dev": true, 1905 | "requires": { 1906 | "ansi-styles": "^3.2.1", 1907 | "escape-string-regexp": "^1.0.5", 1908 | "supports-color": "^5.3.0" 1909 | } 1910 | }, 1911 | "color-convert": { 1912 | "version": "1.9.3", 1913 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 1914 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 1915 | "dev": true, 1916 | "requires": { 1917 | "color-name": "1.1.3" 1918 | } 1919 | }, 1920 | "color-name": { 1921 | "version": "1.1.3", 1922 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 1923 | "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", 1924 | "dev": true 1925 | }, 1926 | "convert-source-map": { 1927 | "version": "1.8.0", 1928 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", 1929 | "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", 1930 | "dev": true, 1931 | "requires": { 1932 | "safe-buffer": "~5.1.1" 1933 | } 1934 | }, 1935 | "csstype": { 1936 | "version": "3.1.0", 1937 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.0.tgz", 1938 | "integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==", 1939 | "dev": true 1940 | }, 1941 | "debug": { 1942 | "version": "4.3.4", 1943 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", 1944 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", 1945 | "dev": true, 1946 | "requires": { 1947 | "ms": "2.1.2" 1948 | } 1949 | }, 1950 | "electron-to-chromium": { 1951 | "version": "1.4.177", 1952 | "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.177.tgz", 1953 | "integrity": "sha512-FYPir3NSBEGexSZUEeht81oVhHfLFl6mhUKSkjHN/iB/TwEIt/WHQrqVGfTLN5gQxwJCQkIJBe05eOXjI7omgg==", 1954 | "dev": true 1955 | }, 1956 | "esbuild": { 1957 | "version": "0.14.48", 1958 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.48.tgz", 1959 | "integrity": "sha512-w6N1Yn5MtqK2U1/WZTX9ZqUVb8IOLZkZ5AdHkT6x3cHDMVsYWC7WPdiLmx19w3i4Rwzy5LqsEMtVihG3e4rFzA==", 1960 | "dev": true, 1961 | "requires": { 1962 | "esbuild-android-64": "0.14.48", 1963 | "esbuild-android-arm64": "0.14.48", 1964 | "esbuild-darwin-64": "0.14.48", 1965 | "esbuild-darwin-arm64": "0.14.48", 1966 | "esbuild-freebsd-64": "0.14.48", 1967 | "esbuild-freebsd-arm64": "0.14.48", 1968 | "esbuild-linux-32": "0.14.48", 1969 | "esbuild-linux-64": "0.14.48", 1970 | "esbuild-linux-arm": "0.14.48", 1971 | "esbuild-linux-arm64": "0.14.48", 1972 | "esbuild-linux-mips64le": "0.14.48", 1973 | "esbuild-linux-ppc64le": "0.14.48", 1974 | "esbuild-linux-riscv64": "0.14.48", 1975 | "esbuild-linux-s390x": "0.14.48", 1976 | "esbuild-netbsd-64": "0.14.48", 1977 | "esbuild-openbsd-64": "0.14.48", 1978 | "esbuild-sunos-64": "0.14.48", 1979 | "esbuild-windows-32": "0.14.48", 1980 | "esbuild-windows-64": "0.14.48", 1981 | "esbuild-windows-arm64": "0.14.48" 1982 | } 1983 | }, 1984 | "esbuild-android-64": { 1985 | "version": "0.14.48", 1986 | "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.48.tgz", 1987 | "integrity": "sha512-3aMjboap/kqwCUpGWIjsk20TtxVoKck8/4Tu19rubh7t5Ra0Yrpg30Mt1QXXlipOazrEceGeWurXKeFJgkPOUg==", 1988 | "dev": true, 1989 | "optional": true 1990 | }, 1991 | "esbuild-android-arm64": { 1992 | "version": "0.14.48", 1993 | "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.48.tgz", 1994 | "integrity": "sha512-vptI3K0wGALiDq+EvRuZotZrJqkYkN5282iAfcffjI5lmGG9G1ta/CIVauhY42MBXwEgDJkweiDcDMRLzBZC4g==", 1995 | "dev": true, 1996 | "optional": true 1997 | }, 1998 | "esbuild-darwin-64": { 1999 | "version": "0.14.48", 2000 | "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.48.tgz", 2001 | "integrity": "sha512-gGQZa4+hab2Va/Zww94YbshLuWteyKGD3+EsVon8EWTWhnHFRm5N9NbALNbwi/7hQ/hM1Zm4FuHg+k6BLsl5UA==", 2002 | "dev": true, 2003 | "optional": true 2004 | }, 2005 | "esbuild-darwin-arm64": { 2006 | "version": "0.14.48", 2007 | "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.48.tgz", 2008 | "integrity": "sha512-bFjnNEXjhZT+IZ8RvRGNJthLWNHV5JkCtuOFOnjvo5pC0sk2/QVk0Qc06g2PV3J0TcU6kaPC3RN9yy9w2PSLEA==", 2009 | "dev": true, 2010 | "optional": true 2011 | }, 2012 | "esbuild-freebsd-64": { 2013 | "version": "0.14.48", 2014 | "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.48.tgz", 2015 | "integrity": "sha512-1NOlwRxmOsnPcWOGTB10JKAkYSb2nue0oM1AfHWunW/mv3wERfJmnYlGzL3UAOIUXZqW8GeA2mv+QGwq7DToqA==", 2016 | "dev": true, 2017 | "optional": true 2018 | }, 2019 | "esbuild-freebsd-arm64": { 2020 | "version": "0.14.48", 2021 | "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.48.tgz", 2022 | "integrity": "sha512-gXqKdO8wabVcYtluAbikDH2jhXp+Klq5oCD5qbVyUG6tFiGhrC9oczKq3vIrrtwcxDQqK6+HDYK8Zrd4bCA9Gw==", 2023 | "dev": true, 2024 | "optional": true 2025 | }, 2026 | "esbuild-linux-32": { 2027 | "version": "0.14.48", 2028 | "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.48.tgz", 2029 | "integrity": "sha512-ghGyDfS289z/LReZQUuuKq9KlTiTspxL8SITBFQFAFRA/IkIvDpnZnCAKTCjGXAmUqroMQfKJXMxyjJA69c/nQ==", 2030 | "dev": true, 2031 | "optional": true 2032 | }, 2033 | "esbuild-linux-64": { 2034 | "version": "0.14.48", 2035 | "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.48.tgz", 2036 | "integrity": "sha512-vni3p/gppLMVZLghI7oMqbOZdGmLbbKR23XFARKnszCIBpEMEDxOMNIKPmMItQrmH/iJrL1z8Jt2nynY0bE1ug==", 2037 | "dev": true, 2038 | "optional": true 2039 | }, 2040 | "esbuild-linux-arm": { 2041 | "version": "0.14.48", 2042 | "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.48.tgz", 2043 | "integrity": "sha512-+VfSV7Akh1XUiDNXgqgY1cUP1i2vjI+BmlyXRfVz5AfV3jbpde8JTs5Q9sYgaoq5cWfuKfoZB/QkGOI+QcL1Tw==", 2044 | "dev": true, 2045 | "optional": true 2046 | }, 2047 | "esbuild-linux-arm64": { 2048 | "version": "0.14.48", 2049 | "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.48.tgz", 2050 | "integrity": "sha512-3CFsOlpoxlKPRevEHq8aAntgYGYkE1N9yRYAcPyng/p4Wyx0tPR5SBYsxLKcgPB9mR8chHEhtWYz6EZ+H199Zw==", 2051 | "dev": true, 2052 | "optional": true 2053 | }, 2054 | "esbuild-linux-mips64le": { 2055 | "version": "0.14.48", 2056 | "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.48.tgz", 2057 | "integrity": "sha512-cs0uOiRlPp6ymknDnjajCgvDMSsLw5mST2UXh+ZIrXTj2Ifyf2aAP3Iw4DiqgnyYLV2O/v/yWBJx+WfmKEpNLA==", 2058 | "dev": true, 2059 | "optional": true 2060 | }, 2061 | "esbuild-linux-ppc64le": { 2062 | "version": "0.14.48", 2063 | "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.48.tgz", 2064 | "integrity": "sha512-+2F0vJMkuI0Wie/wcSPDCqXvSFEELH7Jubxb7mpWrA/4NpT+/byjxDz0gG6R1WJoeDefcrMfpBx4GFNN1JQorQ==", 2065 | "dev": true, 2066 | "optional": true 2067 | }, 2068 | "esbuild-linux-riscv64": { 2069 | "version": "0.14.48", 2070 | "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.48.tgz", 2071 | "integrity": "sha512-BmaK/GfEE+5F2/QDrIXteFGKnVHGxlnK9MjdVKMTfvtmudjY3k2t8NtlY4qemKSizc+QwyombGWTBDc76rxePA==", 2072 | "dev": true, 2073 | "optional": true 2074 | }, 2075 | "esbuild-linux-s390x": { 2076 | "version": "0.14.48", 2077 | "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.48.tgz", 2078 | "integrity": "sha512-tndw/0B9jiCL+KWKo0TSMaUm5UWBLsfCKVdbfMlb3d5LeV9WbijZ8Ordia8SAYv38VSJWOEt6eDCdOx8LqkC4g==", 2079 | "dev": true, 2080 | "optional": true 2081 | }, 2082 | "esbuild-netbsd-64": { 2083 | "version": "0.14.48", 2084 | "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.48.tgz", 2085 | "integrity": "sha512-V9hgXfwf/T901Lr1wkOfoevtyNkrxmMcRHyticybBUHookznipMOHoF41Al68QBsqBxnITCEpjjd4yAos7z9Tw==", 2086 | "dev": true, 2087 | "optional": true 2088 | }, 2089 | "esbuild-openbsd-64": { 2090 | "version": "0.14.48", 2091 | "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.48.tgz", 2092 | "integrity": "sha512-+IHf4JcbnnBl4T52egorXMatil/za0awqzg2Vy6FBgPcBpisDWT2sVz/tNdrK9kAqj+GZG/jZdrOkj7wsrNTKA==", 2093 | "dev": true, 2094 | "optional": true 2095 | }, 2096 | "esbuild-sunos-64": { 2097 | "version": "0.14.48", 2098 | "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.48.tgz", 2099 | "integrity": "sha512-77m8bsr5wOpOWbGi9KSqDphcq6dFeJyun8TA+12JW/GAjyfTwVtOnN8DOt6DSPUfEV+ltVMNqtXUeTeMAxl5KA==", 2100 | "dev": true, 2101 | "optional": true 2102 | }, 2103 | "esbuild-windows-32": { 2104 | "version": "0.14.48", 2105 | "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.48.tgz", 2106 | "integrity": "sha512-EPgRuTPP8vK9maxpTGDe5lSoIBHGKO/AuxDncg5O3NkrPeLNdvvK8oywB0zGaAZXxYWfNNSHskvvDgmfVTguhg==", 2107 | "dev": true, 2108 | "optional": true 2109 | }, 2110 | "esbuild-windows-64": { 2111 | "version": "0.14.48", 2112 | "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.48.tgz", 2113 | "integrity": "sha512-YmpXjdT1q0b8ictSdGwH3M8VCoqPpK1/UArze3X199w6u8hUx3V8BhAi1WjbsfDYRBanVVtduAhh2sirImtAvA==", 2114 | "dev": true, 2115 | "optional": true 2116 | }, 2117 | "esbuild-windows-arm64": { 2118 | "version": "0.14.48", 2119 | "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.48.tgz", 2120 | "integrity": "sha512-HHaOMCsCXp0rz5BT2crTka6MPWVno121NKApsGs/OIW5QC0ggC69YMGs1aJct9/9FSUF4A1xNE/cLvgB5svR4g==", 2121 | "dev": true, 2122 | "optional": true 2123 | }, 2124 | "escalade": { 2125 | "version": "3.1.1", 2126 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", 2127 | "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", 2128 | "dev": true 2129 | }, 2130 | "escape-string-regexp": { 2131 | "version": "1.0.5", 2132 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 2133 | "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", 2134 | "dev": true 2135 | }, 2136 | "estree-walker": { 2137 | "version": "2.0.2", 2138 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", 2139 | "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", 2140 | "dev": true 2141 | }, 2142 | "fsevents": { 2143 | "version": "2.3.2", 2144 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", 2145 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", 2146 | "dev": true, 2147 | "optional": true 2148 | }, 2149 | "function-bind": { 2150 | "version": "1.1.1", 2151 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 2152 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 2153 | "dev": true 2154 | }, 2155 | "gensync": { 2156 | "version": "1.0.0-beta.2", 2157 | "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", 2158 | "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", 2159 | "dev": true 2160 | }, 2161 | "globals": { 2162 | "version": "11.12.0", 2163 | "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", 2164 | "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", 2165 | "dev": true 2166 | }, 2167 | "has": { 2168 | "version": "1.0.3", 2169 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 2170 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 2171 | "dev": true, 2172 | "requires": { 2173 | "function-bind": "^1.1.1" 2174 | } 2175 | }, 2176 | "has-flag": { 2177 | "version": "3.0.0", 2178 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 2179 | "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", 2180 | "dev": true 2181 | }, 2182 | "history": { 2183 | "version": "5.3.0", 2184 | "resolved": "https://registry.npmjs.org/history/-/history-5.3.0.tgz", 2185 | "integrity": "sha512-ZqaKwjjrAYUYfLG+htGaIIZ4nioX2L70ZUMIFysS3xvBsSG4x/n1V6TXV3N8ZYNuFGlDirFg32T7B6WOUPDYcQ==", 2186 | "requires": { 2187 | "@babel/runtime": "^7.7.6" 2188 | } 2189 | }, 2190 | "is-core-module": { 2191 | "version": "2.9.0", 2192 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", 2193 | "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", 2194 | "dev": true, 2195 | "requires": { 2196 | "has": "^1.0.3" 2197 | } 2198 | }, 2199 | "js-tokens": { 2200 | "version": "4.0.0", 2201 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 2202 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" 2203 | }, 2204 | "jsesc": { 2205 | "version": "2.5.2", 2206 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", 2207 | "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", 2208 | "dev": true 2209 | }, 2210 | "json5": { 2211 | "version": "2.2.1", 2212 | "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", 2213 | "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", 2214 | "dev": true 2215 | }, 2216 | "loose-envify": { 2217 | "version": "1.4.0", 2218 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", 2219 | "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", 2220 | "requires": { 2221 | "js-tokens": "^3.0.0 || ^4.0.0" 2222 | } 2223 | }, 2224 | "ms": { 2225 | "version": "2.1.2", 2226 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 2227 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", 2228 | "dev": true 2229 | }, 2230 | "nanoid": { 2231 | "version": "3.3.4", 2232 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", 2233 | "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", 2234 | "dev": true 2235 | }, 2236 | "node-releases": { 2237 | "version": "2.0.5", 2238 | "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.5.tgz", 2239 | "integrity": "sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==", 2240 | "dev": true 2241 | }, 2242 | "path-parse": { 2243 | "version": "1.0.7", 2244 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", 2245 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", 2246 | "dev": true 2247 | }, 2248 | "picocolors": { 2249 | "version": "1.0.0", 2250 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", 2251 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", 2252 | "dev": true 2253 | }, 2254 | "picomatch": { 2255 | "version": "2.3.1", 2256 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", 2257 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", 2258 | "dev": true 2259 | }, 2260 | "postcss": { 2261 | "version": "8.4.14", 2262 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", 2263 | "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", 2264 | "dev": true, 2265 | "requires": { 2266 | "nanoid": "^3.3.4", 2267 | "picocolors": "^1.0.0", 2268 | "source-map-js": "^1.0.2" 2269 | } 2270 | }, 2271 | "react": { 2272 | "version": "18.2.0", 2273 | "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", 2274 | "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", 2275 | "requires": { 2276 | "loose-envify": "^1.1.0" 2277 | } 2278 | }, 2279 | "react-dom": { 2280 | "version": "18.2.0", 2281 | "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", 2282 | "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", 2283 | "requires": { 2284 | "loose-envify": "^1.1.0", 2285 | "scheduler": "^0.23.0" 2286 | } 2287 | }, 2288 | "react-icons": { 2289 | "version": "4.4.0", 2290 | "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-4.4.0.tgz", 2291 | "integrity": "sha512-fSbvHeVYo/B5/L4VhB7sBA1i2tS8MkT0Hb9t2H1AVPkwGfVHLJCqyr2Py9dKMxsyM63Eng1GkdZfbWj+Fmv8Rg==", 2292 | "requires": {} 2293 | }, 2294 | "react-refresh": { 2295 | "version": "0.13.0", 2296 | "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.13.0.tgz", 2297 | "integrity": "sha512-XP8A9BT0CpRBD+NYLLeIhld/RqG9+gktUjW1FkE+Vm7OCinbG1SshcK5tb9ls4kzvjZr9mOQc7HYgBngEyPAXg==", 2298 | "dev": true 2299 | }, 2300 | "react-router": { 2301 | "version": "6.3.0", 2302 | "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.3.0.tgz", 2303 | "integrity": "sha512-7Wh1DzVQ+tlFjkeo+ujvjSqSJmkt1+8JO+T5xklPlgrh70y7ogx75ODRW0ThWhY7S+6yEDks8TYrtQe/aoboBQ==", 2304 | "requires": { 2305 | "history": "^5.2.0" 2306 | } 2307 | }, 2308 | "react-router-dom": { 2309 | "version": "6.3.0", 2310 | "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.3.0.tgz", 2311 | "integrity": "sha512-uaJj7LKytRxZNQV8+RbzJWnJ8K2nPsOOEuX7aQstlMZKQT0164C+X2w6bnkqU3sjtLvpd5ojrezAyfZ1+0sStw==", 2312 | "requires": { 2313 | "history": "^5.2.0", 2314 | "react-router": "6.3.0" 2315 | } 2316 | }, 2317 | "regenerator-runtime": { 2318 | "version": "0.13.9", 2319 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", 2320 | "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" 2321 | }, 2322 | "resolve": { 2323 | "version": "1.22.1", 2324 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", 2325 | "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", 2326 | "dev": true, 2327 | "requires": { 2328 | "is-core-module": "^2.9.0", 2329 | "path-parse": "^1.0.7", 2330 | "supports-preserve-symlinks-flag": "^1.0.0" 2331 | } 2332 | }, 2333 | "rollup": { 2334 | "version": "2.75.7", 2335 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.75.7.tgz", 2336 | "integrity": "sha512-VSE1iy0eaAYNCxEXaleThdFXqZJ42qDBatAwrfnPlENEZ8erQ+0LYX4JXOLPceWfZpV1VtZwZ3dFCuOZiSyFtQ==", 2337 | "dev": true, 2338 | "requires": { 2339 | "fsevents": "~2.3.2" 2340 | } 2341 | }, 2342 | "safe-buffer": { 2343 | "version": "5.1.2", 2344 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 2345 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", 2346 | "dev": true 2347 | }, 2348 | "scheduler": { 2349 | "version": "0.23.0", 2350 | "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", 2351 | "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", 2352 | "requires": { 2353 | "loose-envify": "^1.1.0" 2354 | } 2355 | }, 2356 | "semver": { 2357 | "version": "6.3.0", 2358 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", 2359 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", 2360 | "dev": true 2361 | }, 2362 | "source-map-js": { 2363 | "version": "1.0.2", 2364 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", 2365 | "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", 2366 | "dev": true 2367 | }, 2368 | "supports-color": { 2369 | "version": "5.5.0", 2370 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 2371 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 2372 | "dev": true, 2373 | "requires": { 2374 | "has-flag": "^3.0.0" 2375 | } 2376 | }, 2377 | "supports-preserve-symlinks-flag": { 2378 | "version": "1.0.0", 2379 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", 2380 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", 2381 | "dev": true 2382 | }, 2383 | "to-fast-properties": { 2384 | "version": "2.0.0", 2385 | "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", 2386 | "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", 2387 | "dev": true 2388 | }, 2389 | "update-browserslist-db": { 2390 | "version": "1.0.4", 2391 | "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.4.tgz", 2392 | "integrity": "sha512-jnmO2BEGUjsMOe/Fg9u0oczOe/ppIDZPebzccl1yDWGLFP16Pa1/RM5wEoKYPG2zstNcDuAStejyxsOuKINdGA==", 2393 | "dev": true, 2394 | "requires": { 2395 | "escalade": "^3.1.1", 2396 | "picocolors": "^1.0.0" 2397 | } 2398 | }, 2399 | "vite": { 2400 | "version": "2.9.13", 2401 | "resolved": "https://registry.npmjs.org/vite/-/vite-2.9.13.tgz", 2402 | "integrity": "sha512-AsOBAaT0AD7Mhe8DuK+/kE4aWYFMx/i0ZNi98hJclxb4e0OhQcZYUrvLjIaQ8e59Ui7txcvKMiJC1yftqpQoDw==", 2403 | "dev": true, 2404 | "requires": { 2405 | "esbuild": "^0.14.27", 2406 | "fsevents": "~2.3.2", 2407 | "postcss": "^8.4.13", 2408 | "resolve": "^1.22.0", 2409 | "rollup": "^2.59.0" 2410 | } 2411 | } 2412 | } 2413 | } 2414 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "movie_lib", 3 | "private": true, 4 | "version": "0.0.0", 5 | "scripts": { 6 | "dev": "vite", 7 | "build": "vite build", 8 | "preview": "vite preview" 9 | }, 10 | "dependencies": { 11 | "react": "^18.0.0", 12 | "react-dom": "^18.0.0", 13 | "react-icons": "^4.4.0", 14 | "react-router-dom": "^6.3.0" 15 | }, 16 | "devDependencies": { 17 | "@types/react": "^18.0.0", 18 | "@types/react-dom": "^18.0.0", 19 | "@vitejs/plugin-react": "^1.3.0", 20 | "vite": "^2.9.9" 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/App.css: -------------------------------------------------------------------------------- 1 | .app-container { 2 | background-color: #000; 3 | } 4 | -------------------------------------------------------------------------------- /src/App.jsx: -------------------------------------------------------------------------------- 1 | import { Outlet } from "react-router-dom"; 2 | import Navbar from "./components/Navbar"; 3 | 4 | import "./App.css"; 5 | 6 | function App() { 7 | return ( 8 |
9 | 10 | 11 |
12 | ); 13 | } 14 | 15 | export default App; 16 | -------------------------------------------------------------------------------- /src/components/MovieCard.jsx: -------------------------------------------------------------------------------- 1 | import { Link } from "react-router-dom"; 2 | 3 | import { FaStar } from "react-icons/fa"; 4 | 5 | const imagesURL = import.meta.env.VITE_IMG; 6 | 7 | const MovieCard = ({ movie, showLink = true }) => { 8 | return ( 9 |
10 | {movie.title} 11 |

{movie.title}

12 |

13 | {movie.vote_average} 14 |

15 | {showLink && Detalhes} 16 |
17 | ); 18 | }; 19 | 20 | export default MovieCard; 21 | -------------------------------------------------------------------------------- /src/components/Navbar.css: -------------------------------------------------------------------------------- 1 | #navbar { 2 | display: flex; 3 | justify-content: space-between; 4 | align-items: center; 5 | padding: 1rem 2rem; 6 | background-color: #121212; 7 | } 8 | 9 | #navbar h2 a { 10 | display: flex; 11 | align-items: center; 12 | gap: 0.5rem; 13 | } 14 | 15 | #navbar form { 16 | display: flex; 17 | gap: 0.5rem; 18 | } 19 | 20 | #navbar input { 21 | padding: 0.2rem 0.8rem; 22 | border-radius: 4px; 23 | border: none; 24 | } 25 | 26 | #navbar form button { 27 | background-color: #f7d354; 28 | border: 2px solid #f7d354; 29 | border-radius: 4px; 30 | color: #000; 31 | padding: 0.3rem; 32 | font-size: 1.3rem; 33 | display: flex; 34 | align-items: center; 35 | cursor: pointer; 36 | } 37 | -------------------------------------------------------------------------------- /src/components/Navbar.jsx: -------------------------------------------------------------------------------- 1 | import { useState } from "react"; 2 | import { Link, useNavigate } from "react-router-dom"; 3 | import { BiCameraMovie, BiSearchAlt2 } from "react-icons/bi"; 4 | 5 | import "./Navbar.css"; 6 | 7 | const Navbar = () => { 8 | const [search, setSearch] = useState(""); 9 | const navigate = useNavigate(); 10 | 11 | const handleSubmit = (e) => { 12 | e.preventDefault(); 13 | 14 | if (!search) return; 15 | 16 | navigate(`/search?q=${search}`, { replace: true }); 17 | setSearch(""); 18 | }; 19 | 20 | return ( 21 | 39 | ); 40 | }; 41 | 42 | export default Navbar; 43 | -------------------------------------------------------------------------------- /src/favicon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /src/index.css: -------------------------------------------------------------------------------- 1 | * { 2 | font-family: Helvetica; 3 | margin: 0; 4 | padding: 0; 5 | box-sizing: border-box; 6 | } 7 | 8 | body { 9 | background-color: #000; 10 | } 11 | 12 | a { 13 | text-decoration: none; 14 | color: #f7d354; 15 | transition: 0.5s; 16 | } 17 | 18 | a:hover { 19 | color: #b8930c; 20 | } 21 | -------------------------------------------------------------------------------- /src/logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /src/main.jsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import ReactDOM from "react-dom/client"; 3 | import { BrowserRouter, Routes, Route } from "react-router-dom"; 4 | 5 | import App from "./App"; 6 | import Home from "./pages/Home"; 7 | import Movie from "./pages/Movie"; 8 | import Search from "./pages/Search"; 9 | 10 | import "./index.css"; 11 | 12 | ReactDOM.createRoot(document.getElementById("root")).render( 13 | 14 | 15 | 16 | }> 17 | } /> 18 | } /> 19 | } /> 20 | 21 | 22 | 23 | 24 | ); 25 | -------------------------------------------------------------------------------- /src/pages/Home.jsx: -------------------------------------------------------------------------------- 1 | import { useEffect, useState } from "react"; 2 | import MovieCard from "../components/MovieCard"; 3 | 4 | import "./MoviesGrid.css"; 5 | 6 | const moviesURL = import.meta.env.VITE_API; 7 | const apiKey = import.meta.env.VITE_API_KEY; 8 | 9 | const Home = () => { 10 | const [topMovies, setTopMovies] = useState([]); 11 | 12 | const getTopRatedMovies = async (url) => { 13 | const res = await fetch(url); 14 | const data = await res.json(); 15 | setTopMovies(data.results); 16 | }; 17 | 18 | useEffect(() => { 19 | const topRatedUrl = `${moviesURL}top_rated?${apiKey}`; 20 | console.log(topRatedUrl); 21 | getTopRatedMovies(topRatedUrl); 22 | }, []); 23 | 24 | console.log(topMovies); 25 | 26 | return ( 27 |
28 |

Melhores filmes:

29 |
30 | {topMovies.length > 0 && 31 | topMovies.map((movie) => )} 32 |
33 |
34 | ); 35 | }; 36 | 37 | export default Home; 38 | -------------------------------------------------------------------------------- /src/pages/Movie.css: -------------------------------------------------------------------------------- 1 | .movie-page { 2 | color: #fff; 3 | display: grid; 4 | flex-direction: column; 5 | max-width: 600px; 6 | margin: 2rem auto; 7 | } 8 | 9 | .movie-page svg { 10 | font-size: 1.5rem; 11 | color: #f7d354; 12 | } 13 | 14 | .movie-page .movie-card { 15 | text-align: center; 16 | } 17 | 18 | .movie-page .movie-card img, 19 | .movie-page .movie-card h2, 20 | .movie-page .movie-card p { 21 | margin-bottom: 1rem; 22 | } 23 | 24 | .movie-page .movie-card h2 { 25 | font-size: 2rem; 26 | } 27 | 28 | .movie-page .movie-card p { 29 | display: flex; 30 | align-items: center; 31 | justify-content: center; 32 | gap: 0.4rem; 33 | } 34 | 35 | .tagline { 36 | text-align: center; 37 | font-size: 1.3rem; 38 | margin-bottom: 2rem; 39 | } 40 | 41 | .info { 42 | margin-bottom: 1.5rem; 43 | } 44 | 45 | .info h3 { 46 | margin-bottom: 1rem; 47 | display: flex; 48 | align-items: center; 49 | gap: 0.5rem; 50 | } 51 | 52 | .description p { 53 | line-height: 1.4rem; 54 | } 55 | -------------------------------------------------------------------------------- /src/pages/Movie.jsx: -------------------------------------------------------------------------------- 1 | import { useEffect, useState } from "react"; 2 | import { useParams } from "react-router-dom"; 3 | import { 4 | BsGraphUp, 5 | BsWallet2, 6 | BsHourglassSplit, 7 | BsFillFileEarmarkTextFill, 8 | } from "react-icons/bs"; 9 | 10 | import MovieCard from "../components/MovieCard"; 11 | 12 | import "./Movie.css"; 13 | 14 | const moviesURL = import.meta.env.VITE_API; 15 | const apiKey = import.meta.env.VITE_API_KEY; 16 | 17 | const Movie = () => { 18 | const { id } = useParams(); 19 | const [movie, setMovie] = useState(null); 20 | 21 | const getMovie = async (url) => { 22 | const res = await fetch(url); 23 | const data = await res.json(); 24 | console.log(data); 25 | setMovie(data); 26 | }; 27 | 28 | const formatCurrency = (number) => { 29 | return number.toLocaleString("en-US", { 30 | style: "currency", 31 | currency: "USD", 32 | }); 33 | }; 34 | 35 | useEffect(() => { 36 | const movieUrl = `${moviesURL}${id}?${apiKey}`; 37 | getMovie(movieUrl); 38 | }, []); 39 | 40 | return ( 41 |
42 | {movie && ( 43 | <> 44 | 45 |

{movie.tagline}

46 |
47 |

48 | Orçamento: 49 |

50 |

{formatCurrency(movie.budget)}

51 |
52 |
53 |

54 | Receita: 55 |

56 |

{formatCurrency(movie.revenue)}

57 |
58 |
59 |

60 | Duração: 61 |

62 |

{movie.runtime} minutos

63 |
64 |
65 |

66 | Descrição: 67 |

68 |

{movie.overview}

69 |
70 | 71 | )} 72 |
73 | ); 74 | }; 75 | 76 | export default Movie; 77 | -------------------------------------------------------------------------------- /src/pages/MoviesGrid.css: -------------------------------------------------------------------------------- 1 | .container .title { 2 | color: #fff; 3 | font-size: 2.5rem; 4 | text-align: center; 5 | margin: 2rem 0 1rem; 6 | } 7 | 8 | .title .query-text { 9 | color: #f7d354; 10 | } 11 | 12 | .movies-container { 13 | display: flex; 14 | flex-wrap: wrap; 15 | justify-content: space-between; 16 | padding: 2rem; 17 | max-width: 1200px; 18 | margin: 0 auto; 19 | } 20 | 21 | .movies-container div { 22 | width: 30%; 23 | color: #fff; 24 | margin-bottom: 2.5rem; 25 | display: flex; 26 | flex-direction: column; 27 | justify-content: space-between; 28 | background-color: #111; 29 | padding: 1rem; 30 | } 31 | 32 | .movies-container div img { 33 | max-width: 100%; 34 | } 35 | 36 | .movies-container div img, 37 | .movies-container div p { 38 | margin-bottom: 1rem; 39 | } 40 | 41 | .movies-container div h2 { 42 | margin-bottom: 1.5rem; 43 | } 44 | 45 | .movies-container div svg { 46 | color: #f7d354; 47 | } 48 | 49 | .movies-container div a { 50 | background-color: #f7d354; 51 | border: 2px solid #f7d354; 52 | border-radius: 4px; 53 | color: #000; 54 | padding: 1rem 0.5rem; 55 | text-align: center; 56 | font-weight: bold; 57 | } 58 | 59 | .movies-container div a:hover { 60 | background-color: transparent; 61 | color: #f7d354; 62 | } 63 | -------------------------------------------------------------------------------- /src/pages/Search.jsx: -------------------------------------------------------------------------------- 1 | import { useEffect, useState } from "react"; 2 | import { useSearchParams } from "react-router-dom"; 3 | import MovieCard from "../components/MovieCard"; 4 | 5 | const searchURL = import.meta.env.VITE_SEARCH; 6 | const apiKey = import.meta.env.VITE_API_KEY; 7 | 8 | import "./MoviesGrid.css"; 9 | 10 | const Search = () => { 11 | const [searchParams] = useSearchParams(); 12 | 13 | const [movies, setMovies] = useState([]); 14 | const query = searchParams.get("q"); 15 | 16 | const getSearchedMovies = async (url) => { 17 | const res = await fetch(url); 18 | const data = await res.json(); 19 | setMovies(data.results); 20 | }; 21 | 22 | useEffect(() => { 23 | const searchWithQueryURL = `${searchURL}?${apiKey}&query=${query}`; 24 | getSearchedMovies(searchWithQueryURL); 25 | }, [query]); 26 | 27 | return ( 28 |
29 |

30 | Resultados para: {query} 31 |

32 |
33 | {movies.length > 0 && 34 | movies.map((movie) => )} 35 |
36 |
37 | ); 38 | }; 39 | 40 | export default Search; 41 | -------------------------------------------------------------------------------- /vite.config.js: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import react from '@vitejs/plugin-react' 3 | 4 | // https://vitejs.dev/config/ 5 | export default defineConfig({ 6 | plugins: [react()] 7 | }) 8 | --------------------------------------------------------------------------------