From c8ef9106210e68f3b7bb0db4ad5657fbb7761737 Mon Sep 17 00:00:00 2001 From: melkent Date: Sun, 24 Nov 2024 10:39:10 -0800 Subject: [PATCH 01/15] partially refactored navbar and resuable primary and secondary cl buttons --- backend/package-lock.json | 383 +-------------- backend/package.json | 1 - frontend/package-lock.json | 451 ++++-------------- frontend/package.json | 3 +- frontend/src/App.css | 7 - frontend/src/assets/logo.svg | 15 + frontend/src/components/Buttons/CLButtons.jsx | 69 +++ .../components/Buttons/CreateNewLogButton.css | 4 - .../components/Buttons/CreateNewLogButton.jsx | 23 - .../components/Buttons/LogHistoryButton.css | 4 - .../components/Buttons/LogHistoryButton.jsx | 23 - frontend/src/components/Navbar/Navbar.css | 95 +++- frontend/src/components/Navbar/Navbar.jsx | 79 ++- frontend/src/components/inputs/CLInputs.jsx | 33 ++ frontend/src/index.css | 32 +- frontend/src/pages/Dashboard.jsx | 28 +- frontend/src/pages/Homepage.jsx | 4 +- frontend/src/pages/NewLog.jsx | 2 +- 18 files changed, 376 insertions(+), 880 deletions(-) create mode 100644 frontend/src/assets/logo.svg create mode 100644 frontend/src/components/Buttons/CLButtons.jsx delete mode 100644 frontend/src/components/Buttons/CreateNewLogButton.css delete mode 100644 frontend/src/components/Buttons/CreateNewLogButton.jsx delete mode 100644 frontend/src/components/Buttons/LogHistoryButton.css delete mode 100644 frontend/src/components/Buttons/LogHistoryButton.jsx create mode 100644 frontend/src/components/inputs/CLInputs.jsx diff --git a/backend/package-lock.json b/backend/package-lock.json index a19137fa..f85c7b95 100644 --- a/backend/package-lock.json +++ b/backend/package-lock.json @@ -9,7 +9,6 @@ "version": "1.0.0", "license": "ISC", "dependencies": { - "dependencies": "^0.0.1", "@supabase/supabase-js": "^2.46.1", "cors": "^2.8.5", "dotenv": "^16.4.5", @@ -2933,6 +2932,7 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -3008,45 +3008,6 @@ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" }, - "node_modules/asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/async": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", - "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==" - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", - "engines": { - "node": "*" - } - }, - "node_modules/aws4": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.2.tgz", - "integrity": "sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==" - }, "node_modules/babel-jest": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", @@ -3194,14 +3155,6 @@ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, - "node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, "node_modules/bin-links": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/bin-links/-/bin-links-5.0.0.tgz", @@ -3426,11 +3379,6 @@ } ] }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" - }, "node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -3563,17 +3511,6 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/commander": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", @@ -3640,11 +3577,6 @@ "url": "https://opencollective.com/core-js" } }, - "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" - }, "node_modules/cors": { "version": "2.8.5", "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", @@ -3691,17 +3623,6 @@ "node": ">= 8" } }, - "node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, "node_modules/data-uri-to-buffer": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", @@ -3771,14 +3692,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/depd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", @@ -3787,17 +3700,6 @@ "node": ">= 0.8" } }, - "node_modules/dependencies": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/dependencies/-/dependencies-0.0.1.tgz", - "integrity": "sha512-geDgiSknEUQ3IV0hr8EnkrZRdgdybxMzySyWRE8P/TE4teCV7g1rRrHAjd6TdlOLIkZVQm+tZU9AxdLv/m57kg==", - "dependencies": { - "async": "*", - "node-walker": "*", - "request": "*", - "underscore": "*" - } - }, "node_modules/destroy": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", @@ -3841,15 +3743,6 @@ "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, "node_modules/ecdsa-sig-formatter": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", @@ -4300,23 +4193,11 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", - "engines": [ - "node >=0.6.0" - ] - }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true }, "node_modules/fast-glob": { "version": "3.3.2", @@ -4337,7 +4218,8 @@ "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true }, "node_modules/fast-levenshtein": { "version": "2.0.6", @@ -4497,27 +4379,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", - "engines": { - "node": "*" - } - }, - "node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, "node_modules/formdata-polyfill": { "version": "4.0.10", "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", @@ -4636,14 +4497,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", - "dependencies": { - "assert-plus": "^1.0.0" - } - }, "node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -4706,27 +4559,6 @@ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true }, - "node_modules/har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", - "engines": { - "node": ">=4" - } - }, - "node_modules/har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "deprecated": "this library is no longer supported", - "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -4801,20 +4633,6 @@ "node": ">= 0.8" } }, - "node_modules/http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - } - }, "node_modules/https-proxy-agent": { "version": "7.0.5", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", @@ -5030,21 +4848,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" - }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==" - }, "node_modules/istanbul-lib-coverage": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", @@ -5783,11 +5591,6 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" - }, "node_modules/jsesc": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", @@ -5812,15 +5615,11 @@ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "dev": true }, - "node_modules/json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" - }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", @@ -5828,11 +5627,6 @@ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" - }, "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", @@ -5877,20 +5671,6 @@ "node": ">=10" } }, - "node_modules/jsprim": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - }, - "engines": { - "node": ">=0.6.0" - } - }, "node_modules/jwa": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", @@ -6258,14 +6038,6 @@ "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", "dev": true }, - "node_modules/node-walker": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/node-walker/-/node-walker-0.1.0.tgz", - "integrity": "sha512-oC1skUd/BuOroGKhTnUJn1B20ETn9SFaHjRRfS911XcdQxTlzDEWTaK0KJpgluI66tHvFBC3QnN5x7YlZb5SeQ==", - "engines": { - "node": ">=0.6.0" - } - }, "node_modules/nodemon": { "version": "3.1.7", "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.1.7.tgz", @@ -6356,14 +6128,6 @@ "node": ">=8" } }, - "node_modules/oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "engines": { - "node": "*" - } - }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -6586,11 +6350,6 @@ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==" }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" - }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -6707,14 +6466,6 @@ "node": ">= 0.10" } }, - "node_modules/psl": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.10.0.tgz", - "integrity": "sha512-KSKHEbjAnpUuAUserOq0FxGXCUrzC3WniuSJhvdbs102rL55266ZcHBqLWOsG30spQMlPdpy7icATiAQehg/iA==", - "dependencies": { - "punycode": "^2.3.1" - } - }, "node_modules/pstree.remy": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", @@ -6725,6 +6476,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, "engines": { "node": ">=6" } @@ -6895,45 +6647,6 @@ "regjsparser": "bin/parser" } }, - "node_modules/request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/request/node_modules/qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", - "engines": { - "node": ">=0.6" - } - }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -7296,30 +7009,6 @@ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "dev": true }, - "node_modules/sshpk": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz", - "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/stack-utils": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", @@ -7557,18 +7246,6 @@ "nodetouch": "bin/nodetouch.js" } }, - "node_modules/tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, "node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", @@ -7586,22 +7263,6 @@ "typescript": ">=4.2.0" } }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" - }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -7667,11 +7328,6 @@ "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", "dev": true }, - "node_modules/underscore": { - "version": "1.13.7", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.7.tgz", - "integrity": "sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g==" - }, "node_modules/undici-types": { "version": "6.19.8", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", @@ -7759,6 +7415,7 @@ "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, "dependencies": { "punycode": "^2.1.0" } @@ -7771,15 +7428,6 @@ "node": ">= 0.4.0" } }, - "node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "bin": { - "uuid": "bin/uuid" - } - }, "node_modules/v8-to-istanbul": { "version": "9.3.0", "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", @@ -7802,19 +7450,6 @@ "node": ">= 0.8" } }, - "node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, "node_modules/walker": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", diff --git a/backend/package.json b/backend/package.json index 9634e7a3..b593bde9 100644 --- a/backend/package.json +++ b/backend/package.json @@ -16,7 +16,6 @@ "dependencies": { "@supabase/supabase-js": "^2.46.1", "cors": "^2.8.5", - "dependencies": "^0.0.1", "dotenv": "^16.4.5", "express": "^4.21.0", "jsonwebtoken": "^9.0.2", diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 25e3d790..bc586bc1 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -8,11 +8,12 @@ "name": "frontend", "version": "0.0.0", "dependencies": { - "dependencies": "^0.0.1", "@emotion/react": "^11.13.3", "@emotion/styled": "^11.13.0", + "@heroicons/react": "^2.2.0", "@mui/icons-material": "^6.1.2", "@mui/material": "^6.1.2", + "@mui/x-date-pickers": "^7.22.3", "@supabase/supabase-js": "^2.45.5", "axios": "^1.7.7", "pdfjs-dist": "^4.7.76", @@ -2485,6 +2486,14 @@ "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, + "node_modules/@heroicons/react": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@heroicons/react/-/react-2.2.0.tgz", + "integrity": "sha512-LMcepvRaS9LYHJGsF0zzmgKCUim/X3N/DQKc4jepAXJ7l8QxJ1PmxJzqplF2Z3FE4PqBAIGyJAQ/w4B5dsqbtQ==", + "peerDependencies": { + "react": ">= 16 || ^19.0.0-rc" + } + }, "node_modules/@humanfs/core": { "version": "0.19.1", "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", @@ -3248,6 +3257,90 @@ } } }, + "node_modules/@mui/x-date-pickers": { + "version": "7.22.3", + "resolved": "https://registry.npmjs.org/@mui/x-date-pickers/-/x-date-pickers-7.22.3.tgz", + "integrity": "sha512-shNp92IrST5BiVy2f4jbrmRaD32QhyUthjh1Oexvpcn0v6INyuWgxfodoTi5ZCnE5Ue5UVFSs4R9Xre0UbJ5DQ==", + "dependencies": { + "@babel/runtime": "^7.25.7", + "@mui/utils": "^5.16.6 || ^6.0.0", + "@mui/x-internals": "7.21.0", + "@types/react-transition-group": "^4.4.11", + "clsx": "^2.1.1", + "prop-types": "^15.8.1", + "react-transition-group": "^4.4.5" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@emotion/react": "^11.9.0", + "@emotion/styled": "^11.8.1", + "@mui/material": "^5.15.14 || ^6.0.0", + "@mui/system": "^5.15.14 || ^6.0.0", + "date-fns": "^2.25.0 || ^3.2.0 || ^4.0.0", + "date-fns-jalali": "^2.13.0-0 || ^3.2.0-0", + "dayjs": "^1.10.7", + "luxon": "^3.0.2", + "moment": "^2.29.4", + "moment-hijri": "^2.1.2 || ^3.0.0", + "moment-jalaali": "^0.7.4 || ^0.8.0 || ^0.9.0 || ^0.10.0", + "react": "^17.0.0 || ^18.0.0", + "react-dom": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + }, + "date-fns": { + "optional": true + }, + "date-fns-jalali": { + "optional": true + }, + "dayjs": { + "optional": true + }, + "luxon": { + "optional": true + }, + "moment": { + "optional": true + }, + "moment-hijri": { + "optional": true + }, + "moment-jalaali": { + "optional": true + } + } + }, + "node_modules/@mui/x-internals": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@mui/x-internals/-/x-internals-7.21.0.tgz", + "integrity": "sha512-94YNyZ0BhK5Z+Tkr90RKf47IVCW8R/1MvdUhh6MCQg6sZa74jsX+x+gEZ4kzuCqOsuyTyxikeQ8vVuCIQiP7UQ==", + "dependencies": { + "@babel/runtime": "^7.25.7", + "@mui/utils": "^5.16.6 || ^6.0.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "react": "^17.0.0 || ^18.0.0" + } + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -4108,6 +4201,7 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -4319,27 +4413,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/async": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", - "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==" - }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -4360,19 +4433,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", - "engines": { - "node": "*" - } - }, - "node_modules/aws4": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.2.tgz", - "integrity": "sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==" - }, "node_modules/axios": { "version": "1.7.7", "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.7.tgz", @@ -4572,14 +4632,6 @@ ], "optional": true }, - "node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, "node_modules/bl": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", @@ -4755,11 +4807,6 @@ "node": "^18.12.0 || >= 20.9.0" } }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" - }, "node_modules/chalk": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", @@ -4901,11 +4948,6 @@ "url": "https://opencollective.com/core-js" } }, - "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" - }, "node_modules/cosmiconfig": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", @@ -4983,17 +5025,6 @@ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" }, - "node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, "node_modules/data-view-buffer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", @@ -5185,17 +5216,6 @@ "node": ">=0.4.0" } }, - "node_modules/dependencies": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/dependencies/-/dependencies-0.0.1.tgz", - "integrity": "sha512-geDgiSknEUQ3IV0hr8EnkrZRdgdybxMzySyWRE8P/TE4teCV7g1rRrHAjd6TdlOLIkZVQm+tZU9AxdLv/m57kg==", - "dependencies": { - "async": "*", - "node-walker": "*", - "request": "*", - "underscore": "*" - } - }, "node_modules/detect-libc": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", @@ -5250,15 +5270,6 @@ "csstype": "^3.0.2" } }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, "node_modules/electron-to-chromium": { "version": "1.5.62", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.62.tgz", @@ -5910,23 +5921,11 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", - "engines": [ - "node >=0.6.0" - ] - }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true }, "node_modules/fast-glob": { "version": "3.3.2", @@ -5959,7 +5958,8 @@ "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true }, "node_modules/fast-levenshtein": { "version": "2.0.6", @@ -6074,14 +6074,6 @@ "is-callable": "^1.1.3" } }, - "node_modules/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", - "engines": { - "node": "*" - } - }, "node_modules/form-data": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", @@ -6231,14 +6223,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", - "dependencies": { - "assert-plus": "^1.0.0" - } - }, "node_modules/github-from-package": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", @@ -6324,27 +6308,6 @@ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true }, - "node_modules/har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", - "engines": { - "node": ">=4" - } - }, - "node_modules/har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "deprecated": "this library is no longer supported", - "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/has-bigints": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", @@ -6444,20 +6407,6 @@ "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "dev": true }, - "node_modules/http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - } - }, "node_modules/human-signals": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", @@ -6943,11 +6892,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" - }, "node_modules/is-weakmap": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", @@ -7000,11 +6944,6 @@ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==" - }, "node_modules/istanbul-lib-coverage": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", @@ -8139,11 +8078,6 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" - }, "node_modules/jsesc": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", @@ -8166,15 +8100,11 @@ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" }, - "node_modules/json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" - }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", @@ -8182,11 +8112,6 @@ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" - }, "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", @@ -8199,20 +8124,6 @@ "node": ">=6" } }, - "node_modules/jsprim": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - }, - "engines": { - "node": ">=0.6.0" - } - }, "node_modules/jsx-ast-utils": { "version": "3.3.5", "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", @@ -8549,14 +8460,6 @@ "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", "dev": true }, - "node_modules/node-walker": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/node-walker/-/node-walker-0.1.0.tgz", - "integrity": "sha512-oC1skUd/BuOroGKhTnUJn1B20ETn9SFaHjRRfS911XcdQxTlzDEWTaK0KJpgluI66tHvFBC3QnN5x7YlZb5SeQ==", - "engines": { - "node": ">=0.6.0" - } - }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -8578,14 +8481,6 @@ "node": ">=8" } }, - "node_modules/oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "engines": { - "node": "*" - } - }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -8879,11 +8774,6 @@ "path2d": "^0.2.1" } }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" - }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -9111,14 +9001,6 @@ "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" }, - "node_modules/psl": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.10.0.tgz", - "integrity": "sha512-KSKHEbjAnpUuAUserOq0FxGXCUrzC3WniuSJhvdbs102rL55266ZcHBqLWOsG30spQMlPdpy7icATiAQehg/iA==", - "dependencies": { - "punycode": "^2.3.1" - } - }, "node_modules/pump": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", @@ -9133,6 +9015,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, "engines": { "node": ">=6" } @@ -9153,14 +9036,6 @@ } ] }, - "node_modules/qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", - "engines": { - "node": ">=0.6" - } - }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -9455,50 +9330,6 @@ "regjsparser": "bin/parser" } }, - "node_modules/request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/request/node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -9659,7 +9490,8 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "optional": true }, "node_modules/safe-regex-test": { "version": "1.0.3", @@ -9678,11 +9510,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, "node_modules/scheduler": { "version": "0.23.2", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", @@ -9865,30 +9692,6 @@ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "dev": true }, - "node_modules/sshpk": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz", - "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/stack-utils": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", @@ -10185,18 +9988,6 @@ "node": ">=8.0" } }, - "node_modules/tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, "node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", @@ -10218,6 +10009,7 @@ "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "optional": true, "dependencies": { "safe-buffer": "^5.0.1" }, @@ -10225,11 +10017,6 @@ "node": "*" } }, - "node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" - }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -10365,11 +10152,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/underscore": { - "version": "1.13.7", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.7.tgz", - "integrity": "sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g==" - }, "node_modules/undici-types": { "version": "6.19.8", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", @@ -10449,6 +10231,7 @@ "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, "dependencies": { "punycode": "^2.1.0" } @@ -10459,15 +10242,6 @@ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "optional": true }, - "node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "bin": { - "uuid": "bin/uuid" - } - }, "node_modules/v8-to-istanbul": { "version": "9.3.0", "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", @@ -10482,19 +10256,6 @@ "node": ">=10.12.0" } }, - "node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, "node_modules/vite": { "version": "5.4.11", "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.11.tgz", diff --git a/frontend/package.json b/frontend/package.json index 9894ef85..3df53f78 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -13,11 +13,12 @@ "dependencies": { "@emotion/react": "^11.13.3", "@emotion/styled": "^11.13.0", + "@heroicons/react": "^2.2.0", "@mui/icons-material": "^6.1.2", "@mui/material": "^6.1.2", + "@mui/x-date-pickers": "^7.22.3", "@supabase/supabase-js": "^2.45.5", "axios": "^1.7.7", - "dependencies": "^0.0.1", "pdfjs-dist": "^4.7.76", "react": "^18.3.1", "react-dom": "^18.3.1", diff --git a/frontend/src/App.css b/frontend/src/App.css index 346c36a1..ca8e8130 100644 --- a/frontend/src/App.css +++ b/frontend/src/App.css @@ -1,10 +1,3 @@ -#root { - max-width: 1280px; - margin: 0 auto; - padding: 2rem; - text-align: center; -} - .logo { height: 6em; padding: 1.5em; diff --git a/frontend/src/assets/logo.svg b/frontend/src/assets/logo.svg new file mode 100644 index 00000000..4e3d4a67 --- /dev/null +++ b/frontend/src/assets/logo.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/frontend/src/components/Buttons/CLButtons.jsx b/frontend/src/components/Buttons/CLButtons.jsx new file mode 100644 index 00000000..0f4fc01e --- /dev/null +++ b/frontend/src/components/Buttons/CLButtons.jsx @@ -0,0 +1,69 @@ +const DEFAULT_HEIGHT = "54px" +const DEFAULT_WIDTH = "fit-content" +const DEFAULT_BORDER_RADIUS = "20px" +const DEFAULT_ON_CLICK = () => {} + +// PRIMARY specific styles +const PRIMARY_COLOR = "#F7FAFF" +const PRIMARY_BACKGROUND_COLOR = "#244B94" + +// SECONDARY specific styles +const SECONDARY_COLOR = "#4F607E" +const SECONDARY_BACKGROUND_COLOR = "#F7FAFF" +const SECONDARY_BORDER = "1px solid #9AB0E1" + +/** + * PRIMARY variant of the clinical logging button. + * Should work out of the box for most use cases (with the exception of onClick which does nothing by default). + * The height and width are customizable if necessary. + */ +export const CLButtonPrimary = ({ + children, + height = DEFAULT_HEIGHT, + width = DEFAULT_WIDTH, + onClick = DEFAULT_ON_CLICK +}) => { + + return ( + + ) +} + +/** + * SECONDARY variant of the clinical logging button. + * Should work out of the box for most use cases (with the exception of onClick which does nothing by default). + * The height and width are customizable if necessary. + */ +export const CLButtonSecondary = ({ + children, + height = DEFAULT_HEIGHT, + width = DEFAULT_WIDTH, + onClick = DEFAULT_ON_CLICK +}) => { + return ( + + ) +} \ No newline at end of file diff --git a/frontend/src/components/Buttons/CreateNewLogButton.css b/frontend/src/components/Buttons/CreateNewLogButton.css deleted file mode 100644 index 3831f023..00000000 --- a/frontend/src/components/Buttons/CreateNewLogButton.css +++ /dev/null @@ -1,4 +0,0 @@ -.add-icon { - margin-right: 9px; - vertical-align: -6px; -} \ No newline at end of file diff --git a/frontend/src/components/Buttons/CreateNewLogButton.jsx b/frontend/src/components/Buttons/CreateNewLogButton.jsx deleted file mode 100644 index f39087fb..00000000 --- a/frontend/src/components/Buttons/CreateNewLogButton.jsx +++ /dev/null @@ -1,23 +0,0 @@ -import AddIcon from "@mui/icons-material/Add"; -import { useNavigate } from "react-router-dom"; -import "./CreateNewLogButton.css"; - -export default function CreateNewLogButton({ variant }) { - const navigate = useNavigate(); - - const handleCreateNewLog = () => { - navigate("/newLog"); - }; - - return ( - - ); -} diff --git a/frontend/src/components/Buttons/LogHistoryButton.css b/frontend/src/components/Buttons/LogHistoryButton.css deleted file mode 100644 index f9a21a14..00000000 --- a/frontend/src/components/Buttons/LogHistoryButton.css +++ /dev/null @@ -1,4 +0,0 @@ -.history-icon { - margin-right: 9px; - vertical-align: -6px; -} \ No newline at end of file diff --git a/frontend/src/components/Buttons/LogHistoryButton.jsx b/frontend/src/components/Buttons/LogHistoryButton.jsx deleted file mode 100644 index 84954962..00000000 --- a/frontend/src/components/Buttons/LogHistoryButton.jsx +++ /dev/null @@ -1,23 +0,0 @@ -import { useNavigate } from "react-router-dom"; -import HistoryIcon from "@mui/icons-material/History"; -import "./LogHistoryButton.css"; - -export default function LogHistoryButton({ variant }) { - const navigate = useNavigate(); - - const handleViewHistory = () => { - navigate("/logHistory"); - }; - - return ( - - ); -} diff --git a/frontend/src/components/Navbar/Navbar.css b/frontend/src/components/Navbar/Navbar.css index 49db6121..7db9f269 100644 --- a/frontend/src/components/Navbar/Navbar.css +++ b/frontend/src/components/Navbar/Navbar.css @@ -1,21 +1,90 @@ .navbar { display: flex; + flex-direction: column; + position: absolute; + top: 20%; + left: 52px; + height: 600px; + width: 100px; justify-content: space-between; align-items: center; - padding: 16px; - width: 100vw; - height: 80px; - background-color: #242424; - position: fixed; - top: 0; - left: 0; - right: 0; - border-bottom: 2px solid rgba(255, 255, 255, 0.3); -} - -.nav-buttons-container { +} + +.nav-button-container { + height: 400px; + width: 100px; + padding: 24px 0 24px 0; + display: flex; + flex-direction: column; + justify-content: space-between; + align-items: center; + background-color: white; + border-radius: 50px; + box-shadow: 0px 0px 10px #CDD8F0; +} + +.nav-button { + background-color: transparent; +} + +.nav-button-icon-container { + height: 74px; + width: 74px; + display: flex; + justify-content: center; + align-items: center; + border-radius: 40px; + color: #244B94; + background-color: #CDD8F0; +} + +.nav-button-icon-container-selected { + height: 74px; + width: 74px; + display: flex; + justify-content: center; + align-items: center; + border-radius: 40px; + color: #F7FAFF; + background-color: #244B94; +} + +.nav-button-icon-container:hover { + background-color: #244B94; + color: white; +} + +.nav-button-text { + margin-top: 4px; + color: #666B6F; +} + +.nav-button-text-selected { + margin-top: 4px; + color: #244B94; + font-weight: bold; +} + +.logout-button { + height: 74px; + width: 74px; + display: flex; + justify-content: center; + align-items: center; + border-radius: 40px; + color: #244B94; + background-color: white; + box-shadow: 0px 0px 10px #CDD8F0 +} + +.icon { + height: 40px; + width: 40px; +} + +/* .nav-buttons-container { display: flex; gap: 8px; margin-top: 10px; margin-right: 30px; -} \ No newline at end of file +} */ \ No newline at end of file diff --git a/frontend/src/components/Navbar/Navbar.jsx b/frontend/src/components/Navbar/Navbar.jsx index 9666a7a4..cb580ee6 100644 --- a/frontend/src/components/Navbar/Navbar.jsx +++ b/frontend/src/components/Navbar/Navbar.jsx @@ -1,51 +1,42 @@ -import Logo from "../Logo/Logo"; -import HomeButton from "../Buttons/HomeButton"; -import CreateNewLogButton from "../Buttons/CreateNewLogButton"; -import LogHistoryButton from "../Buttons/LogHistoryButton"; -import SignInButton from "../Buttons/SignInButton"; -import { useAuth } from "../../contexts/AuthContext"; +// import Logo from "../Logo/Logo"; +// import HomeButton from "../Buttons/HomeButton"; +// import SignInButton from "../Buttons/SignInButton"; +// import { useAuth } from "../../contexts/AuthContext"; import "./Navbar.css"; -import SignOutButton from "../Buttons/SignOutButton"; +import { + HomeIcon, + BookOpenIcon, + ClockIcon, + ArrowLeftStartOnRectangleIcon +} from '@heroicons/react/24/outline'; +// import SignOutButton from "../Buttons/SignOutButton"; -export default function Navbar({ variant }) { - return ( -
- -
- ); -} - -function NavbarComponent({ variant }) { +export default function Navbar() { return (
- - -
- ); -} - -function NavButtons({ variant }) { - return ( -
- {variant === "homepage" ? ( - - ) : ( - <> - - - - - )} -
- ); -} - -function Buttons() { - const { session } = useAuth(); - - return ( -
- {session ? : } +
+ + + +
+
); } diff --git a/frontend/src/components/inputs/CLInputs.jsx b/frontend/src/components/inputs/CLInputs.jsx new file mode 100644 index 00000000..100224ec --- /dev/null +++ b/frontend/src/components/inputs/CLInputs.jsx @@ -0,0 +1,33 @@ +import { DemoContainer } from '@mui/x-date-pickers/internals/demo'; +import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs'; +import { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider'; +import { DatePicker } from '@mui/x-date-pickers/DatePicker'; + +const DEFAULT_HEIGHT = "67px" +const DEFAULT_WIDTH = "100%" +const DEFAULT_PADDING = "" +const DEFAULT_BORDER = "" +const DEFAULT_BORDER_RADIUS = "" +const DEFAULT_BACKGROUND_COLOR = "transparent" + +export const CLTextInput = () => { + return ( + + ) +} + +export const CLNumberInput = () => { + return ( + + ) +} + +export const CLDatePicker = () => { + return ( + + + + + + ); +} \ No newline at end of file diff --git a/frontend/src/index.css b/frontend/src/index.css index d7ff7205..7a1839a0 100644 --- a/frontend/src/index.css +++ b/frontend/src/index.css @@ -4,8 +4,8 @@ font-weight: 400; color-scheme: light dark; - color: rgba(255, 255, 255, 0.87); - background-color: #242424; + color: #1E1E1E; + background-color: #F7FAFF; font-synthesis: none; text-rendering: optimizeLegibility; @@ -31,37 +31,9 @@ h1 { } button { - border-radius: 8px; border: 1px solid transparent; - padding: 0.6em 1.2em; font-size: 1em; font-weight: 500; font-family: inherit; - background-color: #1a1a1a; cursor: pointer; - transition: border-color 0.25s; } - -button:hover { - border-color: #646cff; -} - -button:focus, -button:focus-visible { - outline: 4px auto -webkit-focus-ring-color; -} - -@media (prefers-color-scheme: light) { - :root { - color: #213547; - background-color: #ffffff; - } - - a:hover { - color: #747bff; - } - - button { - background-color: #f9f9f9; - } -} \ No newline at end of file diff --git a/frontend/src/pages/Dashboard.jsx b/frontend/src/pages/Dashboard.jsx index 2156cd07..e2a30c86 100644 --- a/frontend/src/pages/Dashboard.jsx +++ b/frontend/src/pages/Dashboard.jsx @@ -1,14 +1,12 @@ -import Logo from "../components/Logo/Logo"; -import CreateNewLogButton from "../components/Buttons/CreateNewLogButton"; -import LogHistoryButton from "../components/Buttons/LogHistoryButton"; +import Navbar from "../components/Navbar/Navbar"; +import { CLButtonPrimary, CLButtonSecondary } from "../components/Buttons/CLButtons"; +import { useNavigate } from "react-router-dom"; import "./styles/Dashboard.css"; export default function Dashboard() { return (
-
- -
+
@@ -31,10 +29,24 @@ function MainContent() { } function Buttons() { + const navigate = useNavigate(); + + const handleCreateNewLog = () => { + navigate("/newLog"); + }; + + const handleViewHistory = () => { + navigate("/logHistory"); + }; + return (
- - + + Create New Log + + + View Log History +
); } diff --git a/frontend/src/pages/Homepage.jsx b/frontend/src/pages/Homepage.jsx index 82aabaf2..7c1d988b 100644 --- a/frontend/src/pages/Homepage.jsx +++ b/frontend/src/pages/Homepage.jsx @@ -5,8 +5,8 @@ const mainColour = "#646cff"; export default function Home() { return ( -
- +
+
); diff --git a/frontend/src/pages/NewLog.jsx b/frontend/src/pages/NewLog.jsx index f434b282..fb199a98 100644 --- a/frontend/src/pages/NewLog.jsx +++ b/frontend/src/pages/NewLog.jsx @@ -7,7 +7,7 @@ import "./styles/NewLog.css"; export default function NewLog() { return (
- +
); From d277a85c2e98de1977b3cb9ea0745667c6de7afa Mon Sep 17 00:00:00 2001 From: melkent Date: Sun, 24 Nov 2024 10:47:42 -0800 Subject: [PATCH 02/15] minor changes --- frontend/src/components/inputs/CLInputs.jsx | 12 ++++++------ frontend/src/pages/Dashboard.jsx | 6 +++--- frontend/src/pages/styles/Dashboard.css | 6 ------ 3 files changed, 9 insertions(+), 15 deletions(-) diff --git a/frontend/src/components/inputs/CLInputs.jsx b/frontend/src/components/inputs/CLInputs.jsx index 100224ec..d0aafe2d 100644 --- a/frontend/src/components/inputs/CLInputs.jsx +++ b/frontend/src/components/inputs/CLInputs.jsx @@ -3,12 +3,12 @@ import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs'; import { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider'; import { DatePicker } from '@mui/x-date-pickers/DatePicker'; -const DEFAULT_HEIGHT = "67px" -const DEFAULT_WIDTH = "100%" -const DEFAULT_PADDING = "" -const DEFAULT_BORDER = "" -const DEFAULT_BORDER_RADIUS = "" -const DEFAULT_BACKGROUND_COLOR = "transparent" +// const DEFAULT_HEIGHT = "67px" +// const DEFAULT_WIDTH = "100%" +// const DEFAULT_PADDING = "" +// const DEFAULT_BORDER = "" +// const DEFAULT_BORDER_RADIUS = "" +// const DEFAULT_BACKGROUND_COLOR = "transparent" export const CLTextInput = () => { return ( diff --git a/frontend/src/pages/Dashboard.jsx b/frontend/src/pages/Dashboard.jsx index e2a30c86..49b3ddd6 100644 --- a/frontend/src/pages/Dashboard.jsx +++ b/frontend/src/pages/Dashboard.jsx @@ -16,11 +16,11 @@ export default function Dashboard() { function MainContent() { return ( -
- +
+

Convert handwritten clinical logs to a
standardized Excel template with just a click of a button! - +

diff --git a/frontend/src/pages/styles/Dashboard.css b/frontend/src/pages/styles/Dashboard.css index d2a593a5..876c0cd1 100644 --- a/frontend/src/pages/styles/Dashboard.css +++ b/frontend/src/pages/styles/Dashboard.css @@ -1,9 +1,3 @@ -.main-content-text { - font-size: 20px; - font-weight: 800; - margin-top: -100px; -} - .main-content-buttons { font-size: 17px; display: flex; From f97a53c78172c15d1fff6262883b0cd4c9c3f6f4 Mon Sep 17 00:00:00 2001 From: melkent Date: Tue, 26 Nov 2024 20:34:48 -0800 Subject: [PATCH 03/15] add partially implemented app bar --- .../{logo.svg => flow-leaflets-logo.svg} | 0 frontend/src/assets/magnifying-glass.jpg | Bin 0 -> 4595 bytes frontend/src/components/AppBar/AppBar.css | 84 ++++++++++++++++++ frontend/src/components/AppBar/AppBar.jsx | 34 +++++++ frontend/src/components/Buttons/CLButtons.jsx | 1 + frontend/src/components/Navbar/Navbar.css | 46 +++++----- frontend/src/components/Navbar/Navbar.jsx | 32 +++---- frontend/src/index.css | 2 +- frontend/src/pages/Dashboard.jsx | 12 ++- frontend/src/pages/Homepage.jsx | 2 +- frontend/src/pages/LogHistory.jsx | 2 +- frontend/src/pages/NewLog.jsx | 2 +- 12 files changed, 170 insertions(+), 47 deletions(-) rename frontend/src/assets/{logo.svg => flow-leaflets-logo.svg} (100%) create mode 100644 frontend/src/assets/magnifying-glass.jpg create mode 100644 frontend/src/components/AppBar/AppBar.css create mode 100644 frontend/src/components/AppBar/AppBar.jsx diff --git a/frontend/src/assets/logo.svg b/frontend/src/assets/flow-leaflets-logo.svg similarity index 100% rename from frontend/src/assets/logo.svg rename to frontend/src/assets/flow-leaflets-logo.svg diff --git a/frontend/src/assets/magnifying-glass.jpg b/frontend/src/assets/magnifying-glass.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d3bcfdf54061665358e2cd3336e16eed1d79285c GIT binary patch literal 4595 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 MrEw41F^41n0^Zq^X#fBK literal 0 HcmV?d00001 diff --git a/frontend/src/components/AppBar/AppBar.css b/frontend/src/components/AppBar/AppBar.css new file mode 100644 index 00000000..e1beb8d7 --- /dev/null +++ b/frontend/src/components/AppBar/AppBar.css @@ -0,0 +1,84 @@ +.app-bar { + display: flex; + flex-direction: row; + box-sizing: border-box; + position: absolute; + top: 0; + left: 0; + height: 120px; + width: 100vw; + padding: 1rem 3rem 1rem 2rem; + justify-content: space-between; + align-items: center; +} + +.logo { + padding: 0px; + height: 85px; + width: 85px; +} + +.icon-search-filter-container { + display: flex; + flex-direction: row; + align-items: center; + gap: 100px; +} + +.search-filter-container { + display: flex; + flex-direction: row; + gap: 12px; +} + +.search-input { + height: 18px; + font-size: 16px; + padding: 12px 20px 12px 40px; + background-color: white; + background-image: url('../../assets/magnifying-glass.jpg'); + background-position: 10px 10px; + background-repeat: no-repeat; + background-size: 20px 20px; + background-color: #FBFCFE; + border: none; + border-radius: 20px; + box-shadow: 0px 0px 10px #e3e8f2; +} + +.filter-button { + display: flex; + height: 40px; + flex-direction: row; + justify-content: center; + align-items: center; + color: #2F3C50 !important; + background-color: #FBFCFE !important; + box-shadow: 0px 0px 10px #e3e8f2; + border-radius: 20px !important; + gap: 10px; +} + +.small-icon-buttons-container { + display: flex; + flex-direction: row; + gap: 12px; +} + +.small-icon-button { + display: flex; + height: 48px; + width: 54px; + flex-direction: row; + justify-content: center; + align-items: center; + color: #2F3C50; + background-color: #FBFCFE; + box-shadow: 0px 0px 10px #e3e8f2; + border-radius: 20px; +} + +.app-bar-icon { + height: 24px; + width: 24px; +} diff --git a/frontend/src/components/AppBar/AppBar.jsx b/frontend/src/components/AppBar/AppBar.jsx new file mode 100644 index 00000000..d534d98e --- /dev/null +++ b/frontend/src/components/AppBar/AppBar.jsx @@ -0,0 +1,34 @@ +import Logo from "../../assets/flow-leaflets-logo.svg"; +import { + AdjustmentsHorizontalIcon, + BellIcon, + UserCircleIcon +} from '@heroicons/react/24/outline'; +import "./AppBar.css" + +export const AppBar = () => { + return ( +
+
+ +
+ + +
+
+
+
+ + +
+
+
+ ) +} \ No newline at end of file diff --git a/frontend/src/components/Buttons/CLButtons.jsx b/frontend/src/components/Buttons/CLButtons.jsx index 0f4fc01e..b88c187b 100644 --- a/frontend/src/components/Buttons/CLButtons.jsx +++ b/frontend/src/components/Buttons/CLButtons.jsx @@ -51,6 +51,7 @@ export const CLButtonSecondary = ({ width = DEFAULT_WIDTH, onClick = DEFAULT_ON_CLICK }) => { + return ( - - +
-
+ ); } diff --git a/frontend/src/index.css b/frontend/src/index.css index 7a1839a0..fabc8fed 100644 --- a/frontend/src/index.css +++ b/frontend/src/index.css @@ -3,7 +3,7 @@ line-height: 1.5; font-weight: 400; - color-scheme: light dark; + color-scheme: light; color: #1E1E1E; background-color: #F7FAFF; diff --git a/frontend/src/pages/Dashboard.jsx b/frontend/src/pages/Dashboard.jsx index 49b3ddd6..ceea6d7a 100644 --- a/frontend/src/pages/Dashboard.jsx +++ b/frontend/src/pages/Dashboard.jsx @@ -1,14 +1,18 @@ -import Navbar from "../components/Navbar/Navbar"; +import { AppBar } from "../components/AppBar/AppBar" +import { Navbar } from "../components/Navbar/Navbar"; import { CLButtonPrimary, CLButtonSecondary } from "../components/Buttons/CLButtons"; import { useNavigate } from "react-router-dom"; import "./styles/Dashboard.css"; export default function Dashboard() { return ( -
+
+ -
- +
+
+ +
); diff --git a/frontend/src/pages/Homepage.jsx b/frontend/src/pages/Homepage.jsx index 7c1d988b..9594f94e 100644 --- a/frontend/src/pages/Homepage.jsx +++ b/frontend/src/pages/Homepage.jsx @@ -1,5 +1,5 @@ import SignUpButton from "../components/Buttons/SignUpButton"; -import Navbar from "../components/Navbar/Navbar"; +import { Navbar } from "../components/Navbar/Navbar"; const mainColour = "#646cff"; diff --git a/frontend/src/pages/LogHistory.jsx b/frontend/src/pages/LogHistory.jsx index baba06c1..d56750be 100644 --- a/frontend/src/pages/LogHistory.jsx +++ b/frontend/src/pages/LogHistory.jsx @@ -1,5 +1,5 @@ import { useState } from "react"; -import Navbar from "../components/Navbar/Navbar"; +import { Navbar } from "../components/Navbar/Navbar"; import SearchFilterSort from "../components/LogHistory/SearchFilterSort"; import LogTable from "../components/LogHistory/LogTable"; import Pagination from "../components/LogHistory/Pagination"; diff --git a/frontend/src/pages/NewLog.jsx b/frontend/src/pages/NewLog.jsx index fb199a98..b09ac30c 100644 --- a/frontend/src/pages/NewLog.jsx +++ b/frontend/src/pages/NewLog.jsx @@ -1,7 +1,7 @@ import { useNavigate } from "react-router-dom"; import ImageIcon from "@mui/icons-material/Image"; import ModeIcon from "@mui/icons-material/Mode"; -import Navbar from "../components/Navbar/Navbar"; +import { Navbar } from "../components/Navbar/Navbar"; import "./styles/NewLog.css"; export default function NewLog() { From fc60375b7498ea04ef6a3c9a8a06316a7963be72 Mon Sep 17 00:00:00 2001 From: melkent Date: Tue, 26 Nov 2024 20:37:39 -0800 Subject: [PATCH 04/15] use svg instead of jpg for magnifying glass icon --- frontend/src/assets/magnifying-glass.jpg | Bin 4595 -> 0 bytes frontend/src/assets/magnifying-glass.svg | 3 +++ frontend/src/components/AppBar/AppBar.css | 2 +- 3 files changed, 4 insertions(+), 1 deletion(-) delete mode 100644 frontend/src/assets/magnifying-glass.jpg create mode 100644 frontend/src/assets/magnifying-glass.svg diff --git a/frontend/src/assets/magnifying-glass.jpg b/frontend/src/assets/magnifying-glass.jpg deleted file mode 100644 index d3bcfdf54061665358e2cd3336e16eed1d79285c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4595 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 MrEw41F^41n0^Zq^X#fBK diff --git a/frontend/src/assets/magnifying-glass.svg b/frontend/src/assets/magnifying-glass.svg new file mode 100644 index 00000000..d21368bd --- /dev/null +++ b/frontend/src/assets/magnifying-glass.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/src/components/AppBar/AppBar.css b/frontend/src/components/AppBar/AppBar.css index e1beb8d7..8b33b936 100644 --- a/frontend/src/components/AppBar/AppBar.css +++ b/frontend/src/components/AppBar/AppBar.css @@ -36,7 +36,7 @@ font-size: 16px; padding: 12px 20px 12px 40px; background-color: white; - background-image: url('../../assets/magnifying-glass.jpg'); + background-image: url('../../assets/magnifying-glass.svg'); background-position: 10px 10px; background-repeat: no-repeat; background-size: 20px 20px; From 4ee384ac3cbf4d9748447907ae7aadf8767bded9 Mon Sep 17 00:00:00 2001 From: melkent Date: Tue, 26 Nov 2024 21:20:19 -0800 Subject: [PATCH 05/15] delete more unnecessary buttons --- frontend/src/components/AppBar/AppBar.css | 10 ++++---- frontend/src/components/AppBar/AppBar.jsx | 2 +- .../src/components/Buttons/HomeButton.jsx | 11 --------- .../src/components/Buttons/SignInButton.css | 10 -------- .../src/components/Buttons/SignInButton.jsx | 20 ---------------- .../src/components/Buttons/SignOutButton.css | 10 -------- .../src/components/Buttons/SignOutButton.jsx | 24 ------------------- frontend/src/components/Navbar/Navbar.css | 15 ++++-------- frontend/src/components/Navbar/Navbar.jsx | 4 ++-- frontend/src/pages/styles/UploadPhoto.css | 2 +- 10 files changed, 13 insertions(+), 95 deletions(-) delete mode 100644 frontend/src/components/Buttons/HomeButton.jsx delete mode 100644 frontend/src/components/Buttons/SignInButton.css delete mode 100644 frontend/src/components/Buttons/SignInButton.jsx delete mode 100644 frontend/src/components/Buttons/SignOutButton.css delete mode 100644 frontend/src/components/Buttons/SignOutButton.jsx diff --git a/frontend/src/components/AppBar/AppBar.css b/frontend/src/components/AppBar/AppBar.css index 8b33b936..f5522753 100644 --- a/frontend/src/components/AppBar/AppBar.css +++ b/frontend/src/components/AppBar/AppBar.css @@ -6,7 +6,7 @@ top: 0; left: 0; height: 120px; - width: 100vw; + width: 98vw; padding: 1rem 3rem 1rem 2rem; justify-content: space-between; align-items: center; @@ -46,16 +46,16 @@ box-shadow: 0px 0px 10px #e3e8f2; } -.filter-button { +.app-bar-filter-button { display: flex; height: 40px; flex-direction: row; justify-content: center; align-items: center; - color: #2F3C50 !important; - background-color: #FBFCFE !important; + color: #2F3C50; + background-color: #FBFCFE; box-shadow: 0px 0px 10px #e3e8f2; - border-radius: 20px !important; + border-radius: 20px; gap: 10px; } diff --git a/frontend/src/components/AppBar/AppBar.jsx b/frontend/src/components/AppBar/AppBar.jsx index d534d98e..11ec72cf 100644 --- a/frontend/src/components/AppBar/AppBar.jsx +++ b/frontend/src/components/AppBar/AppBar.jsx @@ -13,7 +13,7 @@ export const AppBar = () => {
- diff --git a/frontend/src/components/Buttons/HomeButton.jsx b/frontend/src/components/Buttons/HomeButton.jsx deleted file mode 100644 index f7a8e407..00000000 --- a/frontend/src/components/Buttons/HomeButton.jsx +++ /dev/null @@ -1,11 +0,0 @@ -import { useNavigate } from "react-router-dom"; - -export default function HomeButton() { - const navigate = useNavigate(); - - const handleHomeClick = () => { - navigate("/dashboard"); - }; - - return ; -} diff --git a/frontend/src/components/Buttons/SignInButton.css b/frontend/src/components/Buttons/SignInButton.css deleted file mode 100644 index 3caa433d..00000000 --- a/frontend/src/components/Buttons/SignInButton.css +++ /dev/null @@ -1,10 +0,0 @@ -.sign-in-button-container { - display: flex; - gap: 9px; - } - -.login-icon { - margin-left: 8px; - font-size: 1.2rem; - vertical-align: middle; -} \ No newline at end of file diff --git a/frontend/src/components/Buttons/SignInButton.jsx b/frontend/src/components/Buttons/SignInButton.jsx deleted file mode 100644 index 5ddb730a..00000000 --- a/frontend/src/components/Buttons/SignInButton.jsx +++ /dev/null @@ -1,20 +0,0 @@ -import { useNavigate } from "react-router-dom"; -import LoginIcon from "@mui/icons-material/Login"; -import "./SignInButton.css"; - -export default function SignInButton() { - const navigate = useNavigate(); - - const handleSignInClick = () => { - navigate("/login"); - }; - - return ( -
- -
- ); -} diff --git a/frontend/src/components/Buttons/SignOutButton.css b/frontend/src/components/Buttons/SignOutButton.css deleted file mode 100644 index 6f6a4b22..00000000 --- a/frontend/src/components/Buttons/SignOutButton.css +++ /dev/null @@ -1,10 +0,0 @@ -.sign-out-button-container { - display: flex; - gap: 9px; - } - -.sign-out-icon { - margin-left: 8px; - font-size: 1.2rem; - vertical-align: middle; -} \ No newline at end of file diff --git a/frontend/src/components/Buttons/SignOutButton.jsx b/frontend/src/components/Buttons/SignOutButton.jsx deleted file mode 100644 index 65cd7b9b..00000000 --- a/frontend/src/components/Buttons/SignOutButton.jsx +++ /dev/null @@ -1,24 +0,0 @@ -import { useAuth } from "../../contexts/AuthContext"; -import LogoutIcon from "@mui/icons-material/Logout"; -import "./SignOutButton.css"; - -export default function SignOutButton() { - const { logout } = useAuth(); - - const handleSignOutClick = async () => { - try { - await logout(); - } catch { - console.log("Failed to logout"); - } - }; - - return ( -
- -
- ); -} diff --git a/frontend/src/components/Navbar/Navbar.css b/frontend/src/components/Navbar/Navbar.css index 9a013523..36aae5d0 100644 --- a/frontend/src/components/Navbar/Navbar.css +++ b/frontend/src/components/Navbar/Navbar.css @@ -41,20 +41,14 @@ background-color: #CDD8F0; } -.nav-button-icon-container-selected { - height: 60px; - width: 60px; - display: flex; - justify-content: center; - align-items: center; - border-radius: 40px; - color: #F7FAFF; +.nav-button.active .nav-button-icon-container { + color: #F7FAFF; background-color: #244B94; } .nav-button-icon-container:hover { + color: #F7FAFF; background-color: #244B94; - color: white; } .nav-button-text { @@ -62,8 +56,7 @@ color: #666B6F; } -.nav-button-text-selected { - margin-top: 4px; +.nav-button.active .nav-button-text { color: #244B94; font-weight: bold; } diff --git a/frontend/src/components/Navbar/Navbar.jsx b/frontend/src/components/Navbar/Navbar.jsx index 6649469e..d63663b1 100644 --- a/frontend/src/components/Navbar/Navbar.jsx +++ b/frontend/src/components/Navbar/Navbar.jsx @@ -16,10 +16,10 @@ export const Navbar = () => {