From 2821e871ea9b91f2e72bb6320556ee53203a8147 Mon Sep 17 00:00:00 2001 From: minjekim64 Date: Wed, 18 Jun 2025 18:39:33 +0900 Subject: [PATCH 1/3] commit --- .DS_Store | Bin 0 -> 8196 bytes node_modules/.package-lock.json | 6 ++++++ package-lock.json | 6 ++++++ public/.DS_Store | Bin 0 -> 6148 bytes public/data/.DS_Store | Bin 0 -> 6148 bytes src/.DS_Store | Bin 0 -> 6148 bytes src/data/.DS_Store | Bin 0 -> 6148 bytes 7 files changed, 12 insertions(+) create mode 100644 .DS_Store create mode 100644 node_modules/.package-lock.json create mode 100644 package-lock.json create mode 100644 public/.DS_Store create mode 100644 public/data/.DS_Store create mode 100644 src/.DS_Store create mode 100644 src/data/.DS_Store diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..3186bcd434c5e35cad6ac8659b0269036d17ac9a GIT binary patch literal 8196 zcmeHMPj3=I6n_I)wzf8C+SrT9CSH;9M{64|NHNA}G!fGt)F2B8YnL4YOEDo$xT>GP zi(kQ`UOf8^y!ZwD7WFrOO4vo(TVvXpWahn@dA~O^zuB4PEkwjhgGP>Moro-CAyZ2z z{*gq#$TKOXTh<^M@bt*zb;sil>ZuuP(_k1d3>XFs1BL;^!2iGi-q|8qbKd)^*OZ0< z!@z}PK->>DvXDhB$4bhp1BDC$AQNbo3A+604{3`A$fA~GCDDS!6ckcHnGP|SjvSbR zqra%_$4V+VF*!2)=#iO@P?!!pm@UnT6_qrlVZbmj%Yca86O^GAxfDd=_xm_rD@QU( zVDi|G+B6_1V*NE@eR*Q-!n;qLdejVK*o_&C3(E#I={?YG3aCR~7(>r6mxpRrM@P_C zVZ-SF^KViaIiMPJ4|+}N8G1*3SomQ-3|~K}IOXTsl%FT?&b%pPSVa0eyj<36w*EZb{r#Bz#90da=KwPbGUBv$n=70Y`_dJ*d8U`*h11wRlluKaX z_yS5Z-O8-BN@c6nYGJE!Z0T!%L|3;MIs8RBB?124l9gsX3HF&iW2Mhfm_` z=*;e>sMV7oQs#r%Z!tyf+uSC*EmqAKd* z(z}(Jm-^{=)bWSs_;ey=929*&IF0&Q&ssf@N$N*Qf2b0oun!>@XHgQ$tRu%sI8wQu z9uPHA>sgJ-WOt`&Z?>Ij)1I_jdrs5dcDAO|npj)k*gx*w#rKJP)Y5bKE)`Y`7xV<3 z*}5ORVG_&a27E<)5l2i4kOHK@A}V0cI#FN5#nGBb0aD;s3gG!*gCVz0;Ira1+ex5Sa|;*{#^g7AZkbfQeZI^;FYe|?ZDd1-8#2QylZW+D=-Ac n<(g+H&{0=0#Nt)l08;?JjU8auaIP6V0QwP7GEhSb{HX%(eoR*P literal 0 HcmV?d00001 diff --git a/public/data/.DS_Store b/public/data/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..3ea94bf483291c59a6f6e6f839d5d63432f42347 GIT binary patch literal 6148 zcmeHKJ5B>Z41IQEa3?u{pl>r&lXZ4u7i@Wv9 zKJ~6G9OoP=>es13p}p}4;14}V_HEJEi`w+70y{^|qVpC`%!hyxk}4Va1qMC<#js3; literal 0 HcmV?d00001 diff --git a/src/.DS_Store b/src/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..652f278ab486932b3bc59a616021160271e20780 GIT binary patch literal 6148 zcmeHK&u`N(6n^e9>TW{n0R$JMNL;5<27;kova%g^T@V~LRFb6{fh?|?bOlwFas~bv zj{8sczi?vTv%RT5HjZf8{Ho{g+5VnWf35A9h(u?YJSS=rk%TjPD=4lo?q^@Hnr-1u zp~v__1%2Di)M1=0uw8>wz$tLk6yUX6r!DH^)1s;Mt77!G4kEewG$xyL~2VOWyLmx~$7p`7!*g zMqwG1!=e)n_PO>>sVu&TqxgN=8+Drx-m1Ke(!4j&32D*;<={h_Cu-DD!#pW;ZfH7W zLpHk2N8|DO>ox!7#>QmLAHP{|BYyE}GHJ+%PoHh>b-!lEx%$CcVBf>Wr|rJQ3;2oP za@r^1AkS2Ogf`|&$QMxx>8_Mq`~qiM@@0q}(GkR+6I%S4V>Yk>m-L-7a9jAHiusHh ze~0O@QFV4V6|jF@xq3IJ?`G{3a0>iG0p1^cIAdV3GN`u>6#5DP^w6vgF~2l$j&Cur zSQ$hQOqf)lNfq{rAxt{jeaj0hRt8Nv348ev_Q}HDP=tOu#`iUyL}1XBP64ODtO84> z+T`uvi&H3(UO;Xc=7L6!@Y5S`H!0h=Hemir3?E88WUMZnI&)&v&d1(9xcv|jo$v0?MP?#0g%XvP87tu@xt$Xd3tl!uW*e{qQ4ej-oO z$qT-@|NSl2vaD-4lSkPg;(5__cdNErA%}$Rp%-s1u#bCnu25}*>~Cu5EAno7HP8(S z27-ZLAQ%V+ev|>6*_7##VYIXL8%7%p1Or0`4y`-m`G1LD zX7rIiOo?7F5Dfe?26WO~H*+k?&(<%?<5`=aw@?b>3JnPC!6g74?jxtwY5qhTaoMpL UvI@s*IxsE*m5^wHfnQ+Y9c>~sCIA2c literal 0 HcmV?d00001 From 4b596685752506c58c2dabd2d6630ed29ea96057 Mon Sep 17 00:00:00 2001 From: minjekim64 Date: Wed, 18 Jun 2025 19:00:41 +0900 Subject: [PATCH 2/3] =?UTF-8?q?=EA=B9=80=EB=AF=BC=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 24 + index.html | 14 + node_modules/.package-lock.json | 6 - package-lock.json | 1726 +++++++++++++++++++++++++++++++ package.json | 20 + src/App.jsx | 16 + src/components/Layout.jsx | 14 + src/components/MovieCard.jsx | 14 + src/components/MovieList.jsx | 13 + src/components/NavBar.jsx | 30 + src/data/movieDetailData.json | 74 ++ src/data/movieListData.json | 401 +++++++ src/main.jsx | 12 + src/pages/MovieDetail.jsx | 22 + src/style.css | 33 + vite.config.js | 3 + 16 files changed, 2416 insertions(+), 6 deletions(-) create mode 100644 .gitignore create mode 100644 index.html delete mode 100644 node_modules/.package-lock.json create mode 100644 package.json create mode 100644 src/App.jsx create mode 100644 src/components/Layout.jsx create mode 100644 src/components/MovieCard.jsx create mode 100644 src/components/MovieList.jsx create mode 100644 src/components/NavBar.jsx create mode 100644 src/data/movieDetailData.json create mode 100644 src/data/movieListData.json create mode 100644 src/main.jsx create mode 100644 src/pages/MovieDetail.jsx create mode 100644 src/style.css create mode 100644 vite.config.js diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..54f07af5 --- /dev/null +++ b/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 00000000..26e16f31 --- /dev/null +++ b/index.html @@ -0,0 +1,14 @@ + + + + + + + + Movie App + + +
+ + + diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json deleted file mode 100644 index c1a188cb..00000000 --- a/node_modules/.package-lock.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "oz_react_mini_11", - "lockfileVersion": 3, - "requires": true, - "packages": {} -} diff --git a/package-lock.json b/package-lock.json index c1a188cb..d7203e53 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,1732 @@ { +<<<<<<< HEAD "name": "oz_react_mini_11", "lockfileVersion": 3, "requires": true, "packages": {} +======= + "name": "react-movie-complete", + "version": "0.0.1", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "react-movie-complete", + "version": "0.0.1", + "dependencies": { + "react": "^19.1.0", + "react-dom": "^19.1.0", + "react-router-dom": "^6.23.0" + }, + "devDependencies": { + "@vitejs/plugin-react": "^4.4.1", + "vite": "^6.3.5" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.27.1", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.27.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.27.5.tgz", + "integrity": "sha512-KiRAp/VoJaWkkte84TvUd9qjdbZAdiqyvMxrGl1N6vzFogKmaLgoM3L1kgtLicp2HP5fBJS8JrZKLVIZGVJAVg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.27.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.27.4.tgz", + "integrity": "sha512-bXYxrXFubeYdvB0NhD/NBB3Qi6aZeV20GOWVI47t2dkecCEoneR4NPVcb7abpXDEvejgrUfFtG6vG/zxAKmg+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.27.3", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-module-transforms": "^7.27.3", + "@babel/helpers": "^7.27.4", + "@babel/parser": "^7.27.4", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.27.4", + "@babel/types": "^7.27.3", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.27.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.5.tgz", + "integrity": "sha512-ZGhA37l0e/g2s1Cnzdix0O3aLYm66eF8aufiVteOgnwxgnRP8GoyMj7VWsgWnQbVKXyge7hqrFh2K2TQM6t1Hw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.27.5", + "@babel/types": "^7.27.3", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", + "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz", + "integrity": "sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.27.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", + "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", + "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.27.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.6.tgz", + "integrity": "sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.27.2", + "@babel/types": "^7.27.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.27.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.5.tgz", + "integrity": "sha512-OsQd175SxWkGlzbny8J3K8TnnDD0N3lrIUtB92xwyRpzaenGZhxDvxN/JgU00U3CDZNj9tPuDJ5H0WS4Nt3vKg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.3" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz", + "integrity": "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz", + "integrity": "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.27.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.4.tgz", + "integrity": "sha512-oNcu2QbHqts9BtOWJosOVJapWjBDSxGCpFvikNR5TGDYDQf3JwpIoMzIKrvfoti93cLfPJEG4tH9SPVeyCGgdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.27.3", + "@babel/parser": "^7.27.4", + "@babel/template": "^7.27.2", + "@babel/types": "^7.27.3", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.27.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.6.tgz", + "integrity": "sha512-ETyHEk2VHHvl9b9jZP5IHPavHYk57EhanlRRuae9XCpb/j5bDCbPPMOBfCWhnl/7EDJz0jEMCi/RhccCE8r1+Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.5.tgz", + "integrity": "sha512-9o3TMmpmftaCMepOdA5k/yDw8SfInyzWWTjYTFCX3kPSDJMROQTb8jg+h9Cnwnmm1vOzvxN7gIfB5V2ewpjtGA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.5.tgz", + "integrity": "sha512-AdJKSPeEHgi7/ZhuIPtcQKr5RQdo6OO2IL87JkianiMYMPbCtot9fxPbrMiBADOWWm3T2si9stAiVsGbTQFkbA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.5.tgz", + "integrity": "sha512-VGzGhj4lJO+TVGV1v8ntCZWJktV7SGCs3Pn1GRWI1SBFtRALoomm8k5E9Pmwg3HOAal2VDc2F9+PM/rEY6oIDg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.5.tgz", + "integrity": "sha512-D2GyJT1kjvO//drbRT3Hib9XPwQeWd9vZoBJn+bu/lVsOZ13cqNdDeqIF/xQ5/VmWvMduP6AmXvylO/PIc2isw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.5.tgz", + "integrity": "sha512-GtaBgammVvdF7aPIgH2jxMDdivezgFu6iKpmT+48+F8Hhg5J/sfnDieg0aeG/jfSvkYQU2/pceFPDKlqZzwnfQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.5.tgz", + "integrity": "sha512-1iT4FVL0dJ76/q1wd7XDsXrSW+oLoquptvh4CLR4kITDtqi2e/xwXwdCVH8hVHU43wgJdsq7Gxuzcs6Iq/7bxQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.5.tgz", + "integrity": "sha512-nk4tGP3JThz4La38Uy/gzyXtpkPW8zSAmoUhK9xKKXdBCzKODMc2adkB2+8om9BDYugz+uGV7sLmpTYzvmz6Sw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.5.tgz", + "integrity": "sha512-PrikaNjiXdR2laW6OIjlbeuCPrPaAl0IwPIaRv+SMV8CiM8i2LqVUHFC1+8eORgWyY7yhQY+2U2fA55mBzReaw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.5.tgz", + "integrity": "sha512-cPzojwW2okgh7ZlRpcBEtsX7WBuqbLrNXqLU89GxWbNt6uIg78ET82qifUy3W6OVww6ZWobWub5oqZOVtwolfw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.5.tgz", + "integrity": "sha512-Z9kfb1v6ZlGbWj8EJk9T6czVEjjq2ntSYLY2cw6pAZl4oKtfgQuS4HOq41M/BcoLPzrUbNd+R4BXFyH//nHxVg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.5.tgz", + "integrity": "sha512-sQ7l00M8bSv36GLV95BVAdhJ2QsIbCuCjh/uYrWiMQSUuV+LpXwIqhgJDcvMTj+VsQmqAHL2yYaasENvJ7CDKA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.5.tgz", + "integrity": "sha512-0ur7ae16hDUC4OL5iEnDb0tZHDxYmuQyhKhsPBV8f99f6Z9KQM02g33f93rNH5A30agMS46u2HP6qTdEt6Q1kg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.5.tgz", + "integrity": "sha512-kB/66P1OsHO5zLz0i6X0RxlQ+3cu0mkxS3TKFvkb5lin6uwZ/ttOkP3Z8lfR9mJOBk14ZwZ9182SIIWFGNmqmg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.5.tgz", + "integrity": "sha512-UZCmJ7r9X2fe2D6jBmkLBMQetXPXIsZjQJCjgwpVDz+YMcS6oFR27alkgGv3Oqkv07bxdvw7fyB71/olceJhkQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.5.tgz", + "integrity": "sha512-kTxwu4mLyeOlsVIFPfQo+fQJAV9mh24xL+y+Bm6ej067sYANjyEw1dNHmvoqxJUCMnkBdKpvOn0Ahql6+4VyeA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.5.tgz", + "integrity": "sha512-K2dSKTKfmdh78uJ3NcWFiqyRrimfdinS5ErLSn3vluHNeHVnBAFWC8a4X5N+7FgVE1EjXS1QDZbpqZBjfrqMTQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.5.tgz", + "integrity": "sha512-uhj8N2obKTE6pSZ+aMUbqq+1nXxNjZIIjCjGLfsWvVpy7gKCOL6rsY1MhRh9zLtUtAI7vpgLMK6DxjO8Qm9lJw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.5.tgz", + "integrity": "sha512-pwHtMP9viAy1oHPvgxtOv+OkduK5ugofNTVDilIzBLpoWAM16r7b/mxBvfpuQDpRQFMfuVr5aLcn4yveGvBZvw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.5.tgz", + "integrity": "sha512-WOb5fKrvVTRMfWFNCroYWWklbnXH0Q5rZppjq0vQIdlsQKuw6mdSihwSo4RV/YdQ5UCKKvBy7/0ZZYLBZKIbwQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.5.tgz", + "integrity": "sha512-7A208+uQKgTxHd0G0uqZO8UjK2R0DDb4fDmERtARjSHWxqMTye4Erz4zZafx7Di9Cv+lNHYuncAkiGFySoD+Mw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.5.tgz", + "integrity": "sha512-G4hE405ErTWraiZ8UiSoesH8DaCsMm0Cay4fsFWOOUcz8b8rC6uCvnagr+gnioEjWn0wC+o1/TAHt+It+MpIMg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.5.tgz", + "integrity": "sha512-l+azKShMy7FxzY0Rj4RCt5VD/q8mG/e+mDivgspo+yL8zW7qEwctQ6YqKX34DTEleFAvCIUviCFX1SDZRSyMQA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.5.tgz", + "integrity": "sha512-O2S7SNZzdcFG7eFKgvwUEZ2VG9D/sn/eIiz8XRZ1Q/DO5a3s76Xv0mdBzVM5j5R639lXQmPmSo0iRpHqUUrsxw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.5.tgz", + "integrity": "sha512-onOJ02pqs9h1iMJ1PQphR+VZv8qBMQ77Klcsqv9CNW2w6yLqoURLcgERAIurY6QE63bbLuqgP9ATqajFLK5AMQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.5.tgz", + "integrity": "sha512-TXv6YnJ8ZMVdX+SXWVBo/0p8LTcrUYngpWjvm91TMjjBQii7Oz11Lw5lbDV5Y0TzuhSJHwiH4hEtC1I42mMS0g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", + "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@remix-run/router": { + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.23.0.tgz", + "integrity": "sha512-O3rHJzAQKamUz1fvE0Qaw0xSFqsA/yafi2iqeE0pvdFtCO1viYx8QL6f3Ln/aCCTLxs68SLf0KPM9eSeM8yBnA==", + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.0-beta.11", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.11.tgz", + "integrity": "sha512-L/gAA/hyCSuzTF1ftlzUSI/IKr2POHsv1Dd78GfqkR83KMNuswWD61JxGV2L7nRwBBBSDr6R1gCkdTmoN7W4ag==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.43.0.tgz", + "integrity": "sha512-Krjy9awJl6rKbruhQDgivNbD1WuLb8xAclM4IR4cN5pHGAs2oIMMQJEiC3IC/9TZJ+QZkmZhlMO/6MBGxPidpw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.43.0.tgz", + "integrity": "sha512-ss4YJwRt5I63454Rpj+mXCXicakdFmKnUNxr1dLK+5rv5FJgAxnN7s31a5VchRYxCFWdmnDWKd0wbAdTr0J5EA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.43.0.tgz", + "integrity": "sha512-eKoL8ykZ7zz8MjgBenEF2OoTNFAPFz1/lyJ5UmmFSz5jW+7XbH1+MAgCVHy72aG59rbuQLcJeiMrP8qP5d/N0A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.43.0.tgz", + "integrity": "sha512-SYwXJgaBYW33Wi/q4ubN+ldWC4DzQY62S4Ll2dgfr/dbPoF50dlQwEaEHSKrQdSjC6oIe1WgzosoaNoHCdNuMg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.43.0.tgz", + "integrity": "sha512-SV+U5sSo0yujrjzBF7/YidieK2iF6E7MdF6EbYxNz94lA+R0wKl3SiixGyG/9Klab6uNBIqsN7j4Y/Fya7wAjQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.43.0.tgz", + "integrity": "sha512-J7uCsiV13L/VOeHJBo5SjasKiGxJ0g+nQTrBkAsmQBIdil3KhPnSE9GnRon4ejX1XDdsmK/l30IYLiAaQEO0Cg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.43.0.tgz", + "integrity": "sha512-gTJ/JnnjCMc15uwB10TTATBEhK9meBIY+gXP4s0sHD1zHOaIh4Dmy1X9wup18IiY9tTNk5gJc4yx9ctj/fjrIw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.43.0.tgz", + "integrity": "sha512-ZJ3gZynL1LDSIvRfz0qXtTNs56n5DI2Mq+WACWZ7yGHFUEirHBRt7fyIk0NsCKhmRhn7WAcjgSkSVVxKlPNFFw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.43.0.tgz", + "integrity": "sha512-8FnkipasmOOSSlfucGYEu58U8cxEdhziKjPD2FIa0ONVMxvl/hmONtX/7y4vGjdUhjcTHlKlDhw3H9t98fPvyA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.43.0.tgz", + "integrity": "sha512-KPPyAdlcIZ6S9C3S2cndXDkV0Bb1OSMsX0Eelr2Bay4EsF9yi9u9uzc9RniK3mcUGCLhWY9oLr6er80P5DE6XA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.43.0.tgz", + "integrity": "sha512-HPGDIH0/ZzAZjvtlXj6g+KDQ9ZMHfSP553za7o2Odegb/BEfwJcR0Sw0RLNpQ9nC6Gy8s+3mSS9xjZ0n3rhcYg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.43.0.tgz", + "integrity": "sha512-gEmwbOws4U4GLAJDhhtSPWPXUzDfMRedT3hFMyRAvM9Mrnj+dJIFIeL7otsv2WF3D7GrV0GIewW0y28dOYWkmw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.43.0.tgz", + "integrity": "sha512-XXKvo2e+wFtXZF/9xoWohHg+MuRnvO29TI5Hqe9xwN5uN8NKUYy7tXUG3EZAlfchufNCTHNGjEx7uN78KsBo0g==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.43.0.tgz", + "integrity": "sha512-ruf3hPWhjw6uDFsOAzmbNIvlXFXlBQ4nk57Sec8E8rUxs/AI4HD6xmiiasOOx/3QxS2f5eQMKTAwk7KHwpzr/Q==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.43.0.tgz", + "integrity": "sha512-QmNIAqDiEMEvFV15rsSnjoSmO0+eJLoKRD9EAa9rrYNwO/XRCtOGM3A5A0X+wmG+XRrw9Fxdsw+LnyYiZWWcVw==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.43.0.tgz", + "integrity": "sha512-jAHr/S0iiBtFyzjhOkAics/2SrXE092qyqEg96e90L3t9Op8OTzS6+IX0Fy5wCt2+KqeHAkti+eitV0wvblEoQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.43.0.tgz", + "integrity": "sha512-3yATWgdeXyuHtBhrLt98w+5fKurdqvs8B53LaoKD7P7H7FKOONLsBVMNl9ghPQZQuYcceV5CDyPfyfGpMWD9mQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.43.0.tgz", + "integrity": "sha512-wVzXp2qDSCOpcBCT5WRWLmpJRIzv23valvcTwMHEobkjippNf+C3ys/+wf07poPkeNix0paTNemB2XrHr2TnGw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.43.0.tgz", + "integrity": "sha512-fYCTEyzf8d+7diCw8b+asvWDCLMjsCEA8alvtAutqJOJp/wL5hs1rWSqJ1vkjgW0L2NB4bsYJrpKkiIPRR9dvw==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.43.0.tgz", + "integrity": "sha512-SnGhLiE5rlK0ofq8kzuDkM0g7FN1s5VYY+YSMTibP7CqShxCQvqtNxTARS4xX4PFJfHjG0ZQYX9iGzI3FQh5Aw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.7.tgz", + "integrity": "sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/estree": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", + "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@vitejs/plugin-react": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.5.2.tgz", + "integrity": "sha512-QNVT3/Lxx99nMQWJWF7K4N6apUEuT0KlZA3mx/mVaoGj3smm/8rc8ezz15J1pcbcjDK0V15rpHetVfya08r76Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.27.4", + "@babel/plugin-transform-react-jsx-self": "^7.27.1", + "@babel/plugin-transform-react-jsx-source": "^7.27.1", + "@rolldown/pluginutils": "1.0.0-beta.11", + "@types/babel__core": "^7.20.5", + "react-refresh": "^0.17.0" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0" + } + }, + "node_modules/browserslist": { + "version": "4.25.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.0.tgz", + "integrity": "sha512-PJ8gYKeS5e/whHBh8xrwYK+dAvEj7JXtz6uTucnMRB8OiGTsKccFekoRrjajPBHV8oOY+2tI4uxeceSimKwMFA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001718", + "electron-to-chromium": "^1.5.160", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.3" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001723", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001723.tgz", + "integrity": "sha512-1R/elMjtehrFejxwmexeXAtae5UO9iSyFn6G/I806CYC/BLyyBk1EPhrKBkWhy6wM6Xnm47dSJQec+tLJ39WHw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.168", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.168.tgz", + "integrity": "sha512-RUNQmFLNIWVW6+z32EJQ5+qx8ci6RGvdtDC0Ls+F89wz6I2AthpXF0w0DIrn2jpLX0/PU9ZCo+Qp7bg/EckJmA==", + "dev": true, + "license": "ISC" + }, + "node_modules/esbuild": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.5.tgz", + "integrity": "sha512-P8OtKZRv/5J5hhz0cUAdu/cLuPIKXpQl1R9pZtvmHWQvrAUVd0UNIPT4IB4W3rNOqVO0rlqHmCIbSwxh/c9yUQ==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.5", + "@esbuild/android-arm": "0.25.5", + "@esbuild/android-arm64": "0.25.5", + "@esbuild/android-x64": "0.25.5", + "@esbuild/darwin-arm64": "0.25.5", + "@esbuild/darwin-x64": "0.25.5", + "@esbuild/freebsd-arm64": "0.25.5", + "@esbuild/freebsd-x64": "0.25.5", + "@esbuild/linux-arm": "0.25.5", + "@esbuild/linux-arm64": "0.25.5", + "@esbuild/linux-ia32": "0.25.5", + "@esbuild/linux-loong64": "0.25.5", + "@esbuild/linux-mips64el": "0.25.5", + "@esbuild/linux-ppc64": "0.25.5", + "@esbuild/linux-riscv64": "0.25.5", + "@esbuild/linux-s390x": "0.25.5", + "@esbuild/linux-x64": "0.25.5", + "@esbuild/netbsd-arm64": "0.25.5", + "@esbuild/netbsd-x64": "0.25.5", + "@esbuild/openbsd-arm64": "0.25.5", + "@esbuild/openbsd-x64": "0.25.5", + "@esbuild/sunos-x64": "0.25.5", + "@esbuild/win32-arm64": "0.25.5", + "@esbuild/win32-ia32": "0.25.5", + "@esbuild/win32-x64": "0.25.5" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/fdir": { + "version": "6.4.6", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.6.tgz", + "integrity": "sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/node-releases": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "dev": true, + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/react": { + "version": "19.1.0", + "resolved": "https://registry.npmjs.org/react/-/react-19.1.0.tgz", + "integrity": "sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "19.1.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.0.tgz", + "integrity": "sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==", + "license": "MIT", + "dependencies": { + "scheduler": "^0.26.0" + }, + "peerDependencies": { + "react": "^19.1.0" + } + }, + "node_modules/react-refresh": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz", + "integrity": "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-router": { + "version": "6.30.1", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.30.1.tgz", + "integrity": "sha512-X1m21aEmxGXqENEPG3T6u0Th7g0aS4ZmoNynhbs+Cn+q+QGTLt+d5IQ2bHAXKzKcxGJjxACpVbnYQSCRcfxHlQ==", + "license": "MIT", + "dependencies": { + "@remix-run/router": "1.23.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8" + } + }, + "node_modules/react-router-dom": { + "version": "6.30.1", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.30.1.tgz", + "integrity": "sha512-llKsgOkZdbPU1Eg3zK8lCn+sjD9wMRZZPuzmdWWX5SUs8OFkN5HnFVC0u5KMeMaC9aoancFI/KoLuKPqN+hxHw==", + "license": "MIT", + "dependencies": { + "@remix-run/router": "1.23.0", + "react-router": "6.30.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8", + "react-dom": ">=16.8" + } + }, + "node_modules/rollup": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.43.0.tgz", + "integrity": "sha512-wdN2Kd3Twh8MAEOEJZsuxuLKCsBEo4PVNLK6tQWAn10VhsVewQLzcucMgLolRlhFybGxfclbPeEYBaP6RvUFGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.7" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.43.0", + "@rollup/rollup-android-arm64": "4.43.0", + "@rollup/rollup-darwin-arm64": "4.43.0", + "@rollup/rollup-darwin-x64": "4.43.0", + "@rollup/rollup-freebsd-arm64": "4.43.0", + "@rollup/rollup-freebsd-x64": "4.43.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.43.0", + "@rollup/rollup-linux-arm-musleabihf": "4.43.0", + "@rollup/rollup-linux-arm64-gnu": "4.43.0", + "@rollup/rollup-linux-arm64-musl": "4.43.0", + "@rollup/rollup-linux-loongarch64-gnu": "4.43.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.43.0", + "@rollup/rollup-linux-riscv64-gnu": "4.43.0", + "@rollup/rollup-linux-riscv64-musl": "4.43.0", + "@rollup/rollup-linux-s390x-gnu": "4.43.0", + "@rollup/rollup-linux-x64-gnu": "4.43.0", + "@rollup/rollup-linux-x64-musl": "4.43.0", + "@rollup/rollup-win32-arm64-msvc": "4.43.0", + "@rollup/rollup-win32-ia32-msvc": "4.43.0", + "@rollup/rollup-win32-x64-msvc": "4.43.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/scheduler": { + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz", + "integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==", + "license": "MIT" + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz", + "integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.4.4", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", + "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/vite": { + "version": "6.3.5", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.5.tgz", + "integrity": "sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.25.0", + "fdir": "^6.4.4", + "picomatch": "^4.0.2", + "postcss": "^8.5.3", + "rollup": "^4.34.9", + "tinyglobby": "^0.2.13" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "jiti": ">=1.21.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" + } + } +>>>>>>> a187eeffe724661cd0e23b3119c76db1ac4f803f } diff --git a/package.json b/package.json new file mode 100644 index 00000000..491d8bb5 --- /dev/null +++ b/package.json @@ -0,0 +1,20 @@ +{ + "name": "react-movie-complete", + "private": true, + "version": "0.0.1", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview" + }, + "dependencies": { + "react": "^19.1.0", + "react-dom": "^19.1.0", + "react-router-dom": "^6.23.0" + }, + "devDependencies": { + "@vitejs/plugin-react": "^4.4.1", + "vite": "^6.3.5" + } +} \ No newline at end of file diff --git a/src/App.jsx b/src/App.jsx new file mode 100644 index 00000000..dc168b81 --- /dev/null +++ b/src/App.jsx @@ -0,0 +1,16 @@ + +import { Routes, Route } from 'react-router-dom'; +import Layout from './components/Layout'; +import MovieList from './components/MovieList'; +import MovieDetail from './pages/MovieDetail'; + +export default function App() { + return ( + + }> + } /> + } /> + + + ); +} diff --git a/src/components/Layout.jsx b/src/components/Layout.jsx new file mode 100644 index 00000000..d6ffc557 --- /dev/null +++ b/src/components/Layout.jsx @@ -0,0 +1,14 @@ + +import { Outlet } from 'react-router-dom'; +import NavBar from './components/NavBar'; + +export default function Layout() { + return ( + <> + +
+ +
+ + ); +} diff --git a/src/components/MovieCard.jsx b/src/components/MovieCard.jsx new file mode 100644 index 00000000..2a54a992 --- /dev/null +++ b/src/components/MovieCard.jsx @@ -0,0 +1,14 @@ + +import { useNavigate } from 'react-router-dom'; +const IMG_BASE = 'https://image.tmdb.org/t/p/w500'; + +export default function MovieCard({ title, vote_average, poster_path }) { + const navigate = useNavigate(); + return ( +
navigate('/details')} style={{ cursor: 'pointer' }}> + {title} +

{title}

+

โญ {vote_average}

+
+ ); +} diff --git a/src/components/MovieList.jsx b/src/components/MovieList.jsx new file mode 100644 index 00000000..31356dcf --- /dev/null +++ b/src/components/MovieList.jsx @@ -0,0 +1,13 @@ + +import movies from '../data/movieListData.json'; +import MovieCard from './MovieCard'; + +export default function MovieList() { + return ( +
+ {movies.results.map((m) => ( + + ))} +
+ ); +} diff --git a/src/components/NavBar.jsx b/src/components/NavBar.jsx new file mode 100644 index 00000000..14b733bc --- /dev/null +++ b/src/components/NavBar.jsx @@ -0,0 +1,30 @@ + +import { NavLink } from 'react-router-dom'; + +export default function NavBar() { + const navStyle = { + padding: '1rem', + background: '#222', + color: 'white', + display: 'flex', + alignItems: 'center', + justifyContent: 'space-between', + }; + + const linkStyle = { + color: 'white', + textDecoration: 'none', + marginLeft: '1rem', + }; + + return ( + + ); +} diff --git a/src/data/movieDetailData.json b/src/data/movieDetailData.json new file mode 100644 index 00000000..ccc4cc41 --- /dev/null +++ b/src/data/movieDetailData.json @@ -0,0 +1,74 @@ +{ + "adult": false, + "backdrop_path": "/kYgQzzjNis5jJalYtIHgrom0gOx.jpg", + "belongs_to_collection": { + "id": 77816, + "name": "์ฟตํ‘ธํŒฌ๋” ์‹œ๋ฆฌ์ฆˆ", + "poster_path": "/xoYc0RYKSc3xC4S9OpPZxKocKtj.jpg", + "backdrop_path": "/uDosHOFFWtF5YteBRygHALFqLw2.jpg" + }, + "budget": 85000000, + "genres": [ + { + "id": 16, + "name": "์• ๋‹ˆ๋ฉ”์ด์…˜" + }, + { + "id": 28, + "name": "์•ก์…˜" + }, + { + "id": 10751, + "name": "๊ฐ€์กฑ" + }, + { + "id": 35, + "name": "์ฝ”๋ฏธ๋””" + }, + { + "id": 14, + "name": "ํŒํƒ€์ง€" + } + ], + "homepage": "", + "id": 1011985, + "imdb_id": "tt21692408", + "origin_country": [ + "US" + ], + "original_language": "en", + "original_title": "Kung Fu Panda 4", + "overview": "๋งˆ์นจ๋‚ด ๋‚ด๋ฉด์˜ ํ‰ํ™”โ€ฆ ๋ƒ‰๋ฉด์˜ ํ‰ํ™”โ€ฆ๊ฐ€ ์ฐพ์•„์™”๋‹ค๊ณ  ๋ฏฟ๋Š” ์šฉ์˜ ์ „์‚ฌ 'ํฌ' ์ด์   ํ‰ํ™”์˜ ๊ณ„๊ณก์˜ ์˜์  ์ง€๋„์ž๊ฐ€ ๋˜๊ณ , ์ž์‹ ์„ ๋Œ€์‹ ํ•  ํ›„๊ณ„์ž๋ฅผ ์ฐพ์•„์•ผ๋งŒ ํ•œ๋‹ค. \"์ด์ œ ์šฉ์˜ ์ „์‚ฌ๋Š” ๊ทธ๋งŒ๋‘ฌ์•ผ ํ•ด์š”?\" ์šฉ์˜ ์ „์‚ฌ๋กœ์˜ ๋ชจ์Šต์ด ์ต์ˆ™ํ•ด์ง€๊ณ  ์ƒˆ๋กœ์šด ์„ฑ์žฅ์„ ํ•˜๊ธฐ๋ณด๋‹ค ์ง€๊ธˆ ์ด๋Œ€๋กœ๊ฐ€ ์ข‹์€ 'ํฌ' ํ•˜์ง€๋งŒ ๋ชจ๋“  ์ฟตํ‘ธ ๋งˆ์Šคํ„ฐ๋“ค์˜ ๋Šฅ๋ ฅ์„ ๊ทธ๋Œ€๋กœ ๋ณต์ œํ•˜๋Š” ๊ฐ•๋ ฅํ•œ ๋นŒ๋Ÿฐ '์นด๋ฉœ๋ ˆ์˜จ'์ด ๋‚˜ํƒ€๋‚˜๊ณ  ๊ทธ๋…€๋ฅผ ๋ง‰๊ธฐ ์œ„ํ•ด ์ •์ฒด๋ฅผ ์•Œ ์ˆ˜ ์—†๋Š” ์ฟตํ‘ธ ๊ณ ์ˆ˜ '์  '๊ณผ ํ•จ๊ป˜ ๋ชจํ—˜์„ ๋– ๋‚˜๊ฒŒ ๋˜๋Š”๋ฐโ€ฆ ํฌ๋Š” ๊ฐ€์žฅ ๊ฐ•๋ ฅํ•œ ๋นŒ๋Ÿฐ๊ณผ ์ž๊ธฐ ์ž์‹ ๋งˆ์ € ๋›ฐ์–ด๋„˜๊ณ  ์ง„์ •ํ•œ ๋ณ€ํ™”๋ฅผ ํ•  ์ˆ˜ ์žˆ์„๊นŒ?", + "popularity": 1037.028, + "poster_path": "/1ZNOOMmILNUzVYbzG1j7GYb5bEV.jpg", + "production_companies": [ + { + "id": 521, + "logo_path": "/kP7t6RwGz2AvvTkvnI1uteEwHet.png", + "name": "DreamWorks Animation", + "origin_country": "US" + } + ], + "production_countries": [ + { + "iso_3166_1": "US", + "name": "United States of America" + } + ], + "release_date": "2024-03-02", + "revenue": 533540090, + "runtime": 94, + "spoken_languages": [ + { + "english_name": "English", + "iso_639_1": "en", + "name": "English" + } + ], + "status": "Released", + "tagline": "์˜ค๋žœ๋งŒ์ด์ง€! ๋“œ๋ฆผ์›์Šค ๋ ˆ์ „๋“œ ์‹œ๋ฆฌ์ฆˆ ๋งˆ์นจ๋‚ด ์ปด๋ฐฑ!", + "title": "์ฟตํ‘ธํŒฌ๋” 4", + "video": false, + "vote_average": 7.135, + "vote_count": 1751 +} \ No newline at end of file diff --git a/src/data/movieListData.json b/src/data/movieListData.json new file mode 100644 index 00000000..26abcc97 --- /dev/null +++ b/src/data/movieListData.json @@ -0,0 +1,401 @@ +{ + "page": 1, + "results": [ + { + "adult": false, + "backdrop_path": "/sR0SpCrXamlIkYMdfz83sFn5JS6.jpg", + "genre_ids": [ + 878, + 28, + 12 + ], + "id": 823464, + "original_language": "en", + "original_title": "Godzilla x Kong: The New Empire", + "overview": "๋‘ ํƒ€์ดํƒ„์˜ ์ „์„ค์ ์ธ ๋Œ€๊ฒฐ ์ดํ›„ ํ• ๋กœ์šฐ ์–ด์Šค์— ๋‚จ์€ ์ฝฉ์€ ๋“œ๋””์–ด ์• ํƒ€๊ฒŒ ์ฐพ๋˜ ๋™์กฑ์„ ๋ฐœ๊ฒฌํ•˜์ง€๋งŒ ๊ทธ ๋’ค์— ๋„์‚ฌ๋ฆฌ๊ณ  ์žˆ๋Š” ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ์œ„ํ˜‘์— ๋งž๋‹ฅ๋œจ๋ฆฐ๋‹ค. ํ•œํŽธ, ๊นŠ์€ ๋™๋ฉด์— ๋น ์ง„ ๊ณ ์งˆ๋ผ๋Š” ์•Œ ์ˆ˜ ์—†๋Š” ์‹ ํ˜ธ๋กœ ์ธํ•ด ๊นจ์–ด๋‚˜๊ณ  ํ‘ธ๋ฅธ ๋ˆˆ์˜ ํญ๊ตฐ ์Šค์นด ํ‚น์˜ ์ง€๋ฐฐ ์•„๋ž˜ ์œ„๊ธฐ์— ์ฒ˜ํ•œ ํ• ๋กœ์šฐ ์–ด์Šค๋ฅผ ๋งˆ์ฃผํ•˜๊ฒŒ ๋œ๋‹ค. ํ• ๋กœ์šฐ ์–ด์Šค๋Š” ๋ฌผ๋ก , ์ง€๊ตฌ์ƒ์—๋„ ์ถœ๋ชฐํ•ด ์ „์„ธ๊ณ„๋ฅผ ์ดˆํ† ํ™”์‹œํ‚ค๋Š” ํƒ€์ดํƒ„๋“ค์˜ ๋„๋ฐœ ์†์—์„œ ๊ณ ์งˆ๋ผ์™€ ์ฝฉ์€ ์‚ฌ์ƒ ์ฒ˜์Œ์œผ๋กœ ํ•œ ํŒ€์„ ์ด๋ค„ ๋ฐ˜๊ฒฉ์— ๋‚˜์„œ๊ธฐ๋กœ ํ•˜๋Š”๋ฐโ€ฆ", + "popularity": 5014.446, + "poster_path": "/4z1VMmlxHrziG45901esjB4dpIa.jpg", + "release_date": "2024-03-27", + "title": "๊ณ ์งˆ๋ผ X ์ฝฉ: ๋‰ด ์— ํŒŒ์ด์–ด", + "video": false, + "vote_average": 7.243, + "vote_count": 2019 + }, + { + "adult": false, + "backdrop_path": "/fqv8v6AycXKsivp1T5yKtLbGXce.jpg", + "genre_ids": [ + 878, + 12, + 28 + ], + "id": 653346, + "original_language": "en", + "original_title": "Kingdom of the Planet of the Apes", + "overview": "์ง„ํ™”ํ•œ ์œ ์ธ์›๊ณผ ํ‡ดํ™”๋œ ์ธ๊ฐ„๋“ค์ด ์‚ด์•„๊ฐ€๋Š” ๋•…. ์œ ์ธ์› ๋ฆฌ๋” ํ”„๋ก์‹œ๋ฌด์Šค๋Š” ์™„์ „ํ•œ ๊ตฐ๋ฆผ์„ ์œ„ํ•ด ์ธ๊ฐ„๋“ค์„ ์‚ฌ๋ƒฅํ•˜๋ฉฐ ์ž์‹ ์˜ ์ œ๊ตญ์„ ๊ฑด์„คํ•œ๋‹ค. ํ•œํŽธ, ๋˜ ๋‹ค๋ฅธ ์œ ์ธ์› ๋…ธ์•„๋Š” ์šฐ์—ฐํžˆ ์ˆจ๊ฒจ์ง„ ๊ณผ๊ฑฐ์˜ ์ด์•ผ๊ธฐ์™€ ์‹œ์ €์˜ ๊ฐ€๋ฅด์นจ์„ ๋“ฃ๊ฒŒ ๋˜๊ณ  ์ธ๊ฐ„๊ณผ ์œ ์ธ์›์ด ํ•จ๊ป˜ ํ•  ์ƒˆ๋กœ์šด ์„ธ์ƒ์„ ๊ฟˆ๊พผ๋‹ค. ์–ด๋А ๋‚  ๊ทธ์˜ ์•ž์— ๋‚˜ํƒ€๋‚œ ์˜๋ฌธ์˜ ํ•œ ์ธ๊ฐ„ ์†Œ๋…€. ๋…ธ์•„๋Š” ๊ทธ๋…€์™€ ํ•จ๊ป˜ ์ž์œ ๋ฅผ ํ–ฅํ•œ ์—ฌ์ •์„ ์‹œ์ž‘ํ•˜๊ฒŒ ๋˜๋Š”๋ฐโ€ฆ", + "popularity": 1585.42, + "poster_path": "/plNOSbqkSuGEK2i15A5btAXtB7t.jpg", + "release_date": "2024-05-08", + "title": "ํ˜น์„ฑํƒˆ์ถœ: ์ƒˆ๋กœ์šด ์‹œ๋Œ€", + "video": false, + "vote_average": 7.15, + "vote_count": 526 + }, + { + "adult": false, + "backdrop_path": "/fY3lD0jM5AoHJMunjGWqJ0hRteI.jpg", + "genre_ids": [ + 878, + 27, + 28 + ], + "id": 940721, + "original_language": "ja", + "original_title": "ใ‚ดใ‚ธใƒฉ-1.0", + "overview": "๊ณ ์งˆ๋ผ ํƒ„์ƒ 70์ฃผ๋…„ ๊ธฐ๋… ์ž‘ํ’ˆ. ์‹œ๋ฆฌ์ฆˆ ์‚ฌ์ƒ ์ตœ์•…์˜ ์ ˆ๋ง์ด ์ผ๋ณธ์„ ์Šต๊ฒฉํ•œ๋‹ค! ์ „ํ›„, ์ œ๋กœ๊ฐ€ ๋œ ์ผ๋ณธ์„ ๋’ค์ซ“๋“ฏ ๋‚˜ํƒ€๋‚œ ๊ณ ์งˆ๋ผ๊ฐ€ ์ด ๋‚˜๋ผ๋ฅผ ๋งˆ์ด๋„ˆ์Šค๋กœ ๋–จ์–ด๋œจ๋ฆฐ๋‹ค. ์‚ฌ์ƒ ์ตœ๊ณ ๋กœ ์ ˆ๋ง์ ์ธ ์ƒํ™ฉ ์†์—์„œ์˜ ์Šต๊ฒฉ์— ๋ˆ„๊ฐ€? ๊ทธ๋ฆฌ๊ณ  ์–ด๋–ป๊ฒŒ? ์ผ๋ณธ์€ ๋งž์„œ๊ฒŒ ๋˜๋Š” ๊ฒƒ์ธ๊ฐ€...", + "popularity": 1133.298, + "poster_path": "/buvBq2zLP7CcJth8tjrI4znvfEO.jpg", + "release_date": "2023-11-03", + "title": "๊ณ ์งˆ๋ผ: ๋งˆ์ด๋„ˆ์Šค ์›", + "video": false, + "vote_average": 7.688, + "vote_count": 1131 + }, + { + "adult": false, + "backdrop_path": "/piLUbWQ3pgkma1nCyjHLEoMCSsN.jpg", + "genre_ids": [ + 18, + 10770 + ], + "id": 1219685, + "original_language": "fr", + "original_title": "Un pรจre idรฉal", + "overview": "", + "popularity": 1084.605, + "poster_path": "/4xJd3uwtL1vCuZgEfEc8JXI9Uyx.jpg", + "release_date": "2024-04-21", + "title": "Un pรจre idรฉal", + "video": false, + "vote_average": 6.44, + "vote_count": 25 + }, + { + "adult": false, + "backdrop_path": "/xOMo8BRK7PfcJv9JCnx7s5hj0PX.jpg", + "genre_ids": [ + 878, + 12 + ], + "id": 693134, + "original_language": "en", + "original_title": "Dune: Part Two", + "overview": "ํ™ฉ์ œ์˜ ๋ชจ๋žต์œผ๋กœ ๋ฉธ๋ฌธํ•œ ๊ฐ€๋ฌธ์˜ ์œ ์ผํ•œ ํ›„๊ณ„์ž ํด. ์–ด๋จธ๋‹ˆ ๋ ˆ์ด๋”” ์ œ์‹œ์นด์™€ ๊ฐ„์‹ ํžˆ ๋ชฉ์ˆจ๋งŒ ๋ถ€์ง€ํ•œ ์ฑ„ ์‚ฌ๋ง‰์œผ๋กœ ๋„๋ง์นœ๋‹ค. ๊ทธ๊ณณ์—์„œ ๋งŒ๋‚œ ๋ฐ˜๋ž€๊ตฐ๋“ค๊ณผ ์ˆจ์–ด ์ง€๋‚ด๋‹ค ๊ทธ๋“ค๊ณผ ํ•จ๊ป˜ ํ™ฉ์ œ์˜ ๋ชจ๋“  ๊ฒƒ์„ ํŒŒ๊ดดํ•  ์ „ํˆฌ๋ฅผ ์ค€๋น„ํ•œ๋‹ค. ํ•œํŽธ ๋ฐ˜๋ž€๊ตฐ๋“ค์˜ ๊ธฐ์„ธ๊ฐ€ ๋†’์•„์งˆ์ˆ˜๋ก ๋ถˆ์•ˆํ•ด์ง„ ํ™ฉ์ œ์™€ ๊ท€์กฑ ๊ฐ€๋ฌธ์€ ์ž”ํ˜นํ•œ ์•”์‚ด์ž ํŽ˜์ด๋“œ ๋กœํƒ€๋ฅผ ๋ณด๋‚ด ๋ฐ˜๋ž€๊ตฐ์„ ๋ชฐ์‚ดํ•˜๋ ค ํ•˜๋Š”๋ฐโ€ฆ", + "popularity": 1029.23, + "poster_path": "/8uUU2pxm6IYZw8UgnKJyx7Dqwu9.jpg", + "release_date": "2024-02-27", + "title": "๋“„: ํŒŒํŠธ 2", + "video": false, + "vote_average": 8.186, + "vote_count": 4041 + }, + { + "adult": false, + "backdrop_path": "/tdkCqOQ87ns39bWtzjJYsGTloH9.jpg", + "genre_ids": [ + 28, + 80, + 9648, + 53 + ], + "id": 996154, + "original_language": "en", + "original_title": "Black Lotus", + "overview": "๋งˆํ…Œ์˜ค๋Š” ์ธ์งˆ ๊ตฌ์ถœ ์ž‘์ „ ์ค‘, ์ƒ์‚ฌ ์กด์˜ ๋ช…๋ น์„ ๋ฌด์‹œํ•˜๊ณ  ํŒ€์›๋“ค์„ ์œ„๊ธฐ์— ๋ชฐ์•„๋„ฃ๋Š”๋‹ค. ๊ทธ๋“ค์€ ๊ฐ€๊นŒ์Šค๋กœ ์ธ์งˆ๋ฒ”๋“ค์„ ์†Œํƒ•ํ•˜์ง€๋งŒ, ์ธ์งˆ๋กœ ์œ„์žฅํ•˜๊ณ  ์žˆ๋˜ ๋ฒ”์ธ ์ค‘ ํ•œ ๋ช…์ด ์กด์„ ์‚ฌ์‚ดํ•œ๋‹ค. ๊ทธ ํ›„ ๋งˆํ…Œ์˜ค๋Š” ์ „์—ญํ•˜๊ณ  ์ „ ์„ธ๊ณ„๋ฅผ ๋– ๋Œ๋ฉฐ ์ผ์šฉ์ง์œผ๋กœ ๊ทผ๊ทผํžˆ ์‚ด์•„๊ฐ„๋‹ค. ์กด์ด ์„ธ์ƒ์„ ๋– ๋‚œ ์ง€ 5๋…„์ด ๋˜๋˜ ๋‚ , ๋งˆํ…Œ์˜ค๋Š” ์กด์˜ ์•„๋‚ด ํ—ฌ๋ Œ์„ ์ฐพ์•„๊ฐ€ ์‚ฌ๊ณผํ•œ๋‹ค. ํ—ฌ๋ Œ์€ ํ™€๋กœ ๋”ธ ์•ค์ง€๋ฅผ ํ‚ค์šฐ๋‹ค๊ฐ€ ํˆฌ์ž ํšŒ์‚ฌ ์‚ฌ์žฅ ํด๊ณผ ์ž‘๋…„์— ์žฌํ˜ผ์„ ํ–ˆ๋‹ค. ๋”ฑํžˆ ๋ฌต์„ ๊ณณ์ด ์—†๋˜ ๋งˆํ…Œ์˜ค๋Š” ํ—ฌ๋ Œ์˜ ์ง‘์—์„œ ๋ฉฐ์น  ๋ฌต๊ธฐ๋กœ ํ•˜๊ณ , ๊ทธ์˜ ๋”ธ ์•ค์ง€์™€ ์นœํ•ด์ง„๋‹ค. ํ•œํŽธ, ํด์€ ํญ๋ ฅ์กฐ์ง์˜ ๋‘๋ชฉ ๊ฐœ๋ธŒ๋ฆฌ์–ผ ์‚ฌ๋ฐ˜์˜ ๋ˆ์„ ๊ด€๋ฆฌํ•˜๋‹ค๊ฐ€ ํˆฌ์ž๋ฅผ ์ž˜๋ชปํ•ด 1,500๋งŒ ์œ ๋กœ๋ฅผ ๋‚ ๋ ค ๋ฒ„๋ฆฐ๋‹ค. ์‚ฌ๋ฐ˜์€ ๋ˆ์„ ์ฐพ์•„๋‚ด๋ผ๋ฉฐ ํด์„ ์••๋ฐ•ํ•˜๊ณ , ํด์ด ๋ณ€๋ช…๋งŒ ๋Š˜์–ด๋†“์ž, ๊ทธ์˜ ๋”ธ ์•ค์ง€๋ฅผ ๋‚ฉ์น˜ํ•œ๋‹ค. ์ด์— ๋งˆํ…Œ์˜ค๋Š” ์•ค์ง€๋ฅผ ์ฐพ์•„ ๋‚˜์„œ๋Š”๋ฐโ€ฆ", + "popularity": 821.393, + "poster_path": "/jqHaAESQIA6bpEwPnE2Wulba40D.jpg", + "release_date": "2023-04-12", + "title": "๋ธ”๋ž™ ๋กœํ„ฐ์Šค", + "video": false, + "vote_average": 6.462, + "vote_count": 92 + }, + { + "adult": false, + "backdrop_path": "/kYgQzzjNis5jJalYtIHgrom0gOx.jpg", + "genre_ids": [ + 16, + 28, + 10751, + 35, + 14 + ], + "id": 1011985, + "original_language": "en", + "original_title": "Kung Fu Panda 4", + "overview": "๋งˆ์นจ๋‚ด ๋‚ด๋ฉด์˜ ํ‰ํ™”โ€ฆ ๋ƒ‰๋ฉด์˜ ํ‰ํ™”โ€ฆ๊ฐ€ ์ฐพ์•„์™”๋‹ค๊ณ  ๋ฏฟ๋Š” ์šฉ์˜ ์ „์‚ฌ โ€˜ํฌโ€™ ์ด์   ํ‰ํ™”์˜ ๊ณ„๊ณก์˜ ์˜์  ์ง€๋„์ž๊ฐ€ ๋˜๊ณ , ์ž์‹ ์„ ๋Œ€์‹ ํ•  ํ›„๊ณ„์ž๋ฅผ ์ฐพ์•„์•ผ๋งŒ ํ•œ๋‹ค. โ€œ์ด์ œ ์šฉ์˜ ์ „์‚ฌ๋Š” ๊ทธ๋งŒ๋‘ฌ์•ผ ํ•ด์š”?โ€ ์šฉ์˜ ์ „์‚ฌ๋กœ์˜ ๋ชจ์Šต์ด ์ต์ˆ™ํ•ด์ง€๊ณ  ์ƒˆ๋กœ์šด ์„ฑ์žฅ์„ ํ•˜๊ธฐ๋ณด๋‹ค ์ง€๊ธˆ ์ด๋Œ€๋กœ๊ฐ€ ์ข‹์€ โ€˜ํฌโ€™ ํ•˜์ง€๋งŒ ๋ชจ๋“  ์ฟตํ‘ธ ๋งˆ์Šคํ„ฐ๋“ค์˜ ๋Šฅ๋ ฅ์„ ๊ทธ๋Œ€๋กœ ๋ณต์ œํ•˜๋Š” ๊ฐ•๋ ฅํ•œ ๋นŒ๋Ÿฐ โ€˜์นด๋ฉœ๋ ˆ์˜จโ€™์ด ๋‚˜ํƒ€๋‚˜๊ณ  ๊ทธ๋…€๋ฅผ ๋ง‰๊ธฐ ์œ„ํ•ด ์ •์ฒด๋ฅผ ์•Œ ์ˆ˜ ์—†๋Š” ์ฟตํ‘ธ ๊ณ ์ˆ˜ โ€˜์  โ€™๊ณผ ํ•จ๊ป˜ ๋ชจํ—˜์„ ๋– ๋‚˜๊ฒŒ ๋˜๋Š”๋ฐโ€ฆ ํฌ๋Š” ๊ฐ€์žฅ ๊ฐ•๋ ฅํ•œ ๋นŒ๋Ÿฐ๊ณผ ์ž๊ธฐ ์ž์‹ ๋งˆ์ € ๋›ฐ์–ด๋„˜๊ณ  ์ง„์ •ํ•œ ๋ณ€ํ™”๋ฅผ ํ•  ์ˆ˜ ์žˆ์„๊นŒ?", + "popularity": 841.65, + "poster_path": "/1ZNOOMmILNUzVYbzG1j7GYb5bEV.jpg", + "release_date": "2024-03-02", + "title": "์ฟตํ‘ธํŒฌ๋” 4", + "video": false, + "vote_average": 7.128, + "vote_count": 1720 + }, + { + "adult": false, + "backdrop_path": "/q8IEFmEGGSGmAWfwRs23XDwdFN4.jpg", + "genre_ids": [ + 878, + 28, + 12 + ], + "id": 786892, + "original_language": "en", + "original_title": "Furiosa: A Mad Max Saga", + "overview": "๋ฌธ๋ช… ๋ถ•๊ดด 45๋…„ ํ›„, ํ™ฉํํ•ด์ง„ ์„ธ์ƒ์— ๋ฌด์ฐธํžˆ ๋˜์ ธ์ง„ 'ํ“จ๋ฆฌ์˜ค์‚ฌ'๊ฐ€ ๊ณ ํ–ฅ์œผ๋กœ ๋Œ์•„๊ฐ€๊ธฐ ์œ„ํ•ด ์ž์‹ ์˜ ์ธ์ƒ ์ „๋ถ€๋ฅผ ๊ฑธ๊ณ  ๋– ๋‚˜๋Š” ๊ฑฐ๋Œ€ํ•œ ์—ฌ์ •์„ ๊ทธ๋ฆฐ ์•ก์…˜ ๋ธ”๋ก๋ฒ„์Šคํ„ฐ", + "popularity": 794.804, + "poster_path": "/zaUFDdJidS4Nyyd6jb2Ok3Kq4Vo.jpg", + "release_date": "2024-05-22", + "title": "ํ“จ๋ฆฌ์˜ค์‚ฌ: ๋งค๋“œ๋งฅ์Šค ์‚ฌ๊ฐ€", + "video": false, + "vote_average": 7.6, + "vote_count": 79 + }, + { + "adult": false, + "backdrop_path": "/rmNlWyez5cniGtXkgixG1ezdqVk.jpg", + "genre_ids": [ + 28, + 53 + ], + "id": 1093995, + "original_language": "en", + "original_title": "Chief of Station", + "overview": "", + "popularity": 755.809, + "poster_path": "/uuA01PTtPombRPvL9dvsBqOBJWm.jpg", + "release_date": "2024-05-02", + "title": "Chief of Station", + "video": false, + "vote_average": 5.338, + "vote_count": 34 + }, + { + "adult": false, + "backdrop_path": "/y9Hz04SvfWxUKWYvehZYxRvFoFY.jpg", + "genre_ids": [ + 27, + 53 + ], + "id": 1087388, + "original_language": "en", + "original_title": "Sting", + "overview": "๋ธŒ๋ฃจํด๋ฆฐ์— ์‚ฌ๋Š” ํ•œ ๊ฐ€์กฑ๊ณผ ์šฐ์ฃผ์—์„œ ์˜จ ๊ฑฐ๋Œ€ ๊ฑฐ๋ฏธ์™€์˜ ์‹ธ์›€์„ ๊ทธ๋ฆฐ ๊ณตํฌ ์˜ํ™”. ์ฃผ์ธ๊ณต ์ƒฌ๋กฏ์€ ์šฐ์ฃผ์—์„œ ์˜จ ๊ฑฐ๋ฏธ๋ฅผ ์šฐ์—ฐํžˆ ๋ฐœ๊ฒฌํ•˜๊ณ  ์ŠคํŒ…์ด๋ผ๋Š” ์ด๋ฆ„์„ ์ง€์–ด์ฃผ๊ณ  ๋ฐ˜๋ ค๋™๋ฌผ๋กœ ํ‚ค์šฐ๊ธฐ ์‹œ์ž‘ํ•œ๋‹ค. ํ•˜์ง€๋งŒ ์ด ๊ฑฐ๋ฏธ๋Š” ์ ์  ๋” ๊ฑฐ๋Œ€ํ•œ ๊ดด๋ฌผ๋กœ ๋ณ€ํ•˜์—ฌ ์ƒฌ๋กฏ์˜ ์•„ํŒŒํŠธ ๋‹จ์ง€๋ฅผ ๊ณตํฌ์— ๋น ๋œจ๋ฆฌ๋Š”๋ฐ...", + "popularity": 716.554, + "poster_path": "/uXUs1fwSuE06LgYETw2mi4JxQvc.jpg", + "release_date": "2024-04-12", + "title": "์ŠคํŒ…", + "video": false, + "vote_average": 6.6, + "vote_count": 66 + }, + { + "adult": false, + "backdrop_path": "/wODqakS0jinTUECNS6n4VomQbew.jpg", + "genre_ids": [ + 14, + 12, + 35 + ], + "id": 967847, + "original_language": "en", + "original_title": "Ghostbusters: Frozen Empire", + "overview": "๋ฌด๋”์šด ์—ฌ๋ฆ„์˜ ๋‰ด์š•์˜ ์–ด๋А ๋‚ , ๊ณ ๋Œ€ ์œ ๋ฌผ ์† ๊นจ์–ด๋‚œ ๋ฐ์Šค์น ๋กœ ์ธํ•ด ์ •์ฒด๋ถˆ๋ช…์˜ ๋ƒ‰๊ธฐ๊ฐ€ ๋ชฐ๋ ค์˜ค๊ณ  ๋งˆ์นจ๋‚ด ๋„์‹œ๋Š” ์–ผ์–ด๋ถ™๊ณ  ๋งŒ๋‹ค. ์œ ๋ น์„ ํ‡ด์น˜ํ•˜๋Š” ๊ทธ๋ฃจ๋ฒ„์Šจ๊ณผ ๋ผ์ด์ฆˆ ๋ฒ„์Šคํ„ฐ์ฆˆ ๋ฉค๋ฒ„๋“ค์€ ์–ผ์–ด๋ถ™์€ ์„ธ์ƒ์„ ๊นจ๋ถ€์ˆ˜๊ธฐ ์œ„ํ•ด ์œ ๋ น ๊ตฐ๋‹จ์„ ์ซ“๊ธฐ ์‹œ์ž‘ํ•˜๋Š”๋ฐโ€ฆ", + "popularity": 628.946, + "poster_path": "/mGzSIfzmcf9H91DS06cnka1SYrP.jpg", + "release_date": "2024-03-20", + "title": "๊ณ ์ŠคํŠธ๋ฒ„์Šคํ„ฐ์ฆˆ: ์˜ค์‹นํ•œ ๋‰ด์š•", + "video": false, + "vote_average": 6.676, + "vote_count": 822 + }, + { + "adult": false, + "backdrop_path": "/jnE1GA7cGEfv5DJBoU2t4bZHaP4.jpg", + "genre_ids": [ + 28, + 878 + ], + "id": 1094844, + "original_language": "en", + "original_title": "Ape vs. Mecha Ape", + "overview": "NASA๋Š” ๊ฑฐ๋Œ€ ์œ ์ธ์› ์•„๋ธŒ๋ผํ•จ์„ ๋ชจ๋ธ๋กœ ํž˜๊ณผ ๊ทœ๋ชจ์—์„œ ์•„๋ธŒ๋ผํ•จ์— ๋ฒ„๊ธˆ๊ฐ€๋Š” ๊ธฐ๊ณ„ ์œ ์ธ์›์„ ์„ค๊ณ„ํ•œ๋‹ค. ํ•˜์ง€๋งŒ ์ฒซ ๋ฒˆ์งธ ์‹คํ—˜ ๊ฒฐ๊ณผ๊ฐ€ ์ข‹์ง€ ์•Š๊ฒŒ ๋‚˜์˜ค์ž ๋ฏธ ๊ตญ๋ฐฉ์„ฑ์—์„œ๋Š” ๋‚œํญํ•œ ๊ธฐ๊ณ„ ์œ ์ธ์›์„ ๋ง‰๊ธฐ ์œ„ํ•ด ๊ฐ์˜ฅ์— ๊ฐ‡ํžŒ ์•„๋ธŒ๋ผํ•จ์„ ์„๋ฐฉํ•˜๋„๋ก ์ง€์‹œํ•œ๋‹ค. ํ•œํŽธ ๋ณผ๋กœ๋“œ๋ ˆ์ธ ์นด ์™ธ๊ตญ ์ •๋ณด๋ถ€๋Š” ๊ธฐ๊ณ„ ์œ ์ธ์›์— ํ•ตํƒ„๋‘๋ฅผ ๋ถ€์ฐฉํ•ด ๊ธฐ๊ณ„ ์œ ์ธ์›์˜ ์‹œ์Šคํ…œ์„ ๊ต๋ž€์‹œ์ผœ ๋ฏธ๊ตญ ์‹œ์นด๊ณ ๋ฅผ ๋‚ ๋ ค๋ฒ„๋ฆด ๊ณ„๋žต์„ ๊พธ๋ฏผ๋‹ค. ์ด๋ฅผ ๋ง‰๊ธฐ ์œ„ํ•ด NASA์˜ ๊ด€๊ณ„์ž๋“ค์€ ์•„๋ธŒ๋ผํ•จ๊ณผ ์†Œํ†ตํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด ๊ธฐ๊ณ„ ์œ ์ธ์›์„ ๋ง‰์œผ๋ ค ํ•˜๋Š”๋ฐ....", + "popularity": 704.388, + "poster_path": "/dJaIw8OgACelojyV6YuVsOhtTLO.jpg", + "release_date": "2023-03-24", + "title": "ํ‚น VS. ๋จธ์‹ ํ‚น", + "video": false, + "vote_average": 5.679, + "vote_count": 196 + }, + { + "adult": false, + "backdrop_path": "/tDmAhKMBv0e4sYyg4FX5LVfe64S.jpg", + "genre_ids": [ + 28, + 878, + 53, + 10749 + ], + "id": 1072589, + "original_language": "th", + "original_title": "เธชเธฅเธดเธ˜ เน‚เธ›เธฃเน€เธˆเธเธ•เนŒเธฅเนˆเธฒ", + "overview": "", + "popularity": 689.963, + "poster_path": "/hge5nHu953g3CpR4xD2F0qhsTJm.jpg", + "release_date": "2023-12-05", + "title": "เธชเธฅเธดเธ˜ เน‚เธ›เธฃเน€เธˆเธเธ•เนŒเธฅเนˆเธฒ", + "video": false, + "vote_average": 3.833, + "vote_count": 3 + }, + { + "adult": false, + "backdrop_path": "/vWzJDjLPmycnQ42IppEjMpIhrhc.jpg", + "genre_ids": [ + 16, + 35, + 10751 + ], + "id": 748783, + "original_language": "en", + "original_title": "The Garfield Movie", + "overview": "์„ธ์ƒ๊ท€์ฐฎ ์ง‘๋ƒฅ์ด, ๋ฐ”์˜๊ณ  ํ—˜๋‚œํ•œ ์„ธ์ƒ์— ๋˜์ ธ์กŒ๋‹ค! ์ง‘์‚ฌ โ€˜์กดโ€™๊ณผ ๋ฐ˜๋ ค๊ฒฌ โ€˜์˜ค๋””โ€™๋ฅผ ๊ธฐ๋ฅด๋ฉฐ ํ‰ํ™”๋กœ์šด ๋‚˜๋‚ ์„ ๋ณด๋‚ด๋˜ ์ง‘๋ƒฅ์ด โ€˜๊ฐ€ํ•„๋“œโ€™. ์–ด๋А ๋‚ , ํ—˜์•…ํ•œ ๊ธธ๋ƒฅ์ด ๋ฌด๋ฆฌ์—๊ฒŒ ๋‚ฉ์น˜๋‹นํ•ด ๋ƒ‰ํ˜นํ•œ ๊ฑฐ๋ฆฌ๋กœ ๋˜์ ธ์ง„๋‹ค. ๋Œ๋ด์ฃผ๋Š” ์ง‘์‚ฌ๊ฐ€ ์—†๋Š” ์ง‘ ๋ฐ– ์„ธ์ƒ์€ ๋„ˆ๋ฌด๋‚˜๋„ ์ •์‹ ์—†๊ฒŒ ๋Œ์•„๊ฐ€๊ณ  ๊ธธ์—์„œ ์šฐ์—ฐํžˆ ๋‹ค์‹œ ๋งŒ๋‚œ ์•„๋น  ๊ธธ๋ƒฅ์ด โ€˜๋น…โ€™์€ ์˜คํžˆ๋ ค โ€˜๊ฐ€ํ•„๋“œโ€™๋ฅผ ์œ„๊ธฐ์— ๋น ์ง€๊ฒŒ ํ•˜๋Š”๋ฐโ€ฆ ํ—˜๋‚œํ•œ ์„ธ์ƒ, ์‚ด์•„๋‚จ์•„์•ผ ํ•œ๋‹ค!", + "popularity": 679.475, + "poster_path": "/57g3pHYi3p0JNVO1LkcyYbeMDBf.jpg", + "release_date": "2024-04-30", + "title": "๊ฐ€ํ•„๋“œ ๋” ๋ฌด๋น„", + "video": false, + "vote_average": 6.6, + "vote_count": 87 + }, + { + "adult": false, + "backdrop_path": "/lUlz0oE3zhAku7QvGoDJCeaFuiO.jpg", + "genre_ids": [ + 28, + 9648, + 53 + ], + "id": 1111966, + "original_language": "en", + "original_title": "Mercy", + "overview": "์ „์ง ๊ตฐ์˜๊ด€์ด ๊ทผ๋ฌดํ•˜๋Š” ๋ณ‘์›์„ ์•„์ผ๋žœ๋“œ ๋งˆํ”ผ์•„๊ฐ€ ์žฅ์•…ํ•˜๋ฉด์„œ ์ƒ์กด์„ ์œ„ํ•œ ์น˜๋ช…์ ์ธ ์ „ํˆฌ์— ํœ˜๋ง๋ฆฌ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์•„๋“ค์ด ์ธ์งˆ๋กœ ์žกํžˆ์ž, ๊ทธ๋…€๋Š” ์ž์‹  ์™ธ์—๋Š” ๊ตฌํ•ด์ค„ ์‚ฌ๋žŒ์ด ์—†๋‹ค๋Š” ๊ฒƒ์„ ๊นจ๋‹ซ๊ณ  ์ „ํˆฌ๋กœ ๋‹จ๋ จ๋œ ๊ณผ๊ฑฐ์™€ ์น˜๋ช…์ ์ธ ๊ธฐ์ˆ ์— ์˜์กดํ•ด์•ผ๋งŒ ํ•ฉ๋‹ˆ๋‹ค.", + "popularity": 638.358, + "poster_path": "/8voINwqMlscROrjhN97fGkmhvEV.jpg", + "release_date": "2023-05-12", + "title": "๋จธ์‹œ", + "video": false, + "vote_average": 6.2, + "vote_count": 50 + }, + { + "adult": false, + "backdrop_path": "/4CcUgdiGe83MeqJW1NyJVmZqRrF.jpg", + "genre_ids": [ + 10749, + 18 + ], + "id": 937287, + "original_language": "en", + "original_title": "Challengers", + "overview": "์Šคํƒ€๊ธ‰์˜ ์ธ๊ธฐ๋ฅผ ๋ˆ„๋ฆฌ๋˜ ํ…Œ๋‹ˆ์Šค ์ฒœ์žฌ ํƒ€์‹œ๋Š” ๋ถ€์ƒ์œผ๋กœ ์ธํ•ด ๋” ์ด์ƒ ์„ ์ˆ˜ ์ƒํ™œ์„ ํ•˜์ง€ ๋ชปํ•˜๊ณ  ์ง€๊ธˆ์€ ๋‚จํŽธ ์•„ํŠธ์˜ ์ฝ”์น˜๋ฅผ ๋งก๊ณ  ์žˆ๋‹ค. ์—ฐํŒจ ์Šฌ๋Ÿผํ”„์—์„œ ๋น ์ ธ๋‚˜์˜ค์ง€ ๋ชปํ•˜๋Š” ์•„ํŠธ๋ฅผ ์ฑŒ๋ฆฐ์ €๊ธ‰ ๋Œ€ํšŒ์— ์ฐธ๊ฐ€์‹œํ‚จ ํƒ€์‹œ๋Š” ๋‚จํŽธ๊ณผ ๋‘˜๋„ ์—†๋Š” ์นœ๊ตฌ ์‚ฌ์ด์ด์ž ์ž์‹ ์˜ ์ „ ๋‚จ์นœ์ธ ํŒจํŠธ๋ฆญ์„ ๋‹ค์‹œ ๋งŒ๋‚˜๊ฒŒ ๋œ๋‹ค. ์„  ๋„˜๋Š” ์„ธ ๋‚จ๋…€์˜ ์•„์Šฌ์•„์Šฌํ•œ ๊ด€๊ณ„๋Š” ํ…Œ๋‹ˆ์Šค ์ฝ”ํŠธ ๋ฐ–์—์„œ ๋”์šฑ ๊ฒฉ๋ ฌํ•˜๊ฒŒ ์ด์–ด์ง€๋Š”๋ฐโ€ฆ ๊ฒฐ์Šน์ „ D-DAY, ๊ฐ€์žฅ ๋งคํ˜น์ ์ธ ๋ž ๋ฆฌ๊ฐ€ ์‹œ์ž‘๋œ๋‹ค!", + "popularity": 634.307, + "poster_path": "/iUDG0gsPZxNm9IOLqpIUZiUMVMZ.jpg", + "release_date": "2024-04-18", + "title": "์ฑŒ๋ฆฐ์ €์Šค", + "video": false, + "vote_average": 7.308, + "vote_count": 677 + }, + { + "adult": false, + "backdrop_path": "/4woSOUD0equAYzvwhWBHIJDCM88.jpg", + "genre_ids": [ + 28, + 27, + 53 + ], + "id": 1096197, + "original_language": "en", + "original_title": "No Way Up", + "overview": "๋ฉ•์‹œ์ฝ” ํœด์–‘์ง€๋กœ ๊ฐ€๋Š” ๋น„ํ–‰๊ธฐ ํ•˜์ง€๋งŒ ๋น„ํ–‰๊ธฐ์˜ ์—”์ง„ ๋ฌธ์ œ๋กœ ์‚ฌ๊ณ ๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ  ๊นŠ์€ ๋ฐ”๋‹ท์†์œผ๋กœ ์ถ”๋ฝํ•œ๋‹ค. ์ฃผ์ง€์‚ฌ์˜ ๋”ธ โ€˜์—์ด๋ฐ”โ€™์™€ ๊ฒฝํ˜ธ์› โ€˜๋ธŒ๋žœ๋“œโ€™, ๋‚จ์ž์นœ๊ตฌ โ€˜์ œ๋“œโ€™, โ€˜์นด์ผโ€™ ๊ทธ๋ฆฌ๊ณ  ์–ด๋ฆฐ ์†Œ๋…€ โ€˜๋กœ์žโ€™์™€ ํ• ๋จธ๋‹ˆ, ์Šน๋ฌด์› โ€˜๋‹ค๋‹๋กœโ€™๊นŒ์ง€ ๋‹จ 7๋ช…๋งŒ์ด ์‚ด์•„๋‚จ์ง€๋งŒ ๋น„ํ–‰๊ธฐ ์—์–ดํฌ์ผ“ ์•ˆ ๊ณต๊ธฐ๊ฐ€ ๋–จ์–ด์ง€๋ฉด์„œ ์ ์  ๊นŠ์ด ๊ฐ€๋ผ์•‰๋Š”๋‹ค ์ƒ์กด ์‹œ๊ฐ„์€ ํ„ฑ ๋๊นŒ์ง€ ์ฐจ์˜ค๋ฅด๊ณ  ์ƒ์–ด ๋–ผ๋งˆ์ € ์ด๋“ค์„ ์œ„ํ˜‘ํ•˜๋Š”๋ฐโ€ฆ", + "popularity": 632.084, + "poster_path": "/2NGWNTGLrOsoblP5cDpmsvMfKJE.jpg", + "release_date": "2024-01-18", + "title": "๋…ธ ์›จ์ด ์—…", + "video": false, + "vote_average": 6.424, + "vote_count": 670 + }, + { + "adult": false, + "backdrop_path": "/lzWHmYdfeFiMIY4JaMmtR7GEli3.jpg", + "genre_ids": [ + 878, + 12 + ], + "id": 438631, + "original_language": "en", + "original_title": "Dune", + "overview": "10191๋…„, ์•„ํŠธ๋ ˆ์ด๋ฐ์Šค ๊ฐ€๋ฌธ์˜ ํ›„๊ณ„์ž์ธ ํด์€ ์‹œ๊ฐ„๊ณผ ๊ณต๊ฐ„์„ ์ดˆ์›”ํ•ด ๊ณผ๊ฑฐ์™€ ๋ฏธ๋ž˜๋ฅผ ๋ชจ๋‘ ๋ณผ ์ˆ˜ ์žˆ๊ณ , ๋” ๋‚˜์€ ๋ฏธ๋ž˜๋ฅผ ๋งŒ๋“ค ์œ ์ผํ•œ ๊ตฌ์›์ž์ธ ์˜ˆ์ง€๋œ ์ž์˜ ์šด๋ช…์„ ํƒ€๊ณ ๋‚ฌ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์–ด๋–ค ๊ณ„์‹œ์ฒ˜๋Ÿผ ๋งค์ผ ๊ฟˆ์—์„œ ์•„๋ผํ‚ค์Šค์˜ ํ–‰์„ฑ์— ์žˆ๋Š” ํ•œ ์—ฌ์ธ์„ ๋งŒ๋‚œ๋‹ค. ๊ท€์กฑ๋“ค์ด ์ง€์ง€ํ•˜๋Š” ์•„ํŠธ๋ ˆ์ด๋ฐ์Šค ๊ฐ€๋ฌธ์— ๋Œ€ํ•œ ํ™ฉ์ œ์˜ ์งˆํˆฌ๋Š” ํด๊ณผ ๊ทธ ์ผ์กฑ๋“ค์„ ์ฃฝ์Œ์ด ๊ธฐ๋‹ค๋ฆฌ๋Š” ์•„๋ผํ‚ค์Šค๋กœ ์ด๋„๋Š”๋ฐ...", + "popularity": 628.96, + "poster_path": "/7zV8FTYofAORGm0Umgh1mNNCym8.jpg", + "release_date": "2021-09-15", + "title": "๋“„", + "video": false, + "vote_average": 7.78, + "vote_count": 11677 + }, + { + "adult": false, + "backdrop_path": "/7kQvHmGyKJv2wSKVfCUux50rd7A.jpg", + "genre_ids": [ + 878 + ], + "id": 920342, + "original_language": "zh", + "original_title": "ๅผ‚ๅ…ฝๆˆ˜ๅœบ", + "overview": "", + "popularity": 600.889, + "poster_path": "/nBVYp2xxx2R02n21EGlDky8CgWR.jpg", + "release_date": "2021-12-27", + "title": "ๅผ‚ๅ…ฝๆˆ˜ๅœบ", + "video": false, + "vote_average": 7.054, + "vote_count": 28 + }, + { + "adult": false, + "backdrop_path": "/nb3xI8XI3w4pMVZ38VijbsyBqP4.jpg", + "genre_ids": [ + 18, + 36 + ], + "id": 872585, + "original_language": "en", + "original_title": "Oppenheimer", + "overview": "์ œ2์ฐจ ์„ธ๊ณ„๋Œ€์ „ ๋‹น์‹œ ํ•ต๋ฌด๊ธฐ ๊ฐœ๋ฐœ์„ ์œ„ํ•ด ์ง„ํ–‰๋˜์—ˆ๋˜ ๋น„๋ฐ€ ํ”„๋กœ์ ํŠธ โ€˜๋งจํ•ดํŠผ ํ”„๋กœ์ ํŠธโ€™๋ฅผ ์ฃผ๋„ํ•œ ๋ฏธ๊ตญ์˜ ๋ฌผ๋ฆฌํ•™์ž โ€˜๋กœ๋ฒ„ํŠธ ์˜คํŽœํ•˜์ด๋จธโ€™์˜ ์ด์•ผ๊ธฐ", + "popularity": 602.85, + "poster_path": "/jpD6z9fgNe7OqsHoDeAWQWoULde.jpg", + "release_date": "2023-07-19", + "title": "์˜คํŽœํ•˜์ด๋จธ", + "video": false, + "vote_average": 8.102, + "vote_count": 8078 + } + ], + "total_pages": 44317, + "total_results": 886324 +} \ No newline at end of file diff --git a/src/main.jsx b/src/main.jsx new file mode 100644 index 00000000..5846e232 --- /dev/null +++ b/src/main.jsx @@ -0,0 +1,12 @@ + +import React from 'react'; +import ReactDOM from 'react-dom/client'; +import { BrowserRouter } from 'react-router-dom'; +import App from './App'; +import './style.css'; + +ReactDOM.createRoot(document.getElementById('root')).render( + + + +); diff --git a/src/pages/MovieDetail.jsx b/src/pages/MovieDetail.jsx new file mode 100644 index 00000000..e3346c09 --- /dev/null +++ b/src/pages/MovieDetail.jsx @@ -0,0 +1,22 @@ + +import data from '../data/movieDetailData.json'; +const IMG_BASE = 'https://image.tmdb.org/t/p/w500'; + +export default function MovieDetail() { + const { title, overview, vote_average, genres, poster_path, backdrop_path } = data; + return ( +
+ {title} +
+

{title}

+

โญ {vote_average}

+
+ {genres.map((g) => ( + {g.name} + ))} +
+

{overview}

+
+
+ ); +} diff --git a/src/style.css b/src/style.css new file mode 100644 index 00000000..940bb403 --- /dev/null +++ b/src/style.css @@ -0,0 +1,33 @@ + +body { + margin: 0; + font-family: sans-serif; + background: #111; + color: #eee; +} +.movie-list { + display: flex; + flex-wrap: wrap; + gap: 1.5rem; +} +.movie-card { + width: 200px; + background: #222; + padding: 0.5rem; + border-radius: 8px; + text-align: center; + transition: transform 0.2s ease; +} +.movie-card:hover { + transform: scale(1.05); +} +.movie-card img { + width: 100%; + border-radius: 6px; +} +.detail-page { + display: flex; + gap: 2rem; +} +.detail-img { width: 300px; border-radius: 8px; } +.genre { background: #444; padding: 0.25rem 0.5rem; margin-right: 0.5rem; border-radius: 4px; } diff --git a/vite.config.js b/vite.config.js new file mode 100644 index 00000000..bd5899b6 --- /dev/null +++ b/vite.config.js @@ -0,0 +1,3 @@ +import { defineConfig } from 'vite'; +import react from '@vitejs/plugin-react'; +export default defineConfig({ plugins: [react()] }); From 29651e9de9d538358e700ce91912db78f825bd76 Mon Sep 17 00:00:00 2001 From: minjekim64 Date: Wed, 18 Jun 2025 19:06:59 +0900 Subject: [PATCH 3/3] =?UTF-8?q?fix:=20=EA=B2=BD=EB=A1=9C=EB=AC=B8=EC=A0=9C?= =?UTF-8?q?=20=ED=95=B4=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Layout.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/Layout.jsx b/src/components/Layout.jsx index d6ffc557..7ad7396d 100644 --- a/src/components/Layout.jsx +++ b/src/components/Layout.jsx @@ -1,6 +1,6 @@ import { Outlet } from 'react-router-dom'; -import NavBar from './components/NavBar'; +import NavBar from './NavBar'; export default function Layout() { return (