Removing melt-ui and just using bits-ui.

This commit is contained in:
Bradley Shellnut 2024-12-06 16:59:18 -08:00
parent 350c6465c3
commit 57b428761c
7 changed files with 245 additions and 300 deletions

View file

@ -22,12 +22,8 @@
"@iconify-icons/mdi": "^1.2.48", "@iconify-icons/mdi": "^1.2.48",
"@iconify-icons/radix-icons": "^1.2.9", "@iconify-icons/radix-icons": "^1.2.9",
"@iconify-icons/simple-icons": "^1.2.74", "@iconify-icons/simple-icons": "^1.2.74",
"@melt-ui/pp": "^0.3.2",
"@melt-ui/svelte": "^0.86.2",
"@playwright/test": "^1.49.0", "@playwright/test": "^1.49.0",
"@sveltejs/adapter-auto": "^3.3.1",
"@sveltejs/adapter-node": "^5.2.9", "@sveltejs/adapter-node": "^5.2.9",
"@sveltejs/adapter-static": "^3.0.6",
"@sveltejs/enhanced-img": "^0.4.1", "@sveltejs/enhanced-img": "^0.4.1",
"@sveltejs/kit": "^2.9.0", "@sveltejs/kit": "^2.9.0",
"@sveltejs/vite-plugin-svelte": "^5.0.1", "@sveltejs/vite-plugin-svelte": "^5.0.1",
@ -41,7 +37,6 @@
"postcss-import": "^16.1.0", "postcss-import": "^16.1.0",
"postcss-load-config": "^5.1.0", "postcss-load-config": "^5.1.0",
"postcss-preset-env": "^9.6.0", "postcss-preset-env": "^9.6.0",
"sass": "^1.81.1",
"satori": "^0.10.14", "satori": "^0.10.14",
"satori-html": "^0.3.2", "satori-html": "^0.3.2",
"scrape-it": "^6.1.3", "scrape-it": "^6.1.3",
@ -65,7 +60,7 @@
"@types/nprogress": "^0.2.3", "@types/nprogress": "^0.2.3",
"@unpic/svelte": "^0.0.56", "@unpic/svelte": "^0.0.56",
"@vercel/og": "^0.6.4", "@vercel/og": "^0.6.4",
"bits-ui": "^0.21.16", "bits-ui": "1.0.0-next.66",
"flexsearch": "^0.7.43", "flexsearch": "^0.7.43",
"ioredis": "^5.4.1", "ioredis": "^5.4.1",
"lucide-svelte": "^0.462.0", "lucide-svelte": "^0.462.0",

View file

