From 9d90fb67b45ca4816fead77979eb40eaf0e40036 Mon Sep 17 00:00:00 2001 From: RashiJyotishi Date: Sun, 2 Jun 2024 02:39:33 +0530 Subject: [PATCH 1/2] frontend: navbar with its modules css this commit adds a nabar. fixes: #19 --- frontend/package-lock.json | 319 ++++++++++++------------------- frontend/package.json | 1 + frontend/src/Navbar.module.css | 65 +++++++ frontend/src/Navbar.tsx | 99 +++++++++- frontend/src/assets/uno_csoc.png | Bin 0 -> 20912 bytes frontend/src/index.css | 4 +- frontend/src/pages/AppLayout.tsx | 18 +- 7 files changed, 303 insertions(+), 203 deletions(-) create mode 100644 frontend/src/Navbar.module.css create mode 100644 frontend/src/assets/uno_csoc.png diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 00fac7b..765416d 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -12,6 +12,7 @@ "postcss": "^8.4.38", "react": "^18.2.0", "react-dom": "^18.2.0", + "react-icons": "^5.2.1", "react-router-dom": "^6.23.1", "tailwindcss": "^3.4.3" }, @@ -33,7 +34,6 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", - "license": "MIT", "engines": { "node": ">=10" }, @@ -546,7 +546,6 @@ "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "license": "ISC", "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", @@ -563,7 +562,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "license": "MIT", "engines": { "node": ">=12" }, @@ -575,7 +573,6 @@ "version": "7.1.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -590,7 +587,6 @@ "version": "0.3.5", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", - "license": "MIT", "dependencies": { "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -604,7 +600,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "license": "MIT", "engines": { "node": ">=6.0.0" } @@ -613,7 +608,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "license": "MIT", "engines": { "node": ">=6.0.0" } @@ -621,14 +615,12 @@ "node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.15", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "license": "MIT" + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" }, "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==", - "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" @@ -670,7 +662,6 @@ "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "license": "MIT", "optional": true, "engines": { "node": ">=14" @@ -893,14 +884,14 @@ ] }, "node_modules/@swc/core": { - "version": "1.5.7", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.5.7.tgz", - "integrity": "sha512-U4qJRBefIJNJDRCCiVtkfa/hpiZ7w0R6kASea+/KLp+vkus3zcLSB8Ub8SvKgTIxjWpwsKcZlPf5nrv4ls46SQ==", + "version": "1.5.24", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.5.24.tgz", + "integrity": "sha512-Eph9zvO4xvqWZGVzTdtdEJ0Vqf0VIML/o/e4Qd2RLOqtfgnlRi7avmMu5C0oqciJ0tk+hqdUKVUZ4JPoPaiGvQ==", "dev": true, "hasInstallScript": true, "dependencies": { - "@swc/counter": "^0.1.2", - "@swc/types": "0.1.7" + "@swc/counter": "^0.1.3", + "@swc/types": "^0.1.7" }, "engines": { "node": ">=10" @@ -910,19 +901,19 @@ "url": "https://opencollective.com/swc" }, "optionalDependencies": { - "@swc/core-darwin-arm64": "1.5.7", - "@swc/core-darwin-x64": "1.5.7", - "@swc/core-linux-arm-gnueabihf": "1.5.7", - "@swc/core-linux-arm64-gnu": "1.5.7", - "@swc/core-linux-arm64-musl": "1.5.7", - "@swc/core-linux-x64-gnu": "1.5.7", - "@swc/core-linux-x64-musl": "1.5.7", - "@swc/core-win32-arm64-msvc": "1.5.7", - "@swc/core-win32-ia32-msvc": "1.5.7", - "@swc/core-win32-x64-msvc": "1.5.7" + "@swc/core-darwin-arm64": "1.5.24", + "@swc/core-darwin-x64": "1.5.24", + "@swc/core-linux-arm-gnueabihf": "1.5.24", + "@swc/core-linux-arm64-gnu": "1.5.24", + "@swc/core-linux-arm64-musl": "1.5.24", + "@swc/core-linux-x64-gnu": "1.5.24", + "@swc/core-linux-x64-musl": "1.5.24", + "@swc/core-win32-arm64-msvc": "1.5.24", + "@swc/core-win32-ia32-msvc": "1.5.24", + "@swc/core-win32-x64-msvc": "1.5.24" }, "peerDependencies": { - "@swc/helpers": "^0.5.0" + "@swc/helpers": "*" }, "peerDependenciesMeta": { "@swc/helpers": { @@ -931,9 +922,9 @@ } }, "node_modules/@swc/core-darwin-arm64": { - "version": "1.5.7", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.5.7.tgz", - "integrity": "sha512-bZLVHPTpH3h6yhwVl395k0Mtx8v6CGhq5r4KQdAoPbADU974Mauz1b6ViHAJ74O0IVE5vyy7tD3OpkQxL/vMDQ==", + "version": "1.5.24", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.5.24.tgz", + "integrity": "sha512-M7oLOcC0sw+UTyAuL/9uyB9GeO4ZpaBbH76JSH6g1m0/yg7LYJZGRmplhDmwVSDAR5Fq4Sjoi1CksmmGkgihGA==", "cpu": [ "arm64" ], @@ -947,9 +938,9 @@ } }, "node_modules/@swc/core-darwin-x64": { - "version": "1.5.7", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.5.7.tgz", - "integrity": "sha512-RpUyu2GsviwTc2qVajPL0l8nf2vKj5wzO3WkLSHAHEJbiUZk83NJrZd1RVbEknIMO7+Uyjh54hEh8R26jSByaw==", + "version": "1.5.24", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.5.24.tgz", + "integrity": "sha512-MfcFjGGYognpSBSos2pYUNYJSmqEhuw5ceGr6qAdME7ddbjGXliza4W6FggsM+JnWwpqa31+e7/R+GetW4WkaQ==", "cpu": [ "x64" ], @@ -963,9 +954,9 @@ } }, "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.5.7", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.5.7.tgz", - "integrity": "sha512-cTZWTnCXLABOuvWiv6nQQM0hP6ZWEkzdgDvztgHI/+u/MvtzJBN5lBQ2lue/9sSFYLMqzqff5EHKlFtrJCA9dQ==", + "version": "1.5.24", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.5.24.tgz", + "integrity": "sha512-amI2pwtcWV3E/m/nf+AQtn1LWDzKLZyjCmWd3ms7QjEueWYrY8cU1Y4Wp7wNNsxIoPOi8zek1Uj2wwFD/pttNQ==", "cpu": [ "arm" ], @@ -979,9 +970,9 @@ } }, "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.5.7", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.5.7.tgz", - "integrity": "sha512-hoeTJFBiE/IJP30Be7djWF8Q5KVgkbDtjySmvYLg9P94bHg9TJPSQoC72tXx/oXOgXvElDe/GMybru0UxhKx4g==", + "version": "1.5.24", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.5.24.tgz", + "integrity": "sha512-sTSvmqMmgT1ynH/nP75Pc51s+iT4crZagHBiDOf5cq+kudUYjda9lWMs7xkXB/TUKFHPCRK0HGunl8bkwiIbuw==", "cpu": [ "arm64" ], @@ -995,9 +986,9 @@ } }, "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.5.7", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.5.7.tgz", - "integrity": "sha512-+NDhK+IFTiVK1/o7EXdCeF2hEzCiaRSrb9zD7X2Z7inwWlxAntcSuzZW7Y6BRqGQH89KA91qYgwbnjgTQ22PiQ==", + "version": "1.5.24", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.5.24.tgz", + "integrity": "sha512-vd2/hfOBGbrX21FxsFdXCUaffjkHvlZkeE2UMRajdXifwv79jqOHIJg3jXG1F3ZrhCghCzirFts4tAZgcG8XWg==", "cpu": [ "arm64" ], @@ -1011,9 +1002,9 @@ } }, "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.5.7", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.5.7.tgz", - "integrity": "sha512-25GXpJmeFxKB+7pbY7YQLhWWjkYlR+kHz5I3j9WRl3Lp4v4UD67OGXwPe+DIcHqcouA1fhLhsgHJWtsaNOMBNg==", + "version": "1.5.24", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.5.24.tgz", + "integrity": "sha512-Zrdzi7NqzQxm2BvAG5KyOSBEggQ7ayrxh599AqqevJmsUXJ8o2nMiWQOBvgCGp7ye+Biz3pvZn1EnRzAp+TpUg==", "cpu": [ "x64" ], @@ -1027,9 +1018,9 @@ } }, "node_modules/@swc/core-linux-x64-musl": { - "version": "1.5.7", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.5.7.tgz", - "integrity": "sha512-0VN9Y5EAPBESmSPPsCJzplZHV26akC0sIgd3Hc/7S/1GkSMoeuVL+V9vt+F/cCuzr4VidzSkqftdP3qEIsXSpg==", + "version": "1.5.24", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.5.24.tgz", + "integrity": "sha512-1F8z9NRi52jdZQCGc5sflwYSctL6omxiVmIFVp8TC9nngjQKc00TtX/JC2Eo2HwvgupkFVl5YQJidAck9YtmJw==", "cpu": [ "x64" ], @@ -1043,9 +1034,9 @@ } }, "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.5.7", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.5.7.tgz", - "integrity": "sha512-RtoNnstBwy5VloNCvmvYNApkTmuCe4sNcoYWpmY7C1+bPR+6SOo8im1G6/FpNem8AR5fcZCmXHWQ+EUmRWJyuA==", + "version": "1.5.24", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.5.24.tgz", + "integrity": "sha512-cKpP7KvS6Xr0jFSTBXY53HZX/YfomK5EMQYpCVDOvfsZeYHN20sQSKXfpVLvA/q2igVt1zzy1XJcOhpJcgiKLg==", "cpu": [ "arm64" ], @@ -1059,9 +1050,9 @@ } }, "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.5.7", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.5.7.tgz", - "integrity": "sha512-Xm0TfvcmmspvQg1s4+USL3x8D+YPAfX2JHygvxAnCJ0EHun8cm2zvfNBcsTlnwYb0ybFWXXY129aq1wgFC9TpQ==", + "version": "1.5.24", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.5.24.tgz", + "integrity": "sha512-IoPWfi0iwqjZuf7gE223+B97/ZwkKbu7qL5KzGP7g3hJrGSKAvv7eC5Y9r2iKKtLKyv5R/T6Ho0kFR/usi7rHw==", "cpu": [ "ia32" ], @@ -1075,9 +1066,9 @@ } }, "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.5.7", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.5.7.tgz", - "integrity": "sha512-tp43WfJLCsKLQKBmjmY/0vv1slVywR5Q4qKjF5OIY8QijaEW7/8VwPyUyVoJZEnDgv9jKtUTG5PzqtIYPZGnyg==", + "version": "1.5.24", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.5.24.tgz", + "integrity": "sha512-zHgF2k1uVJL8KIW+PnVz1To4a3Cz9THbh2z2lbehaF/gKHugH4c3djBozU4das1v35KOqf5jWIEviBLql2wDLQ==", "cpu": [ "x64" ], @@ -1137,16 +1128,16 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "7.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.10.0.tgz", - "integrity": "sha512-PzCr+a/KAef5ZawX7nbyNwBDtM1HdLIT53aSA2DDlxmxMngZ43O8SIePOeX8H5S+FHXeI6t97mTt/dDdzY4Fyw==", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.11.0.tgz", + "integrity": "sha512-P+qEahbgeHW4JQ/87FuItjBj8O3MYv5gELDzr8QaQ7fsll1gSMTYb6j87MYyxwf3DtD7uGFB9ShwgmCJB5KmaQ==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "7.10.0", - "@typescript-eslint/type-utils": "7.10.0", - "@typescript-eslint/utils": "7.10.0", - "@typescript-eslint/visitor-keys": "7.10.0", + "@typescript-eslint/scope-manager": "7.11.0", + "@typescript-eslint/type-utils": "7.11.0", + "@typescript-eslint/utils": "7.11.0", + "@typescript-eslint/visitor-keys": "7.11.0", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", @@ -1170,15 +1161,15 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "7.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.10.0.tgz", - "integrity": "sha512-2EjZMA0LUW5V5tGQiaa2Gys+nKdfrn2xiTIBLR4fxmPmVSvgPcKNW+AE/ln9k0A4zDUti0J/GZXMDupQoI+e1w==", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.11.0.tgz", + "integrity": "sha512-yimw99teuaXVWsBcPO1Ais02kwJ1jmNA1KxE7ng0aT7ndr1pT1wqj0OJnsYVGKKlc4QJai86l/025L6z8CljOg==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "7.10.0", - "@typescript-eslint/types": "7.10.0", - "@typescript-eslint/typescript-estree": "7.10.0", - "@typescript-eslint/visitor-keys": "7.10.0", + "@typescript-eslint/scope-manager": "7.11.0", + "@typescript-eslint/types": "7.11.0", + "@typescript-eslint/typescript-estree": "7.11.0", + "@typescript-eslint/visitor-keys": "7.11.0", "debug": "^4.3.4" }, "engines": { @@ -1198,13 +1189,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "7.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.10.0.tgz", - "integrity": "sha512-7L01/K8W/VGl7noe2mgH0K7BE29Sq6KAbVmxurj8GGaPDZXPr8EEQ2seOeAS+mEV9DnzxBQB6ax6qQQ5C6P4xg==", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.11.0.tgz", + "integrity": "sha512-27tGdVEiutD4POirLZX4YzT180vevUURJl4wJGmm6TrQoiYwuxTIY98PBp6L2oN+JQxzE0URvYlzJaBHIekXAw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.10.0", - "@typescript-eslint/visitor-keys": "7.10.0" + "@typescript-eslint/types": "7.11.0", + "@typescript-eslint/visitor-keys": "7.11.0" }, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -1215,13 +1206,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "7.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.10.0.tgz", - "integrity": "sha512-D7tS4WDkJWrVkuzgm90qYw9RdgBcrWmbbRkrLA4d7Pg3w0ttVGDsvYGV19SH8gPR5L7OtcN5J1hTtyenO9xE9g==", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.11.0.tgz", + "integrity": "sha512-WmppUEgYy+y1NTseNMJ6mCFxt03/7jTOy08bcg7bxJJdsM4nuhnchyBbE8vryveaJUf62noH7LodPSo5Z0WUCg==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "7.10.0", - "@typescript-eslint/utils": "7.10.0", + "@typescript-eslint/typescript-estree": "7.11.0", + "@typescript-eslint/utils": "7.11.0", "debug": "^4.3.4", "ts-api-utils": "^1.3.0" }, @@ -1242,9 +1233,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "7.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.10.0.tgz", - "integrity": "sha512-7fNj+Ya35aNyhuqrA1E/VayQX9Elwr8NKZ4WueClR3KwJ7Xx9jcCdOrLW04h51de/+gNbyFMs+IDxh5xIwfbNg==", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.11.0.tgz", + "integrity": "sha512-MPEsDRZTyCiXkD4vd3zywDCifi7tatc4K37KqTprCvaXptP7Xlpdw0NR2hRJTetG5TxbWDB79Ys4kLmHliEo/w==", "dev": true, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -1255,13 +1246,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "7.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.10.0.tgz", - "integrity": "sha512-LXFnQJjL9XIcxeVfqmNj60YhatpRLt6UhdlFwAkjNc6jSUlK8zQOl1oktAP8PlWFzPQC1jny/8Bai3/HPuvN5g==", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.11.0.tgz", + "integrity": "sha512-cxkhZ2C/iyi3/6U9EPc5y+a6csqHItndvN/CzbNXTNrsC3/ASoYQZEt9uMaEp+xFNjasqQyszp5TumAVKKvJeQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.10.0", - "@typescript-eslint/visitor-keys": "7.10.0", + "@typescript-eslint/types": "7.11.0", + "@typescript-eslint/visitor-keys": "7.11.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -1283,15 +1274,15 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "7.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.10.0.tgz", - "integrity": "sha512-olzif1Fuo8R8m/qKkzJqT7qwy16CzPRWBvERS0uvyc+DHd8AKbO4Jb7kpAvVzMmZm8TrHnI7hvjN4I05zow+tg==", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.11.0.tgz", + "integrity": "sha512-xlAWwPleNRHwF37AhrZurOxA1wyXowW4PqVXZVUNCLjB48CqdPJoJWkrpH2nij9Q3Lb7rtWindtoXwxjxlKKCA==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "7.10.0", - "@typescript-eslint/types": "7.10.0", - "@typescript-eslint/typescript-estree": "7.10.0" + "@typescript-eslint/scope-manager": "7.11.0", + "@typescript-eslint/types": "7.11.0", + "@typescript-eslint/typescript-estree": "7.11.0" }, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -1305,12 +1296,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "7.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.10.0.tgz", - "integrity": "sha512-9ntIVgsi6gg6FIq9xjEO4VQJvwOqA3jaBFQJ/6TK5AvEup2+cECI6Fh7QiBxmfMHXU0V0J4RyPeOU1VDNzl9cg==", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.11.0.tgz", + "integrity": "sha512-7syYk4MzjxTEk0g/w3iqtgxnFQspDJfn6QKD36xMuuhTzjcxY7F8EmBLnALjVyaOF1/bVocu3bS/2/F7rXrveQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "7.10.0", + "@typescript-eslint/types": "7.11.0", "eslint-visitor-keys": "^3.4.3" }, "engines": { @@ -1401,14 +1392,12 @@ "node_modules/any-promise": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", - "license": "MIT" + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" }, "node_modules/anymatch": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "license": "ISC", "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -1420,8 +1409,7 @@ "node_modules/arg": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", - "license": "MIT" + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" }, "node_modules/argparse": { "version": "2.0.1", @@ -1456,7 +1444,6 @@ "url": "https://github.com/sponsors/ai" } ], - "license": "MIT", "dependencies": { "browserslist": "^4.23.0", "caniuse-lite": "^1.0.30001599", @@ -1484,7 +1471,6 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", - "license": "MIT", "engines": { "node": ">=8" }, @@ -1529,7 +1515,6 @@ "url": "https://github.com/sponsors/ai" } ], - "license": "MIT", "dependencies": { "caniuse-lite": "^1.0.30001587", "electron-to-chromium": "^1.4.668", @@ -1556,7 +1541,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", - "license": "MIT", "engines": { "node": ">= 6" } @@ -1578,8 +1562,7 @@ "type": "github", "url": "https://github.com/sponsors/ai" } - ], - "license": "CC-BY-4.0" + ] }, "node_modules/chalk": { "version": "4.1.2", @@ -1601,7 +1584,6 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "license": "MIT", "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -1625,7 +1607,6 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -1653,7 +1634,6 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "license": "MIT", "engines": { "node": ">= 6" } @@ -1681,7 +1661,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "license": "MIT", "bin": { "cssesc": "bin/cssesc" }, @@ -1721,8 +1700,7 @@ "node_modules/didyoumean": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", - "license": "Apache-2.0" + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" }, "node_modules/dir-glob": { "version": "3.0.1", @@ -1739,8 +1717,7 @@ "node_modules/dlv": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", - "license": "MIT" + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" }, "node_modules/doctrine": { "version": "3.0.0", @@ -1757,20 +1734,17 @@ "node_modules/eastasianwidth": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "license": "MIT" + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" }, "node_modules/electron-to-chromium": { - "version": "1.4.786", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.786.tgz", - "integrity": "sha512-i/A2UB0sxYViMN0M2zIotQFRIOt1jLuVXudACHBDiJ5gGuAUzf/crZxwlBTdA0O52Hy4CNtTzS7AKRAacs/08Q==", - "license": "ISC" + "version": "1.4.787", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.787.tgz", + "integrity": "sha512-d0EFmtLPjctczO3LogReyM2pbBiiZbnsKnGF+cdZhsYzHm/A0GV7W94kqzLD8SN4O3f3iHlgLUChqghgyznvCQ==" }, "node_modules/emoji-regex": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "license": "MIT" + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" }, "node_modules/esbuild": { "version": "0.20.2", @@ -1814,7 +1788,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", - "license": "MIT", "engines": { "node": ">=6" } @@ -1836,7 +1809,6 @@ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", "dev": true, - "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", @@ -2132,7 +2104,6 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", - "license": "ISC", "dependencies": { "cross-spawn": "^7.0.0", "signal-exit": "^4.0.1" @@ -2148,7 +2119,6 @@ "version": "4.3.7", "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", - "license": "MIT", "engines": { "node": "*" }, @@ -2180,7 +2150,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -2189,6 +2158,7 @@ "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, "dependencies": { "fs.realpath": "^1.0.0", @@ -2292,7 +2262,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "license": "MIT", "dependencies": { "function-bind": "^1.1.2" }, @@ -2355,7 +2324,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "license": "MIT", "dependencies": { "binary-extensions": "^2.0.0" }, @@ -2367,7 +2335,6 @@ "version": "2.13.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", - "license": "MIT", "dependencies": { "hasown": "^2.0.0" }, @@ -2387,7 +2354,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "license": "MIT", "engines": { "node": ">=8" } @@ -2429,7 +2395,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.1.2.tgz", "integrity": "sha512-kWmLKn2tRtfYMF/BakihVVRzBKOxz4gJMiL2Rj91WnAB5TPZumSH99R/Yf1qE1u4uRimvCSJfm6hnxohXeEXjQ==", - "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/cliui": "^8.0.2" }, @@ -2447,7 +2412,6 @@ "version": "1.21.0", "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", - "license": "MIT", "bin": { "jiti": "bin/jiti.js" } @@ -2513,7 +2477,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", - "license": "MIT", "engines": { "node": ">=10" } @@ -2521,8 +2484,7 @@ "node_modules/lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "license": "MIT" + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" }, "node_modules/locate-path": { "version": "6.0.0", @@ -2560,7 +2522,6 @@ "version": "10.2.2", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", - "license": "ISC", "engines": { "node": "14 || >=16.14" } @@ -2603,7 +2564,6 @@ "version": "7.1.2", "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "license": "ISC", "engines": { "node": ">=16 || 14 >=14.17" } @@ -2618,7 +2578,6 @@ "version": "2.7.0", "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "license": "MIT", "dependencies": { "any-promise": "^1.0.0", "object-assign": "^4.0.1", @@ -2651,14 +2610,12 @@ "node_modules/node-releases": { "version": "2.0.14", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", - "license": "MIT" + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==" }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -2667,7 +2624,6 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", - "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -2676,7 +2632,6 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -2685,7 +2640,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", - "license": "MIT", "engines": { "node": ">= 6" } @@ -2787,14 +2741,12 @@ "node_modules/path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "license": "MIT" + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, "node_modules/path-scurry": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", - "license": "BlueOak-1.0.0", "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" @@ -2835,7 +2787,6 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -2844,7 +2795,6 @@ "version": "4.0.6", "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", - "license": "MIT", "engines": { "node": ">= 6" } @@ -2867,7 +2817,6 @@ "url": "https://github.com/sponsors/ai" } ], - "license": "MIT", "dependencies": { "nanoid": "^3.3.7", "picocolors": "^1.0.0", @@ -2881,7 +2830,6 @@ "version": "15.1.0", "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", - "license": "MIT", "dependencies": { "postcss-value-parser": "^4.0.0", "read-cache": "^1.0.0", @@ -2898,7 +2846,6 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", - "license": "MIT", "dependencies": { "camelcase-css": "^2.0.1" }, @@ -2927,7 +2874,6 @@ "url": "https://github.com/sponsors/ai" } ], - "license": "MIT", "dependencies": { "lilconfig": "^3.0.0", "yaml": "^2.3.4" @@ -2952,7 +2898,6 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.1.tgz", "integrity": "sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==", - "license": "MIT", "engines": { "node": ">=14" }, @@ -2964,7 +2909,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", - "license": "MIT", "dependencies": { "postcss-selector-parser": "^6.0.11" }, @@ -2983,7 +2927,6 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz", "integrity": "sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==", - "license": "MIT", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -2995,8 +2938,7 @@ "node_modules/postcss-value-parser": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "license": "MIT" + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" }, "node_modules/prelude-ls": { "version": "1.2.1", @@ -3012,7 +2954,6 @@ "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==", "dev": true, - "license": "MIT", "bin": { "prettier": "bin/prettier.cjs" }, @@ -3074,6 +3015,14 @@ "react": "^18.3.1" } }, + "node_modules/react-icons": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-5.2.1.tgz", + "integrity": "sha512-zdbW5GstTzXaVKvGSyTaBalt7HSfuK5ovrzlpyiWHAFXndXTdd/1hdDHI4xBM1Mn7YriT6aqESucFl9kEXzrdw==", + "peerDependencies": { + "react": "*" + } + }, "node_modules/react-router": { "version": "6.23.1", "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.23.1.tgz", @@ -3108,7 +3057,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", - "license": "MIT", "dependencies": { "pify": "^2.3.0" } @@ -3117,7 +3065,6 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "license": "MIT", "dependencies": { "picomatch": "^2.2.1" }, @@ -3129,7 +3076,6 @@ "version": "1.22.8", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "license": "MIT", "dependencies": { "is-core-module": "^2.13.0", "path-parse": "^1.0.7", @@ -3164,6 +3110,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", "dev": true, "dependencies": { "glob": "^7.1.3" @@ -3275,7 +3222,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "license": "ISC", "engines": { "node": ">=14" }, @@ -3304,7 +3250,6 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "license": "MIT", "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", @@ -3322,7 +3267,6 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -3335,14 +3279,12 @@ "node_modules/string-width-cjs/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "license": "MIT" + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "node_modules/string-width/node_modules/ansi-regex": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "license": "MIT", "engines": { "node": ">=12" }, @@ -3354,7 +3296,6 @@ "version": "7.1.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -3381,7 +3322,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -3405,7 +3345,6 @@ "version": "3.35.0", "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", - "license": "MIT", "dependencies": { "@jridgewell/gen-mapping": "^0.3.2", "commander": "^4.0.0", @@ -3427,7 +3366,6 @@ "version": "10.4.1", "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz", "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==", - "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^3.1.2", @@ -3461,7 +3399,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -3473,7 +3410,6 @@ "version": "3.4.3", "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.3.tgz", "integrity": "sha512-U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A==", - "license": "MIT", "dependencies": { "@alloc/quick-lru": "^5.2.0", "arg": "^5.0.2", @@ -3516,7 +3452,6 @@ "version": "3.3.1", "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "license": "MIT", "dependencies": { "any-promise": "^1.0.0" } @@ -3525,7 +3460,6 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", - "license": "MIT", "dependencies": { "thenify": ">= 3.1.0 < 4" }, @@ -3559,8 +3493,7 @@ "node_modules/ts-interface-checker": { "version": "0.1.13", "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", - "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", - "license": "Apache-2.0" + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==" }, "node_modules/type-check": { "version": "0.4.0", @@ -3617,7 +3550,6 @@ "url": "https://github.com/sponsors/ai" } ], - "license": "MIT", "dependencies": { "escalade": "^3.1.2", "picocolors": "^1.0.1" @@ -3641,13 +3573,12 @@ "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "license": "MIT" + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, "node_modules/vite": { - "version": "5.2.11", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.2.11.tgz", - "integrity": "sha512-HndV31LWW05i1BLPMUCE1B9E9GFbOu1MbenhS58FuK6owSO5qHm7GiCotrNY1YE5rMeQSFBGmT5ZaLEjFizgiQ==", + "version": "5.2.12", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.2.12.tgz", + "integrity": "sha512-/gC8GxzxMK5ntBwb48pR32GGhENnjtY30G4A0jemunsBkiEZFw60s8InGpN8gkhHEkjnRK1aSAxeQgwvFhUHAA==", "dev": true, "dependencies": { "esbuild": "^0.20.1", @@ -3726,7 +3657,6 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "license": "MIT", "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", @@ -3744,7 +3674,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -3760,14 +3689,12 @@ "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "license": "MIT" + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "node_modules/wrap-ansi-cjs/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -3781,7 +3708,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "license": "MIT", "engines": { "node": ">=12" }, @@ -3793,7 +3719,6 @@ "version": "6.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "license": "MIT", "engines": { "node": ">=12" }, @@ -3805,7 +3730,6 @@ "version": "7.1.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -3826,7 +3750,6 @@ "version": "2.4.2", "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.2.tgz", "integrity": "sha512-B3VqDZ+JAg1nZpaEmWtTXUlBneoGx6CPM9b0TENK6aoSu5t73dItudwdgmi6tHlIZZId4dZ9skcAQ2UbcyAeVA==", - "license": "ISC", "bin": { "yaml": "bin.mjs" }, diff --git a/frontend/package.json b/frontend/package.json index e8d8ad3..960d6c3 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -16,6 +16,7 @@ "postcss": "^8.4.38", "react": "^18.2.0", "react-dom": "^18.2.0", + "react-icons": "^5.2.1", "react-router-dom": "^6.23.1", "tailwindcss": "^3.4.3" }, diff --git a/frontend/src/Navbar.module.css b/frontend/src/Navbar.module.css new file mode 100644 index 0000000..2294706 --- /dev/null +++ b/frontend/src/Navbar.module.css @@ -0,0 +1,65 @@ +body { + transition: margin-right 0.3s; + margin-right: 0; +} + +body.menu-open { + margin-right: 250px; +} + +.sidebar { + position: fixed; + top: 0; + right: -250px; + width: 250px; + height: 100%; + background-color: #111; + overflow-x: hidden; + transition: right 0.3s; + z-index: 1000; +} + +.sidebar.open { + right: 0; +} + +.ul { + list-style-type: none; + padding: 0; +} + +.li { + padding: 8px 16px; + text-align: left; + color: #818181; +} + +.li:hover { + background-color: #575757; + color: #ffffff; +} + +.a { + text-decoration: none; + color: inherit; + display: block; +} + +.a.active { + color: yellow; +} + +.menuButton { + position: absolute; + top: 10px; + right: 10px; + z-index: 1100; +} + +.hidden { + display: none; +} + +.mainContent { + transition: margin-right 0.3s; +} diff --git a/frontend/src/Navbar.tsx b/frontend/src/Navbar.tsx index 753ba46..76b11b0 100644 --- a/frontend/src/Navbar.tsx +++ b/frontend/src/Navbar.tsx @@ -1,7 +1,100 @@ -import './index.css'; +import { useState, useEffect } from 'react'; +import { Link, NavLink } from 'react-router-dom'; +import { FaBars, FaTimes } from 'react-icons/fa'; +import styles from './Navbar.module.css'; -function Navbar() { - return
Navbar
; +interface NavbarProps { + logoSrc?: string; + bgColorFrom?: string; + bgColorTo?: string; + navLinks?: Array<{ title: string; link: string }>; +} + +function Navbar(props: NavbarProps) { + const { + logoSrc = './assets/uno_csoc.png', // Default logo + navLinks = [ + { title: 'Home', link: '/' }, + { title: 'Play', link: '/play' }, + { title: 'Game', link: '/game' }, + { title: 'About', link: '/about' }, + ], // Default navigation + bgColorFrom = '#999999', + bgColorTo = '#333333', + // Default background colors + } = props; + + const [open, setOpen] = useState(false); + + useEffect(() => { + document.body.classList.toggle('menu-open', open); + }, [open]); + + const handleMenu = () => { + setOpen((prev) => !prev); + }; + const background = `linear-gradient(to right, ${bgColorFrom}, ${bgColorTo})`; + + return ( +
+ + +
+ ); } export default Navbar; diff --git a/frontend/src/assets/uno_csoc.png b/frontend/src/assets/uno_csoc.png new file mode 100644 index 0000000000000000000000000000000000000000..add9da5e913f309c03418c4bb948285f2742f989 GIT binary patch literal 20912 zcmV)PK()V#P)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006 zVoOIv0RI600RN!9r;`8x00(qQO+^Rg1r!W99$;4{lmGxwv`IukRCwC$y?4A_M|Cg0 z*39g7`Z>4vqTVH2mfX7yE*P-sU;-pBh9p4vkw8KMfxLtS2puORKnwvJW88}* z+mdDVuG_C}J@@po+syj?ac;jyvTWm!yqEFu{p@qJ%k1y!Yu3zQx&H0&KkYZy*l)T6 z|F5_IA;53A{SN_t!%h6AJMfa4A|U!rcLIPRAim6d{C6V&5g=kq0&Ao2a^L;sbwm+O zWMDi4fG?*f|E&l>1d#xH*R|q~%ds*38^s@phz2L*-H*v1?EuGr$u#(HLI5IA1RCcb ze2wphL?D#5F1Yc+$TpK(Xc^*N*SWuX z9)_lXy%Z_skR&1-ocxb+gC)bt9 zN!j0bV&~3`VbuM>2Nco+Q}-2RfdgxYuHRny`;U)4G-972rt+Ab4Q!AB<0zMCAtGAJ zs!Qp_MHPlt9w|uxfPfykze?Ww*5=;|fPk0b691<{WCJWH#%a8Fo*d@{SyU<40tFk2gMcYHTX_rne)aM_$^SLI9FE@ zX4M1&fa#l8)n6agqwijQ*Q)s1@1FkpH}YQwYaT`nk^JHqu9~_h?j(SH9dB+c{ zp+S{Skz-f%iIM~ik@FDxqe*4r( zH8C1;OI#^H1crbNg#ZAZkxl-hx1h@ZODTW=2omH?U9VjpU*(Y(7Lm^%|KGOe8j8

