diff --git a/package.json b/package.json
index a7fbb76..7916a69 100644
--- a/package.json
+++ b/package.json
@@ -17,8 +17,6 @@
"@astrojs/sitemap": "^3.1.6",
"@astrojs/tailwind": "^5.1.0",
"@astrojs/vercel": "^7.7.2",
- "@radix-ui/react-dialog": "^1.1.1",
- "@radix-ui/react-scroll-area": "^1.1.0",
"@radix-ui/react-slot": "^1.1.0",
"@tailwindcss/typography": "^0.5.13",
"@types/react": "^18.3.3",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index d8b7496..f3682d1 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -29,12 +29,6 @@ importers:
'@astrojs/vercel':
specifier: ^7.7.2
version: 7.7.2(astro@4.11.3(typescript@5.5.2))(react@18.3.1)
- '@radix-ui/react-dialog':
- specifier: ^1.1.1
- version: 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@radix-ui/react-scroll-area':
- specifier: ^1.1.0
- version: 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@radix-ui/react-slot':
specifier: ^1.1.0
version: 1.1.0(@types/react@18.3.3)(react@18.3.1)
@@ -635,12 +629,6 @@ packages:
resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
engines: {node: '>=14'}
- '@radix-ui/number@1.1.0':
- resolution: {integrity: sha512-V3gRzhVNU1ldS5XhAPTom1fOIo4ccrjjJgmE+LI2h/WaFpHmx0MQApT+KZHnx8abG6Avtfcz4WoEciMnpFT3HQ==}
-
- '@radix-ui/primitive@1.1.0':
- resolution: {integrity: sha512-4Z8dn6Upk0qk4P74xBhZ6Hd/w0mPEzOOLxy4xiPXOXqjF7jZS0VAKk7/x/H6FyY2zCkYJqePf1G5KmkmNJ4RBA==}
-
'@radix-ui/react-compose-refs@1.1.0':
resolution: {integrity: sha512-b4inOtiaOnYf9KWyO3jAeeCG6FeyfY6ldiEPanbUjWd+xIk5wZeHa8yVwmrJ2vderhu/BQvzCrJI0lHd+wIiqw==}
peerDependencies:
@@ -650,133 +638,6 @@ packages:
'@types/react':
optional: true
- '@radix-ui/react-context@1.1.0':
- resolution: {integrity: sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
- '@radix-ui/react-dialog@1.1.1':
- resolution: {integrity: sha512-zysS+iU4YP3STKNS6USvFVqI4qqx8EpiwmT5TuCApVEBca+eRCbONi4EgzfNSuVnOXvC5UPHHMjs8RXO6DH9Bg==}
- peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
- '@types/react-dom':
- optional: true
-
- '@radix-ui/react-direction@1.1.0':
- resolution: {integrity: sha512-BUuBvgThEiAXh2DWu93XsT+a3aWrGqolGlqqw5VU1kG7p/ZH2cuDlM1sRLNnY3QcBS69UIz2mcKhMxDsdewhjg==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
- '@radix-ui/react-dismissable-layer@1.1.0':
- resolution: {integrity: sha512-/UovfmmXGptwGcBQawLzvn2jOfM0t4z3/uKffoBlj724+n3FvBbZ7M0aaBOmkp6pqFYpO4yx8tSVJjx3Fl2jig==}
- peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
- '@types/react-dom':
- optional: true
-
- '@radix-ui/react-focus-guards@1.1.0':
- resolution: {integrity: sha512-w6XZNUPVv6xCpZUqb/yN9DL6auvpGX3C/ee6Hdi16v2UUy25HV2Q5bcflsiDyT/g5RwbPQ/GIT1vLkeRb+ITBw==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
- '@radix-ui/react-focus-scope@1.1.0':
- resolution: {integrity: sha512-200UD8zylvEyL8Bx+z76RJnASR2gRMuxlgFCPAe/Q/679a/r0eK3MBVYMb7vZODZcffZBdob1EGnky78xmVvcA==}
- peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
- '@types/react-dom':
- optional: true
-
- '@radix-ui/react-id@1.1.0':
- resolution: {integrity: sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
- '@radix-ui/react-portal@1.1.1':
- resolution: {integrity: sha512-A3UtLk85UtqhzFqtoC8Q0KvR2GbXF3mtPgACSazajqq6A41mEQgo53iPzY4i6BwDxlIFqWIhiQ2G729n+2aw/g==}
- peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
- '@types/react-dom':
- optional: true
-
- '@radix-ui/react-presence@1.1.0':
- resolution: {integrity: sha512-Gq6wuRN/asf9H/E/VzdKoUtT8GC9PQc9z40/vEr0VCJ4u5XvvhWIrSsCB6vD2/cH7ugTdSfYq9fLJCcM00acrQ==}
- peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
- '@types/react-dom':
- optional: true
-
- '@radix-ui/react-primitive@2.0.0':
- resolution: {integrity: sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==}
- peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
- '@types/react-dom':
- optional: true
-
- '@radix-ui/react-scroll-area@1.1.0':
- resolution: {integrity: sha512-9ArIZ9HWhsrfqS765h+GZuLoxaRHD/j0ZWOWilsCvYTpYJp8XwCqNG7Dt9Nu/TItKOdgLGkOPCodQvDc+UMwYg==}
- peerDependencies:
- '@types/react': '*'
- '@types/react-dom': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
- '@types/react-dom':
- optional: true
-
'@radix-ui/react-slot@1.1.0':
resolution: {integrity: sha512-FUCf5XMfmW4dtYl69pdS4DbxKy8nj4M7SafBgPllysxmdachynNflAdp/gCsnYWNDnge6tI9onzMp5ARYc1KNw==}
peerDependencies:
@@ -786,42 +647,6 @@ packages:
'@types/react':
optional: true
- '@radix-ui/react-use-callback-ref@1.1.0':
- resolution: {integrity: sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
- '@radix-ui/react-use-controllable-state@1.1.0':
- resolution: {integrity: sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
- '@radix-ui/react-use-escape-keydown@1.1.0':
- resolution: {integrity: sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
- '@radix-ui/react-use-layout-effect@1.1.0':
- resolution: {integrity: sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==}
- peerDependencies:
- '@types/react': '*'
- react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
'@rollup/pluginutils@4.2.1':
resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==}
engines: {node: '>= 8.0.0'}
@@ -1118,10 +943,6 @@ packages:
argparse@2.0.1:
resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
- aria-hidden@1.2.4:
- resolution: {integrity: sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==}
- engines: {node: '>=10'}
-
aria-query@5.3.0:
resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==}
@@ -1357,9 +1178,6 @@ packages:
resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==}
engines: {node: '>=8'}
- detect-node-es@1.1.0:
- resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==}
-
deterministic-object-hash@2.0.2:
resolution: {integrity: sha512-KxektNH63SrbfUyDiwXqRb1rLwKt33AmMv+5Nhsw1kqZ13SJBRTgZHtGbE+hH3a1mVW1cz+4pqSWVPAtLVXTzQ==}
engines: {node: '>=18'}
@@ -1555,10 +1373,6 @@ packages:
resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==}
engines: {node: '>=18'}
- get-nonce@1.0.1:
- resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==}
- engines: {node: '>=6'}
-
get-stream@8.0.1:
resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==}
engines: {node: '>=16'}
@@ -1687,9 +1501,6 @@ packages:
inline-style-parser@0.2.3:
resolution: {integrity: sha512-qlD8YNDqyTKTyuITrDOffsl6Tdhv+UC4hcdAVuQsK4IMQ99nSgd1MIA/Q+jQYoh9r3hVUXhYh7urSRmXPkW04g==}
- invariant@2.2.4:
- resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==}
-
is-alphabetical@2.0.1:
resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==}
@@ -2379,36 +2190,6 @@ packages:
resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==}
engines: {node: '>=0.10.0'}
- react-remove-scroll-bar@2.3.6:
- resolution: {integrity: sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==}
- engines: {node: '>=10'}
- peerDependencies:
- '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0
- react: ^16.8.0 || ^17.0.0 || ^18.0.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
- react-remove-scroll@2.5.7:
- resolution: {integrity: sha512-FnrTWO4L7/Bhhf3CYBNArEG/yROV0tKmTv7/3h9QCFvH6sndeFf1wPqOcbFVu5VAulS5dV1wGT3GZZ/1GawqiA==}
- engines: {node: '>=10'}
- peerDependencies:
- '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0
- react: ^16.8.0 || ^17.0.0 || ^18.0.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
- react-style-singleton@2.2.1:
- resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==}
- engines: {node: '>=10'}
- peerDependencies:
- '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0
- react: ^16.8.0 || ^17.0.0 || ^18.0.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
react@18.3.1:
resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==}
engines: {node: '>=0.10.0'}
@@ -2780,26 +2561,6 @@ packages:
peerDependencies:
browserslist: '>= 4.21.0'
- use-callback-ref@1.3.2:
- resolution: {integrity: sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==}
- engines: {node: '>=10'}
- peerDependencies:
- '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0
- react: ^16.8.0 || ^17.0.0 || ^18.0.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
- use-sidecar@1.1.2:
- resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==}
- engines: {node: '>=10'}
- peerDependencies:
- '@types/react': ^16.9.0 || ^17.0.0 || ^18.0.0
- react: ^16.8.0 || ^17.0.0 || ^18.0.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
util-deprecate@1.0.2:
resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
@@ -3608,133 +3369,12 @@ snapshots:
'@pkgjs/parseargs@0.11.0':
optional: true
- '@radix-ui/number@1.1.0': {}
-
- '@radix-ui/primitive@1.1.0': {}
-
'@radix-ui/react-compose-refs@1.1.0(@types/react@18.3.3)(react@18.3.1)':
dependencies:
react: 18.3.1
optionalDependencies:
'@types/react': 18.3.3
- '@radix-ui/react-context@1.1.0(@types/react@18.3.3)(react@18.3.1)':
- dependencies:
- react: 18.3.1
- optionalDependencies:
- '@types/react': 18.3.3
-
- '@radix-ui/react-dialog@1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
- dependencies:
- '@radix-ui/primitive': 1.1.0
- '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- '@radix-ui/react-context': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- '@radix-ui/react-dismissable-layer': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@radix-ui/react-focus-guards': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- '@radix-ui/react-focus-scope': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@radix-ui/react-id': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- '@radix-ui/react-portal': 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@radix-ui/react-presence': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@radix-ui/react-slot': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- aria-hidden: 1.2.4
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- react-remove-scroll: 2.5.7(@types/react@18.3.3)(react@18.3.1)
- optionalDependencies:
- '@types/react': 18.3.3
- '@types/react-dom': 18.3.0
-
- '@radix-ui/react-direction@1.1.0(@types/react@18.3.3)(react@18.3.1)':
- dependencies:
- react: 18.3.1
- optionalDependencies:
- '@types/react': 18.3.3
-
- '@radix-ui/react-dismissable-layer@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
- dependencies:
- '@radix-ui/primitive': 1.1.0
- '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- optionalDependencies:
- '@types/react': 18.3.3
- '@types/react-dom': 18.3.0
-
- '@radix-ui/react-focus-guards@1.1.0(@types/react@18.3.3)(react@18.3.1)':
- dependencies:
- react: 18.3.1
- optionalDependencies:
- '@types/react': 18.3.3
-
- '@radix-ui/react-focus-scope@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
- dependencies:
- '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- optionalDependencies:
- '@types/react': 18.3.3
- '@types/react-dom': 18.3.0
-
- '@radix-ui/react-id@1.1.0(@types/react@18.3.3)(react@18.3.1)':
- dependencies:
- '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- react: 18.3.1
- optionalDependencies:
- '@types/react': 18.3.3
-
- '@radix-ui/react-portal@1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
- dependencies:
- '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- optionalDependencies:
- '@types/react': 18.3.3
- '@types/react-dom': 18.3.0
-
- '@radix-ui/react-presence@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
- dependencies:
- '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- optionalDependencies:
- '@types/react': 18.3.3
- '@types/react-dom': 18.3.0
-
- '@radix-ui/react-primitive@2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
- dependencies:
- '@radix-ui/react-slot': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- optionalDependencies:
- '@types/react': 18.3.3
- '@types/react-dom': 18.3.0
-
- '@radix-ui/react-scroll-area@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
- dependencies:
- '@radix-ui/number': 1.1.0
- '@radix-ui/primitive': 1.1.0
- '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- '@radix-ui/react-context': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- '@radix-ui/react-direction': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- '@radix-ui/react-presence': 1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
- '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- react: 18.3.1
- react-dom: 18.3.1(react@18.3.1)
- optionalDependencies:
- '@types/react': 18.3.3
- '@types/react-dom': 18.3.0
-
'@radix-ui/react-slot@1.1.0(@types/react@18.3.3)(react@18.3.1)':
dependencies:
'@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.3)(react@18.3.1)
@@ -3742,32 +3382,6 @@ snapshots:
optionalDependencies:
'@types/react': 18.3.3
- '@radix-ui/react-use-callback-ref@1.1.0(@types/react@18.3.3)(react@18.3.1)':
- dependencies:
- react: 18.3.1
- optionalDependencies:
- '@types/react': 18.3.3
-
- '@radix-ui/react-use-controllable-state@1.1.0(@types/react@18.3.3)(react@18.3.1)':
- dependencies:
- '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- react: 18.3.1
- optionalDependencies:
- '@types/react': 18.3.3
-
- '@radix-ui/react-use-escape-keydown@1.1.0(@types/react@18.3.3)(react@18.3.1)':
- dependencies:
- '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.3)(react@18.3.1)
- react: 18.3.1
- optionalDependencies:
- '@types/react': 18.3.3
-
- '@radix-ui/react-use-layout-effect@1.1.0(@types/react@18.3.3)(react@18.3.1)':
- dependencies:
- react: 18.3.1
- optionalDependencies:
- '@types/react': 18.3.3
-
'@rollup/pluginutils@4.2.1':
dependencies:
estree-walker: 2.0.2
@@ -4075,10 +3689,6 @@ snapshots:
argparse@2.0.1: {}
- aria-hidden@1.2.4:
- dependencies:
- tslib: 2.6.3
-
aria-query@5.3.0:
dependencies:
dequal: 2.0.3
@@ -4363,8 +3973,6 @@ snapshots:
detect-libc@2.0.3: {}
- detect-node-es@1.1.0: {}
-
deterministic-object-hash@2.0.2:
dependencies:
base-64: 1.0.0
@@ -4581,8 +4189,6 @@ snapshots:
get-east-asian-width@1.2.0: {}
- get-nonce@1.0.1: {}
-
get-stream@8.0.1: {}
github-slugger@2.0.0: {}
@@ -4806,10 +4412,6 @@ snapshots:
inline-style-parser@0.2.3: {}
- invariant@2.2.4:
- dependencies:
- loose-envify: 1.4.0
-
is-alphabetical@2.0.1: {}
is-alphanumerical@2.0.1:
@@ -5700,34 +5302,6 @@ snapshots:
react-refresh@0.14.2: {}
- react-remove-scroll-bar@2.3.6(@types/react@18.3.3)(react@18.3.1):
- dependencies:
- react: 18.3.1
- react-style-singleton: 2.2.1(@types/react@18.3.3)(react@18.3.1)
- tslib: 2.6.3
- optionalDependencies:
- '@types/react': 18.3.3
-
- react-remove-scroll@2.5.7(@types/react@18.3.3)(react@18.3.1):
- dependencies:
- react: 18.3.1
- react-remove-scroll-bar: 2.3.6(@types/react@18.3.3)(react@18.3.1)
- react-style-singleton: 2.2.1(@types/react@18.3.3)(react@18.3.1)
- tslib: 2.6.3
- use-callback-ref: 1.3.2(@types/react@18.3.3)(react@18.3.1)
- use-sidecar: 1.1.2(@types/react@18.3.3)(react@18.3.1)
- optionalDependencies:
- '@types/react': 18.3.3
-
- react-style-singleton@2.2.1(@types/react@18.3.3)(react@18.3.1):
- dependencies:
- get-nonce: 1.0.1
- invariant: 2.2.4
- react: 18.3.1
- tslib: 2.6.3
- optionalDependencies:
- '@types/react': 18.3.3
-
react@18.3.1:
dependencies:
loose-envify: 1.4.0
@@ -6147,7 +5721,8 @@ snapshots:
optionalDependencies:
typescript: 5.5.2
- tslib@2.6.3: {}
+ tslib@2.6.3:
+ optional: true
type-fest@2.19.0: {}
@@ -6225,21 +5800,6 @@ snapshots:
escalade: 3.1.2
picocolors: 1.0.1
- use-callback-ref@1.3.2(@types/react@18.3.3)(react@18.3.1):
- dependencies:
- react: 18.3.1
- tslib: 2.6.3
- optionalDependencies:
- '@types/react': 18.3.3
-
- use-sidecar@1.1.2(@types/react@18.3.3)(react@18.3.1):
- dependencies:
- detect-node-es: 1.1.0
- react: 18.3.1
- tslib: 2.6.3
- optionalDependencies:
- '@types/react': 18.3.3
-
util-deprecate@1.0.2: {}
vfile-location@5.0.2:
diff --git a/src/components/ navigation.tsx b/src/components/ navigation.tsx
new file mode 100644
index 0000000..1891976
--- /dev/null
+++ b/src/components/ navigation.tsx
@@ -0,0 +1,102 @@
+import LinkButton from "@/components/link-button";
+import {
+ NotebookText,
+ BriefcaseBusiness,
+ MonitorPlay,
+ Newspaper,
+ PocketKnife,
+ Info,
+ Mail,
+} from "lucide-react";
+
+type TNavItem = {
+ to: string;
+ child: React.ReactNode;
+};
+
+export const navItems: TNavItem[] = [
+ {
+ to: "/blog",
+ child: (
+ <>
+
+ Blog
+ >
+ ),
+ },
+ {
+ to: "/portfolio",
+ child: (
+ <>
+
+ Portfolio
+ >
+ ),
+ },
+ {
+ to: "/videos",
+ child: (
+ <>
+
+ Videos
+ >
+ ),
+ },
+ {
+ to: "/microblog",
+ child: (
+ <>
+
+ Microblog
+ >
+ ),
+ },
+ {
+ to: "/resources",
+ child: (
+ <>
+
+ Resources
+ >
+ ),
+ },
+ {
+ to: "/about",
+ child: (
+ <>
+
+ About
+ >
+ ),
+ },
+ {
+ to: "/contact",
+ child: (
+ <>
+
+ Contact
+ >
+ ),
+ },
+];
+
+export default function Navigation() {
+ return (
+
+ );
+}
diff --git a/src/components/header.astro b/src/components/header.astro
new file mode 100644
index 0000000..eed1a9e
--- /dev/null
+++ b/src/components/header.astro
@@ -0,0 +1,42 @@
+---
+import logo from "@/assets/logo.png";
+import { Image } from "astro:assets";
+import LinkButton from "@/components/link-button";
+import { ChevronUp, Compass } from "lucide-react";
+---
+
+
diff --git a/src/components/mdx/astro-image.astro b/src/components/mdx/astro-image.astro
index f2b2806..ad01068 100644
--- a/src/components/mdx/astro-image.astro
+++ b/src/components/mdx/astro-image.astro
@@ -5,16 +5,16 @@ const { src, alt } = Astro.props;
---
diff --git a/src/components/mobile-menu.tsx b/src/components/mobile-menu.tsx
deleted file mode 100644
index 274934d..0000000
--- a/src/components/mobile-menu.tsx
+++ /dev/null
@@ -1,54 +0,0 @@
-import { ScrollArea } from "@/components/ui/scroll-area";
-import {
- Sheet,
- SheetContent,
- SheetHeader,
- SheetTrigger,
- SheetClose,
-} from "@/components/ui/sheet";
-import { MenuIcon } from "lucide-react";
-import { navItems } from "@/utils/nav-links";
-import { Button } from "@/components/ui/button";
-
-export default function MobileMenu() {
- return (
-
-
-
-
-
-
-
-
-
-
-
-
- );
-}
diff --git a/src/components/navbar.astro b/src/components/navbar.astro
deleted file mode 100644
index 2a8bc31..0000000
--- a/src/components/navbar.astro
+++ /dev/null
@@ -1,53 +0,0 @@
----
-import logo from "@/assets/logo.png";
-import { Image } from "astro:assets";
-import { navItems } from "@/utils/nav-links";
-import MobileMenu from "@/components/mobile-menu";
-import LinkButton from "@/components/link-button";
----
-
-
diff --git a/src/components/ui/scroll-area.tsx b/src/components/ui/scroll-area.tsx
deleted file mode 100644
index cf253cf..0000000
--- a/src/components/ui/scroll-area.tsx
+++ /dev/null
@@ -1,46 +0,0 @@
-import * as React from "react"
-import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area"
-
-import { cn } from "@/lib/utils"
-
-const ScrollArea = React.forwardRef<
- React.ElementRef,
- React.ComponentPropsWithoutRef
->(({ className, children, ...props }, ref) => (
-
-
- {children}
-
-
-
-
-))
-ScrollArea.displayName = ScrollAreaPrimitive.Root.displayName
-
-const ScrollBar = React.forwardRef<
- React.ElementRef,
- React.ComponentPropsWithoutRef
->(({ className, orientation = "vertical", ...props }, ref) => (
-
-
-
-))
-ScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName
-
-export { ScrollArea, ScrollBar }
diff --git a/src/components/ui/sheet.tsx b/src/components/ui/sheet.tsx
deleted file mode 100644
index d64a6fa..0000000
--- a/src/components/ui/sheet.tsx
+++ /dev/null
@@ -1,138 +0,0 @@
-import * as React from "react"
-import * as SheetPrimitive from "@radix-ui/react-dialog"
-import { cva, type VariantProps } from "class-variance-authority"
-import { X } from "lucide-react"
-
-import { cn } from "@/lib/utils"
-
-const Sheet = SheetPrimitive.Root
-
-const SheetTrigger = SheetPrimitive.Trigger
-
-const SheetClose = SheetPrimitive.Close
-
-const SheetPortal = SheetPrimitive.Portal
-
-const SheetOverlay = React.forwardRef<
- React.ElementRef,
- React.ComponentPropsWithoutRef
->(({ className, ...props }, ref) => (
-
-))
-SheetOverlay.displayName = SheetPrimitive.Overlay.displayName
-
-const sheetVariants = cva(
- "fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500",
- {
- variants: {
- side: {
- top: "inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",
- bottom:
- "inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",
- left: "inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm",
- right:
- "inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm",
- },
- },
- defaultVariants: {
- side: "right",
- },
- }
-)
-
-interface SheetContentProps
- extends React.ComponentPropsWithoutRef,
- VariantProps {}
-
-const SheetContent = React.forwardRef<
- React.ElementRef,
- SheetContentProps
->(({ side = "right", className, children, ...props }, ref) => (
-
-
-
- {children}
-
-
- Close
-
-
-
-))
-SheetContent.displayName = SheetPrimitive.Content.displayName
-
-const SheetHeader = ({
- className,
- ...props
-}: React.HTMLAttributes) => (
-
-)
-SheetHeader.displayName = "SheetHeader"
-
-const SheetFooter = ({
- className,
- ...props
-}: React.HTMLAttributes) => (
-
-)
-SheetFooter.displayName = "SheetFooter"
-
-const SheetTitle = React.forwardRef<
- React.ElementRef,
- React.ComponentPropsWithoutRef
->(({ className, ...props }, ref) => (
-
-))
-SheetTitle.displayName = SheetPrimitive.Title.displayName
-
-const SheetDescription = React.forwardRef<
- React.ElementRef,
- React.ComponentPropsWithoutRef
->(({ className, ...props }, ref) => (
-
-))
-SheetDescription.displayName = SheetPrimitive.Description.displayName
-
-export {
- Sheet,
- SheetPortal,
- SheetOverlay,
- SheetTrigger,
- SheetClose,
- SheetContent,
- SheetHeader,
- SheetFooter,
- SheetTitle,
- SheetDescription,
-}
diff --git a/src/content/pages/resources.mdx b/src/content/pages/resources.mdx
index a7e282a..103b803 100644
--- a/src/content/pages/resources.mdx
+++ b/src/content/pages/resources.mdx
@@ -1,30 +1,31 @@
---
title: Resources
-description: Here you can find websites, YouTube channels, courses and more stuff that I consume or find interesting.
+description:
+ Here you can find websites, YouTube channels, courses and more stuff that I
+ consume or find interesting.
---
# Resources
-Here you can find websites, YouTube channels, courses and more stuff that I
-consume or find interesting.
+Here you can find **websites**, **YouTube channels**, **courses** and **more**
+stuff that I consume or find interesting.
-## Programming and Web Development
+## Courses and Documentation
-To **power-up** my career.
+- [fireship.io](https://fireship.io)
-### Websites (courses, docs, etc.)
+- [MDN Web Docs](https://developer.mozilla.org/en-US)
-- [fireship.io](https://fireship.io) - My favorite premium courses about WebDev
+## Tech Stack
-- [MDN Web Docs](https://developer.mozilla.org/en-US) - Best docs for HTML, CSS
- and JS
-
-### Tech Stack
-
-Technologies that I use for personal projects and sometimes for work.
+- [Astro](https://astro.build/) - Tool for building websites, that's how I built
+ this one, really useful when you want a static website, but you can do Server
+ Side Rendering too
- [Next.js](https://nextjs.org) - Dynamic and flexible React meta-framework,
- used on this Website
+ previously used on this Website
+
+- [PocketBase](https://pocketbase.io/) - Fast and light database.
- [Supabase](https://supabase.com) - Open Source Backend as a Service
alternative for Firebase, uses PostgreSQL and is really good if you're working
@@ -35,34 +36,26 @@ Technologies that I use for personal projects and sometimes for work.
- [shadcn/ui](https://ui.shadcn.com) - Best components for React, sinergy with
TailwindCSS
+## YouTube channels
-### YouTube channels
+- [Mental Outlaw](https://www.youtube.com/channel/UC7YOGHUfC1Tb6E4pudI9STA)
-I mostly use YouTube as social media, I think there is still good content.
+- [Eric Murphy](https://www.youtube.com/channel/UC5KDiSAFxrDWhmysBcNqtMA)
-- [Mental Outlaw](https://www.youtube.com/channel/UC7YOGHUfC1Tb6E4pudI9STA) - Cool guy who talks about Linux, cybersecurity, privacy, and more.
+- [Luck Smith](https://www.youtube.com/channel/UC2eYFnH61tmytImy1mTYvhA)
-- [Eric Murphy](https://www.youtube.com/channel/UC5KDiSAFxrDWhmysBcNqtMA) - He uploads less videos but I really like his work too.
+## Personal Websites
----
+- [Eric Murphy](https://ericmurphy.xyz)
-## Inspiration and Learning
+- [Luke Smith](https://lukesmith.xyz/)
-For writing, thinking or growing my career.
+## Favorite Blogs
-### Personal Websites
-
-- [Eric Murphy](https://ericmurphy.xyz) - The guy who inspired me to retake this
- side project and create more content
-
-### Favorite Blogs
-
-- [Why I Will Never Join Mastodon (or the rest of the Fediverse)](https://ericmurphy.xyz/blog/mastodon) -
- Social media is bullshit
+- [Why I Will Never Join Mastodon (or the rest of the Fediverse)](https://ericmurphy.xyz/blog/mastodon)
- [Create More, Consume Less](https://www.bikobatanari.art/posts/2020/create-more) -
- Today people prefers talk about celebrities and other peoples lifes rather
- than our own milestones
+ _Currently offline_
- [My Website is a Personal Museum](https://www.bikobatanari.art/posts/2020/personal-museum) -
- The digital form of the three house
+ _Currently offline_
diff --git a/src/layouts/Layout.astro b/src/layouts/Layout.astro
index 2252a4d..1c6f461 100644
--- a/src/layouts/Layout.astro
+++ b/src/layouts/Layout.astro
@@ -1,12 +1,13 @@
---
+import Header from "@/components/header.astro";
+import Navigation from "@/components/ navigation";
import Footer from "@/components/footer";
-import Navbar from "@/components/navbar.astro";
import "@/styles/globals.css";
interface Props {
- title: string;
- description: string;
- lang?: string;
+ title: string;
+ description: string;
+ lang?: string;
}
const { title, description, lang } = Astro.props;
@@ -14,32 +15,33 @@ const { title, description, lang } = Astro.props;
-
-
-
-
-
-
-
-
-
- {title}
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+ {title}
+
+
+
+
+
+
+
+
+
diff --git a/src/utils/nav-links.ts b/src/utils/nav-links.ts
deleted file mode 100644
index 68b3925..0000000
--- a/src/utils/nav-links.ts
+++ /dev/null
@@ -1,35 +0,0 @@
-type TNavItem = {
- label: string;
- to: string;
-};
-
-export const navItems: TNavItem[] = [
- {
- label: "Blog",
- to: "/blog",
- },
- {
- label: "Portfolio",
- to: "/portfolio",
- },
- {
- label: "Videos",
- to: "/videos",
- },
- {
- label: "Microblog",
- to: "/microblog",
- },
- {
- label: "Resources",
- to: "/resources",
- },
- {
- label: "About",
- to: "/about",
- },
- {
- label: "Contact",
- to: "/contact",
- },
-];