@ -13,19 +13,19 @@ importers:
version: 2.6.2 version: 2.6.2
'@sveltejs/adapter-vercel': '@sveltejs/adapter-vercel':
specifier: ^5.5.0 specifier: ^5.5.0
version: 5.5.0(@sveltejs/kit@2.9.0(@sveltejs/vite-plugin-svelte@5.0.1(svelte@5.5.0)(vite@6.0.2(@types/node@20.7.0)(sass@1.81.1)(yaml@2.4.2)))(svelte@5.5.0)(vite@6.0.2(@types/node@20.7.0)(sass@1.81.1)(yaml@2.4.2))) version: 5.5.0(@sveltejs/kit@2.9.0(@sveltejs/vite-plugin-svelte@5.0.1(svelte@5.8.1)(vite@6.0.3(@types/node@20.7.0)(sass@1.82.0)(yaml@2.4.2)))(svelte@5.8.1)(vite@6.0.3(@types/node@20.7.0)(sass@1.82.0)(yaml@2.4.2)))
'@types/nprogress': '@types/nprogress':
specifier: ^0.2.3 specifier: ^0.2.3
version: 0.2.3 version: 0.2.3
'@unpic/svelte': '@unpic/svelte':
specifier: ^0.0.56 specifier: ^0.0.56
version: 0.0.56(svelte@5.5.0) version: 0.0.56(svelte@5.8.1)
'@vercel/og': '@vercel/og':
specifier: ^0.6.4 specifier: ^0.6.4
version: 0.6.4 version: 0.6.4
bits-ui: bits-ui:
specifier: ^0.21.16 specifier: 1.0.0-next.66
version: 0.21.16(svelte@5.5.0) version: 1.0.0-next.66(svelte@5.8.1)
flexsearch: flexsearch:
specifier: ^0.7.43 specifier: ^0.7.43
version: 0.7.43 version: 0.7.43
@ -34,13 +34,13 @@ importers:
version: 5.4.1 version: 5.4.1
lucide-svelte: lucide-svelte:
specifier: ^0.462.0 specifier: ^0.462.0
version: 0.462.0(svelte@5.5.0) version: 0.462.0(svelte@5.8.1)
nprogress: nprogress:
specifier: ^0.2.0 specifier: ^0.2.0
version: 0.2.0 version: 0.2.0
svelte-local-storage-store: svelte-local-storage-store:
specifier: ^0.6.4 specifier: ^0.6.4
version: 0.6.4(svelte@5.5.0) version: 0.6.4(svelte@5.8.1)
devDependencies: devDependencies:
'@biomejs/biome': '@biomejs/biome':
specifier: ^1.9.4 specifier: ^1.9.4
@ -57,36 +57,24 @@ importers:
'@iconify-icons/simple-icons': '@iconify-icons/simple-icons':
specifier: ^1.2.74 specifier: ^1.2.74
version: 1.2.74 version: 1.2.74
'@melt-ui/pp':
specifier: ^0.3.2
version: 0.3.2(@melt-ui/svelte@0.86.2(svelte@5.5.0))(svelte@5.5.0)
'@melt-ui/svelte':
specifier: ^0.86.2
version: 0.86.2(svelte@5.5.0)
'@playwright/test': '@playwright/test':
specifier: ^1.49.0 specifier: ^1.49.0
version: 1.49.0 version: 1.49.0
'@sveltejs/adapter-auto':
specifier: ^3.3.1
version: 3.3.1(@sveltejs/kit@2.9.0(@sveltejs/vite-plugin-svelte@5.0.1(svelte@5.5.0)(vite@6.0.2(@types/node@20.7.0)(sass@1.81.1)(yaml@2.4.2)))(svelte@5.5.0)(vite@6.0.2(@types/node@20.7.0)(sass@1.81.1)(yaml@2.4.2)))
'@sveltejs/adapter-node': '@sveltejs/adapter-node':
specifier: ^5.2.9 specifier: ^5.2.9
version: 5.2.9(@sveltejs/kit@2.9.0(@sveltejs/vite-plugin-svelte@5.0.1(svelte@5.5.0)(vite@6.0.2(@types/node@20.7.0)(sass@1.81.1)(yaml@2.4.2)))(svelte@5.5.0)(vite@6.0.2(@types/node@20.7.0)(sass@1.81.1)(yaml@2.4.2))) version: 5.2.9(@sveltejs/kit@2.9.0(@sveltejs/vite-plugin-svelte@5.0.1(svelte@5.8.1)(vite@6.0.3(@types/node@20.7.0)(sass@1.82.0)(yaml@2.4.2)))(svelte@5.8.1)(vite@6.0.3(@types/node@20.7.0)(sass@1.82.0)(yaml@2.4.2)))
'@sveltejs/adapter-static':
specifier: ^3.0.6
version: 3.0.6(@sveltejs/kit@2.9.0(@sveltejs/vite-plugin-svelte@5.0.1(svelte@5.5.0)(vite@6.0.2(@types/node@20.7.0)(sass@1.81.1)(yaml@2.4.2)))(svelte@5.5.0)(vite@6.0.2(@types/node@20.7.0)(sass@1.81.1)(yaml@2.4.2)))
'@sveltejs/enhanced-img': '@sveltejs/enhanced-img':
specifier: ^0.4.1 specifier: ^0.4.1
version: 0.4.1(rollup@4.21.3)(svelte@5.5.0)(vite@6.0.2(@types/node@20.7.0)(sass@1.81.1)(yaml@2.4.2)) version: 0.4.1(rollup@4.21.3)(svelte@5.8.1)(vite@6.0.3(@types/node@20.7.0)(sass@1.82.0)(yaml@2.4.2))
'@sveltejs/kit': '@sveltejs/kit':
specifier: ^2.9.0 specifier: ^2.9.0
version: 2.9.0(@sveltejs/vite-plugin-svelte@5.0.1(svelte@5.5.0)(vite@6.0.2(@types/node@20.7.0)(sass@1.81.1)(yaml@2.4.2)))(svelte@5.5.0)(vite@6.0.2(@types/node@20.7.0)(sass@1.81.1)(yaml@2.4.2)) version: 2.9.0(@sveltejs/vite-plugin-svelte@5.0.1(svelte@5.8.1)(vite@6.0.3(@types/node@20.7.0)(sass@1.82.0)(yaml@2.4.2)))(svelte@5.8.1)(vite@6.0.3(@types/node@20.7.0)(sass@1.82.0)(yaml@2.4.2))
'@sveltejs/vite-plugin-svelte': '@sveltejs/vite-plugin-svelte':
specifier: ^5.0.1 specifier: ^5.0.1
version: 5.0.1(svelte@5.5.0)(vite@6.0.2(@types/node@20.7.0)(sass@1.81.1)(yaml@2.4.2)) version: 5.0.1(svelte@5.8.1)(vite@6.0.3(@types/node@20.7.0)(sass@1.82.0)(yaml@2.4.2))
'@zerodevx/svelte-img': '@zerodevx/svelte-img':
specifier: ^2.1.2 specifier: ^2.1.2
version: 2.1.2(rollup@4.21.3)(svelte@5.5.0) version: 2.1.2(rollup@4.21.3)(svelte@5.8.1)
autoprefixer: autoprefixer:
specifier: ^10.4.20 specifier: ^10.4.20
version: 10.4.20(postcss@8.4.49) version: 10.4.20(postcss@8.4.49)
@ -98,7 +86,7 @@ importers:
version: 4.3.0 version: 4.3.0
mdsvex: mdsvex:
specifier: ^0.11.2 specifier: ^0.11.2
version: 0.11.2(svelte@5.5.0) version: 0.11.2(svelte@5.8.1)
mdsvex-relative-images: mdsvex-relative-images:
specifier: ^1.0.3 specifier: ^1.0.3
version: 1.0.3 version: 1.0.3
@ -114,9 +102,6 @@ importers:
postcss-preset-env: postcss-preset-env:
specifier: ^9.6.0 specifier: ^9.6.0
version: 9.6.0(postcss@8.4.49) version: 9.6.0(postcss@8.4.49)
sass:
specifier: ^1.81.1
version: 1.81.1
satori: satori:
specifier: ^0.10.14 specifier: ^0.10.14
version: 0.10.14 version: 0.10.14
@ -131,16 +116,16 @@ importers:
version: 0.33.5 version: 0.33.5
svelte: svelte:
specifier: ^5.5.0 specifier: ^5.5.0
version: 5.5.0 version: 5.8.1
svelte-check: svelte-check:
specifier: ^4.1.0 specifier: ^4.1.0
version: 4.1.0(picomatch@4.0.2)(svelte@5.5.0)(typescript@5.7.2) version: 4.1.1(picomatch@4.0.2)(svelte@5.8.1)(typescript@5.7.2)
svelte-meta-tags: svelte-meta-tags:
specifier: ^4.0.4 specifier: ^4.0.4
version: 4.0.4(svelte@5.5.0)(typescript@5.7.2) version: 4.0.4(svelte@5.8.1)(typescript@5.7.2)
svelte-preprocess: svelte-preprocess:
specifier: ^6.0.3 specifier: ^6.0.3
version: 6.0.3(postcss-load-config@5.1.0(postcss@8.4.49))(postcss@8.4.49)(sass@1.81.1)(svelte@5.5.0)(typescript@5.7.2) version: 6.0.3(postcss-load-config@5.1.0(postcss@8.4.49))(postcss@8.4.49)(sass@1.82.0)(svelte@5.8.1)(typescript@5.7.2)
svelte-sequential-preprocessor: svelte-sequential-preprocessor:
specifier: ^2.0.2 specifier: ^2.0.2
version: 2.0.2 version: 2.0.2
@ -155,13 +140,13 @@ importers:
version: 19.1.3 version: 19.1.3
vite: vite:
specifier: ^6.0.2 specifier: ^6.0.2
version: 6.0.2(@types/node@20.7.0)(sass@1.81.1)(yaml@2.4.2) version: 6.0.3(@types/node@20.7.0)(sass@1.82.0)(yaml@2.4.2)
vite-imagetools: vite-imagetools:
specifier: ^7.0.5 specifier: ^7.0.5
version: 7.0.5(rollup@4.21.3) version: 7.0.5(rollup@4.21.3)
vitest: vitest:
specifier: ^1.6.0 specifier: ^1.6.0
version: 1.6.0(@types/node@20.7.0)(sass@1.81.1) version: 1.6.0(@types/node@20.7.0)(sass@1.82.0)
packages: packages:
@ -747,14 +732,14 @@ packages:
cpu: [x64] cpu: [x64]
os: [win32] os: [win32]
'@floating-ui/core@1.6.0': '@floating-ui/core@1.6.8':
resolution: {integrity: sha512-PcF++MykgmTj3CIyOQbKA/hDzOAiqI3mhuoN44WRCopIs1sgoDoU4oty4Jtqaj/y3oDU6fnVSm4QG0a3t5i0+g==} resolution: {integrity: sha512-7XJ9cPU+yI2QeLS+FCSlqNFZJq8arvswefkZrYI1yQBbftw6FyrZOxYSh+9S7z7TpeWlRt9zJ5IhM1WIL334jA==}
'@floating-ui/dom@1.6.3': '@floating-ui/dom@1.6.12':
resolution: {integrity: sha512-RnDthu3mzPlQ31Ss/BTwQ1zjzIhr3lk1gZB1OC56h/1vEtaXkESrOqL5fQVMfXpwGtRwX+YsZBdyHtJMQnkArw==} resolution: {integrity: sha512-NP83c0HjokcGVEMeoStg317VD9W7eDlGK7457dMBANbKA6GJZdc7rjujdgqzTaz93jkGgc5P/jeWbaCHnMNc+w==}
'@floating-ui/utils@0.2.1': '@floating-ui/utils@0.2.8':
resolution: {integrity: sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q==} resolution: {integrity: sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==}
'@iconify-icons/material-symbols@1.2.58': '@iconify-icons/material-symbols@1.2.58':
resolution: {integrity: sha512-v0ZfPXlmDcDPCejxhg5h2eHCEHClrpn+i44Ev766vkzPIEFRdgT+YK942KzyqBpH0RhKJfel4OZdL1DY1oa5Qg==} resolution: {integrity: sha512-v0ZfPXlmDcDPCejxhg5h2eHCEHClrpn+i44Ev766vkzPIEFRdgT+YK942KzyqBpH0RhKJfel4OZdL1DY1oa5Qg==}
@ -876,8 +861,8 @@ packages:
cpu: [x64] cpu: [x64]
os: [win32] os: [win32]
'@internationalized/date@3.5.2': '@internationalized/date@3.6.0':
resolution: {integrity: sha512-vo1yOMUt2hzp63IutEaTUxROdvQg1qlMRsbCvbay2AK2Gai7wIgCyK5weEX3nHkiLgo4qCXHijFNC/ILhlRpOQ==} resolution: {integrity: sha512-+z6ti+CcJnRlLHok/emGEsWQhe7kfSmEW+/6qCzvKY67YPh7YOBfvc7+/+NXq+zJlbArg30tYpqLjNgcAYv2YQ==}
'@ioredis/commands@1.2.0': '@ioredis/commands@1.2.0':
resolution: {integrity: sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==} resolution: {integrity: sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==}
@ -911,22 +896,6 @@ packages:
resolution: {integrity: sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==} resolution: {integrity: sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==}
hasBin: true hasBin: true
'@melt-ui/pp@0.3.2':
resolution: {integrity: sha512-xKkPvaIAFinklLXcQOpwZ8YSpqAFxykjWf8Y/fSJQwsixV/0rcFs07hJ49hJjPy5vItvw5Qa0uOjzFUbXzBypQ==}
peerDependencies:
'@melt-ui/svelte': '>= 0.29.0'
svelte: ^3.55.0 || ^4.0.0 || ^5.0.0-next.1
'@melt-ui/svelte@0.76.2':
resolution: {integrity: sha512-7SbOa11tXUS95T3fReL+dwDs5FyJtCEqrqG3inRziDws346SYLsxOQ6HmX+4BkIsQh1R8U3XNa+EMmdMt38lMA==}
peerDependencies:
svelte: '>=3 <5'
'@melt-ui/svelte@0.86.2':
resolution: {integrity: sha512-wRVN603oIt1aXvx2QRmKqVDJgTScSvr/WJLLokkD8c4QzHgn6pfpPtUKmhV6Dvkk+OY89OG/1Irkd6ouA50Ztw==}
peerDependencies:
svelte: ^3.0.0 || ^4.0.0 || ^5.0.0-next.118
'@parcel/watcher-android-arm64@2.5.0': '@parcel/watcher-android-arm64@2.5.0':
resolution: {integrity: sha512-qlX4eS28bUcQCdribHkg/herLe+0A9RyYC+mm2PXpncit8z5b3nSqGVzMNR3CmtAOgRutiZ02eIJJgP/b1iEFQ==} resolution: {integrity: sha512-qlX4eS28bUcQCdribHkg/herLe+0A9RyYC+mm2PXpncit8z5b3nSqGVzMNR3CmtAOgRutiZ02eIJJgP/b1iEFQ==}
engines: {node: '>= 10.0.0'} engines: {node: '>= 10.0.0'}
@ -1324,21 +1293,11 @@ packages:
'@sinclair/typebox@0.27.8': '@sinclair/typebox@0.27.8':
resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==}
'@sveltejs/adapter-auto@3.3.1':
resolution: {integrity: sha512-5Sc7WAxYdL6q9j/+D0jJKjGREGlfIevDyHSQ2eNETHcB1TKlQWHcAo8AS8H1QdjNvSXpvOwNjykDUHPEAyGgdQ==}
peerDependencies:
'@sveltejs/kit': ^2.0.0
'@sveltejs/adapter-node@5.2.9': '@sveltejs/adapter-node@5.2.9':
resolution: {integrity: sha512-51euNrx0AcaTu8//wDfVh7xmqQSVgU52rfinE/MwvGkJa4nHPJMHmzv6+OIpmxg7gZaF6+5NVlxnieCzxLD59g==} resolution: {integrity: sha512-51euNrx0AcaTu8//wDfVh7xmqQSVgU52rfinE/MwvGkJa4nHPJMHmzv6+OIpmxg7gZaF6+5NVlxnieCzxLD59g==}
peerDependencies: peerDependencies:
'@sveltejs/kit': ^2.4.0 '@sveltejs/kit': ^2.4.0
'@sveltejs/adapter-static@3.0.6':
resolution: {integrity: sha512-MGJcesnJWj7FxDcB/GbrdYD3q24Uk0PIL4QIX149ku+hlJuj//nxUbb0HxUTpjkecWfHjVveSUnUaQWnPRXlpg==}
peerDependencies:
'@sveltejs/kit': ^2.0.0
'@sveltejs/adapter-vercel@5.5.0': '@sveltejs/adapter-vercel@5.5.0':
resolution: {integrity: sha512-r0IWvJ+qdaFaftKiFkoVqPhHvUZ29eQObBPkU4CtXQDSQPmilXchgD7fcswHlHEvkoUNx1dhFimdMPIY6vGK0g==} resolution: {integrity: sha512-r0IWvJ+qdaFaftKiFkoVqPhHvUZ29eQObBPkU4CtXQDSQPmilXchgD7fcswHlHEvkoUNx1dhFimdMPIY6vGK0g==}
peerDependencies: peerDependencies:
@ -1531,10 +1490,11 @@ packages:
bindings@1.5.0: bindings@1.5.0:
resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==}
bits-ui@0.21.16: bits-ui@1.0.0-next.66:
resolution: {integrity: sha512-XFZ7/bK7j/K+5iktxX/ZpmoFHjYjpPzP5EOO/4bWiaFg5TG1iMcfjDhlBTQnJxD6BoVoHuqeZPHZvaTgF4Iv3Q==} resolution: {integrity: sha512-2cvX2dhtlp79dq3D79sw/e/w2tib+ySI4RScXwSK9JLSOLVWgVM6XvnT3g8dYRSsSCnQ+hlTZ1ydJJc209HiZw==}
engines: {node: '>=18', pnpm: '>=8.7.0'}
peerDependencies: peerDependencies:
svelte: ^4.0.0 || ^5.0.0-next.118 svelte: ^5.0.0-next.1
boolbase@1.0.0: boolbase@1.0.0:
resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==}
@ -1578,10 +1538,6 @@ packages:
resolution: {integrity: sha512-quS9HgjQpdaXOvsZz82Oz7uxtXiy6UIsIQcpBj7HRw2M63Skasm9qlDocAM7jNuaxdhpPU7c4kJN+gA5MCu4ww==} resolution: {integrity: sha512-quS9HgjQpdaXOvsZz82Oz7uxtXiy6UIsIQcpBj7HRw2M63Skasm9qlDocAM7jNuaxdhpPU7c4kJN+gA5MCu4ww==}
engines: {node: '>=18.17'} engines: {node: '>=18.17'}
chokidar@4.0.0:
resolution: {integrity: sha512-mxIojEAQcuEvT/lyXq+jf/3cO/KoA6z4CeNDGGevTybECPOMFCnQy3OPahluUkbqgPNGw5Bi78UC7Po6Lhy+NA==}
engines: {node: '>= 14.16.0'}
chokidar@4.0.1: chokidar@4.0.1:
resolution: {integrity: sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==} resolution: {integrity: sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==}
engines: {node: '>= 14.16.0'} engines: {node: '>= 14.16.0'}
@ -1590,6 +1546,10 @@ packages:
resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==}
engines: {node: '>=10'} engines: {node: '>=10'}
clsx@2.1.1:
resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==}
engines: {node: '>=6'}
cluster-key-slot@1.1.2: cluster-key-slot@1.1.2:
resolution: {integrity: sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==} resolution: {integrity: sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==}
engines: {node: '>=0.10.0'} engines: {node: '>=0.10.0'}
@ -1839,9 +1799,6 @@ packages:
flexsearch@0.7.43: flexsearch@0.7.43:
resolution: {integrity: sha512-c5o/+Um8aqCSOXGcZoqZOm+NqtVwNsvVpWv6lfmSclU954O3wvQKxxK8zj74fPaSJbXpSLTs4PRhh+wnoCXnKg==} resolution: {integrity: sha512-c5o/+Um8aqCSOXGcZoqZOm+NqtVwNsvVpWv6lfmSclU954O3wvQKxxK8zj74fPaSJbXpSLTs4PRhh+wnoCXnKg==}
focus-trap@7.5.4:
resolution: {integrity: sha512-N7kHdlgsO/v+iD/dMoJKtsSqs5Dz/dXZVebRgJw23LDk+jMi/974zyiOYDziY2JPp8xivq9BmUGwIJMiuSBi7w==}
follow-redirects@1.15.3: follow-redirects@1.15.3:
resolution: {integrity: sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==} resolution: {integrity: sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==}
engines: {node: '>=4.0'} engines: {node: '>=4.0'}
@ -1954,6 +1911,9 @@ packages:
inherits@2.0.4: inherits@2.0.4:
resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
inline-style-parser@0.2.4:
resolution: {integrity: sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==}
ioredis@5.4.1: ioredis@5.4.1:
resolution: {integrity: sha512-2YZsvl7jopIa1gaePkeMtd9rAcSjOOjPtpcLlOeusyO+XH2SK5ZcT+UCrElPP+WVIInh2TzeI4XW9ENaSLVVHA==} resolution: {integrity: sha512-2YZsvl7jopIa1gaePkeMtd9rAcSjOOjPtpcLlOeusyO+XH2SK5ZcT+UCrElPP+WVIInh2TzeI4XW9ENaSLVVHA==}
engines: {node: '>=12.22.0'} engines: {node: '>=12.22.0'}
@ -2136,11 +2096,6 @@ packages:
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
hasBin: true hasBin: true
nanoid@5.0.7:
resolution: {integrity: sha512-oLxFY2gd2IqnjcYyOXD8XGCftpGtZP2AbHbOkthDkvRywH5ayNtPVy9YlOPcHckXzbLTCHpkb7FB+yuxKV13pQ==}
engines: {node: ^18 || >=20}
hasBin: true
node-addon-api@7.1.1: node-addon-api@7.1.1:
resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==}
@ -2523,6 +2478,11 @@ packages:
engines: {node: '>=18.0.0', npm: '>=8.0.0'} engines: {node: '>=18.0.0', npm: '>=8.0.0'}
hasBin: true hasBin: true
runed@0.15.4:
resolution: {integrity: sha512-kmbpstUd7v2FdlBM+MT78IyuOVd38tq/e7MHvVb0fnVCsPSPMD/m2Xh+wUhzg9qCJgxRjBbIKu68DlH/x5VXJA==}
peerDependencies:
svelte: ^5.0.0-next.1
sade@1.8.1: sade@1.8.1:
resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==}
engines: {node: '>=6'} engines: {node: '>=6'}
@ -2533,8 +2493,8 @@ packages:
safer-buffer@2.1.2: safer-buffer@2.1.2:
resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
sass@1.81.1: sass@1.82.0:
resolution: {integrity: sha512-VNLgf4FC5yFyKwAumAAwwNh8X4SevlVREq3Y8aDZIkm0lI/zO1feycMXQ4hn+eB6FVhRbleSQ1Yb/q8juSldTA==} resolution: {integrity: sha512-j4GMCTa8elGyN9A7x7bEglx0VgSpNUG4W4wNedQ33wSMdnkqQCT8HTwOaVSV4e6yQovcu/3Oc4coJP/l0xhL2Q==}
engines: {node: '>=14.0.0'} engines: {node: '>=14.0.0'}
hasBin: true hasBin: true
@ -2607,10 +2567,6 @@ packages:
sliced@1.0.1: sliced@1.0.1:
resolution: {integrity: sha512-VZBmZP8WU3sMOZm1bdgTadsQbcscK0UM8oKxKVBs4XAhUo2Xxzm/OFMGBkPusxw9xL3Uy8LrzEqGqJhclsr0yA==} resolution: {integrity: sha512-VZBmZP8WU3sMOZm1bdgTadsQbcscK0UM8oKxKVBs4XAhUo2Xxzm/OFMGBkPusxw9xL3Uy8LrzEqGqJhclsr0yA==}
source-map-js@1.2.0:
resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==}
engines: {node: '>=0.10.0'}
source-map-js@1.2.1: source-map-js@1.2.1:
resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
engines: {node: '>=0.10.0'} engines: {node: '>=0.10.0'}
@ -2648,12 +2604,15 @@ packages:
style-object-to-css-string@1.1.3: style-object-to-css-string@1.1.3:
resolution: {integrity: sha512-bISQoUsir/qGfo7vY8rw00ia9nnyE1jvYt3zZ2jhdkcXZ6dAEi74inMzQ6On57vFI+I4Fck6wOv5UI9BEwJDgw==} resolution: {integrity: sha512-bISQoUsir/qGfo7vY8rw00ia9nnyE1jvYt3zZ2jhdkcXZ6dAEi74inMzQ6On57vFI+I4Fck6wOv5UI9BEwJDgw==}
style-to-object@1.0.8:
resolution: {integrity: sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==}
supports-preserve-symlinks-flag@1.0.0: supports-preserve-symlinks-flag@1.0.0:
resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
engines: {node: '>= 0.4'} engines: {node: '>= 0.4'}
svelte-check@4.1.0: svelte-check@4.1.1:
resolution: {integrity: sha512-AflEZYqI578KuDZcpcorPSf597LStxlkN7XqXi38u09zlHODVKd7c+7OuubGzbhgGRUqNTdQCZ+Ga96iRXEf2g==} resolution: {integrity: sha512-NfaX+6Qtc8W/CyVGS/F7/XdiSSyXz+WGYA9ZWV3z8tso14V2vzjfXviKaTFEzB7g8TqfgO2FOzP6XT4ApSTUTw==}
engines: {node: '>= 18.0.0'} engines: {node: '>= 18.0.0'}
hasBin: true hasBin: true
peerDependencies: peerDependencies:
@ -2717,17 +2676,20 @@ packages:
resolution: {integrity: sha512-DIFm0kSNscVxtBmKkBiygAHB5otoqN1aVmJ3t57jZhJfCB7Np/lUSoTtSrvPFjmlBbMeOsb1VQ06cut1+rBYOg==} resolution: {integrity: sha512-DIFm0kSNscVxtBmKkBiygAHB5otoqN1aVmJ3t57jZhJfCB7Np/lUSoTtSrvPFjmlBbMeOsb1VQ06cut1+rBYOg==}
engines: {node: '>=16'} engines: {node: '>=16'}
svelte-toolbelt@0.4.6:
resolution: {integrity: sha512-k8OUvXBUifHZcAlWeY/HLg/4J0v5m2iOfOhn8fDmjt4AP8ZluaDh9eBFus9lFiLX6O5l6vKqI1dKL5wy7090NQ==}
engines: {node: '>=18', pnpm: '>=8.7.0'}
peerDependencies:
svelte: ^5.0.0-next.126
svelte@4.2.19: svelte@4.2.19:
resolution: {integrity: sha512-IY1rnGr6izd10B0A8LqsBfmlT5OILVuZ7XsI0vdGPEvuonFV7NYEUK4dAkm9Zg2q0Um92kYjTpS1CAP3Nh/KWw==} resolution: {integrity: sha512-IY1rnGr6izd10B0A8LqsBfmlT5OILVuZ7XsI0vdGPEvuonFV7NYEUK4dAkm9Zg2q0Um92kYjTpS1CAP3Nh/KWw==}
engines: {node: '>=16'} engines: {node: '>=16'}
svelte@5.5.0: svelte@5.8.1:
resolution: {integrity: sha512-yr3M6RYUPUOadCQCA35Tgg5Rt9y8SkqUyVhuobTEEKQWAO945Zj4nYxBs+3xv0gdpuZNdUfAE8vcg3zUg51rZw==} resolution: {integrity: sha512-tqJY46Xoe+KiKvD4/guNlqpE+jco4IBcuaM6Ei9SEMETtsbLMfbak9XjTacqd6aGMmWXh7uFInfFTd4yES5r0A==}
engines: {node: '>=18'} engines: {node: '>=18'}
tabbable@6.2.0:
resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==}
tar@6.2.1: tar@6.2.1:
resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==}
engines: {node: '>=10'} engines: {node: '>=10'}
@ -2865,8 +2827,8 @@ packages:
terser: terser:
optional: true optional: true
vite@6.0.2: vite@6.0.3:
resolution: {integrity: sha512-XdQ+VsY2tJpBsKGs0wf3U/+azx8BBpYRHFAyKm5VeEZNOJZRB63q7Sc8Iup3k0TrN3KO6QgyzFf+opSbfY1y0g==} resolution: {integrity: sha512-Cmuo5P0ENTN6HxLSo6IHsjCLn/81Vgrp81oaiFFMRa8gGDj5xEjIcEpf2ZymZtZR8oU0P2JX5WuUp/rlXcHkAw==}
engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
hasBin: true hasBin: true
peerDependencies: peerDependencies:
@ -3412,16 +3374,16 @@ snapshots:
'@esbuild/win32-x64@0.24.0': '@esbuild/win32-x64@0.24.0':
optional: true optional: true
'@floating-ui/core@1.6.0': '@floating-ui/core@1.6.8':
dependencies: dependencies:
'@floating-ui/utils': 0.2.1 '@floating-ui/utils': 0.2.8
'@floating-ui/dom@1.6.3': '@floating-ui/dom@1.6.12':
dependencies: dependencies:
'@floating-ui/core': 1.6.0 '@floating-ui/core': 1.6.8
'@floating-ui/utils': 0.2.1 '@floating-ui/utils': 0.2.8
'@floating-ui/utils@0.2.1': {} '@floating-ui/utils@0.2.8': {}
'@iconify-icons/material-symbols@1.2.58': '@iconify-icons/material-symbols@1.2.58':
dependencies: dependencies:
@ -3516,7 +3478,7 @@ snapshots:
'@img/sharp-win32-x64@0.33.5': '@img/sharp-win32-x64@0.33.5':
optional: true optional: true
'@internationalized/date@3.5.2': '@internationalized/date@3.6.0':
dependencies: dependencies:
'@swc/helpers': 0.5.10 '@swc/helpers': 0.5.10
@ -3560,33 +3522,6 @@ snapshots:
- encoding - encoding
- supports-color - supports-color
'@melt-ui/pp@0.3.2(@melt-ui/svelte@0.86.2(svelte@5.5.0))(svelte@5.5.0)':
dependencies:
'@melt-ui/svelte': 0.86.2(svelte@5.5.0)
estree-walker: 3.0.3
magic-string: 0.30.14
svelte: 5.5.0
'@melt-ui/svelte@0.76.2(svelte@5.5.0)':
dependencies:
'@floating-ui/core': 1.6.0
'@floating-ui/dom': 1.6.3
'@internationalized/date': 3.5.2
dequal: 2.0.3
focus-trap: 7.5.4
nanoid: 5.0.7
svelte: 5.5.0
'@melt-ui/svelte@0.86.2(svelte@5.5.0)':
dependencies:
'@floating-ui/core': 1.6.0
'@floating-ui/dom': 1.6.3
'@internationalized/date': 3.5.2
dequal: 2.0.3
focus-trap: 7.5.4
nanoid: 5.0.7
svelte: 5.5.0
'@parcel/watcher-android-arm64@2.5.0': '@parcel/watcher-android-arm64@2.5.0':
optional: true optional: true
@ -3865,46 +3800,37 @@ snapshots:
'@sinclair/typebox@0.27.8': {} '@sinclair/typebox@0.27.8': {}
'@sveltejs/adapter-auto@3.3.1(@sveltejs/kit@2.9.0(@sveltejs/vite-plugin-svelte@5.0.1(svelte@5.5.0)(vite@6.0.2(@types/node@20.7.0)(sass@1.81.1)(yaml@2.4.2)))(svelte@5.5.0)(vite@6.0.2(@types/node@20.7.0)(sass@1.81.1)(yaml@2.4.2)))': '@sveltejs/adapter-node@5.2.9(@sveltejs/kit@2.9.0(@sveltejs/vite-plugin-svelte@5.0.1(svelte@5.8.1)(vite@6.0.3(@types/node@20.7.0)(sass@1.82.0)(yaml@2.4.2)))(svelte@5.8.1)(vite@6.0.3(@types/node@20.7.0)(sass@1.82.0)(yaml@2.4.2)))':
dependencies:
'@sveltejs/kit': 2.9.0(@sveltejs/vite-plugin-svelte@5.0.1(svelte@5.5.0)(vite@6.0.2(@types/node@20.7.0)(sass@1.81.1)(yaml@2.4.2)))(svelte@5.5.0)(vite@6.0.2(@types/node@20.7.0)(sass@1.81.1)(yaml@2.4.2))
import-meta-resolve: 4.1.0
'@sveltejs/adapter-node@5.2.9(@sveltejs/kit@2.9.0(@sveltejs/vite-plugin-svelte@5.0.1(svelte@5.5.0)(vite@6.0.2(@types/node@20.7.0)(sass@1.81.1)(yaml@2.4.2)))(svelte@5.5.0)(vite@6.0.2(@types/node@20.7.0)(sass@1.81.1)(yaml@2.4.2)))':
dependencies: dependencies:
'@rollup/plugin-commonjs': 28.0.1(rollup@4.21.3) '@rollup/plugin-commonjs': 28.0.1(rollup@4.21.3)
'@rollup/plugin-json': 6.1.0(rollup@4.21.3) '@rollup/plugin-json': 6.1.0(rollup@4.21.3)
'@rollup/plugin-node-resolve': 15.3.0(rollup@4.21.3) '@rollup/plugin-node-resolve': 15.3.0(rollup@4.21.3)
'@sveltejs/kit': 2.9.0(@sveltejs/vite-plugin-svelte@5.0.1(svelte@5.5.0)(vite@6.0.2(@types/node@20.7.0)(sass@1.81.1)(yaml@2.4.2)))(svelte@5.5.0)(vite@6.0.2(@types/node@20.7.0)(sass@1.81.1)(yaml@2.4.2)) '@sveltejs/kit': 2.9.0(@sveltejs/vite-plugin-svelte@5.0.1(svelte@5.8.1)(vite@6.0.3(@types/node@20.7.0)(sass@1.82.0)(yaml@2.4.2)))(svelte@5.8.1)(vite@6.0.3(@types/node@20.7.0)(sass@1.82.0)(yaml@2.4.2))
rollup: 4.21.3 rollup: 4.21.3
'@sveltejs/adapter-static@3.0.6(@sveltejs/kit@2.9.0(@sveltejs/vite-plugin-svelte@5.0.1(svelte@5.5.0)(vite@6.0.2(@types/node@20.7.0)(sass@1.81.1)(yaml@2.4.2)))(svelte@5.5.0)(vite@6.0.2(@types/node@20.7.0)(sass@1.81.1)(yaml@2.4.2)))': '@sveltejs/adapter-vercel@5.5.0(@sveltejs/kit@2.9.0(@sveltejs/vite-plugin-svelte@5.0.1(svelte@5.8.1)(vite@6.0.3(@types/node@20.7.0)(sass@1.82.0)(yaml@2.4.2)))(svelte@5.8.1)(vite@6.0.3(@types/node@20.7.0)(sass@1.82.0)(yaml@2.4.2)))':
dependencies: dependencies:
'@sveltejs/kit': 2.9.0(@sveltejs/vite-plugin-svelte@5.0.1(svelte@5.5.0)(vite@6.0.2(@types/node@20.7.0)(sass@1.81.1)(yaml@2.4.2)))(svelte@5.5.0)(vite@6.0.2(@types/node@20.7.0)(sass@1.81.1)(yaml@2.4.2)) '@sveltejs/kit': 2.9.0(@sveltejs/vite-plugin-svelte@5.0.1(svelte@5.8.1)(vite@6.0.3(@types/node@20.7.0)(sass@1.82.0)(yaml@2.4.2)))(svelte@5.8.1)(vite@6.0.3(@types/node@20.7.0)(sass@1.82.0)(yaml@2.4.2))
'@sveltejs/adapter-vercel@5.5.0(@sveltejs/kit@2.9.0(@sveltejs/vite-plugin-svelte@5.0.1(svelte@5.5.0)(vite@6.0.2(@types/node@20.7.0)(sass@1.81.1)(yaml@2.4.2)))(svelte@5.5.0)(vite@6.0.2(@types/node@20.7.0)(sass@1.81.1)(yaml@2.4.2)))':
dependencies:
'@sveltejs/kit': 2.9.0(@sveltejs/vite-plugin-svelte@5.0.1(svelte@5.5.0)(vite@6.0.2(@types/node@20.7.0)(sass@1.81.1)(yaml@2.4.2)))(svelte@5.5.0)(vite@6.0.2(@types/node@20.7.0)(sass@1.81.1)(yaml@2.4.2))
'@vercel/nft': 0.27.1 '@vercel/nft': 0.27.1
esbuild: 0.24.0 esbuild: 0.24.0
transitivePeerDependencies: transitivePeerDependencies:
- encoding - encoding
- supports-color - supports-color
'@sveltejs/enhanced-img@0.4.1(rollup@4.21.3)(svelte@5.5.0)(vite@6.0.2(@types/node@20.7.0)(sass@1.81.1)(yaml@2.4.2))': '@sveltejs/enhanced-img@0.4.1(rollup@4.21.3)(svelte@5.8.1)(vite@6.0.3(@types/node@20.7.0)(sass@1.82.0)(yaml@2.4.2))':
dependencies: dependencies:
magic-string: 0.30.14 magic-string: 0.30.14
svelte: 5.5.0 svelte: 5.8.1
svelte-parse-markup: 0.1.5(svelte@5.5.0) svelte-parse-markup: 0.1.5(svelte@5.8.1)
vite: 6.0.2(@types/node@20.7.0)(sass@1.81.1)(yaml@2.4.2) vite: 6.0.3(@types/node@20.7.0)(sass@1.82.0)(yaml@2.4.2)
vite-imagetools: 7.0.5(rollup@4.21.3) vite-imagetools: 7.0.5(rollup@4.21.3)
zimmerframe: 1.1.2 zimmerframe: 1.1.2
transitivePeerDependencies: transitivePeerDependencies:
- rollup - rollup
'@sveltejs/kit@2.9.0(@sveltejs/vite-plugin-svelte@5.0.1(svelte@5.5.0)(vite@6.0.2(@types/node@20.7.0)(sass@1.81.1)(yaml@2.4.2)))(svelte@5.5.0)(vite@6.0.2(@types/node@20.7.0)(sass@1.81.1)(yaml@2.4.2))': '@sveltejs/kit@2.9.0(@sveltejs/vite-plugin-svelte@5.0.1(svelte@5.8.1)(vite@6.0.3(@types/node@20.7.0)(sass@1.82.0)(yaml@2.4.2)))(svelte@5.8.1)(vite@6.0.3(@types/node@20.7.0)(sass@1.82.0)(yaml@2.4.2))':
dependencies: dependencies:
'@sveltejs/vite-plugin-svelte': 5.0.1(svelte@5.5.0)(vite@6.0.2(@types/node@20.7.0)(sass@1.81.1)(yaml@2.4.2)) '@sveltejs/vite-plugin-svelte': 5.0.1(svelte@5.8.1)(vite@6.0.3(@types/node@20.7.0)(sass@1.82.0)(yaml@2.4.2))
'@types/cookie': 0.6.0 '@types/cookie': 0.6.0
cookie: 0.6.0 cookie: 0.6.0
devalue: 5.1.1 devalue: 5.1.1
@ -3916,29 +3842,29 @@ snapshots:
sade: 1.8.1 sade: 1.8.1
set-cookie-parser: 2.6.0 set-cookie-parser: 2.6.0
sirv: 3.0.0 sirv: 3.0.0
svelte: 5.5.0 svelte: 5.8.1
tiny-glob: 0.2.9 tiny-glob: 0.2.9
vite: 6.0.2(@types/node@20.7.0)(sass@1.81.1)(yaml@2.4.2) vite: 6.0.3(@types/node@20.7.0)(sass@1.82.0)(yaml@2.4.2)
'@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.0.1(svelte@5.5.0)(vite@6.0.2(@types/node@20.7.0)(sass@1.81.1)(yaml@2.4.2)))(svelte@5.5.0)(vite@6.0.2(@types/node@20.7.0)(sass@1.81.1)(yaml@2.4.2))': '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.0.1(svelte@5.8.1)(vite@6.0.3(@types/node@20.7.0)(sass@1.82.0)(yaml@2.4.2)))(svelte@5.8.1)(vite@6.0.3(@types/node@20.7.0)(sass@1.82.0)(yaml@2.4.2))':
dependencies: dependencies:
'@sveltejs/vite-plugin-svelte': 5.0.1(svelte@5.5.0)(vite@6.0.2(@types/node@20.7.0)(sass@1.81.1)(yaml@2.4.2)) '@sveltejs/vite-plugin-svelte': 5.0.1(svelte@5.8.1)(vite@6.0.3(@types/node@20.7.0)(sass@1.82.0)(yaml@2.4.2))
debug: 4.3.7 debug: 4.3.7
svelte: 5.5.0 svelte: 5.8.1
vite: 6.0.2(@types/node@20.7.0)(sass@1.81.1)(yaml@2.4.2) vite: 6.0.3(@types/node@20.7.0)(sass@1.82.0)(yaml@2.4.2)
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
'@sveltejs/vite-plugin-svelte@5.0.1(svelte@5.5.0)(vite@6.0.2(@types/node@20.7.0)(sass@1.81.1)(yaml@2.4.2))': '@sveltejs/vite-plugin-svelte@5.0.1(svelte@5.8.1)(vite@6.0.3(@types/node@20.7.0)(sass@1.82.0)(yaml@2.4.2))':
dependencies: dependencies:
'@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.0.1(svelte@5.5.0)(vite@6.0.2(@types/node@20.7.0)(sass@1.81.1)(yaml@2.4.2)))(svelte@5.5.0)(vite@6.0.2(@types/node@20.7.0)(sass@1.81.1)(yaml@2.4.2)) '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.0.1(svelte@5.8.1)(vite@6.0.3(@types/node@20.7.0)(sass@1.82.0)(yaml@2.4.2)))(svelte@5.8.1)(vite@6.0.3(@types/node@20.7.0)(sass@1.82.0)(yaml@2.4.2))
debug: 4.3.7 debug: 4.3.7
deepmerge: 4.3.1 deepmerge: 4.3.1
kleur: 4.1.5 kleur: 4.1.5
magic-string: 0.30.14 magic-string: 0.30.14
svelte: 5.5.0 svelte: 5.8.1
vite: 6.0.2(@types/node@20.7.0)(sass@1.81.1)(yaml@2.4.2) vite: 6.0.3(@types/node@20.7.0)(sass@1.82.0)(yaml@2.4.2)
vitefu: 1.0.4(vite@6.0.2(@types/node@20.7.0)(sass@1.81.1)(yaml@2.4.2)) vitefu: 1.0.4(vite@6.0.3(@types/node@20.7.0)(sass@1.82.0)(yaml@2.4.2))
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
@ -3965,11 +3891,11 @@ snapshots:
dependencies: dependencies:
unpic: 3.20.0 unpic: 3.20.0
'@unpic/svelte@0.0.56(svelte@5.5.0)': '@unpic/svelte@0.0.56(svelte@5.8.1)':
dependencies: dependencies:
'@unpic/core': 0.0.52 '@unpic/core': 0.0.52
style-object-to-css-string: 1.1.3 style-object-to-css-string: 1.1.3
svelte: 5.5.0 svelte: 5.8.1
unpic: 3.20.0 unpic: 3.20.0
'@vercel/nft@0.27.1': '@vercel/nft@0.27.1':
@ -4025,9 +3951,9 @@ snapshots:
loupe: 2.3.7 loupe: 2.3.7
pretty-format: 29.7.0 pretty-format: 29.7.0
'@zerodevx/svelte-img@2.1.2(rollup@4.21.3)(svelte@5.5.0)': '@zerodevx/svelte-img@2.1.2(rollup@4.21.3)(svelte@5.8.1)':
dependencies: dependencies:
svelte: 5.5.0 svelte: 5.8.1
vite-imagetools: 6.2.9(rollup@4.21.3) vite-imagetools: 6.2.9(rollup@4.21.3)
transitivePeerDependencies: transitivePeerDependencies:
- rollup - rollup
@ -4120,12 +4046,15 @@ snapshots:
dependencies: dependencies:
file-uri-to-path: 1.0.0 file-uri-to-path: 1.0.0
bits-ui@0.21.16(svelte@5.5.0): bits-ui@1.0.0-next.66(svelte@5.8.1):
dependencies: dependencies:
'@internationalized/date': 3.5.2 '@floating-ui/core': 1.6.8
'@melt-ui/svelte': 0.76.2(svelte@5.5.0) '@floating-ui/dom': 1.6.12
nanoid: 5.0.7 '@internationalized/date': 3.6.0
svelte: 5.5.0 esm-env: 1.2.1
runed: 0.15.4(svelte@5.8.1)
svelte: 5.8.1
svelte-toolbelt: 0.4.6(svelte@5.8.1)
boolbase@1.0.0: {} boolbase@1.0.0: {}
@ -4195,16 +4124,14 @@ snapshots:
undici: 6.21.0 undici: 6.21.0
whatwg-mimetype: 4.0.0 whatwg-mimetype: 4.0.0
chokidar@4.0.0:
dependencies:
readdirp: 4.0.1
chokidar@4.0.1: chokidar@4.0.1:
dependencies: dependencies:
readdirp: 4.0.1 readdirp: 4.0.1
chownr@2.0.0: {} chownr@2.0.0: {}
clsx@2.1.1: {}
cluster-key-slot@1.1.2: {} cluster-key-slot@1.1.2: {}
code-red@1.0.4: code-red@1.0.4:
@ -4470,10 +4397,6 @@ snapshots:
flexsearch@0.7.43: {} flexsearch@0.7.43: {}
focus-trap@7.5.4:
dependencies:
tabbable: 6.2.0
follow-redirects@1.15.3: {} follow-redirects@1.15.3: {}
form-data@4.0.0: form-data@4.0.0:
@ -4571,7 +4494,8 @@ snapshots:
imagetools-core@7.0.2: {} imagetools-core@7.0.2: {}
immutable@5.0.3: {} immutable@5.0.3:
optional: true
import-meta-resolve@4.1.0: {} import-meta-resolve@4.1.0: {}
@ -4582,6 +4506,8 @@ snapshots:
inherits@2.0.4: {} inherits@2.0.4: {}
inline-style-parser@0.2.4: {}
ioredis@5.4.1: ioredis@5.4.1:
dependencies: dependencies:
'@ioredis/commands': 1.2.0 '@ioredis/commands': 1.2.0
@ -4668,9 +4594,9 @@ snapshots:
dependencies: dependencies:
get-func-name: 2.0.2 get-func-name: 2.0.2
lucide-svelte@0.462.0(svelte@5.5.0): lucide-svelte@0.462.0(svelte@5.8.1):
dependencies: dependencies:
svelte: 5.5.0 svelte: 5.8.1
magic-string@0.30.14: magic-string@0.30.14:
dependencies: dependencies:
@ -4691,12 +4617,12 @@ snapshots:
just-camel-case: 4.0.2 just-camel-case: 4.0.2
unist-util-visit: 3.1.0 unist-util-visit: 3.1.0
mdsvex@0.11.2(svelte@5.5.0): mdsvex@0.11.2(svelte@5.8.1):
dependencies: dependencies:
'@types/unist': 2.0.6 '@types/unist': 2.0.6
prism-svelte: 0.4.7 prism-svelte: 0.4.7
prismjs: 1.29.0 prismjs: 1.29.0
svelte: 5.5.0 svelte: 5.8.1
vfile-message: 2.0.4 vfile-message: 2.0.4
merge-stream@2.0.0: {} merge-stream@2.0.0: {}
@ -4754,8 +4680,6 @@ snapshots:
nanoid@3.3.7: {} nanoid@3.3.7: {}
nanoid@5.0.7: {}
node-addon-api@7.1.1: node-addon-api@7.1.1:
optional: true optional: true
@ -5203,6 +5127,11 @@ snapshots:
'@rollup/rollup-win32-x64-msvc': 4.28.0 '@rollup/rollup-win32-x64-msvc': 4.28.0
fsevents: 2.3.3 fsevents: 2.3.3
runed@0.15.4(svelte@5.8.1):
dependencies:
esm-env: 1.2.1
svelte: 5.8.1
sade@1.8.1: sade@1.8.1:
dependencies: dependencies:
mri: 1.2.0 mri: 1.2.0
@ -5211,13 +5140,14 @@ snapshots:
safer-buffer@2.1.2: {} safer-buffer@2.1.2: {}
sass@1.81.1: sass@1.82.0:
dependencies: dependencies:
chokidar: 4.0.0 chokidar: 4.0.1
immutable: 5.0.3 immutable: 5.0.3
source-map-js: 1.2.0 source-map-js: 1.2.1
optionalDependencies: optionalDependencies:
'@parcel/watcher': 2.5.0 '@parcel/watcher': 2.5.0
optional: true
satori-html@0.3.2: satori-html@0.3.2:
dependencies: dependencies:
@ -5331,8 +5261,6 @@ snapshots:
sliced@1.0.1: {} sliced@1.0.1: {}
source-map-js@1.2.0: {}
source-map-js@1.2.1: {} source-map-js@1.2.1: {}
stackback@0.0.2: {} stackback@0.0.2: {}
@ -5365,42 +5293,46 @@ snapshots:
style-object-to-css-string@1.1.3: {} style-object-to-css-string@1.1.3: {}
style-to-object@1.0.8:
dependencies:
inline-style-parser: 0.2.4
supports-preserve-symlinks-flag@1.0.0: {} supports-preserve-symlinks-flag@1.0.0: {}
svelte-check@4.1.0(picomatch@4.0.2)(svelte@5.5.0)(typescript@5.7.2): svelte-check@4.1.1(picomatch@4.0.2)(svelte@5.8.1)(typescript@5.7.2):
dependencies: dependencies:
'@jridgewell/trace-mapping': 0.3.25 '@jridgewell/trace-mapping': 0.3.25
chokidar: 4.0.1 chokidar: 4.0.1
fdir: 6.4.2(picomatch@4.0.2) fdir: 6.4.2(picomatch@4.0.2)
picocolors: 1.1.1 picocolors: 1.1.1
sade: 1.8.1 sade: 1.8.1
svelte: 5.5.0 svelte: 5.8.1
typescript: 5.7.2 typescript: 5.7.2
transitivePeerDependencies: transitivePeerDependencies:
- picomatch - picomatch
svelte-local-storage-store@0.6.4(svelte@5.5.0): svelte-local-storage-store@0.6.4(svelte@5.8.1):
dependencies: dependencies:
svelte: 5.5.0 svelte: 5.8.1
svelte-meta-tags@4.0.4(svelte@5.5.0)(typescript@5.7.2): svelte-meta-tags@4.0.4(svelte@5.8.1)(typescript@5.7.2):
dependencies: dependencies:
schema-dts: 1.1.2(typescript@5.7.2) schema-dts: 1.1.2(typescript@5.7.2)
svelte: 5.5.0 svelte: 5.8.1
transitivePeerDependencies: transitivePeerDependencies:
- typescript - typescript
svelte-parse-markup@0.1.5(svelte@5.5.0): svelte-parse-markup@0.1.5(svelte@5.8.1):
dependencies: dependencies:
svelte: 5.5.0 svelte: 5.8.1
svelte-preprocess@6.0.3(postcss-load-config@5.1.0(postcss@8.4.49))(postcss@8.4.49)(sass@1.81.1)(svelte@5.5.0)(typescript@5.7.2): svelte-preprocess@6.0.3(postcss-load-config@5.1.0(postcss@8.4.49))(postcss@8.4.49)(sass@1.82.0)(svelte@5.8.1)(typescript@5.7.2):
dependencies: dependencies:
svelte: 5.5.0 svelte: 5.8.1
optionalDependencies: optionalDependencies:
postcss: 8.4.49 postcss: 8.4.49
postcss-load-config: 5.1.0(postcss@8.4.49) postcss-load-config: 5.1.0(postcss@8.4.49)
sass: 1.81.1 sass: 1.82.0
typescript: 5.7.2 typescript: 5.7.2
svelte-sequential-preprocessor@2.0.2: svelte-sequential-preprocessor@2.0.2:
@ -5408,6 +5340,12 @@ snapshots:
svelte: 4.2.19 svelte: 4.2.19
tslib: 2.7.0 tslib: 2.7.0
svelte-toolbelt@0.4.6(svelte@5.8.1):
dependencies:
clsx: 2.1.1
style-to-object: 1.0.8
svelte: 5.8.1
svelte@4.2.19: svelte@4.2.19:
dependencies: dependencies:
'@ampproject/remapping': 2.3.0 '@ampproject/remapping': 2.3.0
@ -5425,7 +5363,7 @@ snapshots:
magic-string: 0.30.9 magic-string: 0.30.9
periscopic: 3.1.0 periscopic: 3.1.0
svelte@5.5.0: svelte@5.8.1:
dependencies: dependencies:
'@ampproject/remapping': 2.3.0 '@ampproject/remapping': 2.3.0
'@jridgewell/sourcemap-codec': 1.5.0 '@jridgewell/sourcemap-codec': 1.5.0
@ -5441,8 +5379,6 @@ snapshots:
magic-string: 0.30.14 magic-string: 0.30.14
zimmerframe: 1.1.2 zimmerframe: 1.1.2
tabbable@6.2.0: {}
tar@6.2.1: tar@6.2.1:
dependencies: dependencies:
chownr: 2.0.0 chownr: 2.0.0
@ -5545,13 +5481,13 @@ snapshots:
transitivePeerDependencies: transitivePeerDependencies:
- rollup - rollup
vite-node@1.6.0(@types/node@20.7.0)(sass@1.81.1): vite-node@1.6.0(@types/node@20.7.0)(sass@1.82.0):
dependencies: dependencies:
cac: 6.7.14 cac: 6.7.14
debug: 4.3.4 debug: 4.3.4
pathe: 1.1.2 pathe: 1.1.2
picocolors: 1.0.0 picocolors: 1.0.0
vite: 5.4.11(@types/node@20.7.0)(sass@1.81.1) vite: 5.4.11(@types/node@20.7.0)(sass@1.82.0)
transitivePeerDependencies: transitivePeerDependencies:
- '@types/node' - '@types/node'
- less - less
@ -5563,7 +5499,7 @@ snapshots:
- supports-color - supports-color
- terser - terser
vite@5.4.11(@types/node@20.7.0)(sass@1.81.1): vite@5.4.11(@types/node@20.7.0)(sass@1.82.0):
dependencies: dependencies:
esbuild: 0.21.5 esbuild: 0.21.5
postcss: 8.4.49 postcss: 8.4.49
@ -5571,9 +5507,9 @@ snapshots:
optionalDependencies: optionalDependencies:
'@types/node': 20.7.0 '@types/node': 20.7.0
fsevents: 2.3.3 fsevents: 2.3.3
sass: 1.81.1 sass: 1.82.0
vite@6.0.2(@types/node@20.7.0)(sass@1.81.1)(yaml@2.4.2): vite@6.0.3(@types/node@20.7.0)(sass@1.82.0)(yaml@2.4.2):
dependencies: dependencies:
esbuild: 0.24.0 esbuild: 0.24.0
postcss: 8.4.49 postcss: 8.4.49
@ -5581,14 +5517,14 @@ snapshots:
optionalDependencies: optionalDependencies:
'@types/node': 20.7.0 '@types/node': 20.7.0
fsevents: 2.3.3 fsevents: 2.3.3
sass: 1.81.1 sass: 1.82.0
yaml: 2.4.2 yaml: 2.4.2
vitefu@1.0.4(vite@6.0.2(@types/node@20.7.0)(sass@1.81.1)(yaml@2.4.2)): vitefu@1.0.4(vite@6.0.3(@types/node@20.7.0)(sass@1.82.0)(yaml@2.4.2)):
optionalDependencies: optionalDependencies:
vite: 6.0.2(@types/node@20.7.0)(sass@1.81.1)(yaml@2.4.2) vite: 6.0.3(@types/node@20.7.0)(sass@1.82.0)(yaml@2.4.2)
vitest@1.6.0(@types/node@20.7.0)(sass@1.81.1): vitest@1.6.0(@types/node@20.7.0)(sass@1.82.0):
dependencies: dependencies:
'@vitest/expect': 1.6.0 '@vitest/expect': 1.6.0
'@vitest/runner': 1.6.0 '@vitest/runner': 1.6.0
@ -5607,8 +5543,8 @@ snapshots:
strip-literal: 2.1.0 strip-literal: 2.1.0
tinybench: 2.7.0 tinybench: 2.7.0
tinypool: 0.8.4 tinypool: 0.8.4
vite: 5.4.11(@types/node@20.7.0)(sass@1.81.1) vite: 5.4.11(@types/node@20.7.0)(sass@1.82.0)
vite-node: 1.6.0(@types/node@20.7.0)(sass@1.81.1) vite-node: 1.6.0(@types/node@20.7.0)(sass@1.82.0)
why-is-node-running: 2.2.2 why-is-node-running: 2.2.2
optionalDependencies: optionalDependencies:
'@types/node': 20.7.0 '@types/node': 20.7.0

