mirror of
https://github.com/soconnor0919/personal-website.git
synced 2025-12-12 23:04:43 -05:00
Update content to data.ts
This commit is contained in:
184
pnpm-lock.yaml
generated
184
pnpm-lock.yaml
generated
@@ -110,7 +110,7 @@ importers:
|
||||
version: 9.6.1
|
||||
'@types/node':
|
||||
specifier: ^22.8.2
|
||||
version: 22.8.2
|
||||
version: 22.8.4
|
||||
'@types/react':
|
||||
specifier: ^18.3.12
|
||||
version: 18.3.12
|
||||
@@ -119,16 +119,16 @@ importers:
|
||||
version: 18.3.1
|
||||
'@typescript-eslint/eslint-plugin':
|
||||
specifier: ^8.12.1
|
||||
version: 8.12.1(@typescript-eslint/parser@8.12.1(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3))(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)
|
||||
version: 8.12.2(@typescript-eslint/parser@8.12.2(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3))(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)
|
||||
'@typescript-eslint/parser':
|
||||
specifier: ^8.12.1
|
||||
version: 8.12.1(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)
|
||||
version: 8.12.2(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)
|
||||
eslint:
|
||||
specifier: ^9.13.0
|
||||
version: 9.13.0(jiti@1.21.6)
|
||||
eslint-config-next:
|
||||
specifier: ^15.0.1
|
||||
version: 15.0.1(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)
|
||||
version: 15.0.2(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)
|
||||
postcss:
|
||||
specifier: ^8.4.47
|
||||
version: 8.4.47
|
||||
@@ -195,8 +195,8 @@ packages:
|
||||
'@floating-ui/core@1.6.8':
|
||||
resolution: {integrity: sha512-7XJ9cPU+yI2QeLS+FCSlqNFZJq8arvswefkZrYI1yQBbftw6FyrZOxYSh+9S7z7TpeWlRt9zJ5IhM1WIL334jA==}
|
||||
|
||||
'@floating-ui/dom@1.6.11':
|
||||
resolution: {integrity: sha512-qkMCxSR24v2vGkhYDo/UzxfJN3D4syqSjyuTFz6C7XcpU1pASPRieNI0Kj5VP3/503mOfYiGY891ugBX1GlABQ==}
|
||||
'@floating-ui/dom@1.6.12':
|
||||
resolution: {integrity: sha512-NP83c0HjokcGVEMeoStg317VD9W7eDlGK7457dMBANbKA6GJZdc7rjujdgqzTaz93jkGgc5P/jeWbaCHnMNc+w==}
|
||||
|
||||
'@floating-ui/react-dom@2.1.2':
|
||||
resolution: {integrity: sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==}
|
||||
@@ -353,8 +353,8 @@ packages:
|
||||
'@next/env@15.0.2':
|
||||
resolution: {integrity: sha512-c0Zr0ModK5OX7D4ZV8Jt/wqoXtitLNPwUfG9zElCZztdaZyNVnN40rDXVZ/+FGuR4CcNV5AEfM6N8f+Ener7Dg==}
|
||||
|
||||
'@next/eslint-plugin-next@15.0.1':
|
||||
resolution: {integrity: sha512-bKWsMaGPbiFAaGqrDJvbE8b4Z0uKicGVcgOI77YM2ui3UfjHMr4emFPrZTLeZVchi7fT1mooG2LxREfUUClIKw==}
|
||||
'@next/eslint-plugin-next@15.0.2':
|
||||
resolution: {integrity: sha512-R9Jc7T6Ge0txjmqpPwqD8vx6onQjynO9JT73ArCYiYPvSrwYXepH/UY/WdKDY8JPWJl72sAE4iGMHPeQ5xdEWg==}
|
||||
|
||||
'@next/swc-darwin-arm64@15.0.2':
|
||||
resolution: {integrity: sha512-GK+8w88z+AFlmt+ondytZo2xpwlfAR8U6CRwXancHImh6EdGfHMIrTSCcx5sOSBei00GyLVL0ioo1JLKTfprgg==}
|
||||
@@ -1138,8 +1138,8 @@ packages:
|
||||
'@types/json5@0.0.29':
|
||||
resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
|
||||
|
||||
'@types/node@22.8.2':
|
||||
resolution: {integrity: sha512-NzaRNFV+FZkvK/KLCsNdTvID0SThyrs5SHB6tsD/lajr22FGC73N2QeDPM2wHtVde8mgcXuSsHQkH5cX1pbPLw==}
|
||||
'@types/node@22.8.4':
|
||||
resolution: {integrity: sha512-SpNNxkftTJOPk0oN+y2bIqurEXHTA2AOZ3EJDDKeJ5VzkvvORSvmQXGQarcOzWV1ac7DCaPBEdMDxBsM+d8jWw==}
|
||||
|
||||
'@types/prop-types@15.7.13':
|
||||
resolution: {integrity: sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==}
|
||||
@@ -1150,8 +1150,8 @@ packages:
|
||||
'@types/react@18.3.12':
|
||||
resolution: {integrity: sha512-D2wOSq/d6Agt28q7rSI3jhU7G6aiuzljDGZ2hTZHIkrTLUI+AF3WMeKkEZ9nN2fkBAlcktT6vcZjDFiIhMYEQw==}
|
||||
|
||||
'@typescript-eslint/eslint-plugin@8.12.1':
|
||||
resolution: {integrity: sha512-gNg/inLRcPoBsKKIe4Vv38SVSOhk4BKWNO0T56sVff33gRqtTpOsrhHtiOKD1lmIOmCtZMPaW2x/h2FlM+sCEg==}
|
||||
'@typescript-eslint/eslint-plugin@8.12.2':
|
||||
resolution: {integrity: sha512-gQxbxM8mcxBwaEmWdtLCIGLfixBMHhQjBqR8sVWNTPpcj45WlYL2IObS/DNMLH1DBP0n8qz+aiiLTGfopPEebw==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
peerDependencies:
|
||||
'@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0
|
||||
@@ -1161,8 +1161,8 @@ packages:
|
||||
typescript:
|
||||
optional: true
|
||||
|
||||
'@typescript-eslint/parser@8.12.1':
|
||||
resolution: {integrity: sha512-I/I9Bg7qFa8rOgBnUUHIWTgzbB5wVkSLX+04xGUzTcJUtdq/I2uHWR9mbW6qUYJG/UmkuDcTax5JHvoEWOAHOQ==}
|
||||
'@typescript-eslint/parser@8.12.2':
|
||||
resolution: {integrity: sha512-MrvlXNfGPLH3Z+r7Tk+Z5moZAc0dzdVjTgUgwsdGweH7lydysQsnSww3nAmsq8blFuRD5VRlAr9YdEFw3e6PBw==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
peerDependencies:
|
||||
eslint: ^8.57.0 || ^9.0.0
|
||||
@@ -1171,12 +1171,12 @@ packages:
|
||||
typescript:
|
||||
optional: true
|
||||
|
||||
'@typescript-eslint/scope-manager@8.12.1':
|
||||
resolution: {integrity: sha512-bma6sD1iViTt+y9MAwDlBdPTMCqoH/BNdcQk4rKhIZWv3eM0xHmzeSrPJA663PAqFqfpOmtdugycpr0E1mZDVA==}
|
||||
'@typescript-eslint/scope-manager@8.12.2':
|
||||
resolution: {integrity: sha512-gPLpLtrj9aMHOvxJkSbDBmbRuYdtiEbnvO25bCMza3DhMjTQw0u7Y1M+YR5JPbMsXXnSPuCf5hfq0nEkQDL/JQ==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
'@typescript-eslint/type-utils@8.12.1':
|
||||
resolution: {integrity: sha512-zJzrvbDVjIzVKV2TGHcjembEhws8RWXJhmqfO9hS2gRXBN0gDwGhRPEdJ6AZglzfJ+YA1q09EWpSLSXjBJpIMQ==}
|
||||
'@typescript-eslint/type-utils@8.12.2':
|
||||
resolution: {integrity: sha512-bwuU4TAogPI+1q/IJSKuD4shBLc/d2vGcRT588q+jzayQyjVK2X6v/fbR4InY2U2sgf8MEvVCqEWUzYzgBNcGQ==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
peerDependencies:
|
||||
typescript: '*'
|
||||
@@ -1184,12 +1184,12 @@ packages:
|
||||
typescript:
|
||||
optional: true
|
||||
|
||||
'@typescript-eslint/types@8.12.1':
|
||||
resolution: {integrity: sha512-anMS4es5lxBe4UVcDXOkcDb3csnm5BvaNIbOFfvy/pJEohorsggdVB8MFbl5EZiEuBnZZ0ei1z7W5b6FdFiV1Q==}
|
||||
'@typescript-eslint/types@8.12.2':
|
||||
resolution: {integrity: sha512-VwDwMF1SZ7wPBUZwmMdnDJ6sIFk4K4s+ALKLP6aIQsISkPv8jhiw65sAK6SuWODN/ix+m+HgbYDkH+zLjrzvOA==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
'@typescript-eslint/typescript-estree@8.12.1':
|
||||
resolution: {integrity: sha512-k/o9khHOckPeDXilFTIPsP9iAYhhdMh3OsOL3i2072PNpFqhqzRHx472/0DeC8H/WZee3bZG0z2ddGRSPgeOKw==}
|
||||
'@typescript-eslint/typescript-estree@8.12.2':
|
||||
resolution: {integrity: sha512-mME5MDwGe30Pq9zKPvyduyU86PH7aixwqYR2grTglAdB+AN8xXQ1vFGpYaUSJ5o5P/5znsSBeNcs5g5/2aQwow==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
peerDependencies:
|
||||
typescript: '*'
|
||||
@@ -1197,14 +1197,14 @@ packages:
|
||||
typescript:
|
||||
optional: true
|
||||
|
||||
'@typescript-eslint/utils@8.12.1':
|
||||
resolution: {integrity: sha512-sDv9yFHrhKe1WN8EYuzfhKCh/sFRupe9P+m/lZ5YgVvPoCUGHNN50IO4llSu7JAbftUM/QcCh+GeCortXPrBYQ==}
|
||||
'@typescript-eslint/utils@8.12.2':
|
||||
resolution: {integrity: sha512-UTTuDIX3fkfAz6iSVa5rTuSfWIYZ6ATtEocQ/umkRSyC9O919lbZ8dcH7mysshrCdrAM03skJOEYaBugxN+M6A==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
peerDependencies:
|
||||
eslint: ^8.57.0 || ^9.0.0
|
||||
|
||||
'@typescript-eslint/visitor-keys@8.12.1':
|
||||
resolution: {integrity: sha512-2RwdwnNGuOQKdGjuhujQHUqBZhEuodg2sLVPvOfWktvA9sOXOVqARjOyHSyhN2LiJGKxV6c8oOcmOtRcAnEeFw==}
|
||||
'@typescript-eslint/visitor-keys@8.12.2':
|
||||
resolution: {integrity: sha512-PChz8UaKQAVNHghsHcPyx1OMHoFRUEA7rJSK/mDhdq85bk+PLsUHUBqTQTFt18VJZbmxBovM65fezlheQRsSDA==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
'@vercel/analytics@1.3.2':
|
||||
@@ -1405,8 +1405,8 @@ packages:
|
||||
resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==}
|
||||
engines: {node: '>= 6'}
|
||||
|
||||
caniuse-lite@1.0.30001674:
|
||||
resolution: {integrity: sha512-jOsKlZVRnzfhLojb+Ykb+gyUSp9Xb57So+fAiFlLzzTKpqg8xxSav0e40c8/4F/v9N8QSvrRRaLeVzQbLqomYw==}
|
||||
caniuse-lite@1.0.30001675:
|
||||
resolution: {integrity: sha512-/wV1bQwPrkLiQMjaJF5yUMVM/VdRPOCU8QZ+PmG6uW6DvYSrNY1bpwHI/3mOcUosLaJCzYDi5o91IQB51ft6cg==}
|
||||
|
||||
chalk@4.1.2:
|
||||
resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
|
||||
@@ -1611,8 +1611,8 @@ packages:
|
||||
resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
|
||||
engines: {node: '>=10'}
|
||||
|
||||
eslint-config-next@15.0.1:
|
||||
resolution: {integrity: sha512-3cYCrgbH6GS/ufApza7XCKz92vtq4dAdYhx++rMFNlH2cAV+/GsAKkrr4+bohYOACmzG2nAOR+uWprKC1Uld6A==}
|
||||
eslint-config-next@15.0.2:
|
||||
resolution: {integrity: sha512-N8o6cyUXzlMmQbdc2Kc83g1qomFi3ITqrAZfubipVKET2uR2mCStyGRcx/r8WiAIVMul2KfwRiCHBkTpBvGBmA==}
|
||||
peerDependencies:
|
||||
eslint: ^7.23.0 || ^8.0.0 || ^9.0.0
|
||||
typescript: '>=3.3.1'
|
||||
@@ -1685,16 +1685,16 @@ packages:
|
||||
peerDependencies:
|
||||
eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7
|
||||
|
||||
eslint-scope@8.1.0:
|
||||
resolution: {integrity: sha512-14dSvlhaVhKKsa9Fx1l8A17s7ah7Ef7wCakJ10LYk6+GYmP9yDti2oq2SEwcyndt6knfcZyhyxwY3i9yL78EQw==}
|
||||
eslint-scope@8.2.0:
|
||||
resolution: {integrity: sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
eslint-visitor-keys@3.4.3:
|
||||
resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
|
||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||
|
||||
eslint-visitor-keys@4.1.0:
|
||||
resolution: {integrity: sha512-Q7lok0mqMUSf5a/AdAZkA5a/gHcO6snwQClVNNvFKCAVlxXucdU8pKydU5ZVZjBx5xr37vGbFFWtLQYreLzrZg==}
|
||||
eslint-visitor-keys@4.2.0:
|
||||
resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
eslint@9.13.0:
|
||||
@@ -1707,8 +1707,8 @@ packages:
|
||||
jiti:
|
||||
optional: true
|
||||
|
||||
espree@10.2.0:
|
||||
resolution: {integrity: sha512-upbkBJbckcCNBDBDXEbuhjbP68n+scUd3k/U2EkyM9nw+I/jPiL4cLF/Al06CF96wRltFda16sxDFrxsI1v0/g==}
|
||||
espree@10.3.0:
|
||||
resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
esquery@1.6.0:
|
||||
@@ -2922,7 +2922,7 @@ snapshots:
|
||||
dependencies:
|
||||
ajv: 6.12.6
|
||||
debug: 4.3.7
|
||||
espree: 10.2.0
|
||||
espree: 10.3.0
|
||||
globals: 14.0.0
|
||||
ignore: 5.3.2
|
||||
import-fresh: 3.3.0
|
||||
@@ -2944,14 +2944,14 @@ snapshots:
|
||||
dependencies:
|
||||
'@floating-ui/utils': 0.2.8
|
||||
|
||||
'@floating-ui/dom@1.6.11':
|
||||
'@floating-ui/dom@1.6.12':
|
||||
dependencies:
|
||||
'@floating-ui/core': 1.6.8
|
||||
'@floating-ui/utils': 0.2.8
|
||||
|
||||
'@floating-ui/react-dom@2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
|
||||
dependencies:
|
||||
'@floating-ui/dom': 1.6.11
|
||||
'@floating-ui/dom': 1.6.12
|
||||
react: 18.3.1
|
||||
react-dom: 18.3.1(react@18.3.1)
|
||||
|
||||
@@ -3071,7 +3071,7 @@ snapshots:
|
||||
|
||||
'@next/env@15.0.2': {}
|
||||
|
||||
'@next/eslint-plugin-next@15.0.1':
|
||||
'@next/eslint-plugin-next@15.0.2':
|
||||
dependencies:
|
||||
fast-glob: 3.3.1
|
||||
|
||||
@@ -3930,7 +3930,7 @@ snapshots:
|
||||
|
||||
'@types/json5@0.0.29': {}
|
||||
|
||||
'@types/node@22.8.2':
|
||||
'@types/node@22.8.4':
|
||||
dependencies:
|
||||
undici-types: 6.19.8
|
||||
|
||||
@@ -3945,14 +3945,14 @@ snapshots:
|
||||
'@types/prop-types': 15.7.13
|
||||
csstype: 3.1.3
|
||||
|
||||
'@typescript-eslint/eslint-plugin@8.12.1(@typescript-eslint/parser@8.12.1(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3))(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)':
|
||||
'@typescript-eslint/eslint-plugin@8.12.2(@typescript-eslint/parser@8.12.2(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3))(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)':
|
||||
dependencies:
|
||||
'@eslint-community/regexpp': 4.12.1
|
||||
'@typescript-eslint/parser': 8.12.1(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)
|
||||
'@typescript-eslint/scope-manager': 8.12.1
|
||||
'@typescript-eslint/type-utils': 8.12.1(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)
|
||||
'@typescript-eslint/utils': 8.12.1(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)
|
||||
'@typescript-eslint/visitor-keys': 8.12.1
|
||||
'@typescript-eslint/parser': 8.12.2(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)
|
||||
'@typescript-eslint/scope-manager': 8.12.2
|
||||
'@typescript-eslint/type-utils': 8.12.2(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)
|
||||
'@typescript-eslint/utils': 8.12.2(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)
|
||||
'@typescript-eslint/visitor-keys': 8.12.2
|
||||
eslint: 9.13.0(jiti@1.21.6)
|
||||
graphemer: 1.4.0
|
||||
ignore: 5.3.2
|
||||
@@ -3963,12 +3963,12 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@typescript-eslint/parser@8.12.1(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)':
|
||||
'@typescript-eslint/parser@8.12.2(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)':
|
||||
dependencies:
|
||||
'@typescript-eslint/scope-manager': 8.12.1
|
||||
'@typescript-eslint/types': 8.12.1
|
||||
'@typescript-eslint/typescript-estree': 8.12.1(typescript@5.6.3)
|
||||
'@typescript-eslint/visitor-keys': 8.12.1
|
||||
'@typescript-eslint/scope-manager': 8.12.2
|
||||
'@typescript-eslint/types': 8.12.2
|
||||
'@typescript-eslint/typescript-estree': 8.12.2(typescript@5.6.3)
|
||||
'@typescript-eslint/visitor-keys': 8.12.2
|
||||
debug: 4.3.7
|
||||
eslint: 9.13.0(jiti@1.21.6)
|
||||
optionalDependencies:
|
||||
@@ -3976,15 +3976,15 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@typescript-eslint/scope-manager@8.12.1':
|
||||
'@typescript-eslint/scope-manager@8.12.2':
|
||||
dependencies:
|
||||
'@typescript-eslint/types': 8.12.1
|
||||
'@typescript-eslint/visitor-keys': 8.12.1
|
||||
'@typescript-eslint/types': 8.12.2
|
||||
'@typescript-eslint/visitor-keys': 8.12.2
|
||||
|
||||
'@typescript-eslint/type-utils@8.12.1(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)':
|
||||
'@typescript-eslint/type-utils@8.12.2(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)':
|
||||
dependencies:
|
||||
'@typescript-eslint/typescript-estree': 8.12.1(typescript@5.6.3)
|
||||
'@typescript-eslint/utils': 8.12.1(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)
|
||||
'@typescript-eslint/typescript-estree': 8.12.2(typescript@5.6.3)
|
||||
'@typescript-eslint/utils': 8.12.2(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)
|
||||
debug: 4.3.7
|
||||
ts-api-utils: 1.3.0(typescript@5.6.3)
|
||||
optionalDependencies:
|
||||
@@ -3993,12 +3993,12 @@ snapshots:
|
||||
- eslint
|
||||
- supports-color
|
||||
|
||||
'@typescript-eslint/types@8.12.1': {}
|
||||
'@typescript-eslint/types@8.12.2': {}
|
||||
|
||||
'@typescript-eslint/typescript-estree@8.12.1(typescript@5.6.3)':
|
||||
'@typescript-eslint/typescript-estree@8.12.2(typescript@5.6.3)':
|
||||
dependencies:
|
||||
'@typescript-eslint/types': 8.12.1
|
||||
'@typescript-eslint/visitor-keys': 8.12.1
|
||||
'@typescript-eslint/types': 8.12.2
|
||||
'@typescript-eslint/visitor-keys': 8.12.2
|
||||
debug: 4.3.7
|
||||
fast-glob: 3.3.2
|
||||
is-glob: 4.0.3
|
||||
@@ -4010,20 +4010,20 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@typescript-eslint/utils@8.12.1(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)':
|
||||
'@typescript-eslint/utils@8.12.2(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)':
|
||||
dependencies:
|
||||
'@eslint-community/eslint-utils': 4.4.1(eslint@9.13.0(jiti@1.21.6))
|
||||
'@typescript-eslint/scope-manager': 8.12.1
|
||||
'@typescript-eslint/types': 8.12.1
|
||||
'@typescript-eslint/typescript-estree': 8.12.1(typescript@5.6.3)
|
||||
'@typescript-eslint/scope-manager': 8.12.2
|
||||
'@typescript-eslint/types': 8.12.2
|
||||
'@typescript-eslint/typescript-estree': 8.12.2(typescript@5.6.3)
|
||||
eslint: 9.13.0(jiti@1.21.6)
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
- typescript
|
||||
|
||||
'@typescript-eslint/visitor-keys@8.12.1':
|
||||
'@typescript-eslint/visitor-keys@8.12.2':
|
||||
dependencies:
|
||||
'@typescript-eslint/types': 8.12.1
|
||||
'@typescript-eslint/types': 8.12.2
|
||||
eslint-visitor-keys: 3.4.3
|
||||
|
||||
'@vercel/analytics@1.3.2(next@15.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)':
|
||||
@@ -4214,7 +4214,7 @@ snapshots:
|
||||
|
||||
camelcase-css@2.0.1: {}
|
||||
|
||||
caniuse-lite@1.0.30001674: {}
|
||||
caniuse-lite@1.0.30001675: {}
|
||||
|
||||
chalk@4.1.2:
|
||||
dependencies:
|
||||
@@ -4465,16 +4465,16 @@ snapshots:
|
||||
|
||||
escape-string-regexp@4.0.0: {}
|
||||
|
||||
eslint-config-next@15.0.1(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3):
|
||||
eslint-config-next@15.0.2(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3):
|
||||
dependencies:
|
||||
'@next/eslint-plugin-next': 15.0.1
|
||||
'@next/eslint-plugin-next': 15.0.2
|
||||
'@rushstack/eslint-patch': 1.10.4
|
||||
'@typescript-eslint/eslint-plugin': 8.12.1(@typescript-eslint/parser@8.12.1(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3))(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)
|
||||
'@typescript-eslint/parser': 8.12.1(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)
|
||||
'@typescript-eslint/eslint-plugin': 8.12.2(@typescript-eslint/parser@8.12.2(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3))(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)
|
||||
'@typescript-eslint/parser': 8.12.2(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)
|
||||
eslint: 9.13.0(jiti@1.21.6)
|
||||
eslint-import-resolver-node: 0.3.9
|
||||
eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.12.1(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@9.13.0(jiti@1.21.6))
|
||||
eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.12.1(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@9.13.0(jiti@1.21.6))
|
||||
eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.12.2(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@9.13.0(jiti@1.21.6))
|
||||
eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.12.2(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@9.13.0(jiti@1.21.6))
|
||||
eslint-plugin-jsx-a11y: 6.10.2(eslint@9.13.0(jiti@1.21.6))
|
||||
eslint-plugin-react: 7.37.2(eslint@9.13.0(jiti@1.21.6))
|
||||
eslint-plugin-react-hooks: 5.0.0(eslint@9.13.0(jiti@1.21.6))
|
||||
@@ -4493,37 +4493,37 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.12.1(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@9.13.0(jiti@1.21.6)):
|
||||
eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.12.2(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@9.13.0(jiti@1.21.6)):
|
||||
dependencies:
|
||||
'@nolyfill/is-core-module': 1.0.39
|
||||
debug: 4.3.7
|
||||
enhanced-resolve: 5.17.1
|
||||
eslint: 9.13.0(jiti@1.21.6)
|
||||
eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.12.1(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@9.13.0(jiti@1.21.6))
|
||||
eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.12.2(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@9.13.0(jiti@1.21.6))
|
||||
fast-glob: 3.3.2
|
||||
get-tsconfig: 4.8.1
|
||||
is-bun-module: 1.2.1
|
||||
is-glob: 4.0.3
|
||||
optionalDependencies:
|
||||
eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.12.1(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@9.13.0(jiti@1.21.6))
|
||||
eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.12.2(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@9.13.0(jiti@1.21.6))
|
||||
transitivePeerDependencies:
|
||||
- '@typescript-eslint/parser'
|
||||
- eslint-import-resolver-node
|
||||
- eslint-import-resolver-webpack
|
||||
- supports-color
|
||||
|
||||
eslint-module-utils@2.12.0(@typescript-eslint/parser@8.12.1(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@9.13.0(jiti@1.21.6)):
|
||||
eslint-module-utils@2.12.0(@typescript-eslint/parser@8.12.2(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@9.13.0(jiti@1.21.6)):
|
||||
dependencies:
|
||||
debug: 3.2.7
|
||||
optionalDependencies:
|
||||
'@typescript-eslint/parser': 8.12.1(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)
|
||||
'@typescript-eslint/parser': 8.12.2(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)
|
||||
eslint: 9.13.0(jiti@1.21.6)
|
||||
eslint-import-resolver-node: 0.3.9
|
||||
eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.12.1(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@9.13.0(jiti@1.21.6))
|
||||
eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.12.2(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@9.13.0(jiti@1.21.6))
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.12.1(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@9.13.0(jiti@1.21.6)):
|
||||
eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.12.2(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@9.13.0(jiti@1.21.6)):
|
||||
dependencies:
|
||||
'@rtsao/scc': 1.1.0
|
||||
array-includes: 3.1.8
|
||||
@@ -4534,7 +4534,7 @@ snapshots:
|
||||
doctrine: 2.1.0
|
||||
eslint: 9.13.0(jiti@1.21.6)
|
||||
eslint-import-resolver-node: 0.3.9
|
||||
eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.12.1(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@9.13.0(jiti@1.21.6))
|
||||
eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.12.2(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@9.13.0(jiti@1.21.6))
|
||||
hasown: 2.0.2
|
||||
is-core-module: 2.15.1
|
||||
is-glob: 4.0.3
|
||||
@@ -4546,7 +4546,7 @@ snapshots:
|
||||
string.prototype.trimend: 1.0.8
|
||||
tsconfig-paths: 3.15.0
|
||||
optionalDependencies:
|
||||
'@typescript-eslint/parser': 8.12.1(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)
|
||||
'@typescript-eslint/parser': 8.12.2(eslint@9.13.0(jiti@1.21.6))(typescript@5.6.3)
|
||||
transitivePeerDependencies:
|
||||
- eslint-import-resolver-typescript
|
||||
- eslint-import-resolver-webpack
|
||||
@@ -4597,14 +4597,14 @@ snapshots:
|
||||
string.prototype.matchall: 4.0.11
|
||||
string.prototype.repeat: 1.0.0
|
||||
|
||||
eslint-scope@8.1.0:
|
||||
eslint-scope@8.2.0:
|
||||
dependencies:
|
||||
esrecurse: 4.3.0
|
||||
estraverse: 5.3.0
|
||||
|
||||
eslint-visitor-keys@3.4.3: {}
|
||||
|
||||
eslint-visitor-keys@4.1.0: {}
|
||||
eslint-visitor-keys@4.2.0: {}
|
||||
|
||||
eslint@9.13.0(jiti@1.21.6):
|
||||
dependencies:
|
||||
@@ -4625,9 +4625,9 @@ snapshots:
|
||||
cross-spawn: 7.0.3
|
||||
debug: 4.3.7
|
||||
escape-string-regexp: 4.0.0
|
||||
eslint-scope: 8.1.0
|
||||
eslint-visitor-keys: 4.1.0
|
||||
espree: 10.2.0
|
||||
eslint-scope: 8.2.0
|
||||
eslint-visitor-keys: 4.2.0
|
||||
espree: 10.3.0
|
||||
esquery: 1.6.0
|
||||
esutils: 2.0.3
|
||||
fast-deep-equal: 3.1.3
|
||||
@@ -4648,11 +4648,11 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
espree@10.2.0:
|
||||
espree@10.3.0:
|
||||
dependencies:
|
||||
acorn: 8.14.0
|
||||
acorn-jsx: 5.3.2(acorn@8.14.0)
|
||||
eslint-visitor-keys: 4.1.0
|
||||
eslint-visitor-keys: 4.2.0
|
||||
|
||||
esquery@1.6.0:
|
||||
dependencies:
|
||||
@@ -5117,7 +5117,7 @@ snapshots:
|
||||
'@swc/counter': 0.1.3
|
||||
'@swc/helpers': 0.5.13
|
||||
busboy: 1.6.0
|
||||
caniuse-lite: 1.0.30001674
|
||||
caniuse-lite: 1.0.30001675
|
||||
postcss: 8.4.31
|
||||
react: 18.3.1
|
||||
react-dom: 18.3.1(react@18.3.1)
|
||||
|
||||
@@ -5,31 +5,7 @@ import Link from "next/link";
|
||||
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "~/components/ui/card";
|
||||
import { CardSkeleton } from "~/components/ui/skeletons";
|
||||
import { useState, useEffect } from 'react';
|
||||
|
||||
const articles = [
|
||||
{
|
||||
title: "Positively Innovative: Robotics for Good",
|
||||
link: "https://magazine.bucknell.edu/issue/fall-2024/robotics-for-good/",
|
||||
author: "Kate Willard",
|
||||
description: "Sean O’Connor ’26 is using his interest in robotics to fuel forward-thinking research and lead important conversations about the impact robots can have on society.",
|
||||
source: "Bucknell Magazine (Fall 2024)"
|
||||
},
|
||||
{
|
||||
title: "Student Story: Sean O'Connor '26, Computer Science and Engineering",
|
||||
link: "https://www.bucknell.edu/meet-bucknell/bucknell-stories/student-stories/sean-oconnor-26-computer-science-engineering",
|
||||
author: "Sarah Downey",
|
||||
description: "At Bucknell, Sean O'Connor '26 is conducting research to improve the ways robots assist, collaborate and coexist with humans.",
|
||||
source: "Bucknell Student Stories"
|
||||
},
|
||||
{
|
||||
title: "Shaping the Future: Exploring the Social Impact of Robots",
|
||||
link: "https://magazine.bucknell.edu/college-of-engineering/2024-college-report/",
|
||||
author: "Bucknell Publications",
|
||||
description: "RoboLab provides an environment for scholarly and creative conversations.",
|
||||
source: "the Bucknell College of Engineering Report 2024"
|
||||
}
|
||||
// Add more articles as needed
|
||||
];
|
||||
import { articles } from '~/lib/data';
|
||||
|
||||
export default function ArticlesPage() {
|
||||
const [loading, setLoading] = useState(true);
|
||||
|
||||
@@ -5,22 +5,24 @@ import { Footer } from "~/components/Footer"
|
||||
import { Navigation } from "~/components/Navigation"
|
||||
import { Sidebar } from "~/components/Sidebar"
|
||||
import { inter } from "~/lib/fonts"
|
||||
import { description, name } from "~/lib/data";
|
||||
import "~/styles/globals.css"
|
||||
|
||||
export const metadata = {
|
||||
title: "Sean O'Connor",
|
||||
description: "Personal website and portfolio",
|
||||
title: `${name[0]?.first} ${name[0]?.last}`,
|
||||
description: description,
|
||||
icons: [{ rel: "icon", url: "/favicon.ico" }],
|
||||
}
|
||||
|
||||
export default function RootLayout({ children }: React.PropsWithChildren) {
|
||||
return (
|
||||
<html lang="en" className={inter.className}>
|
||||
<body className="font-sans bg-background text-foreground min-h-screen flex flex-col">
|
||||
<html lang="en" suppressHydrationWarning className={inter.className}>
|
||||
<body className="font-sans bg-background text-foreground min-h-screen flex flex-col" suppressHydrationWarning>
|
||||
<ThemeProvider
|
||||
attribute="data-theme"
|
||||
defaultTheme="system"
|
||||
enableSystem
|
||||
disableTransitionOnChange
|
||||
>
|
||||
<Analytics />
|
||||
<SpeedInsights />
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { ArrowUpRight, Code, FlaskConical, Users } from 'lucide-react';
|
||||
import Link from "next/link";
|
||||
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "~/components/ui/card";
|
||||
import { projects } from "~/lib/data";
|
||||
import { projects, name } from "~/lib/data";
|
||||
|
||||
export default function HomePage() {
|
||||
return (
|
||||
@@ -9,7 +9,7 @@ export default function HomePage() {
|
||||
{/* About Section */}
|
||||
<section className="space-y-6">
|
||||
<div>
|
||||
<h1 className="text-2xl font-bold">Hi! I'm Sean. 👋</h1>
|
||||
<h1 className="text-2xl font-bold">Hi! I'm {name[0]?.first}. 👋</h1>
|
||||
<p className="text-lg text-muted-foreground mt-2">
|
||||
I am a Computer Science and Engineering student at Bucknell University, passionate about robotics,
|
||||
software development, and human-computer interaction. With a strong foundation in both academic
|
||||
|
||||
@@ -60,7 +60,7 @@ export default function PublicationsPage() {
|
||||
return (
|
||||
<div className="space-y-6">
|
||||
<section className="prose prose-zinc dark:prose-invert max-w-none">
|
||||
<h1 className="text-2xl font-bold">Publications 📚</h1>
|
||||
<h1 className="text-2xl font-bold">Peer-Reviewed Publications 📚</h1>
|
||||
<p className="text-lg text-muted-foreground mt-2">
|
||||
My research publications in human-robot interaction and robotics.
|
||||
</p>
|
||||
|
||||
@@ -5,46 +5,7 @@ import { Card, CardHeader, CardTitle, CardContent, CardDescription } from "~/com
|
||||
import { CardSkeleton } from "~/components/ui/skeletons";
|
||||
import Image from "next/image";
|
||||
import { Badge } from "~/components/ui/badge";
|
||||
|
||||
const tripsData = [
|
||||
{
|
||||
title: "AIChE Annual Student Conference 2024",
|
||||
description: "With the funding of Bucknell's chemical engineering department, and an amazing team, I was able to attend the 2024 AIChE Annual Student Conference and compete in the national Chem-E-Car competition.",
|
||||
images: ["/trips/asc2024/IMG_2641.png", "/trips/asc2024/IMG_2631.png", "/trips/asc2024/IMG_7987.png"],
|
||||
tags: ["Chem-E-Car", "AIChE", "Conference", "Competition"]
|
||||
},
|
||||
{
|
||||
title: "IEEE RO-MAN 2024",
|
||||
description: "I got to attend the IEEE RO-MAN 2024 conference in Pasadena, California. It was a great opportunity to present my work on my project HRIStudio, and to network with other researchers and industry professionals.",
|
||||
images: ["/trips/roman2024/IMG_3951.png", "/trips/roman2024/IMG_3978.png", "/trips/roman2024/IMG_3946.png"],
|
||||
tags: ["RO-MAN", "IEEE", "Conference", "Presentation"]
|
||||
},
|
||||
{
|
||||
title: "ENGR 290: Following da Vinci's Footsteps",
|
||||
description: "During the summer of 2024, I went on a study abroad program with about thirty of my peers. We explored Italy and France, following the footsteps of Leonardo da Vinci- evaluating the world through his lenses.",
|
||||
images: ["/trips/engr290/insta290.jpg", "/trips/engr290/P1013747.png"],
|
||||
tags: ["Italy", "France", "Study Abroad", "Engineering"]
|
||||
},
|
||||
{
|
||||
title: "SCA Specialty Coffee Expo 2024",
|
||||
description: "As a member of the executive board of the Bucknell Coffee Society, I was able to attend the Specialty Coffee Association's Specialty Coffee Expo in early 2024, traveling to Chicago, IL.",
|
||||
images: ["/trips/sca2024/group.jpeg", "/trips/sca2024/bean.png", "/trips/sca2024/plane.png"],
|
||||
tags: ["Coffee Society", "Chicago", "SCA", "Coffee"]
|
||||
},
|
||||
{
|
||||
title: "Formula 1 Gran Premio dell'Emilia Romagna 2024",
|
||||
description: "While studying abroad with Bucknell Engineering, we were lucky enough to be within a few hours of the Imola Grand Prix! A group of students went to see the race, and it was an amazing experience.",
|
||||
images: ["/trips/imola2024/IMG_2093.png", "/trips/imola2024/IMG_2050.png", "/trips/imola2024/IMG_2066.png"],
|
||||
tags: ["Racing", "Formula One", "Italy"]
|
||||
},
|
||||
{
|
||||
title: "Formula 1 British Grand Prix 2024",
|
||||
description: "As a semi-recent Formula One fan, I was very excited to have the opportunity to attend the British Grand Prix weekend in 2024. I was able to see every event- marking one of my favorite weekends, probably ever.",
|
||||
images: ["/trips/silverstone/_1035852.png", "/trips/silverstone/P1025274.png", "/trips/silverstone/_1035764.png"],
|
||||
tags: ["Racing", "Formula One", "Great Britain", "Silverstone"]
|
||||
}
|
||||
];
|
||||
|
||||
import { travel } from "~/lib/data";
|
||||
export default function TripsPage() {
|
||||
const [loading, setLoading] = useState(true);
|
||||
|
||||
@@ -75,7 +36,7 @@ export default function TripsPage() {
|
||||
<CardSkeleton />
|
||||
</>
|
||||
) : (
|
||||
tripsData.map((trip, index) => (
|
||||
travel.map((trip, index) => (
|
||||
<Card key={index} className="rounded-lg overflow-hidden">
|
||||
<CardHeader className="p-0">
|
||||
<div className="flex flex-col">
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
import React from 'react';
|
||||
import { name } from '~/lib/data';
|
||||
|
||||
export function Footer() {
|
||||
return (
|
||||
<footer className="lg:hidden bg-background text-foreground pb-4">
|
||||
<div className="max-w-screen-xl mx-auto px-4 sm:px-6 lg:px-8">
|
||||
<p className="text-sm text-muted-foreground">
|
||||
© 2024 Sean O'Connor. All rights reserved.
|
||||
© {new Date().getFullYear()} {name[0]?.first} {name[0]?.last}. All rights reserved.
|
||||
</p>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
@@ -1,55 +1,8 @@
|
||||
'use client';
|
||||
|
||||
import { Github, Globe, GraduationCap, Linkedin, Mail, Phone, School } from 'lucide-react';
|
||||
import Image from 'next/image';
|
||||
import { usePathname } from 'next/navigation';
|
||||
|
||||
const schoolInfo = [
|
||||
{
|
||||
icon: School,
|
||||
label: 'Bucknell University',
|
||||
href: 'https://bucknell.edu'
|
||||
},
|
||||
{
|
||||
label: 'Computer Science and Engineering',
|
||||
}
|
||||
]
|
||||
|
||||
const contactInfo = [
|
||||
{
|
||||
icon: Mail,
|
||||
label: 'Personal Email',
|
||||
href: 'mailto:sean@soconnor.dev'
|
||||
},
|
||||
{
|
||||
icon: Mail,
|
||||
label: 'University Email',
|
||||
href: 'mailto:sso005@bucknell.edu'
|
||||
},
|
||||
{
|
||||
icon: Phone,
|
||||
label: 'Phone',
|
||||
href: 'tel:+16316016555'
|
||||
},
|
||||
{
|
||||
icon: Globe,
|
||||
label: 'Website',
|
||||
href: 'https://soconnor.dev',
|
||||
external: true
|
||||
},
|
||||
{
|
||||
icon: Linkedin,
|
||||
label: 'LinkedIn',
|
||||
href: 'https://linkedin.com/in/bu-soconnor',
|
||||
external: true
|
||||
},
|
||||
{
|
||||
icon: Github,
|
||||
label: 'GitHub',
|
||||
href: 'https://github.com/soconnor0919',
|
||||
external: true
|
||||
}
|
||||
];
|
||||
import { name, contact, location } from '~/lib/data';
|
||||
|
||||
export function Sidebar() {
|
||||
const pathname = usePathname();
|
||||
@@ -64,7 +17,7 @@ export function Sidebar() {
|
||||
<div className="w-24 h-24 relative overflow-hidden rounded-lg">
|
||||
<Image
|
||||
src="/headshot.png"
|
||||
alt="Sean O'Connor"
|
||||
alt={`${name[0]?.first} ${name[0]?.last}`}
|
||||
width={240}
|
||||
height={240}
|
||||
className="object-cover rounded-xl"
|
||||
@@ -72,8 +25,8 @@ export function Sidebar() {
|
||||
/>
|
||||
</div>
|
||||
<div className="flex flex-col space-y-1">
|
||||
<h2 className="font-bold text-xl hover:text-primary transition-colors">Sean O'Connor</h2>
|
||||
{schoolInfo.map((item) => (
|
||||
<h2 className="font-bold text-xl hover:text-primary transition-colors">{name[0]?.first} {name[0]?.last}</h2>
|
||||
{location.map((item) => (
|
||||
<a
|
||||
key={item.label}
|
||||
href={item.href}
|
||||
@@ -89,11 +42,11 @@ export function Sidebar() {
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div className="space-y-3">
|
||||
<h3 className="text-xs uppercase text-muted-foreground font-medium">Contact</h3>
|
||||
<div className="grid grid-cols-2 gap-2">
|
||||
{contactInfo.map((item) => (
|
||||
{contact.map((item) => (
|
||||
<a
|
||||
key={item.href}
|
||||
href={item.href}
|
||||
@@ -119,7 +72,7 @@ export function Sidebar() {
|
||||
<div className="aspect-square relative overflow-hidden rounded-xl w-full">
|
||||
<Image
|
||||
src="/headshot.png"
|
||||
alt="Sean O'Connor"
|
||||
alt={`${name[0]?.first} ${name[0]?.last}`}
|
||||
width={240}
|
||||
height={240}
|
||||
className="object-cover rounded-xl"
|
||||
@@ -129,10 +82,10 @@ export function Sidebar() {
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div className="text-center lg:text-left space-y-2">
|
||||
<h2 className="font-bold text-xl hover:text-primary transition-colors">Sean O'Connor</h2>
|
||||
{schoolInfo.map((item) => (
|
||||
<h2 className="font-bold text-xl hover:text-primary transition-colors">{name[0]?.first} {name[0]?.last}</h2>
|
||||
{location.map((item) => (
|
||||
<a
|
||||
key={item.label}
|
||||
href={item.href}
|
||||
@@ -152,7 +105,7 @@ export function Sidebar() {
|
||||
<div>
|
||||
<h3 className="text-xs uppercase text-muted-foreground font-medium mb-2 text-center lg:text-left">Contact</h3>
|
||||
<div className="space-y-2">
|
||||
{contactInfo.map((item) => (
|
||||
{contact.map((item) => (
|
||||
<a
|
||||
key={item.href}
|
||||
href={item.href}
|
||||
@@ -173,7 +126,7 @@ export function Sidebar() {
|
||||
|
||||
<div className="mt-6">
|
||||
<p className="text-sm text-muted-foreground text-center lg:text-left">
|
||||
© 2024 Sean O'Connor. All rights reserved.
|
||||
© {new Date().getFullYear()} {name[0]?.first} {name[0]?.last}. All rights reserved.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
122
src/lib/data.ts
122
src/lib/data.ts
@@ -1,3 +1,86 @@
|
||||
import { Globe, Mail, Phone, Linkedin, Github, School } from "lucide-react";
|
||||
|
||||
export const name = [
|
||||
{
|
||||
first: "Sean",
|
||||
last: "O'Connor"
|
||||
}
|
||||
]
|
||||
|
||||
export const description = "Personal website and portfolio";
|
||||
|
||||
export const location = [
|
||||
{
|
||||
icon: School,
|
||||
label: 'Bucknell University',
|
||||
href: 'https://bucknell.edu'
|
||||
},
|
||||
{
|
||||
label: 'Computer Science and Engineering',
|
||||
}
|
||||
]
|
||||
|
||||
export const contact = [
|
||||
{
|
||||
icon: Mail,
|
||||
label: 'Personal Email',
|
||||
href: 'mailto:sean@soconnor.dev'
|
||||
},
|
||||
{
|
||||
icon: Mail,
|
||||
label: 'University Email',
|
||||
href: 'mailto:sso005@bucknell.edu'
|
||||
},
|
||||
{
|
||||
icon: Phone,
|
||||
label: 'Phone',
|
||||
href: 'tel:+16316016555'
|
||||
},
|
||||
{
|
||||
icon: Globe,
|
||||
label: 'Website',
|
||||
href: 'https://soconnor.dev',
|
||||
external: true
|
||||
},
|
||||
{
|
||||
icon: Linkedin,
|
||||
label: 'LinkedIn',
|
||||
href: 'https://linkedin.com/in/bu-soconnor',
|
||||
external: true
|
||||
},
|
||||
{
|
||||
icon: Github,
|
||||
label: 'GitHub',
|
||||
href: 'https://github.com/soconnor0919',
|
||||
external: true
|
||||
}
|
||||
];
|
||||
|
||||
export const articles = [
|
||||
{
|
||||
title: "Positively Innovative: Robotics for Good",
|
||||
link: "https://magazine.bucknell.edu/issue/fall-2024/robotics-for-good/",
|
||||
author: "Kate Willard",
|
||||
description: "Sean O’Connor ’26 is using his interest in robotics to fuel forward-thinking research and lead important conversations about the impact robots can have on society.",
|
||||
source: "Bucknell Magazine (Fall 2024)"
|
||||
},
|
||||
{
|
||||
title: "Student Story: Sean O'Connor '26, Computer Science and Engineering",
|
||||
link: "https://www.bucknell.edu/meet-bucknell/bucknell-stories/student-stories/sean-oconnor-26-computer-science-engineering",
|
||||
author: "Sarah Downey",
|
||||
description: "At Bucknell, Sean O'Connor '26 is conducting research to improve the ways robots assist, collaborate and coexist with humans.",
|
||||
source: "Bucknell Student Stories"
|
||||
},
|
||||
{
|
||||
title: "Shaping the Future: Exploring the Social Impact of Robots",
|
||||
link: "https://magazine.bucknell.edu/college-of-engineering/2024-college-report/",
|
||||
author: "Bucknell Publications",
|
||||
description: "RoboLab provides an environment for scholarly and creative conversations.",
|
||||
source: "the Bucknell College of Engineering Report 2024"
|
||||
}
|
||||
// Add more articles as needed
|
||||
];
|
||||
|
||||
export const projects = [
|
||||
{
|
||||
title: "HRIStudio",
|
||||
@@ -35,3 +118,42 @@ export const projects = [
|
||||
},
|
||||
];
|
||||
|
||||
export const travel = [
|
||||
{
|
||||
title: "AIChE Annual Student Conference 2024",
|
||||
description: "With the funding of Bucknell's chemical engineering department, and an amazing team, I was able to attend the 2024 AIChE Annual Student Conference and compete in the national Chem-E-Car competition.",
|
||||
images: ["/trips/asc2024/IMG_2641.png", "/trips/asc2024/IMG_2631.png", "/trips/asc2024/IMG_7987.png"],
|
||||
tags: ["Chem-E-Car", "AIChE", "Conference", "Competition"]
|
||||
},
|
||||
{
|
||||
title: "IEEE RO-MAN 2024",
|
||||
description: "I got to attend the IEEE RO-MAN 2024 conference in Pasadena, California. It was a great opportunity to present my work on my project HRIStudio, and to network with other researchers and industry professionals.",
|
||||
images: ["/trips/roman2024/IMG_3951.png", "/trips/roman2024/IMG_3978.png", "/trips/roman2024/IMG_3946.png"],
|
||||
tags: ["RO-MAN", "IEEE", "Conference", "Presentation"]
|
||||
},
|
||||
{
|
||||
title: "ENGR 290: Following da Vinci's Footsteps",
|
||||
description: "During the summer of 2024, I went on a study abroad program with about thirty of my peers. We explored Italy and France, following the footsteps of Leonardo da Vinci- evaluating the world through his lenses.",
|
||||
images: ["/trips/engr290/insta290.jpg", "/trips/engr290/P1013747.png", "/trips/engr290/_1024461.png"],
|
||||
tags: ["Italy", "France", "Study Abroad", "Engineering"]
|
||||
},
|
||||
{
|
||||
title: "SCA Specialty Coffee Expo 2024",
|
||||
description: "As a member of the executive board of the Bucknell Coffee Society, I was able to attend the Specialty Coffee Association's Specialty Coffee Expo in early 2024, traveling to Chicago, IL.",
|
||||
images: ["/trips/sca2024/group.jpeg", "/trips/sca2024/bean.png", "/trips/sca2024/plane.png"],
|
||||
tags: ["Coffee Society", "Chicago", "SCA", "Coffee"]
|
||||
},
|
||||
{
|
||||
title: "Formula 1 Gran Premio dell'Emilia Romagna 2024",
|
||||
description: "While studying abroad with Bucknell Engineering, we were lucky enough to be within a few hours of the Imola Grand Prix! A group of students went to see the race, and it was an amazing experience.",
|
||||
images: ["/trips/imola2024/IMG_2093.png", "/trips/imola2024/IMG_2050.png", "/trips/imola2024/IMG_2066.png"],
|
||||
tags: ["Racing", "Formula One", "Italy"]
|
||||
},
|
||||
{
|
||||
title: "Formula 1 British Grand Prix 2024",
|
||||
description: "As a semi-recent Formula One fan, I was very excited to have the opportunity to attend the British Grand Prix weekend in 2024. I was able to see every event- marking one of my favorite weekends, probably ever.",
|
||||
images: ["/trips/silverstone/_1035852.png", "/trips/silverstone/P1025274.png", "/trips/silverstone/_1035764.png"],
|
||||
tags: ["Racing", "Formula One", "Great Britain", "Silverstone"]
|
||||
}
|
||||
];
|
||||
|
||||
|
||||
Reference in New Issue
Block a user