From e4b8b8cdfa53643d0aa07faf7c5b67c46965028e Mon Sep 17 00:00:00 2001 From: Lukian Date: Mon, 28 Apr 2025 21:59:46 +0200 Subject: [PATCH 1/2] add: added daisyui and started changin class names --- front/package-lock.json | 607 ++++++++++++++++++++++++++++---- front/package.json | 5 +- front/src/components/TopBar.tsx | 84 ++--- front/src/index.css | 10 +- front/src/pages/Login.tsx | 19 +- front/src/pages/Register.tsx | 22 +- front/vite.config.ts | 3 +- 7 files changed, 618 insertions(+), 132 deletions(-) diff --git a/front/package-lock.json b/front/package-lock.json index f5877e3..609166e 100644 --- a/front/package-lock.json +++ b/front/package-lock.json @@ -8,10 +8,13 @@ "name": "front", "version": "0.0.0", "dependencies": { + "@tailwindcss/vite": "^4.1.4", "axios": "^1.8.4", + "daisyui": "^5.0.28", "react": "^19.0.0", "react-dom": "^19.0.0", - "react-router-dom": "^7.5.1" + "react-router-dom": "^7.5.1", + "tailwindcss": "^4.1.4" }, "devDependencies": { "@eslint/js": "^9.21.0", @@ -330,7 +333,6 @@ "cpu": [ "ppc64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -347,7 +349,6 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -364,7 +365,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -381,7 +381,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -398,7 +397,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -415,7 +413,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -432,7 +429,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -449,7 +445,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -466,7 +461,6 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -483,7 +477,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -500,7 +493,6 @@ "cpu": [ "ia32" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -517,7 +509,6 @@ "cpu": [ "loong64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -534,7 +525,6 @@ "cpu": [ "mips64el" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -551,7 +541,6 @@ "cpu": [ "ppc64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -568,7 +557,6 @@ "cpu": [ "riscv64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -585,7 +573,6 @@ "cpu": [ "s390x" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -602,7 +589,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -619,7 +605,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -636,7 +621,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -653,7 +637,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -670,7 +653,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -687,7 +669,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -704,7 +685,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -721,7 +701,6 @@ "cpu": [ "ia32" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -738,7 +717,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1063,7 +1041,6 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1077,7 +1054,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1091,7 +1067,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1105,7 +1080,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1119,7 +1093,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1133,7 +1106,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1147,7 +1119,6 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1161,7 +1132,6 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1175,7 +1145,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1189,7 +1158,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1203,7 +1171,6 @@ "cpu": [ "loong64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1217,7 +1184,6 @@ "cpu": [ "ppc64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1231,7 +1197,6 @@ "cpu": [ "riscv64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1245,7 +1210,6 @@ "cpu": [ "riscv64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1259,7 +1223,6 @@ "cpu": [ "s390x" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1273,7 +1236,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1287,7 +1249,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1301,7 +1262,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1315,7 +1275,6 @@ "cpu": [ "ia32" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1329,13 +1288,266 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ "win32" ] }, + "node_modules/@tailwindcss/node": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.1.4.tgz", + "integrity": "sha512-MT5118zaiO6x6hNA04OWInuAiP1YISXql8Z+/Y8iisV5nuhM8VXlyhRuqc2PEviPszcXI66W44bCIk500Oolhw==", + "license": "MIT", + "dependencies": { + "enhanced-resolve": "^5.18.1", + "jiti": "^2.4.2", + "lightningcss": "1.29.2", + "tailwindcss": "4.1.4" + } + }, + "node_modules/@tailwindcss/oxide": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.1.4.tgz", + "integrity": "sha512-p5wOpXyOJx7mKh5MXh5oKk+kqcz8T+bA3z/5VWWeQwFrmuBItGwz8Y2CHk/sJ+dNb9B0nYFfn0rj/cKHZyjahQ==", + "license": "MIT", + "engines": { + "node": ">= 10" + }, + "optionalDependencies": { + "@tailwindcss/oxide-android-arm64": "4.1.4", + "@tailwindcss/oxide-darwin-arm64": "4.1.4", + "@tailwindcss/oxide-darwin-x64": "4.1.4", + "@tailwindcss/oxide-freebsd-x64": "4.1.4", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.4", + "@tailwindcss/oxide-linux-arm64-gnu": "4.1.4", + "@tailwindcss/oxide-linux-arm64-musl": "4.1.4", + "@tailwindcss/oxide-linux-x64-gnu": "4.1.4", + "@tailwindcss/oxide-linux-x64-musl": "4.1.4", + "@tailwindcss/oxide-wasm32-wasi": "4.1.4", + "@tailwindcss/oxide-win32-arm64-msvc": "4.1.4", + "@tailwindcss/oxide-win32-x64-msvc": "4.1.4" + } + }, + "node_modules/@tailwindcss/oxide-android-arm64": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.1.4.tgz", + "integrity": "sha512-xMMAe/SaCN/vHfQYui3fqaBDEXMu22BVwQ33veLc8ep+DNy7CWN52L+TTG9y1K397w9nkzv+Mw+mZWISiqhmlA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-darwin-arm64": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.1.4.tgz", + "integrity": "sha512-JGRj0SYFuDuAGilWFBlshcexev2hOKfNkoX+0QTksKYq2zgF9VY/vVMq9m8IObYnLna0Xlg+ytCi2FN2rOL0Sg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-darwin-x64": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.1.4.tgz", + "integrity": "sha512-sdDeLNvs3cYeWsEJ4H1DvjOzaGios4QbBTNLVLVs0XQ0V95bffT3+scptzYGPMjm7xv4+qMhCDrkHwhnUySEzA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-freebsd-x64": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.1.4.tgz", + "integrity": "sha512-VHxAqxqdghM83HslPhRsNhHo91McsxRJaEnShJOMu8mHmEj9Ig7ToHJtDukkuLWLzLboh2XSjq/0zO6wgvykNA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.1.4.tgz", + "integrity": "sha512-OTU/m/eV4gQKxy9r5acuesqaymyeSCnsx1cFto/I1WhPmi5HDxX1nkzb8KYBiwkHIGg7CTfo/AcGzoXAJBxLfg==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.1.4.tgz", + "integrity": "sha512-hKlLNvbmUC6z5g/J4H+Zx7f7w15whSVImokLPmP6ff1QqTVE+TxUM9PGuNsjHvkvlHUtGTdDnOvGNSEUiXI1Ww==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-musl": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.1.4.tgz", + "integrity": "sha512-X3As2xhtgPTY/m5edUtddmZ8rCruvBvtxYLMw9OsZdH01L2gS2icsHRwxdU0dMItNfVmrBezueXZCHxVeeb7Aw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-gnu": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.1.4.tgz", + "integrity": "sha512-2VG4DqhGaDSmYIu6C4ua2vSLXnJsb/C9liej7TuSO04NK+JJJgJucDUgmX6sn7Gw3Cs5ZJ9ZLrnI0QRDOjLfNQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-musl": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.1.4.tgz", + "integrity": "sha512-v+mxVgH2kmur/X5Mdrz9m7TsoVjbdYQT0b4Z+dr+I4RvreCNXyCFELZL/DO0M1RsidZTrm6O1eMnV6zlgEzTMQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.1.4.tgz", + "integrity": "sha512-2TLe9ir+9esCf6Wm+lLWTMbgklIjiF0pbmDnwmhR9MksVOq+e8aP3TSsXySnBDDvTTVd/vKu1aNttEGj3P6l8Q==", + "bundleDependencies": [ + "@napi-rs/wasm-runtime", + "@emnapi/core", + "@emnapi/runtime", + "@tybys/wasm-util", + "@emnapi/wasi-threads", + "tslib" + ], + "cpu": [ + "wasm32" + ], + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.4.0", + "@emnapi/runtime": "^1.4.0", + "@emnapi/wasi-threads": "^1.0.1", + "@napi-rs/wasm-runtime": "^0.2.8", + "@tybys/wasm-util": "^0.9.0", + "tslib": "^2.8.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.1.4.tgz", + "integrity": "sha512-VlnhfilPlO0ltxW9/BgfLI5547PYzqBMPIzRrk4W7uupgCt8z6Trw/tAj6QUtF2om+1MH281Pg+HHUJoLesmng==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-win32-x64-msvc": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.1.4.tgz", + "integrity": "sha512-+7S63t5zhYjslUGb8NcgLpFXD+Kq1F/zt5Xv5qTv7HaFTG/DHyHD9GA6ieNAxhgyA4IcKa/zy7Xx4Oad2/wuhw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/vite": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.1.4.tgz", + "integrity": "sha512-4UQeMrONbvrsXKXXp/uxmdEN5JIJ9RkH7YVzs6AMxC/KC1+Np7WZBaNIco7TEjlkthqxZbt8pU/ipD+hKjm80A==", + "license": "MIT", + "dependencies": { + "@tailwindcss/node": "4.1.4", + "@tailwindcss/oxide": "4.1.4", + "tailwindcss": "4.1.4" + }, + "peerDependencies": { + "vite": "^5.2.0 || ^6" + } + }, "node_modules/@types/babel__core": { "version": "7.20.5", "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", @@ -1385,7 +1597,6 @@ "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/@types/json-schema": { @@ -1936,6 +2147,15 @@ "dev": true, "license": "MIT" }, + "node_modules/daisyui": { + "version": "5.0.28", + "resolved": "https://registry.npmjs.org/daisyui/-/daisyui-5.0.28.tgz", + "integrity": "sha512-H082p8Lg3c7Se9wTbjfSOOhfUbp3BnOM2+cdr3OeY5G1Ll7GYLXB9NWLHgitkTsB1pQKwHRYYchqN2YG0VVShg==", + "license": "MIT", + "funding": { + "url": "https://github.com/saadeghi/daisyui?sponsor=1" + } + }, "node_modules/debug": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", @@ -1970,6 +2190,15 @@ "node": ">=0.4.0" } }, + "node_modules/detect-libc": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz", + "integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==", + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, "node_modules/dunder-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", @@ -1991,6 +2220,19 @@ "dev": true, "license": "ISC" }, + "node_modules/enhanced-resolve": { + "version": "5.18.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz", + "integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/es-define-property": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", @@ -2040,7 +2282,6 @@ "version": "0.25.3", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.3.tgz", "integrity": "sha512-qKA6Pvai73+M2FtftpNKRxJ78GIjmFXFxd/1DVBqGo/qNhLSfv+G12n9pNoWdytJC8U00TrViOwpjT0zgqQS8Q==", - "dev": true, "hasInstallScript": true, "license": "MIT", "bin": { @@ -2442,7 +2683,6 @@ "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, @@ -2547,6 +2787,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC" + }, "node_modules/graphemer": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", @@ -2680,6 +2926,15 @@ "dev": true, "license": "ISC" }, + "node_modules/jiti": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.4.2.tgz", + "integrity": "sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==", + "license": "MIT", + "bin": { + "jiti": "lib/jiti-cli.mjs" + } + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -2771,6 +3026,234 @@ "node": ">= 0.8.0" } }, + "node_modules/lightningcss": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.29.2.tgz", + "integrity": "sha512-6b6gd/RUXKaw5keVdSEtqFVdzWnU5jMxTUjA2bVcMNPLwSQ08Sv/UodBVtETLCn7k4S1Ibxwh7k68IwLZPgKaA==", + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-darwin-arm64": "1.29.2", + "lightningcss-darwin-x64": "1.29.2", + "lightningcss-freebsd-x64": "1.29.2", + "lightningcss-linux-arm-gnueabihf": "1.29.2", + "lightningcss-linux-arm64-gnu": "1.29.2", + "lightningcss-linux-arm64-musl": "1.29.2", + "lightningcss-linux-x64-gnu": "1.29.2", + "lightningcss-linux-x64-musl": "1.29.2", + "lightningcss-win32-arm64-msvc": "1.29.2", + "lightningcss-win32-x64-msvc": "1.29.2" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.29.2.tgz", + "integrity": "sha512-cK/eMabSViKn/PG8U/a7aCorpeKLMlK0bQeNHmdb7qUnBkNPnL+oV5DjJUo0kqWsJUapZsM4jCfYItbqBDvlcA==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.29.2.tgz", + "integrity": "sha512-j5qYxamyQw4kDXX5hnnCKMf3mLlHvG44f24Qyi2965/Ycz829MYqjrVg2H8BidybHBp9kom4D7DR5VqCKDXS0w==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.29.2.tgz", + "integrity": "sha512-wDk7M2tM78Ii8ek9YjnY8MjV5f5JN2qNVO+/0BAGZRvXKtQrBC4/cn4ssQIpKIPP44YXw6gFdpUF+Ps+RGsCwg==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.29.2.tgz", + "integrity": "sha512-IRUrOrAF2Z+KExdExe3Rz7NSTuuJ2HvCGlMKoquK5pjvo2JY4Rybr+NrKnq0U0hZnx5AnGsuFHjGnNT14w26sg==", + "cpu": [ + "arm" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.29.2.tgz", + "integrity": "sha512-KKCpOlmhdjvUTX/mBuaKemp0oeDIBBLFiU5Fnqxh1/DZ4JPZi4evEH7TKoSBFOSOV3J7iEmmBaw/8dpiUvRKlQ==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.29.2.tgz", + "integrity": "sha512-Q64eM1bPlOOUgxFmoPUefqzY1yV3ctFPE6d/Vt7WzLW4rKTv7MyYNky+FWxRpLkNASTnKQUaiMJ87zNODIrrKQ==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.29.2.tgz", + "integrity": "sha512-0v6idDCPG6epLXtBH/RPkHvYx74CVziHo6TMYga8O2EiQApnUPZsbR9nFNrg2cgBzk1AYqEd95TlrsL7nYABQg==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.29.2.tgz", + "integrity": "sha512-rMpz2yawkgGT8RULc5S4WiZopVMOFWjiItBT7aSfDX4NQav6M44rhn5hjtkKzB+wMTRlLLqxkeYEtQ3dd9696w==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.29.2.tgz", + "integrity": "sha512-nL7zRW6evGQqYVu/bKGK+zShyz8OVzsCotFgc7judbt6wnB2KbiKKJwBE4SGoDBQ1O94RjW4asrCjQL4i8Fhbw==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.29.2.tgz", + "integrity": "sha512-EdIUW3B2vLuHmv7urfzMI/h2fmlnOQBk1xlsDxkN1tCWKjNFjfLhGxYk8C8mzpSfr+A6jFFIi8fU6LbQGsRWjA==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, "node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -2882,7 +3365,6 @@ "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", @@ -2998,7 +3480,6 @@ "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": { @@ -3018,7 +3499,6 @@ "version": "8.5.3", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", - "dev": true, "funding": [ { "type": "opencollective", @@ -3185,7 +3665,6 @@ "version": "4.40.0", "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.40.0.tgz", "integrity": "sha512-Noe455xmA96nnqH5piFtLobsGbCij7Tu+tb3c1vYjNbTkfzGqXqQXG3wJaYXkRZuQ0vEYN4bhwg7QnIrqB5B+w==", - "dev": true, "license": "MIT", "dependencies": { "@types/estree": "1.0.7" @@ -3294,7 +3773,6 @@ "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" @@ -3326,11 +3804,25 @@ "node": ">=8" } }, + "node_modules/tailwindcss": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.4.tgz", + "integrity": "sha512-1ZIUqtPITFbv/DxRmDr5/agPqJwF69d24m9qmM1939TJehgY539CtzeZRjbLt5G6fSy/7YqqYsfvoTEw9xUI2A==", + "license": "MIT" + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/tinyglobby": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.13.tgz", "integrity": "sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==", - "dev": true, "license": "MIT", "dependencies": { "fdir": "^6.4.4", @@ -3347,7 +3839,6 @@ "version": "6.4.4", "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.4.tgz", "integrity": "sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==", - "dev": true, "license": "MIT", "peerDependencies": { "picomatch": "^3 || ^4" @@ -3362,7 +3853,6 @@ "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" @@ -3498,7 +3988,6 @@ "version": "6.3.2", "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.2.tgz", "integrity": "sha512-ZSvGOXKGceizRQIZSz7TGJ0pS3QLlVY/9hwxVh17W3re67je1RKYzFHivZ/t0tubU78Vkyb9WnHPENSBCzbckg==", - "dev": true, "license": "MIT", "dependencies": { "esbuild": "^0.25.0", @@ -3573,7 +4062,6 @@ "version": "6.4.4", "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.4.tgz", "integrity": "sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==", - "dev": true, "license": "MIT", "peerDependencies": { "picomatch": "^3 || ^4" @@ -3588,7 +4076,6 @@ "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" diff --git a/front/package.json b/front/package.json index 6505bb2..238e64f 100644 --- a/front/package.json +++ b/front/package.json @@ -10,10 +10,13 @@ "preview": "vite preview" }, "dependencies": { + "@tailwindcss/vite": "^4.1.4", "axios": "^1.8.4", + "daisyui": "^5.0.28", "react": "^19.0.0", "react-dom": "^19.0.0", - "react-router-dom": "^7.5.1" + "react-router-dom": "^7.5.1", + "tailwindcss": "^4.1.4" }, "devDependencies": { "@eslint/js": "^9.21.0", diff --git a/front/src/components/TopBar.tsx b/front/src/components/TopBar.tsx index e6ddb70..113913a 100644 --- a/front/src/components/TopBar.tsx +++ b/front/src/components/TopBar.tsx @@ -1,67 +1,49 @@ -import { useState } from "react" import { Link } from "react-router-dom" import { User } from "../types" export default function TopBar({ user }: { user: User | undefined }) { - const [burgerMenuOpen, setBurgerMenuOpen] = useState(false) return ( -
-
- Home - {user?.admin == 1 && ( - Admin - )} +
+
+
    +
  • + Home +
  • + {user?.admin == 1 && ( +
  • + Admin +
  • + )} +
-
+

Tanuki's Bank

{user ? ( -
- {user.name} - +
+
+ {user.name} + +
) : ( -
- Login - Register +
+
    +
  • + Login +
  • +
  • + Register +
  • +
- )} -
- {burgerMenuOpen && ( -
- Home - {user?.admin == 1 && ( - Admin - )} - {user ? ( -
- {user.name} - -
- ) : ( -
- Login - Register -
- )} -
- )} - -
- + )}
) } \ No newline at end of file diff --git a/front/src/index.css b/front/src/index.css index 25f6747..84b21df 100644 --- a/front/src/index.css +++ b/front/src/index.css @@ -1,4 +1,10 @@ -html { +@import "tailwindcss"; +@plugin "daisyui" { + themes: light --default, autumn --prefersdark; +} + + +/*html { background: #2a6c9b; background: linear-gradient(167deg, rgba(42, 108, 155, 1) 0%, rgba(87, 199, 133, 1) 50%, rgba(163, 237, 83, 1) 100%); } @@ -79,4 +85,4 @@ html { align-items: center; gap: 15px; } -} +}*/ diff --git a/front/src/pages/Login.tsx b/front/src/pages/Login.tsx index cebfc8f..f37d3fc 100644 --- a/front/src/pages/Login.tsx +++ b/front/src/pages/Login.tsx @@ -31,15 +31,20 @@ export default function Login () { } return ( -
+
-
-

Login

-
- setEmail(e.target.value)} placeholder="Email" /> - setPassword(e.target.value)} placeholder="Password" /> - +
+ +
+

Login

+
+ setEmail(e.target.value)} placeholder="Email" /> + setPassword(e.target.value)} placeholder="Password" /> +
+ +
+
) diff --git a/front/src/pages/Register.tsx b/front/src/pages/Register.tsx index 6b8a9d2..b2512cc 100644 --- a/front/src/pages/Register.tsx +++ b/front/src/pages/Register.tsx @@ -46,17 +46,19 @@ export default function Register () { } return ( -
+
-
-

Register

-
- setName(e.target.value)} /> - setLastname(e.target.value)} /> - setEmail(e.target.value)} /> - setNumero(e.target.value)} /> - setPassword(e.target.value)} /> - +
+ +
+

