├── README.md ├── index.html ├── package-lock.json ├── package.json ├── src ├── App.css ├── App.jsx ├── components │ ├── Carousel.css │ └── Carousel.jsx ├── data │ └── carouselData.json ├── index.css └── main.jsx └── vite.config.js /README.md: -------------------------------------------------------------------------------- 1 | # react-image-carousel -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Vite + React 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "react-carousel", 3 | "version": "0.0.0", 4 | "lockfileVersion": 3, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "react-carousel", 9 | "version": "0.0.0", 10 | "dependencies": { 11 | "react": "^18.2.0", 12 | "react-dom": "^18.2.0", 13 | "react-icons": "^4.7.1" 14 | }, 15 | "devDependencies": { 16 | "@types/react": "^18.0.27", 17 | "@types/react-dom": "^18.0.10", 18 | "@vitejs/plugin-react": "^3.1.0", 19 | "vite": "^4.1.0" 20 | } 21 | }, 22 | "node_modules/@ampproject/remapping": { 23 | "version": "2.2.0", 24 | "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", 25 | "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", 26 | "dev": true, 27 | "dependencies": { 28 | "@jridgewell/gen-mapping": "^0.1.0", 29 | "@jridgewell/trace-mapping": "^0.3.9" 30 | }, 31 | "engines": { 32 | "node": ">=6.0.0" 33 | } 34 | }, 35 | "node_modules/@babel/code-frame": { 36 | "version": "7.18.6", 37 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", 38 | "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", 39 | "dev": true, 40 | "dependencies": { 41 | "@babel/highlight": "^7.18.6" 42 | }, 43 | "engines": { 44 | "node": ">=6.9.0" 45 | } 46 | }, 47 | "node_modules/@babel/compat-data": { 48 | "version": "7.21.0", 49 | "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.0.tgz", 50 | "integrity": "sha512-gMuZsmsgxk/ENC3O/fRw5QY8A9/uxQbbCEypnLIiYYc/qVJtEV7ouxC3EllIIwNzMqAQee5tanFabWsUOutS7g==", 51 | "dev": true, 52 | "engines": { 53 | "node": ">=6.9.0" 54 | } 55 | }, 56 | "node_modules/@babel/core": { 57 | "version": "7.21.0", 58 | "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.0.tgz", 59 | "integrity": "sha512-PuxUbxcW6ZYe656yL3EAhpy7qXKq0DmYsrJLpbB8XrsCP9Nm+XCg9XFMb5vIDliPD7+U/+M+QJlH17XOcB7eXA==", 60 | "dev": true, 61 | "dependencies": { 62 | "@ampproject/remapping": "^2.2.0", 63 | "@babel/code-frame": "^7.18.6", 64 | "@babel/generator": "^7.21.0", 65 | "@babel/helper-compilation-targets": "^7.20.7", 66 | "@babel/helper-module-transforms": "^7.21.0", 67 | "@babel/helpers": "^7.21.0", 68 | "@babel/parser": "^7.21.0", 69 | "@babel/template": "^7.20.7", 70 | "@babel/traverse": "^7.21.0", 71 | "@babel/types": "^7.21.0", 72 | "convert-source-map": "^1.7.0", 73 | "debug": "^4.1.0", 74 | "gensync": "^1.0.0-beta.2", 75 | "json5": "^2.2.2", 76 | "semver": "^6.3.0" 77 | }, 78 | "engines": { 79 | "node": ">=6.9.0" 80 | }, 81 | "funding": { 82 | "type": "opencollective", 83 | "url": "https://opencollective.com/babel" 84 | } 85 | }, 86 | "node_modules/@babel/generator": { 87 | "version": "7.21.1", 88 | "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.1.tgz", 89 | "integrity": "sha512-1lT45bAYlQhFn/BHivJs43AiW2rg3/UbLyShGfF3C0KmHvO5fSghWd5kBJy30kpRRucGzXStvnnCFniCR2kXAA==", 90 | "dev": true, 91 | "dependencies": { 92 | "@babel/types": "^7.21.0", 93 | "@jridgewell/gen-mapping": "^0.3.2", 94 | "@jridgewell/trace-mapping": "^0.3.17", 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-compilation-targets": { 116 | "version": "7.20.7", 117 | "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz", 118 | "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==", 119 | "dev": true, 120 | "dependencies": { 121 | "@babel/compat-data": "^7.20.5", 122 | "@babel/helper-validator-option": "^7.18.6", 123 | "browserslist": "^4.21.3", 124 | "lru-cache": "^5.1.1", 125 | "semver": "^6.3.0" 126 | }, 127 | "engines": { 128 | "node": ">=6.9.0" 129 | }, 130 | "peerDependencies": { 131 | "@babel/core": "^7.0.0" 132 | } 133 | }, 134 | "node_modules/@babel/helper-environment-visitor": { 135 | "version": "7.18.9", 136 | "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", 137 | "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", 138 | "dev": true, 139 | "engines": { 140 | "node": ">=6.9.0" 141 | } 142 | }, 143 | "node_modules/@babel/helper-function-name": { 144 | "version": "7.21.0", 145 | "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", 146 | "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", 147 | "dev": true, 148 | "dependencies": { 149 | "@babel/template": "^7.20.7", 150 | "@babel/types": "^7.21.0" 151 | }, 152 | "engines": { 153 | "node": ">=6.9.0" 154 | } 155 | }, 156 | "node_modules/@babel/helper-hoist-variables": { 157 | "version": "7.18.6", 158 | "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", 159 | "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", 160 | "dev": true, 161 | "dependencies": { 162 | "@babel/types": "^7.18.6" 163 | }, 164 | "engines": { 165 | "node": ">=6.9.0" 166 | } 167 | }, 168 | "node_modules/@babel/helper-module-imports": { 169 | "version": "7.18.6", 170 | "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", 171 | "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", 172 | "dev": true, 173 | "dependencies": { 174 | "@babel/types": "^7.18.6" 175 | }, 176 | "engines": { 177 | "node": ">=6.9.0" 178 | } 179 | }, 180 | "node_modules/@babel/helper-module-transforms": { 181 | "version": "7.21.2", 182 | "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz", 183 | "integrity": "sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==", 184 | "dev": true, 185 | "dependencies": { 186 | "@babel/helper-environment-visitor": "^7.18.9", 187 | "@babel/helper-module-imports": "^7.18.6", 188 | "@babel/helper-simple-access": "^7.20.2", 189 | "@babel/helper-split-export-declaration": "^7.18.6", 190 | "@babel/helper-validator-identifier": "^7.19.1", 191 | "@babel/template": "^7.20.7", 192 | "@babel/traverse": "^7.21.2", 193 | "@babel/types": "^7.21.2" 194 | }, 195 | "engines": { 196 | "node": ">=6.9.0" 197 | } 198 | }, 199 | "node_modules/@babel/helper-plugin-utils": { 200 | "version": "7.20.2", 201 | "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", 202 | "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", 203 | "dev": true, 204 | "engines": { 205 | "node": ">=6.9.0" 206 | } 207 | }, 208 | "node_modules/@babel/helper-simple-access": { 209 | "version": "7.20.2", 210 | "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", 211 | "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", 212 | "dev": true, 213 | "dependencies": { 214 | "@babel/types": "^7.20.2" 215 | }, 216 | "engines": { 217 | "node": ">=6.9.0" 218 | } 219 | }, 220 | "node_modules/@babel/helper-split-export-declaration": { 221 | "version": "7.18.6", 222 | "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", 223 | "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", 224 | "dev": true, 225 | "dependencies": { 226 | "@babel/types": "^7.18.6" 227 | }, 228 | "engines": { 229 | "node": ">=6.9.0" 230 | } 231 | }, 232 | "node_modules/@babel/helper-string-parser": { 233 | "version": "7.19.4", 234 | "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", 235 | "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", 236 | "dev": true, 237 | "engines": { 238 | "node": ">=6.9.0" 239 | } 240 | }, 241 | "node_modules/@babel/helper-validator-identifier": { 242 | "version": "7.19.1", 243 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", 244 | "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", 245 | "dev": true, 246 | "engines": { 247 | "node": ">=6.9.0" 248 | } 249 | }, 250 | "node_modules/@babel/helper-validator-option": { 251 | "version": "7.21.0", 252 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", 253 | "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", 254 | "dev": true, 255 | "engines": { 256 | "node": ">=6.9.0" 257 | } 258 | }, 259 | "node_modules/@babel/helpers": { 260 | "version": "7.21.0", 261 | "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.0.tgz", 262 | "integrity": "sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==", 263 | "dev": true, 264 | "dependencies": { 265 | "@babel/template": "^7.20.7", 266 | "@babel/traverse": "^7.21.0", 267 | "@babel/types": "^7.21.0" 268 | }, 269 | "engines": { 270 | "node": ">=6.9.0" 271 | } 272 | }, 273 | "node_modules/@babel/highlight": { 274 | "version": "7.18.6", 275 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", 276 | "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", 277 | "dev": true, 278 | "dependencies": { 279 | "@babel/helper-validator-identifier": "^7.18.6", 280 | "chalk": "^2.0.0", 281 | "js-tokens": "^4.0.0" 282 | }, 283 | "engines": { 284 | "node": ">=6.9.0" 285 | } 286 | }, 287 | "node_modules/@babel/parser": { 288 | "version": "7.21.2", 289 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.2.tgz", 290 | "integrity": "sha512-URpaIJQwEkEC2T9Kn+Ai6Xe/02iNaVCuT/PtoRz3GPVJVDpPd7mLo+VddTbhCRU9TXqW5mSrQfXZyi8kDKOVpQ==", 291 | "dev": true, 292 | "bin": { 293 | "parser": "bin/babel-parser.js" 294 | }, 295 | "engines": { 296 | "node": ">=6.0.0" 297 | } 298 | }, 299 | "node_modules/@babel/plugin-transform-react-jsx-self": { 300 | "version": "7.21.0", 301 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.21.0.tgz", 302 | "integrity": "sha512-f/Eq+79JEu+KUANFks9UZCcvydOOGMgF7jBrcwjHa5jTZD8JivnhCJYvmlhR/WTXBWonDExPoW0eO/CR4QJirA==", 303 | "dev": true, 304 | "dependencies": { 305 | "@babel/helper-plugin-utils": "^7.20.2" 306 | }, 307 | "engines": { 308 | "node": ">=6.9.0" 309 | }, 310 | "peerDependencies": { 311 | "@babel/core": "^7.0.0-0" 312 | } 313 | }, 314 | "node_modules/@babel/plugin-transform-react-jsx-source": { 315 | "version": "7.19.6", 316 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.19.6.tgz", 317 | "integrity": "sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ==", 318 | "dev": true, 319 | "dependencies": { 320 | "@babel/helper-plugin-utils": "^7.19.0" 321 | }, 322 | "engines": { 323 | "node": ">=6.9.0" 324 | }, 325 | "peerDependencies": { 326 | "@babel/core": "^7.0.0-0" 327 | } 328 | }, 329 | "node_modules/@babel/template": { 330 | "version": "7.20.7", 331 | "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", 332 | "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", 333 | "dev": true, 334 | "dependencies": { 335 | "@babel/code-frame": "^7.18.6", 336 | "@babel/parser": "^7.20.7", 337 | "@babel/types": "^7.20.7" 338 | }, 339 | "engines": { 340 | "node": ">=6.9.0" 341 | } 342 | }, 343 | "node_modules/@babel/traverse": { 344 | "version": "7.21.2", 345 | "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.2.tgz", 346 | "integrity": "sha512-ts5FFU/dSUPS13tv8XiEObDu9K+iagEKME9kAbaP7r0Y9KtZJZ+NGndDvWoRAYNpeWafbpFeki3q9QoMD6gxyw==", 347 | "dev": true, 348 | "dependencies": { 349 | "@babel/code-frame": "^7.18.6", 350 | "@babel/generator": "^7.21.1", 351 | "@babel/helper-environment-visitor": "^7.18.9", 352 | "@babel/helper-function-name": "^7.21.0", 353 | "@babel/helper-hoist-variables": "^7.18.6", 354 | "@babel/helper-split-export-declaration": "^7.18.6", 355 | "@babel/parser": "^7.21.2", 356 | "@babel/types": "^7.21.2", 357 | "debug": "^4.1.0", 358 | "globals": "^11.1.0" 359 | }, 360 | "engines": { 361 | "node": ">=6.9.0" 362 | } 363 | }, 364 | "node_modules/@babel/types": { 365 | "version": "7.21.2", 366 | "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.2.tgz", 367 | "integrity": "sha512-3wRZSs7jiFaB8AjxiiD+VqN5DTG2iRvJGQ+qYFrs/654lg6kGTQWIOFjlBo5RaXuAZjBmP3+OQH4dmhqiiyYxw==", 368 | "dev": true, 369 | "dependencies": { 370 | "@babel/helper-string-parser": "^7.19.4", 371 | "@babel/helper-validator-identifier": "^7.19.1", 372 | "to-fast-properties": "^2.0.0" 373 | }, 374 | "engines": { 375 | "node": ">=6.9.0" 376 | } 377 | }, 378 | "node_modules/@esbuild/android-arm": { 379 | "version": "0.16.17", 380 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.16.17.tgz", 381 | "integrity": "sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==", 382 | "cpu": [ 383 | "arm" 384 | ], 385 | "dev": true, 386 | "optional": true, 387 | "os": [ 388 | "android" 389 | ], 390 | "engines": { 391 | "node": ">=12" 392 | } 393 | }, 394 | "node_modules/@esbuild/android-arm64": { 395 | "version": "0.16.17", 396 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.16.17.tgz", 397 | "integrity": "sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg==", 398 | "cpu": [ 399 | "arm64" 400 | ], 401 | "dev": true, 402 | "optional": true, 403 | "os": [ 404 | "android" 405 | ], 406 | "engines": { 407 | "node": ">=12" 408 | } 409 | }, 410 | "node_modules/@esbuild/android-x64": { 411 | "version": "0.16.17", 412 | "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.16.17.tgz", 413 | "integrity": "sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ==", 414 | "cpu": [ 415 | "x64" 416 | ], 417 | "dev": true, 418 | "optional": true, 419 | "os": [ 420 | "android" 421 | ], 422 | "engines": { 423 | "node": ">=12" 424 | } 425 | }, 426 | "node_modules/@esbuild/darwin-arm64": { 427 | "version": "0.16.17", 428 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.16.17.tgz", 429 | "integrity": "sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w==", 430 | "cpu": [ 431 | "arm64" 432 | ], 433 | "dev": true, 434 | "optional": true, 435 | "os": [ 436 | "darwin" 437 | ], 438 | "engines": { 439 | "node": ">=12" 440 | } 441 | }, 442 | "node_modules/@esbuild/darwin-x64": { 443 | "version": "0.16.17", 444 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.16.17.tgz", 445 | "integrity": "sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg==", 446 | "cpu": [ 447 | "x64" 448 | ], 449 | "dev": true, 450 | "optional": true, 451 | "os": [ 452 | "darwin" 453 | ], 454 | "engines": { 455 | "node": ">=12" 456 | } 457 | }, 458 | "node_modules/@esbuild/freebsd-arm64": { 459 | "version": "0.16.17", 460 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.17.tgz", 461 | "integrity": "sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw==", 462 | "cpu": [ 463 | "arm64" 464 | ], 465 | "dev": true, 466 | "optional": true, 467 | "os": [ 468 | "freebsd" 469 | ], 470 | "engines": { 471 | "node": ">=12" 472 | } 473 | }, 474 | "node_modules/@esbuild/freebsd-x64": { 475 | "version": "0.16.17", 476 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.16.17.tgz", 477 | "integrity": "sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug==", 478 | "cpu": [ 479 | "x64" 480 | ], 481 | "dev": true, 482 | "optional": true, 483 | "os": [ 484 | "freebsd" 485 | ], 486 | "engines": { 487 | "node": ">=12" 488 | } 489 | }, 490 | "node_modules/@esbuild/linux-arm": { 491 | "version": "0.16.17", 492 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.16.17.tgz", 493 | "integrity": "sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ==", 494 | "cpu": [ 495 | "arm" 496 | ], 497 | "dev": true, 498 | "optional": true, 499 | "os": [ 500 | "linux" 501 | ], 502 | "engines": { 503 | "node": ">=12" 504 | } 505 | }, 506 | "node_modules/@esbuild/linux-arm64": { 507 | "version": "0.16.17", 508 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.16.17.tgz", 509 | "integrity": "sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g==", 510 | "cpu": [ 511 | "arm64" 512 | ], 513 | "dev": true, 514 | "optional": true, 515 | "os": [ 516 | "linux" 517 | ], 518 | "engines": { 519 | "node": ">=12" 520 | } 521 | }, 522 | "node_modules/@esbuild/linux-ia32": { 523 | "version": "0.16.17", 524 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.16.17.tgz", 525 | "integrity": "sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg==", 526 | "cpu": [ 527 | "ia32" 528 | ], 529 | "dev": true, 530 | "optional": true, 531 | "os": [ 532 | "linux" 533 | ], 534 | "engines": { 535 | "node": ">=12" 536 | } 537 | }, 538 | "node_modules/@esbuild/linux-loong64": { 539 | "version": "0.16.17", 540 | "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.16.17.tgz", 541 | "integrity": "sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==", 542 | "cpu": [ 543 | "loong64" 544 | ], 545 | "dev": true, 546 | "optional": true, 547 | "os": [ 548 | "linux" 549 | ], 550 | "engines": { 551 | "node": ">=12" 552 | } 553 | }, 554 | "node_modules/@esbuild/linux-mips64el": { 555 | "version": "0.16.17", 556 | "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.16.17.tgz", 557 | "integrity": "sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw==", 558 | "cpu": [ 559 | "mips64el" 560 | ], 561 | "dev": true, 562 | "optional": true, 563 | "os": [ 564 | "linux" 565 | ], 566 | "engines": { 567 | "node": ">=12" 568 | } 569 | }, 570 | "node_modules/@esbuild/linux-ppc64": { 571 | "version": "0.16.17", 572 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.16.17.tgz", 573 | "integrity": "sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g==", 574 | "cpu": [ 575 | "ppc64" 576 | ], 577 | "dev": true, 578 | "optional": true, 579 | "os": [ 580 | "linux" 581 | ], 582 | "engines": { 583 | "node": ">=12" 584 | } 585 | }, 586 | "node_modules/@esbuild/linux-riscv64": { 587 | "version": "0.16.17", 588 | "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.16.17.tgz", 589 | "integrity": "sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw==", 590 | "cpu": [ 591 | "riscv64" 592 | ], 593 | "dev": true, 594 | "optional": true, 595 | "os": [ 596 | "linux" 597 | ], 598 | "engines": { 599 | "node": ">=12" 600 | } 601 | }, 602 | "node_modules/@esbuild/linux-s390x": { 603 | "version": "0.16.17", 604 | "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.16.17.tgz", 605 | "integrity": "sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w==", 606 | "cpu": [ 607 | "s390x" 608 | ], 609 | "dev": true, 610 | "optional": true, 611 | "os": [ 612 | "linux" 613 | ], 614 | "engines": { 615 | "node": ">=12" 616 | } 617 | }, 618 | "node_modules/@esbuild/linux-x64": { 619 | "version": "0.16.17", 620 | "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.16.17.tgz", 621 | "integrity": "sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw==", 622 | "cpu": [ 623 | "x64" 624 | ], 625 | "dev": true, 626 | "optional": true, 627 | "os": [ 628 | "linux" 629 | ], 630 | "engines": { 631 | "node": ">=12" 632 | } 633 | }, 634 | "node_modules/@esbuild/netbsd-x64": { 635 | "version": "0.16.17", 636 | "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.16.17.tgz", 637 | "integrity": "sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA==", 638 | "cpu": [ 639 | "x64" 640 | ], 641 | "dev": true, 642 | "optional": true, 643 | "os": [ 644 | "netbsd" 645 | ], 646 | "engines": { 647 | "node": ">=12" 648 | } 649 | }, 650 | "node_modules/@esbuild/openbsd-x64": { 651 | "version": "0.16.17", 652 | "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.16.17.tgz", 653 | "integrity": "sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg==", 654 | "cpu": [ 655 | "x64" 656 | ], 657 | "dev": true, 658 | "optional": true, 659 | "os": [ 660 | "openbsd" 661 | ], 662 | "engines": { 663 | "node": ">=12" 664 | } 665 | }, 666 | "node_modules/@esbuild/sunos-x64": { 667 | "version": "0.16.17", 668 | "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.16.17.tgz", 669 | "integrity": "sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw==", 670 | "cpu": [ 671 | "x64" 672 | ], 673 | "dev": true, 674 | "optional": true, 675 | "os": [ 676 | "sunos" 677 | ], 678 | "engines": { 679 | "node": ">=12" 680 | } 681 | }, 682 | "node_modules/@esbuild/win32-arm64": { 683 | "version": "0.16.17", 684 | "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.16.17.tgz", 685 | "integrity": "sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw==", 686 | "cpu": [ 687 | "arm64" 688 | ], 689 | "dev": true, 690 | "optional": true, 691 | "os": [ 692 | "win32" 693 | ], 694 | "engines": { 695 | "node": ">=12" 696 | } 697 | }, 698 | "node_modules/@esbuild/win32-ia32": { 699 | "version": "0.16.17", 700 | "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.16.17.tgz", 701 | "integrity": "sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig==", 702 | "cpu": [ 703 | "ia32" 704 | ], 705 | "dev": true, 706 | "optional": true, 707 | "os": [ 708 | "win32" 709 | ], 710 | "engines": { 711 | "node": ">=12" 712 | } 713 | }, 714 | "node_modules/@esbuild/win32-x64": { 715 | "version": "0.16.17", 716 | "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.16.17.tgz", 717 | "integrity": "sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==", 718 | "cpu": [ 719 | "x64" 720 | ], 721 | "dev": true, 722 | "optional": true, 723 | "os": [ 724 | "win32" 725 | ], 726 | "engines": { 727 | "node": ">=12" 728 | } 729 | }, 730 | "node_modules/@jridgewell/gen-mapping": { 731 | "version": "0.1.1", 732 | "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", 733 | "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", 734 | "dev": true, 735 | "dependencies": { 736 | "@jridgewell/set-array": "^1.0.0", 737 | "@jridgewell/sourcemap-codec": "^1.4.10" 738 | }, 739 | "engines": { 740 | "node": ">=6.0.0" 741 | } 742 | }, 743 | "node_modules/@jridgewell/resolve-uri": { 744 | "version": "3.1.0", 745 | "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", 746 | "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", 747 | "dev": true, 748 | "engines": { 749 | "node": ">=6.0.0" 750 | } 751 | }, 752 | "node_modules/@jridgewell/set-array": { 753 | "version": "1.1.2", 754 | "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", 755 | "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", 756 | "dev": true, 757 | "engines": { 758 | "node": ">=6.0.0" 759 | } 760 | }, 761 | "node_modules/@jridgewell/sourcemap-codec": { 762 | "version": "1.4.14", 763 | "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", 764 | "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", 765 | "dev": true 766 | }, 767 | "node_modules/@jridgewell/trace-mapping": { 768 | "version": "0.3.17", 769 | "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", 770 | "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", 771 | "dev": true, 772 | "dependencies": { 773 | "@jridgewell/resolve-uri": "3.1.0", 774 | "@jridgewell/sourcemap-codec": "1.4.14" 775 | } 776 | }, 777 | "node_modules/@types/prop-types": { 778 | "version": "15.7.5", 779 | "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", 780 | "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==", 781 | "dev": true 782 | }, 783 | "node_modules/@types/react": { 784 | "version": "18.0.28", 785 | "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.28.tgz", 786 | "integrity": "sha512-RD0ivG1kEztNBdoAK7lekI9M+azSnitIn85h4iOiaLjaTrMjzslhaqCGaI4IyCJ1RljWiLCEu4jyrLLgqxBTew==", 787 | "dev": true, 788 | "dependencies": { 789 | "@types/prop-types": "*", 790 | "@types/scheduler": "*", 791 | "csstype": "^3.0.2" 792 | } 793 | }, 794 | "node_modules/@types/react-dom": { 795 | "version": "18.0.11", 796 | "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.11.tgz", 797 | "integrity": "sha512-O38bPbI2CWtgw/OoQoY+BRelw7uysmXbWvw3nLWO21H1HSh+GOlqPuXshJfjmpNlKiiSDG9cc1JZAaMmVdcTlw==", 798 | "dev": true, 799 | "dependencies": { 800 | "@types/react": "*" 801 | } 802 | }, 803 | "node_modules/@types/scheduler": { 804 | "version": "0.16.2", 805 | "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", 806 | "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==", 807 | "dev": true 808 | }, 809 | "node_modules/@vitejs/plugin-react": { 810 | "version": "3.1.0", 811 | "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-3.1.0.tgz", 812 | "integrity": "sha512-AfgcRL8ZBhAlc3BFdigClmTUMISmmzHn7sB2h9U1odvc5U/MjWXsAaz18b/WoppUTDBzxOJwo2VdClfUcItu9g==", 813 | "dev": true, 814 | "dependencies": { 815 | "@babel/core": "^7.20.12", 816 | "@babel/plugin-transform-react-jsx-self": "^7.18.6", 817 | "@babel/plugin-transform-react-jsx-source": "^7.19.6", 818 | "magic-string": "^0.27.0", 819 | "react-refresh": "^0.14.0" 820 | }, 821 | "engines": { 822 | "node": "^14.18.0 || >=16.0.0" 823 | }, 824 | "peerDependencies": { 825 | "vite": "^4.1.0-beta.0" 826 | } 827 | }, 828 | "node_modules/ansi-styles": { 829 | "version": "3.2.1", 830 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 831 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 832 | "dev": true, 833 | "dependencies": { 834 | "color-convert": "^1.9.0" 835 | }, 836 | "engines": { 837 | "node": ">=4" 838 | } 839 | }, 840 | "node_modules/browserslist": { 841 | "version": "4.21.5", 842 | "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", 843 | "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", 844 | "dev": true, 845 | "funding": [ 846 | { 847 | "type": "opencollective", 848 | "url": "https://opencollective.com/browserslist" 849 | }, 850 | { 851 | "type": "tidelift", 852 | "url": "https://tidelift.com/funding/github/npm/browserslist" 853 | } 854 | ], 855 | "dependencies": { 856 | "caniuse-lite": "^1.0.30001449", 857 | "electron-to-chromium": "^1.4.284", 858 | "node-releases": "^2.0.8", 859 | "update-browserslist-db": "^1.0.10" 860 | }, 861 | "bin": { 862 | "browserslist": "cli.js" 863 | }, 864 | "engines": { 865 | "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" 866 | } 867 | }, 868 | "node_modules/caniuse-lite": { 869 | "version": "1.0.30001458", 870 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001458.tgz", 871 | "integrity": "sha512-lQ1VlUUq5q9ro9X+5gOEyH7i3vm+AYVT1WDCVB69XOZ17KZRhnZ9J0Sqz7wTHQaLBJccNCHq8/Ww5LlOIZbB0w==", 872 | "dev": true, 873 | "funding": [ 874 | { 875 | "type": "opencollective", 876 | "url": "https://opencollective.com/browserslist" 877 | }, 878 | { 879 | "type": "tidelift", 880 | "url": "https://tidelift.com/funding/github/npm/caniuse-lite" 881 | } 882 | ] 883 | }, 884 | "node_modules/chalk": { 885 | "version": "2.4.2", 886 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 887 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 888 | "dev": true, 889 | "dependencies": { 890 | "ansi-styles": "^3.2.1", 891 | "escape-string-regexp": "^1.0.5", 892 | "supports-color": "^5.3.0" 893 | }, 894 | "engines": { 895 | "node": ">=4" 896 | } 897 | }, 898 | "node_modules/color-convert": { 899 | "version": "1.9.3", 900 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 901 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 902 | "dev": true, 903 | "dependencies": { 904 | "color-name": "1.1.3" 905 | } 906 | }, 907 | "node_modules/color-name": { 908 | "version": "1.1.3", 909 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 910 | "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", 911 | "dev": true 912 | }, 913 | "node_modules/convert-source-map": { 914 | "version": "1.9.0", 915 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", 916 | "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", 917 | "dev": true 918 | }, 919 | "node_modules/csstype": { 920 | "version": "3.1.1", 921 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz", 922 | "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==", 923 | "dev": true 924 | }, 925 | "node_modules/debug": { 926 | "version": "4.3.4", 927 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", 928 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", 929 | "dev": true, 930 | "dependencies": { 931 | "ms": "2.1.2" 932 | }, 933 | "engines": { 934 | "node": ">=6.0" 935 | }, 936 | "peerDependenciesMeta": { 937 | "supports-color": { 938 | "optional": true 939 | } 940 | } 941 | }, 942 | "node_modules/electron-to-chromium": { 943 | "version": "1.4.314", 944 | "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.314.tgz", 945 | "integrity": "sha512-+3RmNVx9hZLlc0gW//4yep0K5SYKmIvB5DXg1Yg6varsuAHlHwTeqeygfS8DWwLCsNOWrgj+p9qgM5WYjw1lXQ==", 946 | "dev": true 947 | }, 948 | "node_modules/esbuild": { 949 | "version": "0.16.17", 950 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.16.17.tgz", 951 | "integrity": "sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==", 952 | "dev": true, 953 | "hasInstallScript": true, 954 | "bin": { 955 | "esbuild": "bin/esbuild" 956 | }, 957 | "engines": { 958 | "node": ">=12" 959 | }, 960 | "optionalDependencies": { 961 | "@esbuild/android-arm": "0.16.17", 962 | "@esbuild/android-arm64": "0.16.17", 963 | "@esbuild/android-x64": "0.16.17", 964 | "@esbuild/darwin-arm64": "0.16.17", 965 | "@esbuild/darwin-x64": "0.16.17", 966 | "@esbuild/freebsd-arm64": "0.16.17", 967 | "@esbuild/freebsd-x64": "0.16.17", 968 | "@esbuild/linux-arm": "0.16.17", 969 | "@esbuild/linux-arm64": "0.16.17", 970 | "@esbuild/linux-ia32": "0.16.17", 971 | "@esbuild/linux-loong64": "0.16.17", 972 | "@esbuild/linux-mips64el": "0.16.17", 973 | "@esbuild/linux-ppc64": "0.16.17", 974 | "@esbuild/linux-riscv64": "0.16.17", 975 | "@esbuild/linux-s390x": "0.16.17", 976 | "@esbuild/linux-x64": "0.16.17", 977 | "@esbuild/netbsd-x64": "0.16.17", 978 | "@esbuild/openbsd-x64": "0.16.17", 979 | "@esbuild/sunos-x64": "0.16.17", 980 | "@esbuild/win32-arm64": "0.16.17", 981 | "@esbuild/win32-ia32": "0.16.17", 982 | "@esbuild/win32-x64": "0.16.17" 983 | } 984 | }, 985 | "node_modules/escalade": { 986 | "version": "3.1.1", 987 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", 988 | "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", 989 | "dev": true, 990 | "engines": { 991 | "node": ">=6" 992 | } 993 | }, 994 | "node_modules/escape-string-regexp": { 995 | "version": "1.0.5", 996 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 997 | "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", 998 | "dev": true, 999 | "engines": { 1000 | "node": ">=0.8.0" 1001 | } 1002 | }, 1003 | "node_modules/fsevents": { 1004 | "version": "2.3.2", 1005 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", 1006 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", 1007 | "dev": true, 1008 | "hasInstallScript": true, 1009 | "optional": true, 1010 | "os": [ 1011 | "darwin" 1012 | ], 1013 | "engines": { 1014 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0" 1015 | } 1016 | }, 1017 | "node_modules/function-bind": { 1018 | "version": "1.1.1", 1019 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 1020 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 1021 | "dev": true 1022 | }, 1023 | "node_modules/gensync": { 1024 | "version": "1.0.0-beta.2", 1025 | "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", 1026 | "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", 1027 | "dev": true, 1028 | "engines": { 1029 | "node": ">=6.9.0" 1030 | } 1031 | }, 1032 | "node_modules/globals": { 1033 | "version": "11.12.0", 1034 | "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", 1035 | "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", 1036 | "dev": true, 1037 | "engines": { 1038 | "node": ">=4" 1039 | } 1040 | }, 1041 | "node_modules/has": { 1042 | "version": "1.0.3", 1043 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 1044 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 1045 | "dev": true, 1046 | "dependencies": { 1047 | "function-bind": "^1.1.1" 1048 | }, 1049 | "engines": { 1050 | "node": ">= 0.4.0" 1051 | } 1052 | }, 1053 | "node_modules/has-flag": { 1054 | "version": "3.0.0", 1055 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 1056 | "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", 1057 | "dev": true, 1058 | "engines": { 1059 | "node": ">=4" 1060 | } 1061 | }, 1062 | "node_modules/is-core-module": { 1063 | "version": "2.11.0", 1064 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", 1065 | "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", 1066 | "dev": true, 1067 | "dependencies": { 1068 | "has": "^1.0.3" 1069 | }, 1070 | "funding": { 1071 | "url": "https://github.com/sponsors/ljharb" 1072 | } 1073 | }, 1074 | "node_modules/js-tokens": { 1075 | "version": "4.0.0", 1076 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 1077 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" 1078 | }, 1079 | "node_modules/jsesc": { 1080 | "version": "2.5.2", 1081 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", 1082 | "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", 1083 | "dev": true, 1084 | "bin": { 1085 | "jsesc": "bin/jsesc" 1086 | }, 1087 | "engines": { 1088 | "node": ">=4" 1089 | } 1090 | }, 1091 | "node_modules/json5": { 1092 | "version": "2.2.3", 1093 | "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", 1094 | "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", 1095 | "dev": true, 1096 | "bin": { 1097 | "json5": "lib/cli.js" 1098 | }, 1099 | "engines": { 1100 | "node": ">=6" 1101 | } 1102 | }, 1103 | "node_modules/loose-envify": { 1104 | "version": "1.4.0", 1105 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", 1106 | "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", 1107 | "dependencies": { 1108 | "js-tokens": "^3.0.0 || ^4.0.0" 1109 | }, 1110 | "bin": { 1111 | "loose-envify": "cli.js" 1112 | } 1113 | }, 1114 | "node_modules/lru-cache": { 1115 | "version": "5.1.1", 1116 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", 1117 | "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", 1118 | "dev": true, 1119 | "dependencies": { 1120 | "yallist": "^3.0.2" 1121 | } 1122 | }, 1123 | "node_modules/magic-string": { 1124 | "version": "0.27.0", 1125 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz", 1126 | "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==", 1127 | "dev": true, 1128 | "dependencies": { 1129 | "@jridgewell/sourcemap-codec": "^1.4.13" 1130 | }, 1131 | "engines": { 1132 | "node": ">=12" 1133 | } 1134 | }, 1135 | "node_modules/ms": { 1136 | "version": "2.1.2", 1137 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 1138 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", 1139 | "dev": true 1140 | }, 1141 | "node_modules/nanoid": { 1142 | "version": "3.3.4", 1143 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", 1144 | "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", 1145 | "dev": true, 1146 | "bin": { 1147 | "nanoid": "bin/nanoid.cjs" 1148 | }, 1149 | "engines": { 1150 | "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" 1151 | } 1152 | }, 1153 | "node_modules/node-releases": { 1154 | "version": "2.0.10", 1155 | "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", 1156 | "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==", 1157 | "dev": true 1158 | }, 1159 | "node_modules/path-parse": { 1160 | "version": "1.0.7", 1161 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", 1162 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", 1163 | "dev": true 1164 | }, 1165 | "node_modules/picocolors": { 1166 | "version": "1.0.0", 1167 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", 1168 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", 1169 | "dev": true 1170 | }, 1171 | "node_modules/postcss": { 1172 | "version": "8.4.21", 1173 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", 1174 | "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", 1175 | "dev": true, 1176 | "funding": [ 1177 | { 1178 | "type": "opencollective", 1179 | "url": "https://opencollective.com/postcss/" 1180 | }, 1181 | { 1182 | "type": "tidelift", 1183 | "url": "https://tidelift.com/funding/github/npm/postcss" 1184 | } 1185 | ], 1186 | "dependencies": { 1187 | "nanoid": "^3.3.4", 1188 | "picocolors": "^1.0.0", 1189 | "source-map-js": "^1.0.2" 1190 | }, 1191 | "engines": { 1192 | "node": "^10 || ^12 || >=14" 1193 | } 1194 | }, 1195 | "node_modules/react": { 1196 | "version": "18.2.0", 1197 | "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", 1198 | "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", 1199 | "dependencies": { 1200 | "loose-envify": "^1.1.0" 1201 | }, 1202 | "engines": { 1203 | "node": ">=0.10.0" 1204 | } 1205 | }, 1206 | "node_modules/react-dom": { 1207 | "version": "18.2.0", 1208 | "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", 1209 | "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", 1210 | "dependencies": { 1211 | "loose-envify": "^1.1.0", 1212 | "scheduler": "^0.23.0" 1213 | }, 1214 | "peerDependencies": { 1215 | "react": "^18.2.0" 1216 | } 1217 | }, 1218 | "node_modules/react-icons": { 1219 | "version": "4.7.1", 1220 | "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-4.7.1.tgz", 1221 | "integrity": "sha512-yHd3oKGMgm7zxo3EA7H2n7vxSoiGmHk5t6Ou4bXsfcgWyhfDKMpyKfhHR6Bjnn63c+YXBLBPUql9H4wPJM6sXw==", 1222 | "peerDependencies": { 1223 | "react": "*" 1224 | } 1225 | }, 1226 | "node_modules/react-refresh": { 1227 | "version": "0.14.0", 1228 | "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.0.tgz", 1229 | "integrity": "sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==", 1230 | "dev": true, 1231 | "engines": { 1232 | "node": ">=0.10.0" 1233 | } 1234 | }, 1235 | "node_modules/resolve": { 1236 | "version": "1.22.1", 1237 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", 1238 | "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", 1239 | "dev": true, 1240 | "dependencies": { 1241 | "is-core-module": "^2.9.0", 1242 | "path-parse": "^1.0.7", 1243 | "supports-preserve-symlinks-flag": "^1.0.0" 1244 | }, 1245 | "bin": { 1246 | "resolve": "bin/resolve" 1247 | }, 1248 | "funding": { 1249 | "url": "https://github.com/sponsors/ljharb" 1250 | } 1251 | }, 1252 | "node_modules/rollup": { 1253 | "version": "3.17.3", 1254 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.17.3.tgz", 1255 | "integrity": "sha512-p5LaCXiiOL/wrOkj8djsIDFmyU9ysUxcyW+EKRLHb6TKldJzXpImjcRSR+vgo09DBdofGcOoLOsRyxxG2n5/qQ==", 1256 | "dev": true, 1257 | "bin": { 1258 | "rollup": "dist/bin/rollup" 1259 | }, 1260 | "engines": { 1261 | "node": ">=14.18.0", 1262 | "npm": ">=8.0.0" 1263 | }, 1264 | "optionalDependencies": { 1265 | "fsevents": "~2.3.2" 1266 | } 1267 | }, 1268 | "node_modules/scheduler": { 1269 | "version": "0.23.0", 1270 | "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", 1271 | "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", 1272 | "dependencies": { 1273 | "loose-envify": "^1.1.0" 1274 | } 1275 | }, 1276 | "node_modules/semver": { 1277 | "version": "6.3.0", 1278 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", 1279 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", 1280 | "dev": true, 1281 | "bin": { 1282 | "semver": "bin/semver.js" 1283 | } 1284 | }, 1285 | "node_modules/source-map-js": { 1286 | "version": "1.0.2", 1287 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", 1288 | "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", 1289 | "dev": true, 1290 | "engines": { 1291 | "node": ">=0.10.0" 1292 | } 1293 | }, 1294 | "node_modules/supports-color": { 1295 | "version": "5.5.0", 1296 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 1297 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 1298 | "dev": true, 1299 | "dependencies": { 1300 | "has-flag": "^3.0.0" 1301 | }, 1302 | "engines": { 1303 | "node": ">=4" 1304 | } 1305 | }, 1306 | "node_modules/supports-preserve-symlinks-flag": { 1307 | "version": "1.0.0", 1308 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", 1309 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", 1310 | "dev": true, 1311 | "engines": { 1312 | "node": ">= 0.4" 1313 | }, 1314 | "funding": { 1315 | "url": "https://github.com/sponsors/ljharb" 1316 | } 1317 | }, 1318 | "node_modules/to-fast-properties": { 1319 | "version": "2.0.0", 1320 | "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", 1321 | "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", 1322 | "dev": true, 1323 | "engines": { 1324 | "node": ">=4" 1325 | } 1326 | }, 1327 | "node_modules/update-browserslist-db": { 1328 | "version": "1.0.10", 1329 | "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", 1330 | "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", 1331 | "dev": true, 1332 | "funding": [ 1333 | { 1334 | "type": "opencollective", 1335 | "url": "https://opencollective.com/browserslist" 1336 | }, 1337 | { 1338 | "type": "tidelift", 1339 | "url": "https://tidelift.com/funding/github/npm/browserslist" 1340 | } 1341 | ], 1342 | "dependencies": { 1343 | "escalade": "^3.1.1", 1344 | "picocolors": "^1.0.0" 1345 | }, 1346 | "bin": { 1347 | "browserslist-lint": "cli.js" 1348 | }, 1349 | "peerDependencies": { 1350 | "browserslist": ">= 4.21.0" 1351 | } 1352 | }, 1353 | "node_modules/vite": { 1354 | "version": "4.1.4", 1355 | "resolved": "https://registry.npmjs.org/vite/-/vite-4.1.4.tgz", 1356 | "integrity": "sha512-3knk/HsbSTKEin43zHu7jTwYWv81f8kgAL99G5NWBcA1LKvtvcVAC4JjBH1arBunO9kQka+1oGbrMKOjk4ZrBg==", 1357 | "dev": true, 1358 | "dependencies": { 1359 | "esbuild": "^0.16.14", 1360 | "postcss": "^8.4.21", 1361 | "resolve": "^1.22.1", 1362 | "rollup": "^3.10.0" 1363 | }, 1364 | "bin": { 1365 | "vite": "bin/vite.js" 1366 | }, 1367 | "engines": { 1368 | "node": "^14.18.0 || >=16.0.0" 1369 | }, 1370 | "optionalDependencies": { 1371 | "fsevents": "~2.3.2" 1372 | }, 1373 | "peerDependencies": { 1374 | "@types/node": ">= 14", 1375 | "less": "*", 1376 | "sass": "*", 1377 | "stylus": "*", 1378 | "sugarss": "*", 1379 | "terser": "^5.4.0" 1380 | }, 1381 | "peerDependenciesMeta": { 1382 | "@types/node": { 1383 | "optional": true 1384 | }, 1385 | "less": { 1386 | "optional": true 1387 | }, 1388 | "sass": { 1389 | "optional": true 1390 | }, 1391 | "stylus": { 1392 | "optional": true 1393 | }, 1394 | "sugarss": { 1395 | "optional": true 1396 | }, 1397 | "terser": { 1398 | "optional": true 1399 | } 1400 | } 1401 | }, 1402 | "node_modules/yallist": { 1403 | "version": "3.1.1", 1404 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", 1405 | "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", 1406 | "dev": true 1407 | } 1408 | } 1409 | } 1410 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "react-carousel", 3 | "private": true, 4 | "version": "0.0.0", 5 | "type": "module", 6 | "scripts": { 7 | "dev": "vite", 8 | "build": "vite build", 9 | "preview": "vite preview" 10 | }, 11 | "dependencies": { 12 | "react": "^18.2.0", 13 | "react-dom": "^18.2.0", 14 | "react-icons": "^4.7.1" 15 | }, 16 | "devDependencies": { 17 | "@types/react": "^18.0.27", 18 | "@types/react-dom": "^18.0.10", 19 | "@vitejs/plugin-react": "^3.1.0", 20 | "vite": "^4.1.0" 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/App.css: -------------------------------------------------------------------------------- 1 | .App { 2 | height: 100vh; 3 | display: flex; 4 | flex-direction: column; 5 | justify-content: center; 6 | align-items: center; 7 | } 8 | -------------------------------------------------------------------------------- /src/App.jsx: -------------------------------------------------------------------------------- 1 | import "./App.css"; 2 | import { Carousel } from "./components/Carousel"; 3 | 4 | import { slides } from "./data/carouselData.json"; 5 | 6 | function App() { 7 | return ( 8 |
9 | 10 |
11 | ); 12 | } 13 | 14 | export default App; 15 | -------------------------------------------------------------------------------- /src/components/Carousel.css: -------------------------------------------------------------------------------- 1 | .carousel { 2 | position: relative; 3 | display: flex; 4 | justify-content: center; 5 | align-items: center; 6 | width: 600px; 7 | height: 400px; 8 | } 9 | 10 | .slide { 11 | border-radius: 0.5rem; 12 | box-shadow: 0px 0px 7px #666; 13 | width: 100%; 14 | height: 100%; 15 | } 16 | 17 | .slide-hidden { 18 | display: none; 19 | } 20 | 21 | .arrow { 22 | position: absolute; 23 | filter: drop-shadow(0px 0px 5px #555); 24 | width: 2rem; 25 | height: 2rem; 26 | color: white; 27 | } 28 | 29 | .arrow:hover { 30 | cursor: pointer; 31 | } 32 | 33 | .arrow-left { 34 | left: 1rem; 35 | } 36 | 37 | .arrow-right { 38 | right: 1rem; 39 | } 40 | 41 | .indicators { 42 | display: flex; 43 | position: absolute; 44 | bottom: 1rem; 45 | } 46 | 47 | .indicator { 48 | background-color: white; 49 | height: 0.5rem; 50 | width: 0.5rem; 51 | border-radius: 100%; 52 | border: none; 53 | outline: none; 54 | box-shadow: 0px 0px 5px #555; 55 | margin: 0 0.2rem; 56 | cursor: pointer; 57 | } 58 | 59 | .indicator-inactive { 60 | background-color: grey; 61 | } 62 | -------------------------------------------------------------------------------- /src/components/Carousel.jsx: -------------------------------------------------------------------------------- 1 | import React, { useState } from "react"; 2 | import { BsArrowLeftCircleFill, BsArrowRightCircleFill } from "react-icons/bs"; 3 | 4 | import "./Carousel.css"; 5 | 6 | export const Carousel = ({ data }) => { 7 | const [slide, setSlide] = useState(0); 8 | 9 | const nextSlide = () => { 10 | setSlide(slide === data.length - 1 ? 0 : slide + 1); 11 | }; 12 | 13 | const prevSlide = () => { 14 | setSlide(slide === 0 ? data.length - 1 : slide - 1); 15 | }; 16 | 17 | return ( 18 |
19 | 20 | {data.map((item, idx) => { 21 | return ( 22 | {item.alt} 28 | ); 29 | })} 30 | 34 | 35 | {data.map((_, idx) => { 36 | return ( 37 | 44 | ); 45 | })} 46 | 47 |
48 | ); 49 | }; 50 | -------------------------------------------------------------------------------- /src/data/carouselData.json: -------------------------------------------------------------------------------- 1 | { 2 | "slides": [ 3 | { 4 | "src": "https://picsum.photos/seed/img1/600/400", 5 | "alt": "Image 1 for carousel" 6 | }, 7 | { 8 | "src": "https://picsum.photos/seed/img2/600/400", 9 | "alt": "Image 2 for carousel" 10 | }, 11 | { 12 | "src": "https://picsum.photos/seed/img3/600/400", 13 | "alt": "Image 3 for carousel" 14 | } 15 | ] 16 | } 17 | -------------------------------------------------------------------------------- /src/index.css: -------------------------------------------------------------------------------- 1 | * { 2 | box-sizing: border-box; 3 | margin: 0; 4 | padding: 0; 5 | font-family: Arial, Helvetica, sans-serif; 6 | } 7 | -------------------------------------------------------------------------------- /src/main.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import ReactDOM from 'react-dom/client' 3 | import App from './App' 4 | import './index.css' 5 | 6 | ReactDOM.createRoot(document.getElementById('root')).render( 7 | 8 | 9 | , 10 | ) 11 | -------------------------------------------------------------------------------- /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 | --------------------------------------------------------------------------------