From 94cc866c8fd680ab64304b75649ce563f083fbcd Mon Sep 17 00:00:00 2001
From: kevwu27 <115754187+kevwu27@users.noreply.github.com>
Date: Thu, 30 May 2024 00:41:38 -0700
Subject: [PATCH 1/7] animations~
---
frontend/package-lock.json | 444 ++++++++++---
frontend/package.json | 1 +
frontend/src/components/About/About.tsx | 111 ++--
frontend/src/components/About/HowToJoin.tsx | 96 +++
.../src/components/About/OurCommunities.tsx | 70 +-
frontend/src/components/About/TypeWriter.tsx | 36 ++
frontend/src/components/Home/Home.tsx | 30 +-
package-lock.json | 599 +++++++++++++-----
package.json | 1 +
9 files changed, 1086 insertions(+), 302 deletions(-)
create mode 100644 frontend/src/components/About/HowToJoin.tsx
create mode 100644 frontend/src/components/About/TypeWriter.tsx
diff --git a/frontend/package-lock.json b/frontend/package-lock.json
index b92f6be7..097b0650 100644
--- a/frontend/package-lock.json
+++ b/frontend/package-lock.json
@@ -5,6 +5,7 @@
"requires": true,
"packages": {
"": {
+ "name": "frontend",
"version": "0.1.0",
"dependencies": {
"@2toad/profanity": "^2.2.0",
@@ -27,6 +28,7 @@
"axios": "^1.4.0",
"bootstrap": "^5.3.0",
"dayjs": "^1.11.9",
+ "framer-motion": "^6.5.1",
"install": "^0.13.0",
"npm": "^9.8.1",
"react": "^18.2.0",
@@ -349,9 +351,9 @@
}
},
"node_modules/@babel/helper-plugin-utils": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz",
- "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==",
+ "version": "7.24.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.5.tgz",
+ "integrity": "sha512-xjNLDopRzW2o6ba0gKbkZq5YWEBaK3PCyTOY1K2P/O07LGMhMqlMXPxwN4S5/RhWuCobT8z0jrlKGlYmeR1OhQ==",
"engines": {
"node": ">=6.9.0"
}
@@ -438,9 +440,9 @@
}
},
"node_modules/@babel/helper-validator-option": {
- "version": "7.22.15",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz",
- "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==",
+ "version": "7.23.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz",
+ "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==",
"engines": {
"node": ">=6.9.0"
}
@@ -791,11 +793,11 @@
}
},
"node_modules/@babel/plugin-syntax-flow": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.22.5.tgz",
- "integrity": "sha512-9RdCl0i+q0QExayk2nOS7853w08yLucnnPML6EN9S8fgMPVtdLDCdx/cOQ/i44Lb9UeQX9A35yaqBBOMMZxPxQ==",
+ "version": "7.24.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.24.1.tgz",
+ "integrity": "sha512-sxi2kLTI5DeW5vDtMUsk4mTPwvlUDbjOnoWayhynCwrw4QXRld4QEYwqzY8JmQXaJUtgUuCIurtSRH5sn4c7mA==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@babel/helper-plugin-utils": "^7.24.0"
},
"engines": {
"node": ">=6.9.0"
@@ -1223,12 +1225,12 @@
}
},
"node_modules/@babel/plugin-transform-flow-strip-types": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.22.5.tgz",
- "integrity": "sha512-tujNbZdxdG0/54g/oua8ISToaXTFBf8EnSb5PgQSciIXWOWKX3S4+JR7ZE9ol8FZwf9kxitzkGQ+QWeov/mCiA==",
+ "version": "7.24.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.24.1.tgz",
+ "integrity": "sha512-iIYPIWt3dUmUKKE10s3W+jsQ3icFkw0JyRVyY1B7G4yK/nngAOHLVx8xlhA6b/Jzl/Y0nis8gjqhqKtRDQqHWQ==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/plugin-syntax-flow": "^7.22.5"
+ "@babel/helper-plugin-utils": "^7.24.0",
+ "@babel/plugin-syntax-flow": "^7.24.1"
},
"engines": {
"node": ">=6.9.0"
@@ -2457,9 +2459,9 @@
"integrity": "sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ=="
},
"node_modules/@emotion/is-prop-valid": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.1.tgz",
- "integrity": "sha512-61Mf7Ufx4aDxx1xlDeOm8aFFigGHE4z+0sKCa+IHCeZKiyP9RLD0Mmx7m8b9/Cf37f7NAvQOOJAbQQGVr5uERw==",
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.2.tgz",
+ "integrity": "sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw==",
"dependencies": {
"@emotion/memoize": "^0.8.1"
}
@@ -3090,6 +3092,64 @@
"resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz",
"integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A=="
},
+ "node_modules/@motionone/animation": {
+ "version": "10.17.0",
+ "resolved": "https://registry.npmjs.org/@motionone/animation/-/animation-10.17.0.tgz",
+ "integrity": "sha512-ANfIN9+iq1kGgsZxs+Nz96uiNcPLGTXwfNo2Xz/fcJXniPYpaz/Uyrfa+7I5BPLxCP82sh7quVDudf1GABqHbg==",
+ "dependencies": {
+ "@motionone/easing": "^10.17.0",
+ "@motionone/types": "^10.17.0",
+ "@motionone/utils": "^10.17.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "node_modules/@motionone/dom": {
+ "version": "10.12.0",
+ "resolved": "https://registry.npmjs.org/@motionone/dom/-/dom-10.12.0.tgz",
+ "integrity": "sha512-UdPTtLMAktHiqV0atOczNYyDd/d8Cf5fFsd1tua03PqTwwCe/6lwhLSQ8a7TbnQ5SN0gm44N1slBfj+ORIhrqw==",
+ "dependencies": {
+ "@motionone/animation": "^10.12.0",
+ "@motionone/generators": "^10.12.0",
+ "@motionone/types": "^10.12.0",
+ "@motionone/utils": "^10.12.0",
+ "hey-listen": "^1.0.8",
+ "tslib": "^2.3.1"
+ }
+ },
+ "node_modules/@motionone/easing": {
+ "version": "10.17.0",
+ "resolved": "https://registry.npmjs.org/@motionone/easing/-/easing-10.17.0.tgz",
+ "integrity": "sha512-Bxe2wSuLu/qxqW4rBFS5m9tMLOw+QBh8v5A7Z5k4Ul4sTj5jAOfZG5R0bn5ywmk+Fs92Ij1feZ5pmC4TeXA8Tg==",
+ "dependencies": {
+ "@motionone/utils": "^10.17.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "node_modules/@motionone/generators": {
+ "version": "10.17.0",
+ "resolved": "https://registry.npmjs.org/@motionone/generators/-/generators-10.17.0.tgz",
+ "integrity": "sha512-T6Uo5bDHrZWhIfxG/2Aut7qyWQyJIWehk6OB4qNvr/jwA/SRmixwbd7SOrxZi1z5rH3LIeFFBKK1xHnSbGPZSQ==",
+ "dependencies": {
+ "@motionone/types": "^10.17.0",
+ "@motionone/utils": "^10.17.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "node_modules/@motionone/types": {
+ "version": "10.17.0",
+ "resolved": "https://registry.npmjs.org/@motionone/types/-/types-10.17.0.tgz",
+ "integrity": "sha512-EgeeqOZVdRUTEHq95Z3t8Rsirc7chN5xFAPMYFobx8TPubkEfRSm5xihmMUkbaR2ErKJTUw3347QDPTHIW12IA=="
+ },
+ "node_modules/@motionone/utils": {
+ "version": "10.17.0",
+ "resolved": "https://registry.npmjs.org/@motionone/utils/-/utils-10.17.0.tgz",
+ "integrity": "sha512-bGwrki4896apMWIj9yp5rAS2m0xyhxblg6gTB/leWDPt+pb410W8lYWsxyurX+DH+gO1zsQsfx2su/c1/LtTpg==",
+ "dependencies": {
+ "@motionone/types": "^10.17.0",
+ "hey-listen": "^1.0.8",
+ "tslib": "^2.3.1"
+ }
+ },
"node_modules/@mui/base": {
"version": "5.0.0-beta.5",
"resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-beta.5.tgz",
@@ -4238,6 +4298,14 @@
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.36.tgz",
"integrity": "sha512-8egDX8dE50XyXWH6C6PRCNkTP106DuUrvdrednFouDSmCi7IOvrqr0frznfZaHifHH/3aq/7a7v9N4wdXMqhBQ=="
},
+ "node_modules/@types/node-forge": {
+ "version": "1.3.11",
+ "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz",
+ "integrity": "sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
"node_modules/@types/parse-json": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz",
@@ -6771,9 +6839,9 @@
"integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg=="
},
"node_modules/csstype": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz",
- "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ=="
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
+ "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="
},
"node_modules/damerau-levenshtein": {
"version": "1.0.8",
@@ -8123,9 +8191,9 @@
"integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
},
"node_modules/fast-glob": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz",
- "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==",
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
+ "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
"dependencies": {
"@nodelib/fs.stat": "^2.0.2",
"@nodelib/fs.walk": "^1.2.3",
@@ -8527,6 +8595,49 @@
"url": "https://github.com/sponsors/rawify"
}
},
+ "node_modules/framer-motion": {
+ "version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-6.5.1.tgz",
+ "integrity": "sha512-o1BGqqposwi7cgDrtg0dNONhkmPsUFDaLcKXigzuTFC5x58mE8iyTazxSudFzmT6MEyJKfjjU8ItoMe3W+3fiw==",
+ "dependencies": {
+ "@motionone/dom": "10.12.0",
+ "framesync": "6.0.1",
+ "hey-listen": "^1.0.8",
+ "popmotion": "11.0.3",
+ "style-value-types": "5.0.0",
+ "tslib": "^2.1.0"
+ },
+ "optionalDependencies": {
+ "@emotion/is-prop-valid": "^0.8.2"
+ },
+ "peerDependencies": {
+ "react": ">=16.8 || ^17.0.0 || ^18.0.0",
+ "react-dom": ">=16.8 || ^17.0.0 || ^18.0.0"
+ }
+ },
+ "node_modules/framer-motion/node_modules/@emotion/is-prop-valid": {
+ "version": "0.8.8",
+ "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz",
+ "integrity": "sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==",
+ "optional": true,
+ "dependencies": {
+ "@emotion/memoize": "0.7.4"
+ }
+ },
+ "node_modules/framer-motion/node_modules/@emotion/memoize": {
+ "version": "0.7.4",
+ "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz",
+ "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==",
+ "optional": true
+ },
+ "node_modules/framesync": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/framesync/-/framesync-6.0.1.tgz",
+ "integrity": "sha512-fUY88kXvGiIItgNC7wcTOl0SNRCVXMKSWW2Yzfmn7EKNc+MpCzcz9DhdHcdjbrtN3c6R4H5dTY2jiCpPdysEjA==",
+ "dependencies": {
+ "tslib": "^2.1.0"
+ }
+ },
"node_modules/fresh": {
"version": "0.5.2",
"resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
@@ -8908,6 +9019,11 @@
"he": "bin/he"
}
},
+ "node_modules/hey-listen": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/hey-listen/-/hey-listen-1.0.8.tgz",
+ "integrity": "sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q=="
+ },
"node_modules/hoist-non-react-statics": {
"version": "3.3.2",
"resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz",
@@ -11404,9 +11520,9 @@
}
},
"node_modules/nanoid": {
- "version": "3.3.6",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz",
- "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==",
+ "version": "3.3.7",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
+ "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
"funding": [
{
"type": "github",
@@ -14931,10 +15047,21 @@
"node": ">=4"
}
},
+ "node_modules/popmotion": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/popmotion/-/popmotion-11.0.3.tgz",
+ "integrity": "sha512-Y55FLdj3UxkR7Vl3s7Qr4e9m0onSnP8W7d/xQLsoJM40vs6UKHFdygs6SWryasTZYqugMjm3BepCF4CWXDiHgA==",
+ "dependencies": {
+ "framesync": "6.0.1",
+ "hey-listen": "^1.0.8",
+ "style-value-types": "5.0.0",
+ "tslib": "^2.1.0"
+ }
+ },
"node_modules/postcss": {
- "version": "8.4.29",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.29.tgz",
- "integrity": "sha512-cbI+jaqIeu/VGqXEarWkRCCffhjgXc0qjBtXpqJhTBohMUjUQnbBr0xqX3vEKudc4iviTewcJo5ajcec5+wdJw==",
+ "version": "8.4.38",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz",
+ "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==",
"funding": [
{
"type": "opencollective",
@@ -14950,9 +15077,9 @@
}
],
"dependencies": {
- "nanoid": "^3.3.6",
+ "nanoid": "^3.3.7",
"picocolors": "^1.0.0",
- "source-map-js": "^1.0.2"
+ "source-map-js": "^1.2.0"
},
"engines": {
"node": "^10 || ^12 || >=14"
@@ -17235,9 +17362,9 @@
}
},
"node_modules/scheduler": {
- "version": "0.23.0",
- "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz",
- "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==",
+ "version": "0.23.2",
+ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz",
+ "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==",
"dependencies": {
"loose-envify": "^1.1.0"
}
@@ -17265,10 +17392,11 @@
"integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg=="
},
"node_modules/selfsigned": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.1.1.tgz",
- "integrity": "sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==",
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz",
+ "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==",
"dependencies": {
+ "@types/node-forge": "^1.3.0",
"node-forge": "^1"
},
"engines": {
@@ -17503,9 +17631,9 @@
}
},
"node_modules/source-map-js": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
- "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz",
+ "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==",
"engines": {
"node": ">=0.10.0"
}
@@ -17916,6 +18044,15 @@
"webpack": "^5.0.0"
}
},
+ "node_modules/style-value-types": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/style-value-types/-/style-value-types-5.0.0.tgz",
+ "integrity": "sha512-08yq36Ikn4kx4YU6RD7jWEv27v4V+PUsOGa4n/as8Et3CuODMJQ00ENeAVXAeydX4Z2j1XHZF1K2sX4mGl18fA==",
+ "dependencies": {
+ "hey-listen": "^1.0.8",
+ "tslib": "^2.1.0"
+ }
+ },
"node_modules/stylehacks": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz",
@@ -18475,9 +18612,9 @@
}
},
"node_modules/tslib": {
- "version": "2.6.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz",
- "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig=="
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
+ "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
},
"node_modules/tsutils": {
"version": "3.21.0",
@@ -20018,9 +20155,9 @@
}
},
"@babel/helper-plugin-utils": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz",
- "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg=="
+ "version": "7.24.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.5.tgz",
+ "integrity": "sha512-xjNLDopRzW2o6ba0gKbkZq5YWEBaK3PCyTOY1K2P/O07LGMhMqlMXPxwN4S5/RhWuCobT8z0jrlKGlYmeR1OhQ=="
},
"@babel/helper-remap-async-to-generator": {
"version": "7.22.17",
@@ -20077,9 +20214,9 @@
"integrity": "sha512-4E/F9IIEi8WR94324mbDUMo074YTheJmd7eZF5vITTeYchqAi6sYXRLHUVsmkdmY4QjfKTcB2jB7dVP3NaBElQ=="
},
"@babel/helper-validator-option": {
- "version": "7.22.15",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz",
- "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA=="
+ "version": "7.23.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz",
+ "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw=="
},
"@babel/helper-wrap-function": {
"version": "7.22.17",
@@ -20312,11 +20449,11 @@
}
},
"@babel/plugin-syntax-flow": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.22.5.tgz",
- "integrity": "sha512-9RdCl0i+q0QExayk2nOS7853w08yLucnnPML6EN9S8fgMPVtdLDCdx/cOQ/i44Lb9UeQX9A35yaqBBOMMZxPxQ==",
+ "version": "7.24.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.24.1.tgz",
+ "integrity": "sha512-sxi2kLTI5DeW5vDtMUsk4mTPwvlUDbjOnoWayhynCwrw4QXRld4QEYwqzY8JmQXaJUtgUuCIurtSRH5sn4c7mA==",
"requires": {
- "@babel/helper-plugin-utils": "^7.22.5"
+ "@babel/helper-plugin-utils": "^7.24.0"
}
},
"@babel/plugin-syntax-import-assertions": {
@@ -20582,12 +20719,12 @@
}
},
"@babel/plugin-transform-flow-strip-types": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.22.5.tgz",
- "integrity": "sha512-tujNbZdxdG0/54g/oua8ISToaXTFBf8EnSb5PgQSciIXWOWKX3S4+JR7ZE9ol8FZwf9kxitzkGQ+QWeov/mCiA==",
+ "version": "7.24.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.24.1.tgz",
+ "integrity": "sha512-iIYPIWt3dUmUKKE10s3W+jsQ3icFkw0JyRVyY1B7G4yK/nngAOHLVx8xlhA6b/Jzl/Y0nis8gjqhqKtRDQqHWQ==",
"requires": {
- "@babel/helper-plugin-utils": "^7.22.5",
- "@babel/plugin-syntax-flow": "^7.22.5"
+ "@babel/helper-plugin-utils": "^7.24.0",
+ "@babel/plugin-syntax-flow": "^7.24.1"
}
},
"@babel/plugin-transform-for-of": {
@@ -21373,9 +21510,9 @@
"integrity": "sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ=="
},
"@emotion/is-prop-valid": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.1.tgz",
- "integrity": "sha512-61Mf7Ufx4aDxx1xlDeOm8aFFigGHE4z+0sKCa+IHCeZKiyP9RLD0Mmx7m8b9/Cf37f7NAvQOOJAbQQGVr5uERw==",
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.2.tgz",
+ "integrity": "sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw==",
"requires": {
"@emotion/memoize": "^0.8.1"
}
@@ -21859,6 +21996,64 @@
"resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz",
"integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A=="
},
+ "@motionone/animation": {
+ "version": "10.17.0",
+ "resolved": "https://registry.npmjs.org/@motionone/animation/-/animation-10.17.0.tgz",
+ "integrity": "sha512-ANfIN9+iq1kGgsZxs+Nz96uiNcPLGTXwfNo2Xz/fcJXniPYpaz/Uyrfa+7I5BPLxCP82sh7quVDudf1GABqHbg==",
+ "requires": {
+ "@motionone/easing": "^10.17.0",
+ "@motionone/types": "^10.17.0",
+ "@motionone/utils": "^10.17.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "@motionone/dom": {
+ "version": "10.12.0",
+ "resolved": "https://registry.npmjs.org/@motionone/dom/-/dom-10.12.0.tgz",
+ "integrity": "sha512-UdPTtLMAktHiqV0atOczNYyDd/d8Cf5fFsd1tua03PqTwwCe/6lwhLSQ8a7TbnQ5SN0gm44N1slBfj+ORIhrqw==",
+ "requires": {
+ "@motionone/animation": "^10.12.0",
+ "@motionone/generators": "^10.12.0",
+ "@motionone/types": "^10.12.0",
+ "@motionone/utils": "^10.12.0",
+ "hey-listen": "^1.0.8",
+ "tslib": "^2.3.1"
+ }
+ },
+ "@motionone/easing": {
+ "version": "10.17.0",
+ "resolved": "https://registry.npmjs.org/@motionone/easing/-/easing-10.17.0.tgz",
+ "integrity": "sha512-Bxe2wSuLu/qxqW4rBFS5m9tMLOw+QBh8v5A7Z5k4Ul4sTj5jAOfZG5R0bn5ywmk+Fs92Ij1feZ5pmC4TeXA8Tg==",
+ "requires": {
+ "@motionone/utils": "^10.17.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "@motionone/generators": {
+ "version": "10.17.0",
+ "resolved": "https://registry.npmjs.org/@motionone/generators/-/generators-10.17.0.tgz",
+ "integrity": "sha512-T6Uo5bDHrZWhIfxG/2Aut7qyWQyJIWehk6OB4qNvr/jwA/SRmixwbd7SOrxZi1z5rH3LIeFFBKK1xHnSbGPZSQ==",
+ "requires": {
+ "@motionone/types": "^10.17.0",
+ "@motionone/utils": "^10.17.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "@motionone/types": {
+ "version": "10.17.0",
+ "resolved": "https://registry.npmjs.org/@motionone/types/-/types-10.17.0.tgz",
+ "integrity": "sha512-EgeeqOZVdRUTEHq95Z3t8Rsirc7chN5xFAPMYFobx8TPubkEfRSm5xihmMUkbaR2ErKJTUw3347QDPTHIW12IA=="
+ },
+ "@motionone/utils": {
+ "version": "10.17.0",
+ "resolved": "https://registry.npmjs.org/@motionone/utils/-/utils-10.17.0.tgz",
+ "integrity": "sha512-bGwrki4896apMWIj9yp5rAS2m0xyhxblg6gTB/leWDPt+pb410W8lYWsxyurX+DH+gO1zsQsfx2su/c1/LtTpg==",
+ "requires": {
+ "@motionone/types": "^10.17.0",
+ "hey-listen": "^1.0.8",
+ "tslib": "^2.3.1"
+ }
+ },
"@mui/base": {
"version": "5.0.0-beta.5",
"resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-beta.5.tgz",
@@ -22593,6 +22788,14 @@
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.36.tgz",
"integrity": "sha512-8egDX8dE50XyXWH6C6PRCNkTP106DuUrvdrednFouDSmCi7IOvrqr0frznfZaHifHH/3aq/7a7v9N4wdXMqhBQ=="
},
+ "@types/node-forge": {
+ "version": "1.3.11",
+ "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz",
+ "integrity": "sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==",
+ "requires": {
+ "@types/node": "*"
+ }
+ },
"@types/parse-json": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz",
@@ -24456,9 +24659,9 @@
}
},
"csstype": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz",
- "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ=="
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
+ "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="
},
"damerau-levenshtein": {
"version": "1.0.8",
@@ -25478,9 +25681,9 @@
"integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
},
"fast-glob": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz",
- "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==",
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
+ "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
"requires": {
"@nodelib/fs.stat": "^2.0.2",
"@nodelib/fs.walk": "^1.2.3",
@@ -25771,6 +25974,45 @@
"resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.6.tgz",
"integrity": "sha512-n2aZ9tNfYDwaHhvFTkhFErqOMIb8uyzSQ+vGJBjZyanAKZVbGUQ1sngfk9FdkBw7G26O7AgNjLcecLffD1c7eg=="
},
+ "framer-motion": {
+ "version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-6.5.1.tgz",
+ "integrity": "sha512-o1BGqqposwi7cgDrtg0dNONhkmPsUFDaLcKXigzuTFC5x58mE8iyTazxSudFzmT6MEyJKfjjU8ItoMe3W+3fiw==",
+ "requires": {
+ "@emotion/is-prop-valid": "^0.8.2",
+ "@motionone/dom": "10.12.0",
+ "framesync": "6.0.1",
+ "hey-listen": "^1.0.8",
+ "popmotion": "11.0.3",
+ "style-value-types": "5.0.0",
+ "tslib": "^2.1.0"
+ },
+ "dependencies": {
+ "@emotion/is-prop-valid": {
+ "version": "0.8.8",
+ "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz",
+ "integrity": "sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==",
+ "optional": true,
+ "requires": {
+ "@emotion/memoize": "0.7.4"
+ }
+ },
+ "@emotion/memoize": {
+ "version": "0.7.4",
+ "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz",
+ "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==",
+ "optional": true
+ }
+ }
+ },
+ "framesync": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/framesync/-/framesync-6.0.1.tgz",
+ "integrity": "sha512-fUY88kXvGiIItgNC7wcTOl0SNRCVXMKSWW2Yzfmn7EKNc+MpCzcz9DhdHcdjbrtN3c6R4H5dTY2jiCpPdysEjA==",
+ "requires": {
+ "tslib": "^2.1.0"
+ }
+ },
"fresh": {
"version": "0.5.2",
"resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
@@ -26033,6 +26275,11 @@
"resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
"integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw=="
},
+ "hey-listen": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/hey-listen/-/hey-listen-1.0.8.tgz",
+ "integrity": "sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q=="
+ },
"hoist-non-react-statics": {
"version": "3.3.2",
"resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz",
@@ -27871,9 +28118,9 @@
}
},
"nanoid": {
- "version": "3.3.6",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz",
- "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA=="
+ "version": "3.3.7",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
+ "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g=="
},
"natural-compare": {
"version": "1.4.0",
@@ -30164,14 +30411,25 @@
}
}
},
+ "popmotion": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/popmotion/-/popmotion-11.0.3.tgz",
+ "integrity": "sha512-Y55FLdj3UxkR7Vl3s7Qr4e9m0onSnP8W7d/xQLsoJM40vs6UKHFdygs6SWryasTZYqugMjm3BepCF4CWXDiHgA==",
+ "requires": {
+ "framesync": "6.0.1",
+ "hey-listen": "^1.0.8",
+ "style-value-types": "5.0.0",
+ "tslib": "^2.1.0"
+ }
+ },
"postcss": {
- "version": "8.4.29",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.29.tgz",
- "integrity": "sha512-cbI+jaqIeu/VGqXEarWkRCCffhjgXc0qjBtXpqJhTBohMUjUQnbBr0xqX3vEKudc4iviTewcJo5ajcec5+wdJw==",
+ "version": "8.4.38",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz",
+ "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==",
"requires": {
- "nanoid": "^3.3.6",
+ "nanoid": "^3.3.7",
"picocolors": "^1.0.0",
- "source-map-js": "^1.0.2"
+ "source-map-js": "^1.2.0"
}
},
"postcss-attribute-case-insensitive": {
@@ -31631,9 +31889,9 @@
}
},
"scheduler": {
- "version": "0.23.0",
- "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz",
- "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==",
+ "version": "0.23.2",
+ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz",
+ "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==",
"requires": {
"loose-envify": "^1.1.0"
}
@@ -31654,10 +31912,11 @@
"integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg=="
},
"selfsigned": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.1.1.tgz",
- "integrity": "sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==",
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz",
+ "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==",
"requires": {
+ "@types/node-forge": "^1.3.0",
"node-forge": "^1"
}
},
@@ -31856,9 +32115,9 @@
"integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ=="
},
"source-map-js": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
- "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw=="
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz",
+ "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg=="
},
"source-map-loader": {
"version": "3.0.2",
@@ -32163,6 +32422,15 @@
"integrity": "sha512-53BiGLXAcll9maCYtZi2RCQZKa8NQQai5C4horqKyRmHj9H7QmcUyucrH+4KW/gBQbXM2AsB0axoEcFZPlfPcw==",
"requires": {}
},
+ "style-value-types": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/style-value-types/-/style-value-types-5.0.0.tgz",
+ "integrity": "sha512-08yq36Ikn4kx4YU6RD7jWEv27v4V+PUsOGa4n/as8Et3CuODMJQ00ENeAVXAeydX4Z2j1XHZF1K2sX4mGl18fA==",
+ "requires": {
+ "hey-listen": "^1.0.8",
+ "tslib": "^2.1.0"
+ }
+ },
"stylehacks": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz",
@@ -32586,9 +32854,9 @@
}
},
"tslib": {
- "version": "2.6.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz",
- "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig=="
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
+ "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
},
"tsutils": {
"version": "3.21.0",
diff --git a/frontend/package.json b/frontend/package.json
index 209c4198..86d8ab12 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -23,6 +23,7 @@
"axios": "^1.4.0",
"bootstrap": "^5.3.0",
"dayjs": "^1.11.9",
+ "framer-motion": "^6.5.1",
"install": "^0.13.0",
"npm": "^9.8.1",
"react": "^18.2.0",
diff --git a/frontend/src/components/About/About.tsx b/frontend/src/components/About/About.tsx
index 4df78b1c..ec44c932 100644
--- a/frontend/src/components/About/About.tsx
+++ b/frontend/src/components/About/About.tsx
@@ -1,4 +1,4 @@
-import React from 'react';
+import React, { useEffect, useRef, useState } from 'react';
import { useNavigate } from 'react-router-dom';
import Button from '../Button/Button';
import { Container, Box, Grid, createTheme, useMediaQuery } from '@mui/material';
@@ -9,16 +9,45 @@ import books from '../../images/aboutbooks.png';
import lightBulb from '../../images/aboutlightbulb.png';
import MeetTheTeam from './MeetTheTeam';
import Communities from './OurCommunities';
+import HowtoJoin from './HowToJoin';
import about1 from '../../images/aboutpage/about_1.jpg';
import about3 from '../../images/aboutpage/about_3.jpg';
import { ImageWithBoxShadow } from '../Opportunities/Opportunities';
+import Typewriter from './TypeWriter';
+import { motion } from "framer-motion"
const About = () => {
- const navigate = useNavigate();
const styles = aboutStyles();
const theme = createTheme();
const isSmallScreen = useMediaQuery(theme.breakpoints.between('xs', 'sm'));
+ const [isInView, setIsInView] = useState(false);
+ const ref = useRef(null);
+
+ useEffect(() => {
+ const observer = new IntersectionObserver(
+ ([entry]) => {
+ if (entry.isIntersecting) {
+ setIsInView(true);
+ observer.disconnect(); // Disconnect after first trigger
+ }
+ },
+ {
+ threshold: 0.1, // Adjust this value as needed
+ }
+ );
+
+ if (ref.current) {
+ observer.observe(ref.current);
+ }
+
+ return () => {
+ if (ref.current) {
+ observer.unobserve(ref.current);
+ }
+ };
+ }, []);
+
return (
@@ -47,7 +76,7 @@ const About = () => {
fontWeight: '700',
}}
>
- WHAT IS CSE Society?
+
@@ -79,9 +108,22 @@ const About = () => {
lg={3}
sx={{ display: 'flex', alignItems: 'center', justifyContent: 'center' }}
>
+
+
+
{
}}
>
Our History
+
CSES was the first CSE organization at UCSD starting over twenty years ago, and we have innovated over the years to stay relevant in serving the CSE community. We are open to all majors and indivduals who are interested in computing!
+
+
{
direction={isSmallScreen ? 'column-reverse' : 'row'}
>
+
Our Future
@@ -116,55 +167,21 @@ const About = () => {
>
Our mission statement is to help our members get professional opportunities while fostering a network of individuals. We do this through quarterly career fairs, mentorship programs for career development, and project opportunities to gain experience.
+
+
+
+
-
-
-
-
-
-
- How do I join?
-
-
-
- To become a general member, simply sign up with your UCSD email!
-
-
- Do you want to be a part of the internal team? Become a member and follow us
- on our socials to be notified of when board applications open on a rolling
- basis.
-
-
- navigate('/membership')}
- />
-
-
-
-
-
-
-
-
-
+
diff --git a/frontend/src/components/About/HowToJoin.tsx b/frontend/src/components/About/HowToJoin.tsx
new file mode 100644
index 00000000..a2869552
--- /dev/null
+++ b/frontend/src/components/About/HowToJoin.tsx
@@ -0,0 +1,96 @@
+import React, { useEffect, useRef, useState } from 'react';
+import { useNavigate } from 'react-router-dom';
+import Button from '../Button/Button';
+import { Container, Box, Grid, createTheme, useMediaQuery } from '@mui/material';
+import { aboutStyles } from './styles';
+import about3 from '../../images/aboutpage/about_3.jpg';
+import { ImageWithBoxShadow } from '../Opportunities/Opportunities';
+import { motion } from "framer-motion"
+
+const HowtoJoin = () => {
+ const navigate = useNavigate();
+ const styles = aboutStyles();
+ const theme = createTheme();
+ const isSmallScreen = useMediaQuery(theme.breakpoints.between('xs', 'sm'));
+ const [isInView1, setIsInView1] = useState(false);
+ const ref1 = useRef(null);
+
+ useEffect(() => {
+ const observer = new IntersectionObserver(
+ ([entry]) => {
+ if (entry.isIntersecting) {
+ setIsInView1(true);
+ observer.disconnect(); // Disconnect after first trigger
+ }
+ },
+ {
+ threshold: 0.1, // Adjust this value as needed
+ }
+ );
+
+ if (ref1.current) {
+ observer.observe(ref1.current);
+ }
+
+ return () => {
+ if (ref1.current) {
+ observer.unobserve(ref1.current);
+ }
+ };
+ }, []);
+
+ return (
+
+
+
+
+
+
+ How do I join?
+
+
+
+ To become a general member, simply sign up with your UCSD email!
+
+
+ Do you want to be a part of the internal team? Become a member and follow us
+ on our socials to be notified of when board applications open on a rolling
+ basis.
+
+
+ navigate('/membership')}
+ />
+
+
+
+
+
+
+
+
+
+
+ );
+};
+
+export default HowtoJoin;
\ No newline at end of file
diff --git a/frontend/src/components/About/OurCommunities.tsx b/frontend/src/components/About/OurCommunities.tsx
index f6afede1..559db2e0 100644
--- a/frontend/src/components/About/OurCommunities.tsx
+++ b/frontend/src/components/About/OurCommunities.tsx
@@ -1,18 +1,60 @@
+import { useEffect, useRef, useState } from 'react';
import { Container, Box, Link, Grid, useMediaQuery } from '@mui/material';
import { aboutStyles } from './styles';
import innovate from '../../images/ourCommunitiesImages/cses_innovate.png';
import opensource from '../../images/ourCommunitiesImages/cses_opensource.png';
import webdev from '../../images/ourCommunitiesImages/cses_webdev.png';
import dev from '../../images/ourCommunitiesImages/cses_dev.png';
+import { motion } from "framer-motion";
+import { styled } from '@mui/system';
+const MotionGrid = styled(motion.div)`
+ display: flex;
+ width: 100%; // Inherit full width of the parent
+ height: auto; // Inherit height of the content
+`;
+
const Communities = () => {
const styles = aboutStyles();
const verySmallScreen = useMediaQuery('(max-width:350px')
+ const [isInView, setIsInView] = useState(false);
+ const ref = useRef(null);
+
+ useEffect(() => {
+ const observer = new IntersectionObserver(
+ ([entry]) => {
+ if (entry.isIntersecting) {
+ setIsInView(true);
+ observer.disconnect(); // Disconnect after first trigger
+ }
+ },
+ {
+ threshold: 0.1, // Adjust this value as needed
+ }
+ );
+
+ if (ref.current) {
+ observer.observe(ref.current);
+ }
+
+ return () => {
+ if (ref.current) {
+ observer.unobserve(ref.current);
+ }
+ };
+ }, []);
+
return (
+
{
Websites are coming soon, but for now, check out our Linktree and come to our quarterly kick-off events for the latest updates on each community's recruitment and projects!
-
+
+
+
{
alt="Innovate"
style={{ ...styles.communityCardImg, backgroundColor: 'black'}}
/>
+
CSES Innovate
@@ -51,7 +97,13 @@ const Communities = () => {
Learn about tech entrepreneurship! Form teams and build your own start-ups from ideation to pitch.
+
+
+
+
+
{
+
+
+
+
{
+
+
+
+
{
+
+
diff --git a/frontend/src/components/About/TypeWriter.tsx b/frontend/src/components/About/TypeWriter.tsx
new file mode 100644
index 00000000..192fd3ae
--- /dev/null
+++ b/frontend/src/components/About/TypeWriter.tsx
@@ -0,0 +1,36 @@
+import React, { useState, useEffect } from 'react';
+import { motion } from 'framer-motion';
+
+interface TypewriterProps {
+ text: string;
+ speed?: number;
+}
+
+const Typewriter: React.FC = ({ text, speed = 100 }) => {
+ const [displayedText, setDisplayedText] = useState('');
+
+ useEffect(() => {
+ let currentIndex = 0;
+ const interval = setInterval(() => {
+ setDisplayedText((prev) => prev + (text[currentIndex] || ''));
+ currentIndex++;
+ if (currentIndex >= text.length) {
+ clearInterval(interval);
+ }
+ }, speed);
+ return () => clearInterval(interval);
+ }, [text, speed]);
+
+ return (
+
+ {displayedText}
+
+ );
+};
+
+export default Typewriter;
+
diff --git a/frontend/src/components/Home/Home.tsx b/frontend/src/components/Home/Home.tsx
index dfbd91f2..f388024a 100644
--- a/frontend/src/components/Home/Home.tsx
+++ b/frontend/src/components/Home/Home.tsx
@@ -11,6 +11,7 @@ import axios from 'axios';
import useMediaQuery from '../../hooks/useMediaQuery';
import MobileEventBox from '../Event/MobileEvent';
import CountUp from 'react-countup';
+import { motion } from "framer-motion"
interface EventData {
calendar_link: string;
@@ -88,13 +89,32 @@ const Home = () => {
marginLeft: { xs: '0%', sm: '3%', md: '12%' },
}}
>
- Innovate.
+
+ Innovate.
+
+
- Build.
+
+ Build.
+
- Connect.
+
+ Connect.
+
navigate('/about')} />
@@ -137,7 +157,7 @@ const Home = () => {
- +
+ +
Members & counting.
@@ -145,7 +165,7 @@ const Home = () => {
- +
+ +
Events & counting.
diff --git a/package-lock.json b/package-lock.json
index f57b5ef5..9c8b6c40 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -10,6 +10,7 @@
"@material-ui/core": "^4.12.4",
"@mui/x-date-pickers": "^6.12.0",
"dayjs": "^1.11.9",
+ "framer-motion": "^6.5.1",
"material-ui-popup-state": "^5.0.9",
"qrcode": "^1.5.3",
"react-countup": "^6.5.0",
@@ -17,35 +18,36 @@
}
},
"node_modules/@babel/code-frame": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz",
- "integrity": "sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==",
+ "version": "7.24.2",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz",
+ "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==",
"optional": true,
"peer": true,
"dependencies": {
- "@babel/highlight": "^7.22.5"
+ "@babel/highlight": "^7.24.2",
+ "picocolors": "^1.0.0"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-module-imports": {
- "version": "7.22.15",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz",
- "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==",
+ "version": "7.24.3",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz",
+ "integrity": "sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==",
"optional": true,
"peer": true,
"dependencies": {
- "@babel/types": "^7.22.15"
+ "@babel/types": "^7.24.0"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-string-parser": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz",
- "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==",
+ "version": "7.24.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz",
+ "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==",
"optional": true,
"peer": true,
"engines": {
@@ -53,9 +55,9 @@
}
},
"node_modules/@babel/helper-validator-identifier": {
- "version": "7.22.15",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.15.tgz",
- "integrity": "sha512-4E/F9IIEi8WR94324mbDUMo074YTheJmd7eZF5vITTeYchqAi6sYXRLHUVsmkdmY4QjfKTcB2jB7dVP3NaBElQ==",
+ "version": "7.24.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.5.tgz",
+ "integrity": "sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==",
"optional": true,
"peer": true,
"engines": {
@@ -63,15 +65,16 @@
}
},
"node_modules/@babel/highlight": {
- "version": "7.22.13",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.13.tgz",
- "integrity": "sha512-C/BaXcnnvBCmHTpz/VGZ8jgtE2aYlW4hxDhseJAWZb7gqGM/qtCK6iZUb0TyKFf7BOUsBH7Q7fkRsDRhg1XklQ==",
+ "version": "7.24.5",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.5.tgz",
+ "integrity": "sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw==",
"optional": true,
"peer": true,
"dependencies": {
- "@babel/helper-validator-identifier": "^7.22.5",
+ "@babel/helper-validator-identifier": "^7.24.5",
"chalk": "^2.4.2",
- "js-tokens": "^4.0.0"
+ "js-tokens": "^4.0.0",
+ "picocolors": "^1.0.0"
},
"engines": {
"node": ">=6.9.0"
@@ -172,14 +175,14 @@
"integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA=="
},
"node_modules/@babel/types": {
- "version": "7.22.17",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.17.tgz",
- "integrity": "sha512-YSQPHLFtQNE5xN9tHuZnzu8vPr61wVTBZdfv1meex1NBosa4iT05k/Jw06ddJugi4bk7The/oSwQGFcksmEJQg==",
+ "version": "7.24.5",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.5.tgz",
+ "integrity": "sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==",
"optional": true,
"peer": true,
"dependencies": {
- "@babel/helper-string-parser": "^7.22.5",
- "@babel/helper-validator-identifier": "^7.22.15",
+ "@babel/helper-string-parser": "^7.24.1",
+ "@babel/helper-validator-identifier": "^7.24.5",
"to-fast-properties": "^2.0.0"
},
"engines": {
@@ -226,9 +229,9 @@
"peer": true
},
"node_modules/@emotion/is-prop-valid": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.1.tgz",
- "integrity": "sha512-61Mf7Ufx4aDxx1xlDeOm8aFFigGHE4z+0sKCa+IHCeZKiyP9RLD0Mmx7m8b9/Cf37f7NAvQOOJAbQQGVr5uERw==",
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.2.tgz",
+ "integrity": "sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw==",
"dependencies": {
"@emotion/memoize": "^0.8.1"
}
@@ -548,6 +551,64 @@
"resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz",
"integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w=="
},
+ "node_modules/@motionone/animation": {
+ "version": "10.17.0",
+ "resolved": "https://registry.npmjs.org/@motionone/animation/-/animation-10.17.0.tgz",
+ "integrity": "sha512-ANfIN9+iq1kGgsZxs+Nz96uiNcPLGTXwfNo2Xz/fcJXniPYpaz/Uyrfa+7I5BPLxCP82sh7quVDudf1GABqHbg==",
+ "dependencies": {
+ "@motionone/easing": "^10.17.0",
+ "@motionone/types": "^10.17.0",
+ "@motionone/utils": "^10.17.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "node_modules/@motionone/dom": {
+ "version": "10.12.0",
+ "resolved": "https://registry.npmjs.org/@motionone/dom/-/dom-10.12.0.tgz",
+ "integrity": "sha512-UdPTtLMAktHiqV0atOczNYyDd/d8Cf5fFsd1tua03PqTwwCe/6lwhLSQ8a7TbnQ5SN0gm44N1slBfj+ORIhrqw==",
+ "dependencies": {
+ "@motionone/animation": "^10.12.0",
+ "@motionone/generators": "^10.12.0",
+ "@motionone/types": "^10.12.0",
+ "@motionone/utils": "^10.12.0",
+ "hey-listen": "^1.0.8",
+ "tslib": "^2.3.1"
+ }
+ },
+ "node_modules/@motionone/easing": {
+ "version": "10.17.0",
+ "resolved": "https://registry.npmjs.org/@motionone/easing/-/easing-10.17.0.tgz",
+ "integrity": "sha512-Bxe2wSuLu/qxqW4rBFS5m9tMLOw+QBh8v5A7Z5k4Ul4sTj5jAOfZG5R0bn5ywmk+Fs92Ij1feZ5pmC4TeXA8Tg==",
+ "dependencies": {
+ "@motionone/utils": "^10.17.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "node_modules/@motionone/generators": {
+ "version": "10.17.0",
+ "resolved": "https://registry.npmjs.org/@motionone/generators/-/generators-10.17.0.tgz",
+ "integrity": "sha512-T6Uo5bDHrZWhIfxG/2Aut7qyWQyJIWehk6OB4qNvr/jwA/SRmixwbd7SOrxZi1z5rH3LIeFFBKK1xHnSbGPZSQ==",
+ "dependencies": {
+ "@motionone/types": "^10.17.0",
+ "@motionone/utils": "^10.17.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "node_modules/@motionone/types": {
+ "version": "10.17.0",
+ "resolved": "https://registry.npmjs.org/@motionone/types/-/types-10.17.0.tgz",
+ "integrity": "sha512-EgeeqOZVdRUTEHq95Z3t8Rsirc7chN5xFAPMYFobx8TPubkEfRSm5xihmMUkbaR2ErKJTUw3347QDPTHIW12IA=="
+ },
+ "node_modules/@motionone/utils": {
+ "version": "10.17.0",
+ "resolved": "https://registry.npmjs.org/@motionone/utils/-/utils-10.17.0.tgz",
+ "integrity": "sha512-bGwrki4896apMWIj9yp5rAS2m0xyhxblg6gTB/leWDPt+pb410W8lYWsxyurX+DH+gO1zsQsfx2su/c1/LtTpg==",
+ "dependencies": {
+ "@motionone/types": "^10.17.0",
+ "hey-listen": "^1.0.8",
+ "tslib": "^2.3.1"
+ }
+ },
"node_modules/@mui/base": {
"version": "5.0.0-beta.5",
"resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-beta.5.tgz",
@@ -1084,9 +1145,9 @@
}
},
"node_modules/csstype": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz",
- "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ=="
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
+ "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="
},
"node_modules/dayjs": {
"version": "1.11.9",
@@ -1163,6 +1224,18 @@
"optional": true,
"peer": true
},
+ "node_modules/find-up": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "dependencies": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/formidable": {
"version": "1.2.6",
"resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.6.tgz",
@@ -1172,6 +1245,49 @@
"url": "https://ko-fi.com/tunnckoCore/commissions"
}
},
+ "node_modules/framer-motion": {
+ "version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-6.5.1.tgz",
+ "integrity": "sha512-o1BGqqposwi7cgDrtg0dNONhkmPsUFDaLcKXigzuTFC5x58mE8iyTazxSudFzmT6MEyJKfjjU8ItoMe3W+3fiw==",
+ "dependencies": {
+ "@motionone/dom": "10.12.0",
+ "framesync": "6.0.1",
+ "hey-listen": "^1.0.8",
+ "popmotion": "11.0.3",
+ "style-value-types": "5.0.0",
+ "tslib": "^2.1.0"
+ },
+ "optionalDependencies": {
+ "@emotion/is-prop-valid": "^0.8.2"
+ },
+ "peerDependencies": {
+ "react": ">=16.8 || ^17.0.0 || ^18.0.0",
+ "react-dom": ">=16.8 || ^17.0.0 || ^18.0.0"
+ }
+ },
+ "node_modules/framer-motion/node_modules/@emotion/is-prop-valid": {
+ "version": "0.8.8",
+ "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz",
+ "integrity": "sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==",
+ "optional": true,
+ "dependencies": {
+ "@emotion/memoize": "0.7.4"
+ }
+ },
+ "node_modules/framer-motion/node_modules/@emotion/memoize": {
+ "version": "0.7.4",
+ "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz",
+ "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==",
+ "optional": true
+ },
+ "node_modules/framesync": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/framesync/-/framesync-6.0.1.tgz",
+ "integrity": "sha512-fUY88kXvGiIItgNC7wcTOl0SNRCVXMKSWW2Yzfmn7EKNc+MpCzcz9DhdHcdjbrtN3c6R4H5dTY2jiCpPdysEjA==",
+ "dependencies": {
+ "tslib": "^2.1.0"
+ }
+ },
"node_modules/function-bind": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
@@ -1232,6 +1348,11 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/hey-listen": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/hey-listen/-/hey-listen-1.0.8.tgz",
+ "integrity": "sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q=="
+ },
"node_modules/hoist-non-react-statics": {
"version": "3.3.2",
"resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz",
@@ -1305,6 +1426,11 @@
"resolved": "https://registry.npmjs.org/is-in-browser/-/is-in-browser-1.1.3.tgz",
"integrity": "sha512-FeXIBgG/CPGd/WUxuEyvgGTEfwiG9Z4EKGxjNMRqviiIIfsmgrpnHLffEDdwUHqNva1VEW91o3xBT/m8Elgl9g=="
},
+ "node_modules/isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
+ },
"node_modules/js-tokens": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
@@ -1406,6 +1532,17 @@
"optional": true,
"peer": true
},
+ "node_modules/locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "dependencies": {
+ "p-locate": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/lodash.throttle": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz",
@@ -1495,6 +1632,31 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "dependencies": {
+ "p-try": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/p-locate": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+ "dependencies": {
+ "p-limit": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/p-try": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
@@ -1560,6 +1722,13 @@
"node": ">=8"
}
},
+ "node_modules/picocolors": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
+ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
+ "optional": true,
+ "peer": true
+ },
"node_modules/pngjs": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz",
@@ -1568,6 +1737,17 @@
"node": ">=10.13.0"
}
},
+ "node_modules/popmotion": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/popmotion/-/popmotion-11.0.3.tgz",
+ "integrity": "sha512-Y55FLdj3UxkR7Vl3s7Qr4e9m0onSnP8W7d/xQLsoJM40vs6UKHFdygs6SWryasTZYqugMjm3BepCF4CWXDiHgA==",
+ "dependencies": {
+ "framesync": "6.0.1",
+ "hey-listen": "^1.0.8",
+ "style-value-types": "5.0.0",
+ "tslib": "^2.1.0"
+ }
+ },
"node_modules/popper.js": {
"version": "1.16.1-lts",
"resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1-lts.tgz",
@@ -1628,54 +1808,6 @@
"wrap-ansi": "^6.2.0"
}
},
- "node_modules/qrcode/node_modules/find-up": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
- "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
- "dependencies": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/qrcode/node_modules/locate-path": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
- "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
- "dependencies": {
- "p-locate": "^4.1.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/qrcode/node_modules/p-limit": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
- "dependencies": {
- "p-try": "^2.0.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/qrcode/node_modules/p-locate": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
- "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
- "dependencies": {
- "p-limit": "^2.2.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/qrcode/node_modules/wrap-ansi": {
"version": "6.2.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
@@ -1878,6 +2010,11 @@
"node": ">=4"
}
},
+ "node_modules/safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+ },
"node_modules/scheduler": {
"version": "0.20.2",
"resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz",
@@ -1945,6 +2082,15 @@
"node": ">=8"
}
},
+ "node_modules/style-value-types": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/style-value-types/-/style-value-types-5.0.0.tgz",
+ "integrity": "sha512-08yq36Ikn4kx4YU6RD7jWEv27v4V+PUsOGa4n/as8Et3CuODMJQ00ENeAVXAeydX4Z2j1XHZF1K2sX4mGl18fA==",
+ "dependencies": {
+ "hey-listen": "^1.0.8",
+ "tslib": "^2.1.0"
+ }
+ },
"node_modules/stylis": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz",
@@ -1992,11 +2138,6 @@
"node": ">= 0.12"
}
},
- "node_modules/superagent/node_modules/isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
- },
"node_modules/superagent/node_modules/readable-stream": {
"version": "2.3.8",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
@@ -2011,11 +2152,6 @@
"util-deprecate": "~1.0.1"
}
},
- "node_modules/superagent/node_modules/safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
- },
"node_modules/superagent/node_modules/string_decoder": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
@@ -2052,6 +2188,11 @@
"node": ">=4"
}
},
+ "node_modules/tslib": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
+ "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
+ },
"node_modules/util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
@@ -2075,49 +2216,51 @@
},
"dependencies": {
"@babel/code-frame": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz",
- "integrity": "sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==",
+ "version": "7.24.2",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz",
+ "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==",
"optional": true,
"peer": true,
"requires": {
- "@babel/highlight": "^7.22.5"
+ "@babel/highlight": "^7.24.2",
+ "picocolors": "^1.0.0"
}
},
"@babel/helper-module-imports": {
- "version": "7.22.15",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz",
- "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==",
+ "version": "7.24.3",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz",
+ "integrity": "sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==",
"optional": true,
"peer": true,
"requires": {
- "@babel/types": "^7.22.15"
+ "@babel/types": "^7.24.0"
}
},
"@babel/helper-string-parser": {
- "version": "7.22.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz",
- "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==",
+ "version": "7.24.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz",
+ "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==",
"optional": true,
"peer": true
},
"@babel/helper-validator-identifier": {
- "version": "7.22.15",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.15.tgz",
- "integrity": "sha512-4E/F9IIEi8WR94324mbDUMo074YTheJmd7eZF5vITTeYchqAi6sYXRLHUVsmkdmY4QjfKTcB2jB7dVP3NaBElQ==",
+ "version": "7.24.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.5.tgz",
+ "integrity": "sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==",
"optional": true,
"peer": true
},
"@babel/highlight": {
- "version": "7.22.13",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.13.tgz",
- "integrity": "sha512-C/BaXcnnvBCmHTpz/VGZ8jgtE2aYlW4hxDhseJAWZb7gqGM/qtCK6iZUb0TyKFf7BOUsBH7Q7fkRsDRhg1XklQ==",
+ "version": "7.24.5",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.5.tgz",
+ "integrity": "sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw==",
"optional": true,
"peer": true,
"requires": {
- "@babel/helper-validator-identifier": "^7.22.5",
+ "@babel/helper-validator-identifier": "^7.24.5",
"chalk": "^2.4.2",
- "js-tokens": "^4.0.0"
+ "js-tokens": "^4.0.0",
+ "picocolors": "^1.0.0"
},
"dependencies": {
"ansi-styles": {
@@ -2201,14 +2344,14 @@
}
},
"@babel/types": {
- "version": "7.22.17",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.17.tgz",
- "integrity": "sha512-YSQPHLFtQNE5xN9tHuZnzu8vPr61wVTBZdfv1meex1NBosa4iT05k/Jw06ddJugi4bk7The/oSwQGFcksmEJQg==",
+ "version": "7.24.5",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.5.tgz",
+ "integrity": "sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==",
"optional": true,
"peer": true,
"requires": {
- "@babel/helper-string-parser": "^7.22.5",
- "@babel/helper-validator-identifier": "^7.22.15",
+ "@babel/helper-string-parser": "^7.24.1",
+ "@babel/helper-validator-identifier": "^7.24.5",
"to-fast-properties": "^2.0.0"
}
},
@@ -2252,9 +2395,9 @@
"peer": true
},
"@emotion/is-prop-valid": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.1.tgz",
- "integrity": "sha512-61Mf7Ufx4aDxx1xlDeOm8aFFigGHE4z+0sKCa+IHCeZKiyP9RLD0Mmx7m8b9/Cf37f7NAvQOOJAbQQGVr5uERw==",
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.2.tgz",
+ "integrity": "sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw==",
"requires": {
"@emotion/memoize": "^0.8.1"
}
@@ -2488,6 +2631,64 @@
}
}
},
+ "@motionone/animation": {
+ "version": "10.17.0",
+ "resolved": "https://registry.npmjs.org/@motionone/animation/-/animation-10.17.0.tgz",
+ "integrity": "sha512-ANfIN9+iq1kGgsZxs+Nz96uiNcPLGTXwfNo2Xz/fcJXniPYpaz/Uyrfa+7I5BPLxCP82sh7quVDudf1GABqHbg==",
+ "requires": {
+ "@motionone/easing": "^10.17.0",
+ "@motionone/types": "^10.17.0",
+ "@motionone/utils": "^10.17.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "@motionone/dom": {
+ "version": "10.12.0",
+ "resolved": "https://registry.npmjs.org/@motionone/dom/-/dom-10.12.0.tgz",
+ "integrity": "sha512-UdPTtLMAktHiqV0atOczNYyDd/d8Cf5fFsd1tua03PqTwwCe/6lwhLSQ8a7TbnQ5SN0gm44N1slBfj+ORIhrqw==",
+ "requires": {
+ "@motionone/animation": "^10.12.0",
+ "@motionone/generators": "^10.12.0",
+ "@motionone/types": "^10.12.0",
+ "@motionone/utils": "^10.12.0",
+ "hey-listen": "^1.0.8",
+ "tslib": "^2.3.1"
+ }
+ },
+ "@motionone/easing": {
+ "version": "10.17.0",
+ "resolved": "https://registry.npmjs.org/@motionone/easing/-/easing-10.17.0.tgz",
+ "integrity": "sha512-Bxe2wSuLu/qxqW4rBFS5m9tMLOw+QBh8v5A7Z5k4Ul4sTj5jAOfZG5R0bn5ywmk+Fs92Ij1feZ5pmC4TeXA8Tg==",
+ "requires": {
+ "@motionone/utils": "^10.17.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "@motionone/generators": {
+ "version": "10.17.0",
+ "resolved": "https://registry.npmjs.org/@motionone/generators/-/generators-10.17.0.tgz",
+ "integrity": "sha512-T6Uo5bDHrZWhIfxG/2Aut7qyWQyJIWehk6OB4qNvr/jwA/SRmixwbd7SOrxZi1z5rH3LIeFFBKK1xHnSbGPZSQ==",
+ "requires": {
+ "@motionone/types": "^10.17.0",
+ "@motionone/utils": "^10.17.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "@motionone/types": {
+ "version": "10.17.0",
+ "resolved": "https://registry.npmjs.org/@motionone/types/-/types-10.17.0.tgz",
+ "integrity": "sha512-EgeeqOZVdRUTEHq95Z3t8Rsirc7chN5xFAPMYFobx8TPubkEfRSm5xihmMUkbaR2ErKJTUw3347QDPTHIW12IA=="
+ },
+ "@motionone/utils": {
+ "version": "10.17.0",
+ "resolved": "https://registry.npmjs.org/@motionone/utils/-/utils-10.17.0.tgz",
+ "integrity": "sha512-bGwrki4896apMWIj9yp5rAS2m0xyhxblg6gTB/leWDPt+pb410W8lYWsxyurX+DH+gO1zsQsfx2su/c1/LtTpg==",
+ "requires": {
+ "@motionone/types": "^10.17.0",
+ "hey-listen": "^1.0.8",
+ "tslib": "^2.3.1"
+ }
+ },
"@mui/base": {
"version": "5.0.0-beta.5",
"resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-beta.5.tgz",
@@ -2788,9 +2989,9 @@
}
},
"csstype": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz",
- "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ=="
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
+ "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="
},
"dayjs": {
"version": "1.11.9",
@@ -2855,11 +3056,59 @@
"optional": true,
"peer": true
},
+ "find-up": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "requires": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ }
+ },
"formidable": {
"version": "1.2.6",
"resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.6.tgz",
"integrity": "sha512-KcpbcpuLNOwrEjnbpMC0gS+X8ciDoZE1kkqzat4a8vrprf+s9pKNQ/QIwWfbfs4ltgmFl3MD177SNTkve3BwGQ=="
},
+ "framer-motion": {
+ "version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-6.5.1.tgz",
+ "integrity": "sha512-o1BGqqposwi7cgDrtg0dNONhkmPsUFDaLcKXigzuTFC5x58mE8iyTazxSudFzmT6MEyJKfjjU8ItoMe3W+3fiw==",
+ "requires": {
+ "@emotion/is-prop-valid": "^0.8.2",
+ "@motionone/dom": "10.12.0",
+ "framesync": "6.0.1",
+ "hey-listen": "^1.0.8",
+ "popmotion": "11.0.3",
+ "style-value-types": "5.0.0",
+ "tslib": "^2.1.0"
+ },
+ "dependencies": {
+ "@emotion/is-prop-valid": {
+ "version": "0.8.8",
+ "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz",
+ "integrity": "sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==",
+ "optional": true,
+ "requires": {
+ "@emotion/memoize": "0.7.4"
+ }
+ },
+ "@emotion/memoize": {
+ "version": "0.7.4",
+ "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz",
+ "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==",
+ "optional": true
+ }
+ }
+ },
+ "framesync": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/framesync/-/framesync-6.0.1.tgz",
+ "integrity": "sha512-fUY88kXvGiIItgNC7wcTOl0SNRCVXMKSWW2Yzfmn7EKNc+MpCzcz9DhdHcdjbrtN3c6R4H5dTY2jiCpPdysEjA==",
+ "requires": {
+ "tslib": "^2.1.0"
+ }
+ },
"function-bind": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
@@ -2899,6 +3148,11 @@
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
"integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A=="
},
+ "hey-listen": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/hey-listen/-/hey-listen-1.0.8.tgz",
+ "integrity": "sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q=="
+ },
"hoist-non-react-statics": {
"version": "3.3.2",
"resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz",
@@ -2962,6 +3216,11 @@
"resolved": "https://registry.npmjs.org/is-in-browser/-/is-in-browser-1.1.3.tgz",
"integrity": "sha512-FeXIBgG/CPGd/WUxuEyvgGTEfwiG9Z4EKGxjNMRqviiIIfsmgrpnHLffEDdwUHqNva1VEW91o3xBT/m8Elgl9g=="
},
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
+ },
"js-tokens": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
@@ -3059,6 +3318,14 @@
"optional": true,
"peer": true
},
+ "locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "requires": {
+ "p-locate": "^4.1.0"
+ }
+ },
"lodash.throttle": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz",
@@ -3121,6 +3388,22 @@
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz",
"integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g=="
},
+ "p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "requires": {
+ "p-try": "^2.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+ "requires": {
+ "p-limit": "^2.2.0"
+ }
+ },
"p-try": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
@@ -3168,11 +3451,29 @@
"optional": true,
"peer": true
},
+ "picocolors": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
+ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
+ "optional": true,
+ "peer": true
+ },
"pngjs": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz",
"integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw=="
},
+ "popmotion": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/popmotion/-/popmotion-11.0.3.tgz",
+ "integrity": "sha512-Y55FLdj3UxkR7Vl3s7Qr4e9m0onSnP8W7d/xQLsoJM40vs6UKHFdygs6SWryasTZYqugMjm3BepCF4CWXDiHgA==",
+ "requires": {
+ "framesync": "6.0.1",
+ "hey-listen": "^1.0.8",
+ "style-value-types": "5.0.0",
+ "tslib": "^2.1.0"
+ }
+ },
"popper.js": {
"version": "1.16.1-lts",
"resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1-lts.tgz",
@@ -3226,39 +3527,6 @@
"wrap-ansi": "^6.2.0"
}
},
- "find-up": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
- "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
- "requires": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
- }
- },
- "locate-path": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
- "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
- "requires": {
- "p-locate": "^4.1.0"
- }
- },
- "p-limit": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
- "requires": {
- "p-try": "^2.0.0"
- }
- },
- "p-locate": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
- "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
- "requires": {
- "p-limit": "^2.2.0"
- }
- },
"wrap-ansi": {
"version": "6.2.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
@@ -3417,6 +3685,11 @@
"optional": true,
"peer": true
},
+ "safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+ },
"scheduler": {
"version": "0.20.2",
"resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz",
@@ -3474,6 +3747,15 @@
"ansi-regex": "^5.0.1"
}
},
+ "style-value-types": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/style-value-types/-/style-value-types-5.0.0.tgz",
+ "integrity": "sha512-08yq36Ikn4kx4YU6RD7jWEv27v4V+PUsOGa4n/as8Et3CuODMJQ00ENeAVXAeydX4Z2j1XHZF1K2sX4mGl18fA==",
+ "requires": {
+ "hey-listen": "^1.0.8",
+ "tslib": "^2.1.0"
+ }
+ },
"stylis": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz",
@@ -3514,11 +3796,6 @@
"mime-types": "^2.1.12"
}
},
- "isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
- },
"readable-stream": {
"version": "2.3.8",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
@@ -3533,11 +3810,6 @@
"util-deprecate": "~1.0.1"
}
},
- "safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
- },
"string_decoder": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
@@ -3567,6 +3839,11 @@
"optional": true,
"peer": true
},
+ "tslib": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
+ "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
+ },
"util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
diff --git a/package.json b/package.json
index e0d84943..450b9bd2 100644
--- a/package.json
+++ b/package.json
@@ -4,6 +4,7 @@
"@material-ui/core": "^4.12.4",
"@mui/x-date-pickers": "^6.12.0",
"dayjs": "^1.11.9",
+ "framer-motion": "^6.5.1",
"material-ui-popup-state": "^5.0.9",
"qrcode": "^1.5.3",
"react-countup": "^6.5.0",
From 039372eeb1886041687ce0f6ee01a2d842e98d37 Mon Sep 17 00:00:00 2001
From: kevwu27 <115754187+kevwu27@users.noreply.github.com>
Date: Thu, 30 May 2024 13:17:18 -0700
Subject: [PATCH 2/7] more small changes to animations
---
.../src/components/About/OurCommunities.tsx | 29 -------------------
frontend/src/components/Home/Home.tsx | 8 +++--
2 files changed, 6 insertions(+), 31 deletions(-)
diff --git a/frontend/src/components/About/OurCommunities.tsx b/frontend/src/components/About/OurCommunities.tsx
index 559db2e0..3feecb4f 100644
--- a/frontend/src/components/About/OurCommunities.tsx
+++ b/frontend/src/components/About/OurCommunities.tsx
@@ -3,7 +3,6 @@ import { Container, Box, Link, Grid, useMediaQuery } from '@mui/material';
import { aboutStyles } from './styles';
import innovate from '../../images/ourCommunitiesImages/cses_innovate.png';
import opensource from '../../images/ourCommunitiesImages/cses_opensource.png';
-import webdev from '../../images/ourCommunitiesImages/cses_webdev.png';
import dev from '../../images/ourCommunitiesImages/cses_dev.png';
import { motion } from "framer-motion";
import { styled } from '@mui/system';
@@ -75,34 +74,6 @@ const Communities = () => {
-
-
-
-
-
- CSES Innovate
-
-
- Learn about tech entrepreneurship! Form teams and build your own start-ups from ideation to pitch.
-
-
-
-
-
-
-
-
{
- +
+
+
+
Members & counting.
@@ -165,7 +167,9 @@ const Home = () => {
- +
+
+
+
Events & counting.
From 943c71e0a50628dfaca853bb55283ce9f15e19d0 Mon Sep 17 00:00:00 2001
From: kevwu27 <115754187+kevwu27@users.noreply.github.com>
Date: Wed, 2 Oct 2024 17:35:09 -0700
Subject: [PATCH 3/7] text changes
---
frontend/src/components/About/OurCommunities.tsx | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/frontend/src/components/About/OurCommunities.tsx b/frontend/src/components/About/OurCommunities.tsx
index 3feecb4f..1db6d35e 100644
--- a/frontend/src/components/About/OurCommunities.tsx
+++ b/frontend/src/components/About/OurCommunities.tsx
@@ -139,16 +139,16 @@ const Communities = () => {
margin: verySmallScreen ? '10% 0% 0% 0%' : { xs: '10% 2% 2% 2%', sm: '5% 3%', md: '3% 2%' }
}}>
- CSES WebDev
+ CSES Innovate
-
- Gain hands-on experience in web design and development for real clients, from UCSD clubs to non-profits!
+
+ Learn about tech entrepreneurship! Form teams and build your own start-ups from ideation to pitch.
From 71037cd746ffee86ac8b08b375bd6e5b8e342a61 Mon Sep 17 00:00:00 2001
From: shreyaNagunuri
Date: Wed, 2 Oct 2024 17:49:10 -0700
Subject: [PATCH 4/7] adding minor option
---
frontend/src/components/MemberProfile/MemberProfile.tsx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/frontend/src/components/MemberProfile/MemberProfile.tsx b/frontend/src/components/MemberProfile/MemberProfile.tsx
index c3b002e3..534bc693 100644
--- a/frontend/src/components/MemberProfile/MemberProfile.tsx
+++ b/frontend/src/components/MemberProfile/MemberProfile.tsx
@@ -183,7 +183,7 @@ const MemberProfile = (userData: MemberProfileProps) => {
Major:
{userData.memberMajor}
- {((typeof userData.memberMinor !== 'undefined')) &&
+ {((typeof userData.memberMinor !== 'undefined' && userData.memberMinor !== '')) &&
Date: Wed, 2 Oct 2024 17:55:03 -0700
Subject: [PATCH 5/7] got rid of some warnings
---
frontend/src/components/About/About.tsx | 21 +++++-----
frontend/src/components/About/HowToJoin.tsx | 40 ++++++++++---------
.../src/components/About/OurCommunities.tsx | 16 ++++----
3 files changed, 40 insertions(+), 37 deletions(-)
diff --git a/frontend/src/components/About/About.tsx b/frontend/src/components/About/About.tsx
index ec44c932..b03d6db6 100644
--- a/frontend/src/components/About/About.tsx
+++ b/frontend/src/components/About/About.tsx
@@ -1,6 +1,4 @@
import React, { useEffect, useRef, useState } from 'react';
-import { useNavigate } from 'react-router-dom';
-import Button from '../Button/Button';
import { Container, Box, Grid, createTheme, useMediaQuery } from '@mui/material';
import bgTop from '../../images/shape2.svg';
import bgBtm from '../../images/shape2.svg';
@@ -11,7 +9,6 @@ import MeetTheTeam from './MeetTheTeam';
import Communities from './OurCommunities';
import HowtoJoin from './HowToJoin';
import about1 from '../../images/aboutpage/about_1.jpg';
-import about3 from '../../images/aboutpage/about_3.jpg';
import { ImageWithBoxShadow } from '../Opportunities/Opportunities';
import Typewriter from './TypeWriter';
import { motion } from "framer-motion"
@@ -25,6 +22,8 @@ const About = () => {
const ref = useRef(null);
useEffect(() => {
+ const currentRef = ref.current; // Copy ref to a local variable
+
const observer = new IntersectionObserver(
([entry]) => {
if (entry.isIntersecting) {
@@ -36,17 +35,17 @@ const About = () => {
threshold: 0.1, // Adjust this value as needed
}
);
-
- if (ref.current) {
- observer.observe(ref.current);
+
+ if (currentRef) {
+ observer.observe(currentRef);
}
-
+
return () => {
- if (ref.current) {
- observer.unobserve(ref.current);
+ if (currentRef) {
+ observer.unobserve(currentRef); // Use the local variable for cleanup
}
};
- }, []);
+ }, [ref]);
return (
@@ -82,7 +81,7 @@ const About = () => {
CSE Society was the first CSE organization at UCSD starting over twenty years
ago, and we have innovated over the years to stay relevant in serving the CSE
- community. We are open to all majors and indivduals who are interested in
+ community. We are open to all majors and individuals who are interested in
computing!
diff --git a/frontend/src/components/About/HowToJoin.tsx b/frontend/src/components/About/HowToJoin.tsx
index a2869552..d59d1766 100644
--- a/frontend/src/components/About/HowToJoin.tsx
+++ b/frontend/src/components/About/HowToJoin.tsx
@@ -16,28 +16,30 @@ const HowtoJoin = () => {
const ref1 = useRef(null);
useEffect(() => {
- const observer = new IntersectionObserver(
- ([entry]) => {
- if (entry.isIntersecting) {
- setIsInView1(true);
- observer.disconnect(); // Disconnect after first trigger
- }
- },
- {
- threshold: 0.1, // Adjust this value as needed
- }
- );
+ const currentRef = ref1.current; // Copy ref1 to a local variable
- if (ref1.current) {
- observer.observe(ref1.current);
+ const observer = new IntersectionObserver(
+ ([entry]) => {
+ if (entry.isIntersecting) {
+ setIsInView1(true);
+ observer.disconnect(); // Disconnect after first trigger
+ }
+ },
+ {
+ threshold: 0.1, // Adjust this value as needed
}
+ );
- return () => {
- if (ref1.current) {
- observer.unobserve(ref1.current);
- }
- };
- }, []);
+ if (currentRef) {
+ observer.observe(currentRef);
+ }
+
+ return () => {
+ if (currentRef) {
+ observer.unobserve(currentRef); // Use the local variable for cleanup
+ }
+ };
+ }, [ref1]);
return (
{
const ref = useRef(null);
useEffect(() => {
+ const currentRef = ref.current; // Copy ref to a local variable
+
const observer = new IntersectionObserver(
([entry]) => {
if (entry.isIntersecting) {
@@ -33,17 +35,17 @@ const Communities = () => {
threshold: 0.1, // Adjust this value as needed
}
);
-
- if (ref.current) {
- observer.observe(ref.current);
+
+ if (currentRef) {
+ observer.observe(currentRef);
}
-
+
return () => {
- if (ref.current) {
- observer.unobserve(ref.current);
+ if (currentRef) {
+ observer.unobserve(currentRef); // Use the local variable for cleanup
}
};
- }, []);
+ }, [ref]);
return (
From 9c90b02549a590b03a101cd2e5100628a4a46bda Mon Sep 17 00:00:00 2001
From: shreyaNagunuri
Date: Wed, 30 Oct 2024 17:18:02 -0700
Subject: [PATCH 6/7] adding board photos and remove innovate org
---
frontend/src/components/About/MeetTheTeam.tsx | 83 ++++++++----------
.../src/components/About/OurCommunities.tsx | 21 -----
.../images/meettheteamImages/Aditi_Bansal.jpg | Bin 0 -> 1218295 bytes
.../meettheteamImages/Aditya_Kakarla.jpg | Bin 0 -> 184749 bytes
.../meettheteamImages/Aryen_Singhal.jpg | Bin 0 -> 201836 bytes
.../meettheteamImages/Bhavik_Chandna.jpg | Bin 0 -> 57577 bytes
.../meettheteamImages/Chase_Peterson.jpg | Bin 0 -> 675258 bytes
.../meettheteamImages/Hillary_Chang.webp | Bin 0 -> 7652 bytes
.../images/meettheteamImages/Kevin_Sun.jpg | Bin 0 -> 172087 bytes
.../meettheteamImages/Lucas_Hiaing.jpeg | Bin 0 -> 406882 bytes
.../meettheteamImages/Nikitha_Maderamitla.jpg | Bin 0 -> 147008 bytes
.../images/meettheteamImages/Pranav_Soma.jpeg | Bin 0 -> 463144 bytes
.../images/meettheteamImages/Ryan_Das.jpeg | Bin 0 -> 1726219 bytes
.../meettheteamImages/Shree_Venkatesh.jpg | Bin 0 -> 214752 bytes
.../images/meettheteamImages/Steven_Shi.jpg | Bin 0 -> 174761 bytes
.../images/meettheteamImages/Tia_Irani.jpeg | Bin 0 -> 927339 bytes
.../images/meettheteamImages/Varun_Parekh.jpg | Bin 0 -> 6538066 bytes
.../meettheteamImages/Vinod_Vairavaraj.png | Bin 0 -> 343438 bytes
18 files changed, 39 insertions(+), 65 deletions(-)
create mode 100644 frontend/src/images/meettheteamImages/Aditi_Bansal.jpg
create mode 100644 frontend/src/images/meettheteamImages/Aditya_Kakarla.jpg
create mode 100644 frontend/src/images/meettheteamImages/Aryen_Singhal.jpg
create mode 100644 frontend/src/images/meettheteamImages/Bhavik_Chandna.jpg
create mode 100644 frontend/src/images/meettheteamImages/Chase_Peterson.jpg
create mode 100644 frontend/src/images/meettheteamImages/Hillary_Chang.webp
create mode 100644 frontend/src/images/meettheteamImages/Kevin_Sun.jpg
create mode 100644 frontend/src/images/meettheteamImages/Lucas_Hiaing.jpeg
create mode 100644 frontend/src/images/meettheteamImages/Nikitha_Maderamitla.jpg
create mode 100644 frontend/src/images/meettheteamImages/Pranav_Soma.jpeg
create mode 100644 frontend/src/images/meettheteamImages/Ryan_Das.jpeg
create mode 100644 frontend/src/images/meettheteamImages/Shree_Venkatesh.jpg
create mode 100644 frontend/src/images/meettheteamImages/Steven_Shi.jpg
create mode 100644 frontend/src/images/meettheteamImages/Tia_Irani.jpeg
create mode 100644 frontend/src/images/meettheteamImages/Varun_Parekh.jpg
create mode 100644 frontend/src/images/meettheteamImages/Vinod_Vairavaraj.png
diff --git a/frontend/src/components/About/MeetTheTeam.tsx b/frontend/src/components/About/MeetTheTeam.tsx
index 5e321f1b..1436945e 100644
--- a/frontend/src/components/About/MeetTheTeam.tsx
+++ b/frontend/src/components/About/MeetTheTeam.tsx
@@ -5,82 +5,66 @@ import next from '../../images/next.png';
import ToggleButtonGroup from '@mui/material/ToggleButtonGroup';
import { buttonStyles } from '../Button/styles';
import { aboutStyles } from './styles';
-import Nabil from '../../images/meettheteamImages/nabil.jpg';
-import Samvrit from '../../images/meettheteamImages/samvrit.jpeg';
-import Anuj from '../../images/meettheteamImages/anuj.jpg';
import Sithu from '../../images/meettheteamImages/sithu.jpg';
import Rahul from '../../images/meettheteamImages/rahul.png';
-import Ishika from '../../images/meettheteamImages/ishika.jpg';
import Yashil from '../../images/meettheteamImages/yashil vora.jpg';
-import Cassandra from '../../images/meettheteamImages/cassandra.png';
-import Rachel from '../../images/meettheteamImages/rachel paner.jpeg';
-import Christopher from '../../images/meettheteamImages/christopher.png';
-import Ketan from '../../images/meettheteamImages/ketan.jpg';
-import Gloria from '../../images/meettheteamImages/gloria.jpg';
import Mishka from '../../images/meettheteamImages/mishka.jpeg';
-import Delvin from '../../images/meettheteamImages/delvin.jpg';
-import Joyce from '../../images/meettheteamImages/joyce.jpg';
-import Will from '../../images/meettheteamImages/will.jpg';
import Brian from '../../images/meettheteamImages/brian.jpg';
-import Shruti from '../../images/meettheteamImages/shruti.jpg';
-import Manan from '../../images/meettheteamImages/manan.jpg';
-import Jheel from '../../images/meettheteamImages/jheel.jpg';
-import Sonia from '../../images/meettheteamImages/sonia.jpg';
import Jake from '../../images/meettheteamImages/jake villaseno.jpeg';
import Jose from '../../images/meettheteamImages/josue martinez.jpeg';
import Angelina from '../../images/meettheteamImages/angelina yee.jpg';
-import Shambhavi from '../../images/meettheteamImages/shambhavi mittal.jpg';
import Ganesh from '../../images/meettheteamImages/ganesh kumarappan.jpg';
import Sardor from '../../images/meettheteamImages/sardor sobirov.jpg';
import Shreya from '../../images/meettheteamImages/shreya gupta.jpg';
import ShreyaN from '../../images/meettheteamImages/Shreya Nagunuri.png';
-import Ryan from '../../images/meettheteamImages/ryan rickey.jpg';
-import Viren from '../../images/meettheteamImages/viren nathan.jpg';
import Kevin from '../../images/meettheteamImages/kevin kim.jpeg';
import KevinW from '../../images/meettheteamImages/KevinWu.png';
import Sofia from '../../images/meettheteamImages/sofia nguyen.png';
import Maanasa from '../../images/meettheteamImages/maanasa prasad.png';
-import Ali from '../../images/meettheteamImages/ali alani.png';
import Michael from '../../images/meettheteamImages/michael he.png';
-import Cole from '../../images/meettheteamImages/cole.png';
-import Victor from '../../images/meettheteamImages/VictorKim.jpeg';
+import Pranav_Soma from '../../images/meettheteamImages/Pranav_Soma.jpeg';
+import Nikitha_Maderamitla from '../../images/meettheteamImages/Nikitha_Maderamitla.jpg';
+import Aryen_Singhal from '../../images/meettheteamImages/Aryen_Singhal.jpg';
+import Hillary_Chang from '../../images/meettheteamImages/Hillary_Chang.webp';
+import Aditya_Kakarla from '../../images/meettheteamImages/Aditya_Kakarla.jpg';
+import Chase_Peterson from '../../images/meettheteamImages/Chase_Peterson.jpg';
+import Tia_Irani from '../../images/meettheteamImages/Tia_Irani.jpeg';
+import Steven_Shi from '../../images/meettheteamImages/Steven_Shi.jpg';
+import Vinod_Vairavaraj from '../../images/meettheteamImages/Vinod_Vairavaraj.png';
+import Shree_Venkatesh from '../../images/meettheteamImages/Shree_Venkatesh.jpg';
+import Bhavik_Chandna from '../../images/meettheteamImages/Bhavik_Chandna.jpg';
+import Kevin_Sun from '../../images/meettheteamImages/Kevin_Sun.jpg';
+import Aryamun_Das from '../../images/meettheteamImages/Ryan_Das.jpeg';
+import Aditi_Bansal from '../../images/meettheteamImages/Aditi_Bansal.jpg';
+import Lucas_Hlaing from '../../images/meettheteamImages/Lucas_Hiaing.jpeg';
+import Varun_Parekh from '../../images/meettheteamImages/Varun_Parekh.jpg';
const categories = [
{
id: 1,
name: 'CSES Board',
members: [
- { name: 'Nabil Khoury', title: 'Co-President', photo: Nabil },
- { name: 'Samvrit Srinath', title: 'Co-President', photo: Samvrit },
{ name: 'Rahul Mistry', title: 'VP Internal', photo: Rahul },
{ name: 'Michael He', title: 'VP External', photo: Michael },
{ name: 'Sithu Soe', title: 'VP Operations', photo: Sithu },
- { name: 'Anuj Jain', title: 'VP Finance', photo: Anuj },
- { name: 'Maanasa Prasad', title: 'Event Director', photo: Maanasa },
- { name: 'Ishika Agrawal', title: 'Events Director', photo: Ishika },
- { name: 'Christopher Tams', title: 'Marketing Director', photo: Christopher },
- { name: 'Shambhavi Mittal', title: 'PR Director', photo: Shambhavi },
- { name: 'Cassandra Ponce Maldonado', title: 'Events Chair', photo: Cassandra },
+ { name: 'Maanasa Prasad', title: 'VP Events', photo: Maanasa },
+ { name: 'Lucas Hlaing', title: 'Finance Director', photo: Lucas_Hlaing },
+ { name: 'Varun Parekh', title: 'Technical Workshop Director', photo: Varun_Parekh },
{ name: 'Angelina Yee', title: 'Marketing Chair', photo: Angelina },
- { name: 'Rachel Paner', title: 'Design Chair', photo: Rachel },
- { name: 'Jose Martinez', title: 'Outreach Chair - Alumni', photo: Jose },
- { name: 'Ketan Jain', title: 'Outreach Chair - Student Organizations', photo: Ketan },
- { name: 'Cole Carter', title: 'Outreach Chair - Sponsors/Corporates', photo: Cole },
+ { name: 'Jose Martinez', title: 'External Director - Alumni and Professor', photo: Jose },
],
},
{
id: 2,
name: 'CSES Dev',
members: [
- { name: 'Will Hsu', title: 'Engineering Manager', photo: Will },
- { name: 'Delvin Bajoua', title: 'Product Manager', photo: Delvin },
- { name: 'Shreya Gupta', title: 'Development Team Chair', photo: Shreya },
+ { name: 'Shreya Gupta', title: 'President', photo: Shreya },
+ { name: 'Steven Shi', title: 'VP Products', photo: Steven_Shi },
+ { name: 'Jake Villasenor', title: 'VP Design', photo: Jake },
{ name: 'Sardor Sobirov', title: 'Frontend Developer', photo: Sardor },
{ name: 'Sithu Soe', title: 'Frontend Developer', photo: Sithu },
- { name: 'Joyce Lu', title: 'Frontend Developer', photo: Joyce },
{ name: 'Kevin Wu', title: 'Frontend Developer', photo: KevinW },
{ name: 'Shreya Nagunuri', title: 'Backend Developer', photo: ShreyaN },
- { name: 'Victor Kim', title: 'Backend Developer', photo: Victor },
{ name: 'Brian Liu', title: 'Backend Developer', photo: Brian },
{ name: 'Ganesh Kumarappan', title: 'Backend Developer', photo: Ganesh },
],
@@ -91,17 +75,28 @@ const categories = [
members: [
{ name: 'Yashil Vora', title: 'President', photo: Yashil },
{ name: 'Mishka Jethwani', title: 'VP Operations', photo: Mishka },
+ { name: 'Aryen Singhal', title: 'Engineering Manager', photo: Aryen_Singhal },
+ { name: 'Chase Peterson', title: 'Engineering Manager', photo: Chase_Peterson },
+ { name: 'Shree Venkatesh', title: 'Engineering Manager', photo: Shree_Venkatesh },
+ { name: 'Kevin Sun', title: 'Engineering Manager', photo: Kevin_Sun },
{ name: 'Kevin Kim', title: 'Lead Software Engineer', photo: Kevin },
{ name: 'Sofia Nguyen', title: 'UI/UX Designer', photo: Sofia },
- { name: 'Song Hee Seo (Gloria)', title: 'Marketing Chair', photo: Gloria },
+ { name: 'Tia Irani', title: 'UI/UX Designer', photo: Tia_Irani },
+ { name: 'Aditi Bansal', title: 'UI/UX Designer', photo: Aditi_Bansal },
+ { name: 'Vinod Vairavaraj', title: 'UI/UX Designer', photo: Vinod_Vairavaraj },
],
},
{
- id: 5,
- name: 'CSES Innovate',
+ id: 6,
+ name: 'CSES E/Acc',
members: [
- { name: 'Viren Nathan', title: 'President', photo: Viren },
- { name: 'Ali Alani', title: 'CTO', photo: Ali },
+ { name: 'Aryamun Das', title: 'Founder', photo: Aryamun_Das },
+ { name: 'Yashil Vora', title: 'President', photo: Yashil },
+ { name: 'Nikitha Maderamitla', title: 'Internal Director', photo: Nikitha_Maderamitla },
+ { name: 'Hillary Chang', title: 'Corporate Connections Director', photo: Hillary_Chang },
+ { name: 'Aditya Kakarla', title: 'External Director', photo: Aditya_Kakarla },
+ { name: 'Pranav Soma', title: 'Project Lead', photo: Pranav_Soma },
+ { name: 'Bhavik Chandna', title: 'Project Lead', photo: Bhavik_Chandna },
],
},
];
diff --git a/frontend/src/components/About/OurCommunities.tsx b/frontend/src/components/About/OurCommunities.tsx
index c73af208..cacf0635 100644
--- a/frontend/src/components/About/OurCommunities.tsx
+++ b/frontend/src/components/About/OurCommunities.tsx
@@ -133,27 +133,6 @@ const Communities = () => {
whileHover={{ scale: 1.1 }}
transition={{ type: 'spring', stiffness: 300 }}
>
-
-
-
-
- CSES Innovate
-
-
- Learn about tech entrepreneurship! Form teams and build your own start-ups from ideation to pitch.
-
-
-
diff --git a/frontend/src/images/meettheteamImages/Aditi_Bansal.jpg b/frontend/src/images/meettheteamImages/Aditi_Bansal.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..b73bae83ff9972b534b7ceba4c5db4d798a25af4
GIT binary patch
literal 1218295
zcmeFZ2UJtr*XX-L5~?(5N{w`-SrAZ=5a}WUBE3mdkly7W20~HcAVn-kR1l?0m5vZP
zhzIFS2)#>J2m(p&4tVPS``#UIjC;Q~#v9oJn!Wd0bI#vfbI!Ha-bflGjRP!~G_*AU
z2m}IXfqwwfFrW%RsmKTUClowj)G+cvOHB=@rlX~&r=z8#qd&xah@OFofsT%mm63^=
zg@u)c{?K8z!z^szzgftgK*%kjFj}x73j-Ykc=rG0L8=8s@g;O6sc8UhY
zCTL(w%YND`H2yV*(8a>5bzO9vM}^PWd8bcIbD3fid)JPLs5<#4q!tyItjj8BXc-#Y
zclU^j%c)&+@bL|Q^1lA;jj+f^ZyKi5jnWz?O&t9q9=`>}@`Cz6$y)uT76cSaRtvnU
z%nF{Tg1`VMH4F}7fxrO>6)O}5s>CLUg0r7CuwCQudOaa@=HgYm(D=f-u61foVO3c}
z?^Js=(ih+m6l~54Wd)GHUbYJ5pb(%Cpb(%Cpb(%Cpb(%Cpb(%Cpb(%Cpb(%Cpb(%C
zpb(%Cpb(%Cpb(%Cpb(%Cpb(%Cpb(%Cpb(%Cpb(%Cpb(%Cpb(%Cpb(%Cpb(%Cpb(%C
zpb(%Cpb(%Cpb(%Cpb(%Cpb(%Cpb(%Cpb(%Cpb(%Cpb(%Cpb(%Cpb(%Cpb(%Cpb(%C
zpb(%Cpb(%Cpb(%Cpb(%Cpb(%Cpb(%Cpb(%Cpb(%Cpb(%Cpb(%Cpb(%Cpb(%Cpb(%C
zpb(%Cpb(%Cpb(%Cpb(%Cpb(%Cpb(%Cpb(%Cpb(%Cpb(%Cpb(%Cpb(%Cpb(%Cpb(%C
zpb(%Cpb(%Cpb(%C`2P`s!tW~J*Z-q}n$esMm^?CBM
z+((Ar7(_E>Id%1ZmjpkXokgB3x^>sqp?9zTW7dxd@G^VREvk_J#$7xJzD^eKkPQCo
zi~RY2;`oJTk6nNb)#641I>$)B;pyFhJ#^0dmE;X#wCPiwm-p\vV$gD|up0eO1W
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