Register

+
+ setName(e.target.value)} /> + setLastname(e.target.value)} /> + setEmail(e.target.value)} /> + setNumero(e.target.value)} /> + setPassword(e.target.value)} /> +
diff --git a/front/vite.config.ts b/front/vite.config.ts index abfa313..2fbcdda 100644 --- a/front/vite.config.ts +++ b/front/vite.config.ts @@ -1,9 +1,10 @@ import { defineConfig } from 'vite' import react from '@vitejs/plugin-react' +import tailwindcss from '@tailwindcss/vite'; // https://vite.dev/config/ export default defineConfig({ - plugins: [react()], + plugins: [react(), tailwindcss()], server: { proxy: { '/api': { From 6b59a47b4e8eb9958e6054929ba400f162a70f38 Mon Sep 17 00:00:00 2001 From: Lukian Date: Wed, 30 Apr 2025 10:15:41 +0200 Subject: [PATCH 2/2] add: added a logo and a page name --- front/index.html | 4 ++-- front/public/bank.png | Bin 0 -> 13931 bytes 2 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 front/public/bank.png diff --git a/front/index.html b/front/index.html index e4b78ea..eb7ffdb 100644 --- a/front/index.html +++ b/front/index.html @@ -2,9 +2,9 @@ - - Vite + React + TS + + Tanuki's Bank
diff --git a/front/public/bank.png b/front/public/bank.png new file mode 100644 index 0000000000000000000000000000000000000000..5e07834ee8fc9771a76bf2b34864ed30eec7fb04 GIT binary patch literal 13931 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 E4;$T7DgXcg literal 0 HcmV?d00001