View file

@ -15,7 +15,7 @@ import type {
} from "$lib/types/article"; } from "$lib/types/article";
import { ArticleTag } from "$lib/types/articleTag"; import { ArticleTag } from "$lib/types/articleTag";
import type { PageQuery } from "$lib/types/pageQuery"; import type { PageQuery } from "$lib/types/pageQuery";
import { URLSearchParams } from "url"; import { URLSearchParams } from "node:url";
import { redis } from "$lib/server/redis"; import { redis } from "$lib/server/redis";
const base: string = WALLABAG_URL; const base: string = WALLABAG_URL;
@ -48,11 +48,9 @@ export async function fetchArticlesApi(
}); });
if (USE_REDIS_CACHE) { if (USE_REDIS_CACHE) {
console.log('Using redis cache');
const cached = await redis.get(entriesQueryParams.toString()); const cached = await redis.get(entriesQueryParams.toString());
if (cached) { if (cached) {
console.log(`Cache hit for ${entriesQueryParams.toString()}!`);
const response = JSON.parse(cached); const response = JSON.parse(cached);
const ttl = await redis.ttl(entriesQueryParams.toString()); const ttl = await redis.ttl(entriesQueryParams.toString());
@ -101,7 +99,7 @@ export async function fetchArticlesApi(
} = await pageResponse.json(); } = await pageResponse.json();
const articles: Article[] = []; const articles: Article[] = [];
favoriteArticles.items.forEach((article: WallabagArticle) => { for (const article of favoriteArticles.items as WallabagArticle[]) {
const rawTags = article?.tags?.map((tag) => tag.slug); const rawTags = article?.tags?.map((tag) => tag.slug);
if (intersect(rawTags, Object.values(ArticleTag))?.length > 0) { if (intersect(rawTags, Object.values(ArticleTag))?.length > 0) {
const tags = rawTags.map((rawTag) => rawTag as unknown as ArticleTag); const tags = rawTags.map((rawTag) => rawTag as unknown as ArticleTag);
@ -118,7 +116,7 @@ export async function fetchArticlesApi(
archived_at: article.archived_at ? new Date(article.archived_at) : null, archived_at: article.archived_at ? new Date(article.archived_at) : null,
}); });
} }
}); }
const responseData: ArticlePageLoad = { const responseData: ArticlePageLoad = {
articles, articles,

View file

@ -14,9 +14,9 @@ portfolioImageAlt: 'Home Page of bradleyshellnut.com'
Tech Stack: Tech Stack:
- <ExternalLink href="https://kit.svelte.dev/" showIcon>SvelteKit</ExternalLink> - <ExternalLink href="https://kit.svelte.dev/" showIcon>SvelteKit</ExternalLink>
- <ExternalLink showIcon href="https://www.melt-ui.com/">Melt UI</ExternalLink> for the headless-ui components. - <ExternalLink showIcon href="https://bits-ui.com/">Bits-UI</ExternalLink> for the headless-ui components.
- TypeScript - TypeScript
- Deployed on Vercel - Deployed on a Coolify Self Hosted Box
- Icons in the [/about](/about) page and the Bee, Shell, and Nut icons are all made by <ExternalLink showIcon href="https://www.flaticon.com/authors/freepik" ariaLabel="Freepik">"Freepik"</ExternalLink> from <ExternalLink showIcon href="https://www.flaticon.com" ariaLabel="Flaticon">flaticon.com</ExternalLink> - Icons in the [/about](/about) page and the Bee, Shell, and Nut icons are all made by <ExternalLink showIcon href="https://www.flaticon.com/authors/freepik" ariaLabel="Freepik">"Freepik"</ExternalLink> from <ExternalLink showIcon href="https://www.flaticon.com" ariaLabel="Flaticon">flaticon.com</ExternalLink>
Previous version of my website was written using React and Gatsby which you can view <ExternalLink href="https://wonderful-austin-9f17d2.netlify.app/" ariaLabel="React and Gatsby Personal Site version" showIcon>here</ExternalLink>. Previous version of my website was written using React and Gatsby which you can view <ExternalLink href="https://wonderful-austin-9f17d2.netlify.app/" ariaLabel="React and Gatsby Personal Site version" showIcon>here</ExternalLink>.

View file

@ -11,7 +11,6 @@ export async function fetchBandcampAlbums() {
if (cached) { if (cached) {
const response: Album[] = JSON.parse(cached); const response: Album[] = JSON.parse(cached);
console.log('Cache hit!');
const ttl = await redis.ttl('bandcampAlbums'); const ttl = await redis.ttl('bandcampAlbums');
return response; return response;

View file

@ -1,32 +1,21 @@
<script lang="ts"> <script lang="ts">
import ExternalLink from '$lib/components/ExternalLink.svelte'; import ExternalLink from "$lib/components/ExternalLink.svelte";
import Portfolio from '$root/routes/portfolio/Portfolio.svelte'; import Portfolio from "./Portfolio.svelte";
// @ts-expect-error: Cannot find module '$lib/content/uses/development.md' or its corresponding type declarations.ts(2307) // @ts-expect-error: Cannot find module '$lib/content/uses/development.md' or its corresponding type declarations.ts(2307)
import OldWebsite from '$lib/content/portfolio/personal/old-website.md'; import OldWebsite from "$lib/content/portfolio/personal/old-website.md";
// @ts-expect-error: Cannot find module '$lib/content/uses/development.md' or its corresponding type declarations.ts(2307) // @ts-expect-error: Cannot find module '$lib/content/uses/development.md' or its corresponding type declarations.ts(2307)
import PersonalWebsiteSvelteKit from '$lib/content/portfolio/personal/personal-website-sveltekit.md'; import PersonalWebsiteSvelteKit from "$lib/content/portfolio/personal/personal-website-sveltekit.md";
// @ts-expect-error: Cannot find module '$lib/content/uses/development.md' or its corresponding type declarations.ts(2307) // @ts-expect-error: Cannot find module '$lib/content/uses/development.md' or its corresponding type declarations.ts(2307)
import WeddingWebsite from '$lib/content/portfolio/personal/wedding-website.md'; import WeddingWebsite from "$lib/content/portfolio/personal/wedding-website.md";
// @ts-expect-error: Cannot find module '$lib/content/uses/development.md' or its corresponding type declarations.ts(2307) // @ts-expect-error: Cannot find module '$lib/content/uses/development.md' or its corresponding type declarations.ts(2307)
import MarkShellnutArchitect from '$lib/content/portfolio/professional/mark-shellnut-architect.md'; import MarkShellnutArchitect from "$lib/content/portfolio/professional/mark-shellnut-architect.md";
import type { ExternalLinkType } from '$lib/types/externalLinkType'; import type { ExternalLinkType } from "$lib/types/externalLinkType";
import GitHub from '@iconify-icons/simple-icons/github'; import GitHub from "@iconify-icons/simple-icons/github";
import { createTabs, melt } from '@melt-ui/svelte'; import { Tabs } from "bits-ui";
import personalSite from '../../lib/assets/images/portfolio/Bradley_Shellnut_New_Site.png?enhanced'; import personalSite from "../../lib/assets/images/portfolio/Bradley_Shellnut_New_Site.png?enhanced";
import shellnutArchitectWebsite from '../../lib/assets/images/portfolio/Mark_Shellnut_Architect.png?enhanced'; import shellnutArchitectWebsite from "../../lib/assets/images/portfolio/Mark_Shellnut_Architect.png?enhanced";
import oldSite from '../../lib/assets/images/portfolio/Old_Website_Bradley_Shellnut.png?enhanced'; import oldSite from "../../lib/assets/images/portfolio/Old_Website_Bradley_Shellnut.png?enhanced";
import weddingWebsite from '../../lib/assets/images/portfolio/Wedding_Website.png?enhanced'; import weddingWebsite from "../../lib/assets/images/portfolio/Wedding_Website.png?enhanced";
const {
elements: { root, list, content, trigger },
} = createTabs({
defaultValue: 'personal',
});
const triggers = [
{ id: 'personal', title: 'Personal Sites' },
{ id: 'professional', title: 'Professional Sites' },
];
</script> </script>
{#snippet links(externalLinks: ExternalLinkType[])} {#snippet links(externalLinks: ExternalLinkType[])}
@ -50,16 +39,14 @@ const triggers = [
{/snippet} {/snippet}
<h1>Portfolio!</h1> <h1>Portfolio!</h1>
<div use:melt={$root} class="root tab-group"> <Tabs.Root value="personal">
<div use:melt={$list} aria-label="tabs portfolios" class="list tab-list"> <Tabs.List>
{#each triggers as triggerItem} <Tabs.Trigger value="personal"><span>Personal</span></Tabs.Trigger>
<button use:melt={$trigger(triggerItem.id)} class="trigger" type="button"> <Tabs.Trigger value="professional"><span>Professional</span></Tabs.Trigger>
<span>{triggerItem.title}</span> </Tabs.List>
</button> <Tabs.Content value="personal">
{/each} <Portfolio
</div> name="Personal Website"
<div use:melt={$content('personal')} class="content">
<Portfolio name="Personal Website"
style="max-height: 550px;" style="max-height: 550px;"
src={personalSite} src={personalSite}
loading="eager" loading="eager"
@ -67,54 +54,89 @@ const triggers = [
{links} {links}
{details} {details}
portfolioDetails={PersonalWebsiteSvelteKit} portfolioDetails={PersonalWebsiteSvelteKit}
externalLinks={[{ ariaLabel: 'View GitHub repository for my personal website', href: 'https://github.com/BradNut/personal-website-sveltekit', icon: GitHub, showIcon: true, text: 'GitHub repository'}]}> externalLinks={[
</Portfolio> {
<Portfolio name="Wedding Website" ariaLabel: "View GitHub repository for my personal website",
href: "https://github.com/BradNut/personal-website-sveltekit",
icon: GitHub,
showIcon: true,
text: "GitHub repository",
},
]}
></Portfolio>
<Portfolio
name="Wedding Website"
style="max-height: 550px;" style="max-height: 550px;"
src={weddingWebsite} src={weddingWebsite}
alt="Picture of NextJS Wedding Website" alt="Picture of NextJS Wedding Website"
{links} {links}
{details} {details}
portfolioDetails={WeddingWebsite} portfolioDetails={WeddingWebsite}
externalLinks={[{ ariaLabel: 'View GitHub repository for the wedding site', href: 'https://github.com/BradNut/weddingsite', icon: GitHub, showIcon: true, text: 'GitHub repository'}]}/> externalLinks={[
<Portfolio name="Old Personal Website" {
ariaLabel: "View GitHub repository for the wedding site",
href: "https://github.com/BradNut/weddingsite",
icon: GitHub,
showIcon: true,
text: "GitHub repository",
},
]}
/>
<Portfolio
name="Old Personal Website"
style="max-height: 320px;" style="max-height: 320px;"
src={oldSite} src={oldSite}
alt="Home Page of the old bradleyshellnut.com website" alt="Home Page of the old bradleyshellnut.com website"
{links} {links}
{details} {details}
portfolioDetails={OldWebsite} portfolioDetails={OldWebsite}
externalLinks={[{ ariaLabel: 'Archive of bradleyshellnut.com', href: 'https://web.archive.org/web/20201205233507/https://bradleyshellnut.com/about', icon: GitHub, showIcon: true, text: 'Link to an archive snapshot'}]}/> externalLinks={[
</div> {
<div use:melt={$content('professional')} class="content"> ariaLabel: "Archive of bradleyshellnut.com",
<Portfolio name="Mark Shellnut Architect" href: "https://web.archive.org/web/20201205233507/https://bradleyshellnut.com/about",
icon: GitHub,
showIcon: true,
text: "Link to an archive snapshot",
},
]}
/>
</Tabs.Content>
<Tabs.Content value="professional">
<Portfolio
name="Mark Shellnut Architect"
style="max-height: 550px;" style="max-height: 550px;"
src={shellnutArchitectWebsite} src={shellnutArchitectWebsite}
alt="Picture of Mark Shellnut Architect's Website" alt="Picture of Mark Shellnut Architect's Website"
{links} {links}
{details} {details}
portfolioDetails={MarkShellnutArchitect} portfolioDetails={MarkShellnutArchitect}
externalLinks={[{ ariaLabel: 'View Mark Shellnut Architect', href: 'https://markshellnutarchitect.com', showIcon: false, text: 'Link to Mark Shellnut Architect'}]} /> externalLinks={[
</div> {
</div> ariaLabel: "View Mark Shellnut Architect",
href: "https://markshellnutarchitect.com",
showIcon: false,
text: "Link to Mark Shellnut Architect",
},
]}
/>
</Tabs.Content>
</Tabs.Root>
<style lang="postcss"> <style lang="postcss">
.root { :global([data-tabs-root]) {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
/* overflow: hidden; */
/* border-radius: var(--border-radius); */
&[data-orientation="vertical"] { &[data-orientation="vertical"] {
flex-direction: row; flex-direction: row;
} }
@media(min-width: 1000px) { @media (min-width: 1000px) {
max-width: 50vw; max-width: 50vw;
} }
} }
.list { :global([data-tabs-list]) {
display: grid; display: grid;
gap: 1rem; gap: 1rem;
grid-template-columns: auto auto; grid-template-columns: auto auto;
@ -125,23 +147,19 @@ const triggers = [
user-select: none; user-select: none;
} }
.trigger { :global([data-tabs-trigger]) {
font-size: var(--h2); font-size: var(--h2);
}
&[data-state='active'] { :global([data-state="active"]) {
span { span {
border-bottom: 2px solid var(--shellYellow); border-bottom: 2px solid var(--shellYellow);
}
}
&[data-state='inactive'] {
span {
border-bottom: 2px solid var(--white);
}
} }
} }
:global(img) { :global([data-state="inactive"]) {
border-radius: 3px; span {
border-bottom: 2px solid var(--white);
}
} }
</style> </style>

View file

@ -1,6 +1,5 @@
import adapter from '@sveltejs/adapter-node'; import adapter from '@sveltejs/adapter-node';
import { vitePreprocess } from '@sveltejs/vite-plugin-svelte'; import { vitePreprocess } from '@sveltejs/vite-plugin-svelte';
import { preprocessMeltUI } from '@melt-ui/pp';
import { mdsvex } from 'mdsvex'; import { mdsvex } from 'mdsvex';
import mdsvexConfig from './mdsvex.config.js'; import mdsvexConfig from './mdsvex.config.js';
@ -9,7 +8,7 @@ const config = {
// Consult https://kit.svelte.dev/docs/integrations#preprocessors // Consult https://kit.svelte.dev/docs/integrations#preprocessors
// for more information about preprocessors // for more information about preprocessors
extensions: ['.svelte', ...mdsvexConfig.extensions], extensions: ['.svelte', ...mdsvexConfig.extensions],
preprocess: [vitePreprocess(), mdsvex(mdsvexConfig), preprocessMeltUI()], preprocess: [vitePreprocess(), mdsvex(mdsvexConfig)],
vitePlugin: { vitePlugin: {
inspector: { inspector: {
toggleKeyCombo: 'control-alt-shift', toggleKeyCombo: 'control-alt-shift',