diff --git a/package-lock.json b/package-lock.json index 2c81943..81b4a59 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,7 +8,7 @@ "name": "enjoy-hackathon", "version": "0.0.0", "dependencies": { - "@tailwindcss/vite": "^4.1.10", + "@tailwindcss/vite": "^4.1.12", "lucide-react": "^0.523.0", "react": "^19.1.0", "react-dom": "^19.1.0", @@ -44,11 +44,10 @@ "globals": "^16.0.0", "husky": "^9.1.7", "playwright": "^1.54.2", - "postcss": "^8.5.6", "prettier": "^3.6.0", "prop-types": "^15.8.1", "storybook": "^9.1.2", - "tailwindcss": "^4.1.10", + "tailwindcss": "^4.1.12", "vite": "^6.3.5", "vitest": "^3.2.4" } @@ -1703,6 +1702,16 @@ "node": ">=6.0.0" } }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, "node_modules/@jridgewell/resolve-uri": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", @@ -2666,24 +2675,24 @@ } }, "node_modules/@tailwindcss/node": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.1.10.tgz", - "integrity": "sha512-2ACf1znY5fpRBwRhMgj9ZXvb2XZW8qs+oTfotJ2C5xR0/WNL7UHZ7zXl6s+rUqedL1mNi+0O+WQr5awGowS3PQ==", + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.1.12.tgz", + "integrity": "sha512-3hm9brwvQkZFe++SBt+oLjo4OLDtkvlE8q2WalaD/7QWaeM7KEJbAiY/LJZUaCs7Xa8aUu4xy3uoyX4q54UVdQ==", "license": "MIT", "dependencies": { - "@ampproject/remapping": "^2.3.0", - "enhanced-resolve": "^5.18.1", - "jiti": "^2.4.2", + "@jridgewell/remapping": "^2.3.4", + "enhanced-resolve": "^5.18.3", + "jiti": "^2.5.1", "lightningcss": "1.30.1", "magic-string": "^0.30.17", "source-map-js": "^1.2.1", - "tailwindcss": "4.1.10" + "tailwindcss": "4.1.12" } }, "node_modules/@tailwindcss/oxide": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.1.10.tgz", - "integrity": "sha512-v0C43s7Pjw+B9w21htrQwuFObSkio2aV/qPx/mhrRldbqxbWJK6KizM+q7BF1/1CmuLqZqX3CeYF7s7P9fbA8Q==", + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.1.12.tgz", + "integrity": "sha512-gM5EoKHW/ukmlEtphNwaGx45fGoEmP10v51t9unv55voWh6WrOL19hfuIdo2FjxIaZzw776/BUQg7Pck++cIVw==", "hasInstallScript": true, "license": "MIT", "dependencies": { @@ -2694,24 +2703,24 @@ "node": ">= 10" }, "optionalDependencies": { - "@tailwindcss/oxide-android-arm64": "4.1.10", - "@tailwindcss/oxide-darwin-arm64": "4.1.10", - "@tailwindcss/oxide-darwin-x64": "4.1.10", - "@tailwindcss/oxide-freebsd-x64": "4.1.10", - "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.10", - "@tailwindcss/oxide-linux-arm64-gnu": "4.1.10", - "@tailwindcss/oxide-linux-arm64-musl": "4.1.10", - "@tailwindcss/oxide-linux-x64-gnu": "4.1.10", - "@tailwindcss/oxide-linux-x64-musl": "4.1.10", - "@tailwindcss/oxide-wasm32-wasi": "4.1.10", - "@tailwindcss/oxide-win32-arm64-msvc": "4.1.10", - "@tailwindcss/oxide-win32-x64-msvc": "4.1.10" + "@tailwindcss/oxide-android-arm64": "4.1.12", + "@tailwindcss/oxide-darwin-arm64": "4.1.12", + "@tailwindcss/oxide-darwin-x64": "4.1.12", + "@tailwindcss/oxide-freebsd-x64": "4.1.12", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.12", + "@tailwindcss/oxide-linux-arm64-gnu": "4.1.12", + "@tailwindcss/oxide-linux-arm64-musl": "4.1.12", + "@tailwindcss/oxide-linux-x64-gnu": "4.1.12", + "@tailwindcss/oxide-linux-x64-musl": "4.1.12", + "@tailwindcss/oxide-wasm32-wasi": "4.1.12", + "@tailwindcss/oxide-win32-arm64-msvc": "4.1.12", + "@tailwindcss/oxide-win32-x64-msvc": "4.1.12" } }, "node_modules/@tailwindcss/oxide-android-arm64": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.1.10.tgz", - "integrity": "sha512-VGLazCoRQ7rtsCzThaI1UyDu/XRYVyH4/EWiaSX6tFglE+xZB5cvtC5Omt0OQ+FfiIVP98su16jDVHDEIuH4iQ==", + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.1.12.tgz", + "integrity": "sha512-oNY5pq+1gc4T6QVTsZKwZaGpBb2N1H1fsc1GD4o7yinFySqIuRZ2E4NvGasWc6PhYJwGK2+5YT1f9Tp80zUQZQ==", "cpu": [ "arm64" ], @@ -2725,9 +2734,9 @@ } }, "node_modules/@tailwindcss/oxide-darwin-arm64": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.1.10.tgz", - "integrity": "sha512-ZIFqvR1irX2yNjWJzKCqTCcHZbgkSkSkZKbRM3BPzhDL/18idA8uWCoopYA2CSDdSGFlDAxYdU2yBHwAwx8euQ==", + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.1.12.tgz", + "integrity": "sha512-cq1qmq2HEtDV9HvZlTtrj671mCdGB93bVY6J29mwCyaMYCP/JaUBXxrQQQm7Qn33AXXASPUb2HFZlWiiHWFytw==", "cpu": [ "arm64" ], @@ -2741,9 +2750,9 @@ } }, "node_modules/@tailwindcss/oxide-darwin-x64": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.1.10.tgz", - "integrity": "sha512-eCA4zbIhWUFDXoamNztmS0MjXHSEJYlvATzWnRiTqJkcUteSjO94PoRHJy1Xbwp9bptjeIxxBHh+zBWFhttbrQ==", + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.1.12.tgz", + "integrity": "sha512-6UCsIeFUcBfpangqlXay9Ffty9XhFH1QuUFn0WV83W8lGdX8cD5/+2ONLluALJD5+yJ7k8mVtwy3zMZmzEfbLg==", "cpu": [ "x64" ], @@ -2757,9 +2766,9 @@ } }, "node_modules/@tailwindcss/oxide-freebsd-x64": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.1.10.tgz", - "integrity": "sha512-8/392Xu12R0cc93DpiJvNpJ4wYVSiciUlkiOHOSOQNH3adq9Gi/dtySK7dVQjXIOzlpSHjeCL89RUUI8/GTI6g==", + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.1.12.tgz", + "integrity": "sha512-JOH/f7j6+nYXIrHobRYCtoArJdMJh5zy5lr0FV0Qu47MID/vqJAY3r/OElPzx1C/wdT1uS7cPq+xdYYelny1ww==", "cpu": [ "x64" ], @@ -2773,9 +2782,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.1.10.tgz", - "integrity": "sha512-t9rhmLT6EqeuPT+MXhWhlRYIMSfh5LZ6kBrC4FS6/+M1yXwfCtp24UumgCWOAJVyjQwG+lYva6wWZxrfvB+NhQ==", + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.1.12.tgz", + "integrity": "sha512-v4Ghvi9AU1SYgGr3/j38PD8PEe6bRfTnNSUE3YCMIRrrNigCFtHZ2TCm8142X8fcSqHBZBceDx+JlFJEfNg5zQ==", "cpu": [ "arm" ], @@ -2789,9 +2798,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.1.10.tgz", - "integrity": "sha512-3oWrlNlxLRxXejQ8zImzrVLuZ/9Z2SeKoLhtCu0hpo38hTO2iL86eFOu4sVR8cZc6n3z7eRXXqtHJECa6mFOvA==", + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.1.12.tgz", + "integrity": "sha512-YP5s1LmetL9UsvVAKusHSyPlzSRqYyRB0f+Kl/xcYQSPLEw/BvGfxzbH+ihUciePDjiXwHh+p+qbSP3SlJw+6g==", "cpu": [ "arm64" ], @@ -2805,9 +2814,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-arm64-musl": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.1.10.tgz", - "integrity": "sha512-saScU0cmWvg/Ez4gUmQWr9pvY9Kssxt+Xenfx1LG7LmqjcrvBnw4r9VjkFcqmbBb7GCBwYNcZi9X3/oMda9sqQ==", + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.1.12.tgz", + "integrity": "sha512-V8pAM3s8gsrXcCv6kCHSuwyb/gPsd863iT+v1PGXC4fSL/OJqsKhfK//v8P+w9ThKIoqNbEnsZqNy+WDnwQqCA==", "cpu": [ "arm64" ], @@ -2821,9 +2830,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-x64-gnu": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.1.10.tgz", - "integrity": "sha512-/G3ao/ybV9YEEgAXeEg28dyH6gs1QG8tvdN9c2MNZdUXYBaIY/Gx0N6RlJzfLy/7Nkdok4kaxKPHKJUlAaoTdA==", + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.1.12.tgz", + "integrity": "sha512-xYfqYLjvm2UQ3TZggTGrwxjYaLB62b1Wiysw/YE3Yqbh86sOMoTn0feF98PonP7LtjsWOWcXEbGqDL7zv0uW8Q==", "cpu": [ "x64" ], @@ -2837,9 +2846,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-x64-musl": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.1.10.tgz", - "integrity": "sha512-LNr7X8fTiKGRtQGOerSayc2pWJp/9ptRYAa4G+U+cjw9kJZvkopav1AQc5HHD+U364f71tZv6XamaHKgrIoVzA==", + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.1.12.tgz", + "integrity": "sha512-ha0pHPamN+fWZY7GCzz5rKunlv9L5R8kdh+YNvP5awe3LtuXb5nRi/H27GeL2U+TdhDOptU7T6Is7mdwh5Ar3A==", "cpu": [ "x64" ], @@ -2853,9 +2862,9 @@ } }, "node_modules/@tailwindcss/oxide-wasm32-wasi": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.1.10.tgz", - "integrity": "sha512-d6ekQpopFQJAcIK2i7ZzWOYGZ+A6NzzvQ3ozBvWFdeyqfOZdYHU66g5yr+/HC4ipP1ZgWsqa80+ISNILk+ae/Q==", + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.1.12.tgz", + "integrity": "sha512-4tSyu3dW+ktzdEpuk6g49KdEangu3eCYoqPhWNsZgUhyegEda3M9rG0/j1GV/JjVVsj+lG7jWAyrTlLzd/WEBg==", "bundleDependencies": [ "@napi-rs/wasm-runtime", "@emnapi/core", @@ -2870,11 +2879,11 @@ "license": "MIT", "optional": true, "dependencies": { - "@emnapi/core": "^1.4.3", - "@emnapi/runtime": "^1.4.3", - "@emnapi/wasi-threads": "^1.0.2", - "@napi-rs/wasm-runtime": "^0.2.10", - "@tybys/wasm-util": "^0.9.0", + "@emnapi/core": "^1.4.5", + "@emnapi/runtime": "^1.4.5", + "@emnapi/wasi-threads": "^1.0.4", + "@napi-rs/wasm-runtime": "^0.2.12", + "@tybys/wasm-util": "^0.10.0", "tslib": "^2.8.0" }, "engines": { @@ -2882,9 +2891,9 @@ } }, "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.1.10.tgz", - "integrity": "sha512-i1Iwg9gRbwNVOCYmnigWCCgow8nDWSFmeTUU5nbNx3rqbe4p0kRbEqLwLJbYZKmSSp23g4N6rCDmm7OuPBXhDA==", + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.1.12.tgz", + "integrity": "sha512-iGLyD/cVP724+FGtMWslhcFyg4xyYyM+5F4hGvKA7eifPkXHRAUDFaimu53fpNg9X8dfP75pXx/zFt/jlNF+lg==", "cpu": [ "arm64" ], @@ -2898,9 +2907,9 @@ } }, "node_modules/@tailwindcss/oxide-win32-x64-msvc": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.1.10.tgz", - "integrity": "sha512-sGiJTjcBSfGq2DVRtaSljq5ZgZS2SDHSIfhOylkBvHVjwOsodBhnb3HdmiKkVuUGKD0I7G63abMOVaskj1KpOA==", + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.1.12.tgz", + "integrity": "sha512-NKIh5rzw6CpEodv/++r0hGLlfgT/gFN+5WNdZtvh6wpU2BpGNgdjvj6H2oFc8nCM839QM1YOhjpgbAONUb4IxA==", "cpu": [ "x64" ], @@ -2914,17 +2923,17 @@ } }, "node_modules/@tailwindcss/vite": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.1.10.tgz", - "integrity": "sha512-QWnD5HDY2IADv+vYR82lOhqOlS1jSCUUAmfem52cXAhRTKxpDh3ARX8TTXJTCCO7Rv7cD2Nlekabv02bwP3a2A==", + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.1.12.tgz", + "integrity": "sha512-4pt0AMFDx7gzIrAOIYgYP0KCBuKWqyW8ayrdiLEjoJTT4pKTjrzG/e4uzWtTLDziC+66R9wbUqZBccJalSE5vQ==", "license": "MIT", "dependencies": { - "@tailwindcss/node": "4.1.10", - "@tailwindcss/oxide": "4.1.10", - "tailwindcss": "4.1.10" + "@tailwindcss/node": "4.1.12", + "@tailwindcss/oxide": "4.1.12", + "tailwindcss": "4.1.12" }, "peerDependencies": { - "vite": "^5.2.0 || ^6" + "vite": "^5.2.0 || ^6 || ^7" } }, "node_modules/@testing-library/dom": { @@ -4548,9 +4557,9 @@ "license": "MIT" }, "node_modules/enhanced-resolve": { - "version": "5.18.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz", - "integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==", + "version": "5.18.3", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.3.tgz", + "integrity": "sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==", "license": "MIT", "dependencies": { "graceful-fs": "^4.2.4", @@ -6410,9 +6419,9 @@ } }, "node_modules/jiti": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.4.2.tgz", - "integrity": "sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.5.1.tgz", + "integrity": "sha512-twQoecYPiVA5K/h6SxtORw/Bs3ar+mLUtoPSc7iMXzQzK8d7eJ/R09wmTwAjiamETn1cXYPGfNnu7DMoHgu12w==", "license": "MIT", "bin": { "jiti": "lib/jiti-cli.mjs" @@ -8748,18 +8757,22 @@ } }, "node_modules/tailwindcss": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.10.tgz", - "integrity": "sha512-P3nr6WkvKV/ONsTzj6Gb57sWPMX29EPNPopo7+FcpkQaNsrNpZ1pv8QmrYI2RqEKD7mlGqLnGovlcYnBK0IqUA==", + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.12.tgz", + "integrity": "sha512-DzFtxOi+7NsFf7DBtI3BJsynR+0Yp6etH+nRPTbpWnS2pZBaSksv/JGctNwSWzbFjp0vxSqknaUylseZqMDGrA==", "license": "MIT" }, "node_modules/tapable": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.2.tgz", - "integrity": "sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.3.tgz", + "integrity": "sha512-ZL6DDuAlRlLGghwcfmSn9sK3Hr6ArtyudlSAiCqQ6IfE+b+HHbydbYDIG15IfS5do+7XQQBdBiubF/cV2dnDzg==", "license": "MIT", "engines": { "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, "node_modules/tar": { diff --git a/package.json b/package.json index 7f0730b..7c79553 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ "prepare": "husky" }, "dependencies": { - "@tailwindcss/vite": "^4.1.10", + "@tailwindcss/vite": "^4.1.12", "lucide-react": "^0.523.0", "react": "^19.1.0", "react-dom": "^19.1.0", @@ -50,11 +50,10 @@ "globals": "^16.0.0", "husky": "^9.1.7", "playwright": "^1.54.2", - "postcss": "^8.5.6", "prettier": "^3.6.0", "prop-types": "^15.8.1", "storybook": "^9.1.2", - "tailwindcss": "^4.1.10", + "tailwindcss": "^4.1.12", "vite": "^6.3.5", "vitest": "^3.2.4" } diff --git a/src/app/index.jsx b/src/app/index.jsx index 478798a..0621930 100644 --- a/src/app/index.jsx +++ b/src/app/index.jsx @@ -5,16 +5,16 @@ import { useLocation, Navigate, } from 'react-router-dom'; -import Home from './pages/home'; -import TrackInfo from './pages/info'; -import NotFound from './pages/NotFound'; -import Search from './pages/Search'; -import Splash from './pages/splash'; -import Header from './widgets/navigation/Header'; -import Footer from './widgets/navigation/Footer'; -import Login from './pages/login'; -import MyPage from './pages/my'; -import UploadSection from './components/UploadSection'; +import Home from '../pages/home'; +import TrackInfo from '../pages/info'; +import NotFound from '../pages/NotFound'; +import Search from '../pages/Search'; +import Splash from '../pages/splash'; +import Header from '../widgets/navigation/Header'; +import Footer from '../widgets/navigation/Footer'; +import Login from '../pages/login'; +import MyPage from '../pages/my'; +import UploadSection from '../components/UploadSection'; function App() { return ( @@ -30,7 +30,7 @@ function AppContent() { const shouldHideHeaderFooter = hiddenRoutes.includes(location.pathname); return ( -
+
{!shouldHideHeaderFooter &&
} } /> diff --git a/src/assets/background.svg b/src/assets/background.svg new file mode 100644 index 0000000..6c60523 --- /dev/null +++ b/src/assets/background.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/components/Character.jsx b/src/components/Character.jsx index 6526db8..5418f97 100644 --- a/src/components/Character.jsx +++ b/src/components/Character.jsx @@ -4,11 +4,10 @@ import MyTrack from '../assets/mytrack.svg?react'; function Character() { return (
- {/* ✅ block 추가 */} +
); - } export default Character; diff --git a/src/components/CourseList.jsx b/src/components/CourseList.jsx index 3466b88..6a6bf19 100644 --- a/src/components/CourseList.jsx +++ b/src/components/CourseList.jsx @@ -1,6 +1,6 @@ import TrackHeader from './TrackHeader'; import CourseItem from './CourseItem'; -import useTrackStore from '../stores/useTrackStore'; +import useTrackStore from '../entities/course/model/useTrackStore'; // import { track1,track2,track3,track4,track5,track6,track7,track8 } from "../constants/mock"; diff --git a/src/components/MyInfo.jsx b/src/components/MyInfo.jsx index 8d8730f..aadcdd0 100644 --- a/src/components/MyInfo.jsx +++ b/src/components/MyInfo.jsx @@ -1,6 +1,6 @@ import InfoLabel from './InfoLabel'; import Chip from './Chip'; -import useUserStore from '../stores/useUserStore'; +import useUserStore from '../entities/user/model/useUserStore'; const MyInfo = () => { const studentName = useUserStore((state) => state.studentName); diff --git a/src/components/MySetTrack.jsx b/src/components/MySetTrack.jsx index b996ef0..d028f66 100644 --- a/src/components/MySetTrack.jsx +++ b/src/components/MySetTrack.jsx @@ -1,7 +1,7 @@ import { useState } from 'react'; -import useUserStore from '../stores/useUserStore'; +import useUserStore from '../entities/user/model/useUserStore'; import Button from './Button'; -import { postUserTrack } from '../services/userTrackService'; +import { postUserTrack } from '../features/track-manamgement/api/userTrackService'; const allTracks = [ '인공지능 시스템', diff --git a/src/components/TrackIntroTop.jsx b/src/components/TrackIntroTop.jsx index a17cd77..5c8d182 100644 --- a/src/components/TrackIntroTop.jsx +++ b/src/components/TrackIntroTop.jsx @@ -1,5 +1,5 @@ import TrackIcon from '../assets/logo-character.svg?react'; // 일러스트 svg -import useUserStore from '../stores/useUserStore'; +import useUserStore from '../entities/user/model/useUserStore'; function TrackIntroTop() { const studentName = useUserStore((state) => state.studentName); diff --git a/src/components/UploadSection.jsx b/src/components/UploadSection.jsx index abf86bc..3bd9ae1 100644 --- a/src/components/UploadSection.jsx +++ b/src/components/UploadSection.jsx @@ -3,8 +3,8 @@ import TrackStatusLarge from './TrackStatusLarge'; import Chip from './Chip'; import Button from './Button'; import DeleteIcon from '../assets/delete.svg'; -import { uploadStudentExcel } from '../services/userDataService'; -import useTrackStore from '../stores/useTrackStore'; +import { uploadStudentExcel } from '../features/track-manamgement/api/userDataService'; +import useTrackStore from '../entities/course/model/useTrackStore'; const UploadSection = ({ onClose }) => { const fileInputRef = useRef(null); diff --git a/src/features/auth/api/userService.js b/src/features/auth/api/userService.js index dadeb33..d9d3ab2 100644 --- a/src/features/auth/api/userService.js +++ b/src/features/auth/api/userService.js @@ -1,6 +1,6 @@ // API 요청 관련 함수 // src/services/userService.js -import { BASE_URL } from '../../../constants/api'; +import { BASE_URL } from '../../../shared/api/api'; export const loginWithSejongPortal = async ( sejongPortalId, diff --git a/src/features/recommendation/api/trackRecommendService.js b/src/features/recommendation/api/trackRecommendService.js index a01f798..a7daf0c 100644 --- a/src/features/recommendation/api/trackRecommendService.js +++ b/src/features/recommendation/api/trackRecommendService.js @@ -1,4 +1,4 @@ -import { BASE_URL } from '../constants/api'; +import { BASE_URL } from '../../../shared/api/api'; export const getRecommendTrackByProgress = async (studentId) => { const response = await fetch( diff --git a/src/features/track-manamgement/api/userDataService.js b/src/features/track-manamgement/api/userDataService.js index 9570a60..269b747 100644 --- a/src/features/track-manamgement/api/userDataService.js +++ b/src/features/track-manamgement/api/userDataService.js @@ -1,6 +1,6 @@ // src/services/userDataService.js -import { BASE_URL } from '../../../constants/api'; -import useUserStore from '../../../stores/useUserStore'; +import { BASE_URL } from '../../../shared/api/api'; +import useUserStore from '../../../entities/user/model/useUserStore'; export const uploadStudentExcel = async (file) => { const studentId = useUserStore.getState().studentId; diff --git a/src/features/track-manamgement/api/userTrackService.js b/src/features/track-manamgement/api/userTrackService.js index 8e037f1..59e9b75 100644 --- a/src/features/track-manamgement/api/userTrackService.js +++ b/src/features/track-manamgement/api/userTrackService.js @@ -1,4 +1,4 @@ -import { BASE_URL } from '../../../constants/api'; +import { BASE_URL } from '../../../shared/api/api'; export const postUserTrack = async (studentId, trackName) => { const response = await fetch( diff --git a/src/index.css b/src/index.css index a461c50..9d62070 100644 --- a/src/index.css +++ b/src/index.css @@ -1 +1,15 @@ -@import "tailwindcss"; \ No newline at end of file +@import 'tailwindcss'; + +@theme { + --color-blue-primary: #0259dd; + --color-blue-light-1: #4084e8; + --color-blue-light-2: #84affb; + --color-blue-light-3: #cfe7ff; + --color-blue-light-4: #dae6ff; + + --color-red: #f24539; + --color-red-light-1: #fd685e; + + --color-pink: #ff4ed0; + --color-green: #2ed9bf; +} diff --git a/src/main.jsx b/src/main.jsx index 89f91e5..1939ce5 100644 --- a/src/main.jsx +++ b/src/main.jsx @@ -1,10 +1,10 @@ -import { StrictMode } from 'react' -import { createRoot } from 'react-dom/client' -import App from './App.jsx' -import './index.css' +import { StrictMode } from 'react'; +import { createRoot } from 'react-dom/client'; +import App from './app'; +import './index.css'; createRoot(document.getElementById('root')).render( - , -) + +); diff --git a/src/pages/home/index.jsx b/src/pages/home/index.jsx index b740b61..4afe967 100644 --- a/src/pages/home/index.jsx +++ b/src/pages/home/index.jsx @@ -1,7 +1,7 @@ -import TrackTabs from "../components/TrackTabs"; -import CourseList from "../components/CourseList"; -import TrackStatusCard from "../components/TrackStatusCard"; -import UploadSection from "../components/UploadSection"; // 이전에 만든 UploadSection 컴포넌트 +import TrackTabs from "../../components/TrackTabs"; +import CourseList from "../../components/CourseList"; +import TrackStatusCard from "../../components/TrackStatusCard"; +import UploadSection from "../../components/UploadSection"; // 이전에 만든 UploadSection 컴포넌트 import { useState } from "react"; const TABS = [ diff --git a/src/pages/info/index.jsx b/src/pages/info/index.jsx index 0a0fd94..db0c8f8 100644 --- a/src/pages/info/index.jsx +++ b/src/pages/info/index.jsx @@ -1,6 +1,6 @@ -import InfoList from '../components/InfoList'; -import TrackTabs from '../components/TrackTabs'; -import TrackIntroTop from '../components/TrackIntroTop'; +import InfoList from '../../components/InfoList'; +import TrackTabs from '../../components/TrackTabs'; +import TrackIntroTop from '../../components/TrackIntroTop'; import { useState } from 'react'; const TABS = [ diff --git a/src/pages/login/index.jsx b/src/pages/login/index.jsx index 0dc47ca..a0a1974 100644 --- a/src/pages/login/index.jsx +++ b/src/pages/login/index.jsx @@ -1,10 +1,11 @@ import { useState } from 'react'; -import Input from '../components/Input'; -import Button from '../components/Button'; -import Character from '../components/Character'; -import { loginWithSejongPortal } from '../services/userService'; // 포털 API 호출 함수 +import Input from '../../components/Input'; +import Button from '../../components/Button'; +import Character from '../../components/Character'; +import { loginWithSejongPortal } from '../../features/auth/api/userService'; // 포털 API 호출 함수 import { useNavigate } from 'react-router-dom'; // 리다이렉션을 위한 훅 -import useUserStore from '../stores/useUserStore'; +import useUserStore from '../../entities/user/model/useUserStore'; +import BackGround from '../../assets/background.svg?react'; function Login() { const [id, setId] = useState(''); @@ -17,7 +18,7 @@ function Login() { setError(''); setLoading(true); - try { + try { const userData = await loginWithSejongPortal(id, pw); useUserStore.getState().setStudentId(userData.studentIdString); useUserStore.getState().setStudentName(userData.studentName); @@ -31,18 +32,19 @@ function Login() { navigate('/splash'); // 처음 로그인 시 스플래시 페이지로 이동 } // localStorage.setItem('studentInfo', JSON.stringify(userData)); - } catch (err) { console.error(err); setError('포털 아이디 혹은 비밀번호가 잘못되었습니다.'); } finally { setLoading(false); } -} + }; return ( -
-
+
+ +
+ {/* 아이콘 + 마이트랙 로고 */}
); - } export default Login; diff --git a/src/pages/my/index.jsx b/src/pages/my/index.jsx index e434f5d..3f50d8e 100644 --- a/src/pages/my/index.jsx +++ b/src/pages/my/index.jsx @@ -1,17 +1,17 @@ import { useState } from 'react'; -import CommonSquare from '../components/CommonSquare'; -import MyTabs from '../components/MyTabs'; -import MyInfo from '../components/MyInfo'; -import MySetTrack from '../components/MySetTrack'; -import TrackStatusLarge from '../components/TrackStatusLarge'; -import useUserStore from '../stores/useUserStore'; -import TrackInitButton from '../components/TrackInitButton'; -import Button from '../components/Button'; -import TrackLoadMap from '../assets/TrackLoadMap.svg?react'; +import CommonSquare from '../../components/CommonSquare'; +import MyTabs from '../../components/MyTabs'; +import MyInfo from '../../components/MyInfo'; +import MySetTrack from '../../components/MySetTrack'; +import TrackStatusLarge from '../../components/TrackStatusLarge'; +import useUserStore from '../../entities/user/model/useUserStore'; +import TrackInitButton from '../../components/TrackInitButton'; +import Button from '../../components/Button'; +import TrackLoadMap from '../../assets/TrackLoadMap.svg?react'; import { getRecommendTrackByProgress, getRecommendTrackByInterest, -} from '../services/trackRecommendService'; +} from '../../features/recommendation/api/trackRecommendService'; const MyPage = () => { const [activeTab, setActiveTab] = useState('내 정보'); diff --git a/src/pages/splash/index.jsx b/src/pages/splash/index.jsx index f790f30..eeefe60 100644 --- a/src/pages/splash/index.jsx +++ b/src/pages/splash/index.jsx @@ -1,13 +1,13 @@ 'use client'; import React, { useEffect, useState } from 'react'; -import TrackStatusCard from '../components/TrackStatusCard'; -import TrackStatusLarge from '../components/TrackStatusLarge'; -import TrackIntroTop from '../components/TrackIntroTop'; -import UploadSection from '../components/UploadSection'; -import DeleteIcon from '../assets/delete.svg'; -import InfoList from '../components/InfoList'; -import TrackTabs from '../components/TrackTabs'; +import TrackStatusCard from '../../components/TrackStatusCard'; +import TrackStatusLarge from '../../components/TrackStatusLarge'; +import TrackIntroTop from '../../components/TrackIntroTop'; +import UploadSection from '../../components/UploadSection'; +import DeleteIcon from '../../assets/delete.svg'; +import InfoList from '../../components/InfoList'; +import TrackTabs from '../../components/TrackTabs'; const TABS = [ '인공지능시스템', diff --git a/src/widgets/navigation/Footer.jsx b/src/widgets/navigation/Footer.jsx index 8dbe53d..c43c848 100644 --- a/src/widgets/navigation/Footer.jsx +++ b/src/widgets/navigation/Footer.jsx @@ -1,7 +1,7 @@ import React from 'react'; -import SejongIcon from '../assets/logo-sejong.svg?react'; -import SwIcon from '../assets/logo-sw.svg?react'; -import IitpIcon from '../assets/logo-iitp.svg?react'; +import SejongIcon from '../../assets/logo-sejong.svg?react'; +import SwIcon from '../../assets/logo-sw.svg?react'; +import IitpIcon from '../../assets/logo-iitp.svg?react'; function Footer() { return ( diff --git a/src/widgets/navigation/Header.jsx b/src/widgets/navigation/Header.jsx index db057a1..72d36bb 100644 --- a/src/widgets/navigation/Header.jsx +++ b/src/widgets/navigation/Header.jsx @@ -1,9 +1,9 @@ import { Link } from 'react-router-dom'; -import Logo from '../assets/logo-character2.svg?react'; -import MyTrackHeader from '../assets/mytrack-header.svg?react'; -import TrackIcon from '../assets/track.svg?react'; -import SearchIcon from '../assets/search.svg?react'; -import MypageIcon from '../assets/mypage.svg?react'; +import Logo from '../../assets/logo-character2.svg?react'; +import MyTrackHeader from '../../assets/mytrack-header.svg?react'; +import TrackIcon from '../../assets/track.svg?react'; +import SearchIcon from '../../assets/search.svg?react'; +import MypageIcon from '../../assets/mypage.svg?react'; function Header() { return ( diff --git a/tailwind.config.js b/tailwind.config.js deleted file mode 100644 index 252cac6..0000000 --- a/tailwind.config.js +++ /dev/null @@ -1,14 +0,0 @@ -export default { - content: [ - './index.html', - './src/**/*.{js,jsx,ts,tsx}', - ], - theme: { - extend: { - colors: { - primary: '#0259DD', - }, - }, - }, - plugins: [], -}