<1>*D$H?)N|Uo(p2za$e@i%%ekW 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 XFgh?WU - + {/* todo: Add a footer component */} From d34a9a94f73ffa652af5f730b09aaab1ecdc5295 Mon Sep 17 00:00:00 2001 From: RashiJyotishi Date: Sun, 2 Jun 2024 11:55:01 +0530 Subject: [PATCH 2/2] engine: resolved temporary eslint error --- backend/uno-game-engine/deck.ts | 37 +++++++++++++++++---------------- 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/backend/uno-game-engine/deck.ts b/backend/uno-game-engine/deck.ts index 8a6c19e..cd63871 100644 --- a/backend/uno-game-engine/deck.ts +++ b/backend/uno-game-engine/deck.ts @@ -1,21 +1,21 @@ -const colors: Array = ['red', 'yellow', 'green', 'blue']; -const values = [ - '0', - '1', - '2', - '3', - '4', - '5', - '6', - '7', - '8', - '9', - 'skip', - 'reverse', - 'draw2', -]; -const specialCards = ['wild', 'draw4']; -const deck = []; +// const colors = ['red', 'yellow', 'green', 'blue']; +// const values = [ +// '0', +// '1', +// '2', +// '3', +// '4', +// '5', +// '6', +// '7', +// '8', +// '9', +// 'skip', +// 'reverse', +// 'draw2', +// ]; +// const specialCards = ['wild', 'draw4']; +// const deck = []; const sameCardCount = []; // to keep track of same cards in assigning unique id to each card /** @@ -74,6 +74,7 @@ export function makeCard( * This function shuffles the elements of the given array *in place* . The function behaves in a type-agnostic way. * Time complexity: O(n) */ +// elint-disable-next-line export function shuffle(deck: Array) { // Fisher-Yates shuffle algorithm to shuffle card deck for (let i = deck.length - 1; i > 0; i--) {