From 42aeca58e71d47340c3790ec311d3f8939b1469d Mon Sep 17 00:00:00 2001
From: Shibo Lyu <github@of.sb>
Date: Thu, 31 Oct 2024 02:22:06 +0800
Subject: [PATCH] deps: bump to latest Svelte 4 compatible versions

---
 package-lock.json | 410 +++++++++++++++++++++++-----------------------
 package.json      |  27 ++-
 vitest.config.ts  |  11 --
 3 files changed, 218 insertions(+), 230 deletions(-)
 delete mode 100644 vitest.config.ts

diff --git a/package-lock.json b/package-lock.json
index f0593fd..aa59ff7 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -8,8 +8,8 @@
 			"name": "weblah",
 			"version": "0.0.1",
 			"dependencies": {
-				"@blah-im/core": "^0.2.6",
-				"@melt-ui/svelte": "^0.83.0",
+				"@blah-im/core": "^0.3.0",
+				"@melt-ui/svelte": "^0.85.0",
 				"@zeabur/svelte-adapter": "^1.0.0",
 				"bits-ui": "^0.21.16",
 				"canonicalize": "^2.0.0",
@@ -17,34 +17,33 @@
 				"svelte-boring-avatars": "^1.2.6",
 				"svelte-hero-icons": "^5.2.0",
 				"svelte-persisted-store": "^0.11.0",
-				"tailwind-merge": "^2.5.3",
+				"tailwind-merge": "^2.5.4",
 				"typewriter-editor": "^0.12.7",
-				"unique-names-generator": "^4.7.1",
-				"virtua": "^0.35.0",
+				"virtua": "^0.35.1",
 				"zod": "^3.23.8"
 			},
 			"devDependencies": {
 				"@melt-ui/pp": "^0.3.2",
-				"@sveltejs/adapter-auto": "^3.2.5",
-				"@sveltejs/kit": "^2.6.4",
+				"@sveltejs/adapter-auto": "^3.3.1",
+				"@sveltejs/kit": "^2.7.3",
 				"@sveltejs/vite-plugin-svelte": "^3.1.2",
 				"@tailwindcss/typography": "^0.5.15",
 				"@types/eslint": "^9.6.1",
 				"autoprefixer": "^10.4.20",
-				"eslint": "^9.12.0",
+				"eslint": "^9.13.0",
 				"eslint-config-prettier": "^9.1.0",
-				"eslint-plugin-svelte": "^2.44.1",
+				"eslint-plugin-svelte": "^2.46.0",
 				"globals": "^15.11.0",
 				"prettier": "^3.3.3",
 				"prettier-plugin-svelte": "^3.2.7",
 				"prettier-plugin-tailwindcss": "^0.6.8",
 				"svelte": "^4.2.19",
-				"svelte-check": "^4.0.4",
-				"tailwindcss": "^3.4.13",
+				"svelte-check": "^4.0.5",
+				"tailwindcss": "^3.4.14",
 				"typescript": "^5.6.3",
-				"typescript-eslint": "^8.8.1",
-				"vite": "^5.4.8",
-				"vitest": "^2.1.2"
+				"typescript-eslint": "^8.12.2",
+				"vite": "^5.4.10",
+				"vitest": "^2.1.4"
 			}
 		},
 		"node_modules/@alloc/quick-lru": {
@@ -74,9 +73,9 @@
 			}
 		},
 		"node_modules/@blah-im/core": {
-			"version": "0.2.6",
-			"resolved": "https://registry.npmjs.org/@blah-im/core/-/core-0.2.6.tgz",
-			"integrity": "sha512-zjbaoB02Z7i0uhWbgegAU3IP7txSmnYo9QJQyweGUG1PgEMMZiYfjb2+4fY+JCDhrCPDxY0TysTH9JQvMG54HQ==",
+			"version": "0.3.0",
+			"resolved": "https://registry.npmjs.org/@blah-im/core/-/core-0.3.0.tgz",
+			"integrity": "sha512-OBqWbQ7nJjM7IwYkfoCVp9tw3bTRWmPMxdW2qsgu5btR0bzdpQxAf2HJRuNfWCpv+vW1c5qFLbd+NFXa5fJ5HA==",
 			"license": "GPL-3.0-only",
 			"dependencies": {
 				"zod": "^3.23.8"
@@ -505,9 +504,9 @@
 			}
 		},
 		"node_modules/@eslint/core": {
-			"version": "0.6.0",
-			"resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.6.0.tgz",
-			"integrity": "sha512-8I2Q8ykA4J0x0o7cg67FPVnehcqWTBehu/lmY+bolPFHGjh49YzGBMXTvpqVgEbBdvNCSxj6iFgiIyHzf03lzg==",
+			"version": "0.7.0",
+			"resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.7.0.tgz",
+			"integrity": "sha512-xp5Jirz5DyPYlPiKat8jaq0EmYvDXKKpzTbxXMpT9eqlRJkRKIz9AGMdlvYjih+im+QlhWrpvVjl8IPC/lHlUw==",
 			"dev": true,
 			"license": "Apache-2.0",
 			"engines": {
@@ -552,9 +551,9 @@
 			}
 		},
 		"node_modules/@eslint/js": {
-			"version": "9.12.0",
-			"resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.12.0.tgz",
-			"integrity": "sha512-eohesHH8WFRUprDNyEREgqP6beG6htMeUYeCpkEgBCieCMme5r9zFWjzAJp//9S+Kub4rqE+jXe9Cp1a7IYIIA==",
+			"version": "9.13.0",
+			"resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.13.0.tgz",
+			"integrity": "sha512-IFLyoY4d72Z5y/6o/BazFBezupzI/taV8sGumxTAVw3lXG9A6md1Dc34T9s1FoD/an9pJH8RHbAxsaEbBed9lA==",
 			"dev": true,
 			"license": "MIT",
 			"engines": {
@@ -815,9 +814,9 @@
 			}
 		},
 		"node_modules/@melt-ui/svelte": {
-			"version": "0.83.0",
-			"resolved": "https://registry.npmjs.org/@melt-ui/svelte/-/svelte-0.83.0.tgz",
-			"integrity": "sha512-E7QT+8YSftz+Hdk1W0hNR3f+cnaF2COMWkStn+2u4vk0RO1I9mXRJl+bJD6uhYaH146oxEB+5elu/ABbv6rpsA==",
+			"version": "0.85.0",
+			"resolved": "https://registry.npmjs.org/@melt-ui/svelte/-/svelte-0.85.0.tgz",
+			"integrity": "sha512-LVuRB256vplDR12jIKIMeRmcyWdeROuGkSJsElkprCOO2YQoPhSNCc6jMa00fCnCFiL2WDqtSpv1B39F1BEMZg==",
 			"license": "MIT",
 			"dependencies": {
 				"@floating-ui/core": "^1.3.1",
@@ -899,9 +898,9 @@
 			}
 		},
 		"node_modules/@polka/url": {
-			"version": "1.0.0-next.25",
-			"resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.25.tgz",
-			"integrity": "sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==",
+			"version": "1.0.0-next.28",
+			"resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.28.tgz",
+			"integrity": "sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==",
 			"license": "MIT"
 		},
 		"node_modules/@popperjs/core": {
@@ -1146,9 +1145,9 @@
 			"license": "MIT"
 		},
 		"node_modules/@sveltejs/adapter-auto": {
-			"version": "3.2.5",
-			"resolved": "https://registry.npmjs.org/@sveltejs/adapter-auto/-/adapter-auto-3.2.5.tgz",
-			"integrity": "sha512-27LR+uKccZ62lgq4N/hvyU2G+hTP9fxWEAfnZcl70HnyfAjMSsGk1z/SjAPXNCD1mVJIE7IFu3TQ8cQ/UH3c0A==",
+			"version": "3.3.1",
+			"resolved": "https://registry.npmjs.org/@sveltejs/adapter-auto/-/adapter-auto-3.3.1.tgz",
+			"integrity": "sha512-5Sc7WAxYdL6q9j/+D0jJKjGREGlfIevDyHSQ2eNETHcB1TKlQWHcAo8AS8H1QdjNvSXpvOwNjykDUHPEAyGgdQ==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
@@ -1159,9 +1158,9 @@
 			}
 		},
 		"node_modules/@sveltejs/kit": {
-			"version": "2.6.4",
-			"resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-2.6.4.tgz",
-			"integrity": "sha512-qfcbyWw35cy6k9sQ1GUkhuE5qj+PgPKJx3/Aa3+veooWgN0DXZXqMS2PDgpgKDXRIFj6V1KWmMZYYPOhL45lXg==",
+			"version": "2.7.3",
+			"resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-2.7.3.tgz",
+			"integrity": "sha512-Vx7nq5MJ86I8qXYsVidC5PX6xm+uxt8DydvOdmJoyOK7LvGP18OFEG359yY+aa51t6pENvqZAMqAREQQx1OI2Q==",
 			"hasInstallScript": true,
 			"license": "MIT",
 			"dependencies": {
@@ -1175,7 +1174,7 @@
 				"mrmime": "^2.0.0",
 				"sade": "^1.8.1",
 				"set-cookie-parser": "^2.6.0",
-				"sirv": "^2.0.4",
+				"sirv": "^3.0.0",
 				"tiny-glob": "^0.2.9"
 			},
 			"bin": {
@@ -1285,17 +1284,17 @@
 			"license": "MIT"
 		},
 		"node_modules/@typescript-eslint/eslint-plugin": {
-			"version": "8.8.1",
-			"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.8.1.tgz",
-			"integrity": "sha512-xfvdgA8AP/vxHgtgU310+WBnLB4uJQ9XdyP17RebG26rLtDrQJV3ZYrcopX91GrHmMoH8bdSwMRh2a//TiJ1jQ==",
+			"version": "8.12.2",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.12.2.tgz",
+			"integrity": "sha512-gQxbxM8mcxBwaEmWdtLCIGLfixBMHhQjBqR8sVWNTPpcj45WlYL2IObS/DNMLH1DBP0n8qz+aiiLTGfopPEebw==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
 				"@eslint-community/regexpp": "^4.10.0",
-				"@typescript-eslint/scope-manager": "8.8.1",
-				"@typescript-eslint/type-utils": "8.8.1",
-				"@typescript-eslint/utils": "8.8.1",
-				"@typescript-eslint/visitor-keys": "8.8.1",
+				"@typescript-eslint/scope-manager": "8.12.2",
+				"@typescript-eslint/type-utils": "8.12.2",
+				"@typescript-eslint/utils": "8.12.2",
+				"@typescript-eslint/visitor-keys": "8.12.2",
 				"graphemer": "^1.4.0",
 				"ignore": "^5.3.1",
 				"natural-compare": "^1.4.0",
@@ -1319,16 +1318,16 @@
 			}
 		},
 		"node_modules/@typescript-eslint/parser": {
-			"version": "8.8.1",
-			"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.8.1.tgz",
-			"integrity": "sha512-hQUVn2Lij2NAxVFEdvIGxT9gP1tq2yM83m+by3whWFsWC+1y8pxxxHUFE1UqDu2VsGi2i6RLcv4QvouM84U+ow==",
+			"version": "8.12.2",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.12.2.tgz",
+			"integrity": "sha512-MrvlXNfGPLH3Z+r7Tk+Z5moZAc0dzdVjTgUgwsdGweH7lydysQsnSww3nAmsq8blFuRD5VRlAr9YdEFw3e6PBw==",
 			"dev": true,
 			"license": "BSD-2-Clause",
 			"dependencies": {
-				"@typescript-eslint/scope-manager": "8.8.1",
-				"@typescript-eslint/types": "8.8.1",
-				"@typescript-eslint/typescript-estree": "8.8.1",
-				"@typescript-eslint/visitor-keys": "8.8.1",
+				"@typescript-eslint/scope-manager": "8.12.2",
+				"@typescript-eslint/types": "8.12.2",
+				"@typescript-eslint/typescript-estree": "8.12.2",
+				"@typescript-eslint/visitor-keys": "8.12.2",
 				"debug": "^4.3.4"
 			},
 			"engines": {
@@ -1348,14 +1347,14 @@
 			}
 		},
 		"node_modules/@typescript-eslint/scope-manager": {
-			"version": "8.8.1",
-			"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.8.1.tgz",
-			"integrity": "sha512-X4JdU+66Mazev/J0gfXlcC/dV6JI37h+93W9BRYXrSn0hrE64IoWgVkO9MSJgEzoWkxONgaQpICWg8vAN74wlA==",
+			"version": "8.12.2",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.12.2.tgz",
+			"integrity": "sha512-gPLpLtrj9aMHOvxJkSbDBmbRuYdtiEbnvO25bCMza3DhMjTQw0u7Y1M+YR5JPbMsXXnSPuCf5hfq0nEkQDL/JQ==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
-				"@typescript-eslint/types": "8.8.1",
-				"@typescript-eslint/visitor-keys": "8.8.1"
+				"@typescript-eslint/types": "8.12.2",
+				"@typescript-eslint/visitor-keys": "8.12.2"
 			},
 			"engines": {
 				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -1366,14 +1365,14 @@
 			}
 		},
 		"node_modules/@typescript-eslint/type-utils": {
-			"version": "8.8.1",
-			"resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.8.1.tgz",
-			"integrity": "sha512-qSVnpcbLP8CALORf0za+vjLYj1Wp8HSoiI8zYU5tHxRVj30702Z1Yw4cLwfNKhTPWp5+P+k1pjmD5Zd1nhxiZA==",
+			"version": "8.12.2",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.12.2.tgz",
+			"integrity": "sha512-bwuU4TAogPI+1q/IJSKuD4shBLc/d2vGcRT588q+jzayQyjVK2X6v/fbR4InY2U2sgf8MEvVCqEWUzYzgBNcGQ==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
-				"@typescript-eslint/typescript-estree": "8.8.1",
-				"@typescript-eslint/utils": "8.8.1",
+				"@typescript-eslint/typescript-estree": "8.12.2",
+				"@typescript-eslint/utils": "8.12.2",
 				"debug": "^4.3.4",
 				"ts-api-utils": "^1.3.0"
 			},
@@ -1391,9 +1390,9 @@
 			}
 		},
 		"node_modules/@typescript-eslint/types": {
-			"version": "8.8.1",
-			"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.8.1.tgz",
-			"integrity": "sha512-WCcTP4SDXzMd23N27u66zTKMuEevH4uzU8C9jf0RO4E04yVHgQgW+r+TeVTNnO1KIfrL8ebgVVYYMMO3+jC55Q==",
+			"version": "8.12.2",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.12.2.tgz",
+			"integrity": "sha512-VwDwMF1SZ7wPBUZwmMdnDJ6sIFk4K4s+ALKLP6aIQsISkPv8jhiw65sAK6SuWODN/ix+m+HgbYDkH+zLjrzvOA==",
 			"dev": true,
 			"license": "MIT",
 			"engines": {
@@ -1405,14 +1404,14 @@
 			}
 		},
 		"node_modules/@typescript-eslint/typescript-estree": {
-			"version": "8.8.1",
-			"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.8.1.tgz",
-			"integrity": "sha512-A5d1R9p+X+1js4JogdNilDuuq+EHZdsH9MjTVxXOdVFfTJXunKJR/v+fNNyO4TnoOn5HqobzfRlc70NC6HTcdg==",
+			"version": "8.12.2",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.12.2.tgz",
+			"integrity": "sha512-mME5MDwGe30Pq9zKPvyduyU86PH7aixwqYR2grTglAdB+AN8xXQ1vFGpYaUSJ5o5P/5znsSBeNcs5g5/2aQwow==",
 			"dev": true,
 			"license": "BSD-2-Clause",
 			"dependencies": {
-				"@typescript-eslint/types": "8.8.1",
-				"@typescript-eslint/visitor-keys": "8.8.1",
+				"@typescript-eslint/types": "8.12.2",
+				"@typescript-eslint/visitor-keys": "8.12.2",
 				"debug": "^4.3.4",
 				"fast-glob": "^3.3.2",
 				"is-glob": "^4.0.3",
@@ -1460,16 +1459,16 @@
 			}
 		},
 		"node_modules/@typescript-eslint/utils": {
-			"version": "8.8.1",
-			"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.8.1.tgz",
-			"integrity": "sha512-/QkNJDbV0bdL7H7d0/y0qBbV2HTtf0TIyjSDTvvmQEzeVx8jEImEbLuOA4EsvE8gIgqMitns0ifb5uQhMj8d9w==",
+			"version": "8.12.2",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.12.2.tgz",
+			"integrity": "sha512-UTTuDIX3fkfAz6iSVa5rTuSfWIYZ6ATtEocQ/umkRSyC9O919lbZ8dcH7mysshrCdrAM03skJOEYaBugxN+M6A==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
 				"@eslint-community/eslint-utils": "^4.4.0",
-				"@typescript-eslint/scope-manager": "8.8.1",
-				"@typescript-eslint/types": "8.8.1",
-				"@typescript-eslint/typescript-estree": "8.8.1"
+				"@typescript-eslint/scope-manager": "8.12.2",
+				"@typescript-eslint/types": "8.12.2",
+				"@typescript-eslint/typescript-estree": "8.12.2"
 			},
 			"engines": {
 				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -1483,13 +1482,13 @@
 			}
 		},
 		"node_modules/@typescript-eslint/visitor-keys": {
-			"version": "8.8.1",
-			"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.8.1.tgz",
-			"integrity": "sha512-0/TdC3aeRAsW7MDvYRwEc1Uwm0TIBfzjPFgg60UU2Haj5qsCs9cc3zNgY71edqE3LbWfF/WoZQd3lJoDXFQpag==",
+			"version": "8.12.2",
+			"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.12.2.tgz",
+			"integrity": "sha512-PChz8UaKQAVNHghsHcPyx1OMHoFRUEA7rJSK/mDhdq85bk+PLsUHUBqTQTFt18VJZbmxBovM65fezlheQRsSDA==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
-				"@typescript-eslint/types": "8.8.1",
+				"@typescript-eslint/types": "8.12.2",
 				"eslint-visitor-keys": "^3.4.3"
 			},
 			"engines": {
@@ -1570,15 +1569,15 @@
 			}
 		},
 		"node_modules/@vitest/expect": {
-			"version": "2.1.2",
-			"resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-2.1.2.tgz",
-			"integrity": "sha512-FEgtlN8mIUSEAAnlvn7mP8vzaWhEaAEvhSXCqrsijM7K6QqjB11qoRZYEd4AKSCDz8p0/+yH5LzhZ47qt+EyPg==",
+			"version": "2.1.4",
+			"resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-2.1.4.tgz",
+			"integrity": "sha512-DOETT0Oh1avie/D/o2sgMHGrzYUFFo3zqESB2Hn70z6QB1HrS2IQ9z5DfyTqU8sg4Bpu13zZe9V4+UTNQlUeQA==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
-				"@vitest/spy": "2.1.2",
-				"@vitest/utils": "2.1.2",
-				"chai": "^5.1.1",
+				"@vitest/spy": "2.1.4",
+				"@vitest/utils": "2.1.4",
+				"chai": "^5.1.2",
 				"tinyrainbow": "^1.2.0"
 			},
 			"funding": {
@@ -1586,22 +1585,21 @@
 			}
 		},
 		"node_modules/@vitest/mocker": {
-			"version": "2.1.2",
-			"resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-2.1.2.tgz",
-			"integrity": "sha512-ExElkCGMS13JAJy+812fw1aCv2QO/LBK6CyO4WOPAzLTmve50gydOlWhgdBJPx2ztbADUq3JVI0C5U+bShaeEA==",
+			"version": "2.1.4",
+			"resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-2.1.4.tgz",
+			"integrity": "sha512-Ky/O1Lc0QBbutJdW0rqLeFNbuLEyS+mIPiNdlVlp2/yhJ0SbyYqObS5IHdhferJud8MbbwMnexg4jordE5cCoQ==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
-				"@vitest/spy": "^2.1.0-beta.1",
+				"@vitest/spy": "2.1.4",
 				"estree-walker": "^3.0.3",
-				"magic-string": "^0.30.11"
+				"magic-string": "^0.30.12"
 			},
 			"funding": {
 				"url": "https://opencollective.com/vitest"
 			},
 			"peerDependencies": {
-				"@vitest/spy": "2.1.2",
-				"msw": "^2.3.5",
+				"msw": "^2.4.9",
 				"vite": "^5.0.0"
 			},
 			"peerDependenciesMeta": {
@@ -1614,9 +1612,9 @@
 			}
 		},
 		"node_modules/@vitest/pretty-format": {
-			"version": "2.1.2",
-			"resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.2.tgz",
-			"integrity": "sha512-FIoglbHrSUlOJPDGIrh2bjX1sNars5HbxlcsFKCtKzu4+5lpsRhOCVcuzp0fEhAGHkPZRIXVNzPcpSlkoZ3LuA==",
+			"version": "2.1.4",
+			"resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.4.tgz",
+			"integrity": "sha512-L95zIAkEuTDbUX1IsjRl+vyBSLh3PwLLgKpghl37aCK9Jvw0iP+wKwIFhfjdUtA2myLgjrG6VU6JCFLv8q/3Ww==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
@@ -1627,13 +1625,13 @@
 			}
 		},
 		"node_modules/@vitest/runner": {
-			"version": "2.1.2",
-			"resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-2.1.2.tgz",
-			"integrity": "sha512-UCsPtvluHO3u7jdoONGjOSil+uON5SSvU9buQh3lP7GgUXHp78guN1wRmZDX4wGK6J10f9NUtP6pO+SFquoMlw==",
+			"version": "2.1.4",
+			"resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-2.1.4.tgz",
+			"integrity": "sha512-sKRautINI9XICAMl2bjxQM8VfCMTB0EbsBc/EDFA57V6UQevEKY/TOPOF5nzcvCALltiLfXWbq4MaAwWx/YxIA==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
-				"@vitest/utils": "2.1.2",
+				"@vitest/utils": "2.1.4",
 				"pathe": "^1.1.2"
 			},
 			"funding": {
@@ -1641,14 +1639,14 @@
 			}
 		},
 		"node_modules/@vitest/snapshot": {
-			"version": "2.1.2",
-			"resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-2.1.2.tgz",
-			"integrity": "sha512-xtAeNsZ++aRIYIUsek7VHzry/9AcxeULlegBvsdLncLmNCR6tR8SRjn8BbDP4naxtccvzTqZ+L1ltZlRCfBZFA==",
+			"version": "2.1.4",
+			"resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-2.1.4.tgz",
+			"integrity": "sha512-3Kab14fn/5QZRog5BPj6Rs8dc4B+mim27XaKWFWHWA87R56AKjHTGcBFKpvZKDzC4u5Wd0w/qKsUIio3KzWW4Q==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
-				"@vitest/pretty-format": "2.1.2",
-				"magic-string": "^0.30.11",
+				"@vitest/pretty-format": "2.1.4",
+				"magic-string": "^0.30.12",
 				"pathe": "^1.1.2"
 			},
 			"funding": {
@@ -1656,27 +1654,27 @@
 			}
 		},
 		"node_modules/@vitest/spy": {
-			"version": "2.1.2",
-			"resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-2.1.2.tgz",
-			"integrity": "sha512-GSUi5zoy+abNRJwmFhBDC0yRuVUn8WMlQscvnbbXdKLXX9dE59YbfwXxuJ/mth6eeqIzofU8BB5XDo/Ns/qK2A==",
+			"version": "2.1.4",
+			"resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-2.1.4.tgz",
+			"integrity": "sha512-4JOxa+UAizJgpZfaCPKK2smq9d8mmjZVPMt2kOsg/R8QkoRzydHH1qHxIYNvr1zlEaFj4SXiaaJWxq/LPLKaLg==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
-				"tinyspy": "^3.0.0"
+				"tinyspy": "^3.0.2"
 			},
 			"funding": {
 				"url": "https://opencollective.com/vitest"
 			}
 		},
 		"node_modules/@vitest/utils": {
-			"version": "2.1.2",
-			"resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-2.1.2.tgz",
-			"integrity": "sha512-zMO2KdYy6mx56btx9JvAqAZ6EyS3g49krMPPrgOp1yxGZiA93HumGk+bZ5jIZtOg5/VBYl5eBmGRQHqq4FG6uQ==",
+			"version": "2.1.4",
+			"resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-2.1.4.tgz",
+			"integrity": "sha512-MXDnZn0Awl2S86PSNIim5PWXgIAx8CIkzu35mBdSApUip6RFOGXBCf3YFyeEu8n1IHk4bWD46DeYFu9mQlFIRg==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
-				"@vitest/pretty-format": "2.1.2",
-				"loupe": "^3.1.1",
+				"@vitest/pretty-format": "2.1.4",
+				"loupe": "^3.1.2",
 				"tinyrainbow": "^1.2.0"
 			},
 			"funding": {
@@ -2481,9 +2479,9 @@
 			"license": "Apache-2.0"
 		},
 		"node_modules/chai": {
-			"version": "5.1.1",
-			"resolved": "https://registry.npmjs.org/chai/-/chai-5.1.1.tgz",
-			"integrity": "sha512-pT1ZgP8rPNqUgieVaEY+ryQr6Q4HXNg8Ei9UnLUrjN4IA7dvQC5JB+/kxVcPNDHyBcc/26CXPkbNzq3qwrOEKA==",
+			"version": "5.1.2",
+			"resolved": "https://registry.npmjs.org/chai/-/chai-5.1.2.tgz",
+			"integrity": "sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
@@ -2683,12 +2681,12 @@
 			}
 		},
 		"node_modules/debug": {
-			"version": "4.3.6",
-			"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz",
-			"integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==",
+			"version": "4.3.7",
+			"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
+			"integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
 			"license": "MIT",
 			"dependencies": {
-				"ms": "2.1.2"
+				"ms": "^2.1.3"
 			},
 			"engines": {
 				"node": ">=6.0"
@@ -2856,18 +2854,18 @@
 			}
 		},
 		"node_modules/eslint": {
-			"version": "9.12.0",
-			"resolved": "https://registry.npmjs.org/eslint/-/eslint-9.12.0.tgz",
-			"integrity": "sha512-UVIOlTEWxwIopRL1wgSQYdnVDcEvs2wyaO6DGo5mXqe3r16IoCNWkR29iHhyaP4cICWjbgbmFUGAhh0GJRuGZw==",
+			"version": "9.13.0",
+			"resolved": "https://registry.npmjs.org/eslint/-/eslint-9.13.0.tgz",
+			"integrity": "sha512-EYZK6SX6zjFHST/HRytOdA/zE72Cq/bfw45LSyuwrdvcclb/gqV8RRQxywOBEWO2+WDpva6UZa4CcDeJKzUCFA==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
 				"@eslint-community/eslint-utils": "^4.2.0",
 				"@eslint-community/regexpp": "^4.11.0",
 				"@eslint/config-array": "^0.18.0",
-				"@eslint/core": "^0.6.0",
+				"@eslint/core": "^0.7.0",
 				"@eslint/eslintrc": "^3.1.0",
-				"@eslint/js": "9.12.0",
+				"@eslint/js": "9.13.0",
 				"@eslint/plugin-kit": "^0.2.0",
 				"@humanfs/node": "^0.16.5",
 				"@humanwhocodes/module-importer": "^1.0.1",
@@ -2946,9 +2944,9 @@
 			}
 		},
 		"node_modules/eslint-plugin-svelte": {
-			"version": "2.44.1",
-			"resolved": "https://registry.npmjs.org/eslint-plugin-svelte/-/eslint-plugin-svelte-2.44.1.tgz",
-			"integrity": "sha512-w6wkoJPw1FJKFtM/2oln21rlu5+HTd2CSkkzhm32A+trNoW2EYQqTQAbDTU6k2GI/6Vh64rBHYQejqEgDld7fw==",
+			"version": "2.46.0",
+			"resolved": "https://registry.npmjs.org/eslint-plugin-svelte/-/eslint-plugin-svelte-2.46.0.tgz",
+			"integrity": "sha512-1A7iEMkzmCZ9/Iz+EAfOGYL8IoIG6zeKEq1SmpxGeM5SXmoQq+ZNnCpXFVJpsxPWYx8jIVGMerQMzX20cqUl0g==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
@@ -2956,13 +2954,13 @@
 				"@jridgewell/sourcemap-codec": "^1.4.15",
 				"eslint-compat-utils": "^0.5.1",
 				"esutils": "^2.0.3",
-				"known-css-properties": "^0.34.0",
+				"known-css-properties": "^0.35.0",
 				"postcss": "^8.4.38",
 				"postcss-load-config": "^3.1.4",
 				"postcss-safe-parser": "^6.0.0",
 				"postcss-selector-parser": "^6.1.0",
 				"semver": "^7.6.2",
-				"svelte-eslint-parser": "^0.41.1"
+				"svelte-eslint-parser": "^0.43.0"
 			},
 			"engines": {
 				"node": "^14.17.0 || >=16.0.0"
@@ -2972,7 +2970,7 @@
 			},
 			"peerDependencies": {
 				"eslint": "^7.0.0 || ^8.0.0-0 || ^9.0.0-0",
-				"svelte": "^3.37.0 || ^4.0.0 || ^5.0.0-next.191"
+				"svelte": "^3.37.0 || ^4.0.0 || ^5.0.0"
 			},
 			"peerDependenciesMeta": {
 				"svelte": {
@@ -3103,6 +3101,16 @@
 				"node": ">=0.10.0"
 			}
 		},
+		"node_modules/expect-type": {
+			"version": "1.1.0",
+			"resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.1.0.tgz",
+			"integrity": "sha512-bFi65yM+xZgk+u/KRIpekdSYkTB5W1pEf0Lt8Q8Msh7b+eQ7LXVtIB1Bkm4fvclDEL1b2CZkMhv2mOeF8tMdkA==",
+			"dev": true,
+			"license": "Apache-2.0",
+			"engines": {
+				"node": ">=12.0.0"
+			}
+		},
 		"node_modules/fast-deep-equal": {
 			"version": "3.1.3",
 			"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
@@ -3721,9 +3729,9 @@
 			}
 		},
 		"node_modules/known-css-properties": {
-			"version": "0.34.0",
-			"resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.34.0.tgz",
-			"integrity": "sha512-tBECoUqNFbyAY4RrbqsBQqDFpGXAEbdD5QKr8kACx3+rnArmuuR22nKQWKazvp07N9yjTyDZaw/20UIH8tL9DQ==",
+			"version": "0.35.0",
+			"resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.35.0.tgz",
+			"integrity": "sha512-a/RAk2BfKk+WFGhhOCAYqSiFLc34k8Mt/6NWRI4joER0EYUzXIcFivjjnoD3+XU1DggLn/tZc3DOAgke7l8a4A==",
 			"dev": true,
 			"license": "MIT"
 		},
@@ -3816,9 +3824,9 @@
 			"license": "ISC"
 		},
 		"node_modules/magic-string": {
-			"version": "0.30.11",
-			"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.11.tgz",
-			"integrity": "sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==",
+			"version": "0.30.12",
+			"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.12.tgz",
+			"integrity": "sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==",
 			"license": "MIT",
 			"dependencies": {
 				"@jridgewell/sourcemap-codec": "^1.5.0"
@@ -3939,9 +3947,9 @@
 			}
 		},
 		"node_modules/ms": {
-			"version": "2.1.2",
-			"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
-			"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+			"version": "2.1.3",
+			"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+			"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
 			"license": "MIT"
 		},
 		"node_modules/mz": {
@@ -4860,9 +4868,9 @@
 			}
 		},
 		"node_modules/sirv": {
-			"version": "2.0.4",
-			"resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz",
-			"integrity": "sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==",
+			"version": "3.0.0",
+			"resolved": "https://registry.npmjs.org/sirv/-/sirv-3.0.0.tgz",
+			"integrity": "sha512-BPwJGUeDaDCHihkORDchNyyTvWFhcusy1XMmhEVTQTwGeybFbp8YEmB+njbPnth1FibULBSBVwCQni25XlCUDg==",
 			"license": "MIT",
 			"dependencies": {
 				"@polka/url": "^1.0.0-next.24",
@@ -4870,7 +4878,7 @@
 				"totalist": "^3.0.0"
 			},
 			"engines": {
-				"node": ">= 10"
+				"node": ">=18"
 			}
 		},
 		"node_modules/source-map-js": {
@@ -5141,9 +5149,9 @@
 			"license": "MIT"
 		},
 		"node_modules/svelte-check": {
-			"version": "4.0.4",
-			"resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-4.0.4.tgz",
-			"integrity": "sha512-AcHWIPuZb1mh/jKoIrww0ebBPpAvwWd1bfXCnwC2dx4OkydNMaiG//+Xnry91RJMHFH7CiE+6Y2p332DRIaOXQ==",
+			"version": "4.0.5",
+			"resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-4.0.5.tgz",
+			"integrity": "sha512-icBTBZ3ibBaywbXUat3cK6hB5Du+Kq9Z8CRuyLmm64XIe2/r+lQcbuBx/IQgsbrC+kT2jQ0weVpZSSRIPwB6jQ==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
@@ -5225,9 +5233,9 @@
 			}
 		},
 		"node_modules/svelte-eslint-parser": {
-			"version": "0.41.1",
-			"resolved": "https://registry.npmjs.org/svelte-eslint-parser/-/svelte-eslint-parser-0.41.1.tgz",
-			"integrity": "sha512-08ndI6zTghzI8SuJAFpvMbA/haPSGn3xz19pjre19yYMw8Nw/wQJ2PrZBI/L8ijGTgtkWCQQiLLy+Z1tfaCwNA==",
+			"version": "0.43.0",
+			"resolved": "https://registry.npmjs.org/svelte-eslint-parser/-/svelte-eslint-parser-0.43.0.tgz",
+			"integrity": "sha512-GpU52uPKKcVnh8tKN5P4UZpJ/fUDndmq7wfsvoVXsyP+aY0anol7Yqo01fyrlaWGMFfm4av5DyrjlaXdLRJvGA==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
@@ -5244,7 +5252,7 @@
 				"url": "https://github.com/sponsors/ota-meshi"
 			},
 			"peerDependencies": {
-				"svelte": "^3.37.0 || ^4.0.0 || ^5.0.0-next.191"
+				"svelte": "^3.37.0 || ^4.0.0 || ^5.0.0"
 			},
 			"peerDependenciesMeta": {
 				"svelte": {
@@ -5346,9 +5354,9 @@
 			"license": "MIT"
 		},
 		"node_modules/tailwind-merge": {
-			"version": "2.5.3",
-			"resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.5.3.tgz",
-			"integrity": "sha512-d9ZolCAIzom1nf/5p4LdD5zvjmgSxY0BGgdSvmXIoMYAiPdAW/dSpP7joCDYFY7r/HkEa2qmPtkgsu0xjQeQtw==",
+			"version": "2.5.4",
+			"resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.5.4.tgz",
+			"integrity": "sha512-0q8cfZHMu9nuYP/b5Shb7Y7Sh1B7Nnl5GqNr1U+n2p6+mybvRtayrQ+0042Z5byvTA8ihjlP8Odo8/VnHbZu4Q==",
 			"license": "MIT",
 			"funding": {
 				"type": "github",
@@ -5356,9 +5364,9 @@
 			}
 		},
 		"node_modules/tailwindcss": {
-			"version": "3.4.13",
-			"resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.13.tgz",
-			"integrity": "sha512-KqjHOJKogOUt5Bs752ykCeiwvi0fKVkr5oqsFNt/8px/tA8scFPIlkygsf6jXrfCqGHz7VflA6+yytWuM+XhFw==",
+			"version": "3.4.14",
+			"resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.14.tgz",
+			"integrity": "sha512-IcSvOcTRcUtQQ7ILQL5quRDg7Xs93PdJEk1ZLbhhvJc7uj/OAhYOnruEiwnGgBvUtaUAJ8/mhSw1o8L2jCiENA==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
@@ -5552,9 +5560,9 @@
 			"license": "MIT"
 		},
 		"node_modules/tinyexec": {
-			"version": "0.3.0",
-			"resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.0.tgz",
-			"integrity": "sha512-tVGE0mVJPGb0chKhqmsoosjsS+qUnJVGJpZgsHYQcGoPlG3B51R3PouqTgEGH2Dc9jjFyOqOpix6ZHNMXp1FZg==",
+			"version": "0.3.1",
+			"resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.1.tgz",
+			"integrity": "sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==",
 			"dev": true,
 			"license": "MIT"
 		},
@@ -5615,9 +5623,9 @@
 			"integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
 		},
 		"node_modules/ts-api-utils": {
-			"version": "1.3.0",
-			"resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz",
-			"integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==",
+			"version": "1.4.0",
+			"resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.0.tgz",
+			"integrity": "sha512-032cPxaEKwM+GT3vA5JXNzIaizx388rhsSW79vGRNGXfRRAdEAn2mvk36PvK5HnOchyWZ7afLEXqYCvPCrzuzQ==",
 			"dev": true,
 			"license": "MIT",
 			"engines": {
@@ -5668,15 +5676,15 @@
 			}
 		},
 		"node_modules/typescript-eslint": {
-			"version": "8.8.1",
-			"resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.8.1.tgz",
-			"integrity": "sha512-R0dsXFt6t4SAFjUSKFjMh4pXDtq04SsFKCVGDP3ZOzNP7itF0jBcZYU4fMsZr4y7O7V7Nc751dDeESbe4PbQMQ==",
+			"version": "8.12.2",
+			"resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.12.2.tgz",
+			"integrity": "sha512-UbuVUWSrHVR03q9CWx+JDHeO6B/Hr9p4U5lRH++5tq/EbFq1faYZe50ZSBePptgfIKLEti0aPQ3hFgnPVcd8ZQ==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
-				"@typescript-eslint/eslint-plugin": "8.8.1",
-				"@typescript-eslint/parser": "8.8.1",
-				"@typescript-eslint/utils": "8.8.1"
+				"@typescript-eslint/eslint-plugin": "8.12.2",
+				"@typescript-eslint/parser": "8.12.2",
+				"@typescript-eslint/utils": "8.12.2"
 			},
 			"engines": {
 				"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -5705,15 +5713,6 @@
 				"svelte": ">=3.43.0 <5"
 			}
 		},
-		"node_modules/unique-names-generator": {
-			"version": "4.7.1",
-			"resolved": "https://registry.npmjs.org/unique-names-generator/-/unique-names-generator-4.7.1.tgz",
-			"integrity": "sha512-lMx9dX+KRmG8sq6gulYYpKWZc9RlGsgBR6aoO8Qsm3qvkSJ+3rAymr+TnV8EDMrIrwuFJ4kruzMWM/OpYzPoow==",
-			"license": "MIT",
-			"engines": {
-				"node": ">=8"
-			}
-		},
 		"node_modules/update-browserslist-db": {
 			"version": "1.1.0",
 			"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz",
@@ -5762,9 +5761,9 @@
 			"license": "MIT"
 		},
 		"node_modules/virtua": {
-			"version": "0.35.0",
-			"resolved": "https://registry.npmjs.org/virtua/-/virtua-0.35.0.tgz",
-			"integrity": "sha512-k7JHQFRznKNwJb0XmBGQ0Wt3iFeqbvjHcOobQbSF87KZCgV+zgYBx7wREIvlkQJ+KffUN4VabK3+5IXhXCrdpw==",
+			"version": "0.35.1",
+			"resolved": "https://registry.npmjs.org/virtua/-/virtua-0.35.1.tgz",
+			"integrity": "sha512-0pb6rqrysyaWLRtkmM3sYMkK6oom8TzN8vSoPyOSblY89B+z8xyK7VXVzGtVLVhD49E8YMp9uQXaRVftWCHFCw==",
 			"license": "MIT",
 			"peerDependencies": {
 				"react": ">=16.14.0",
@@ -5792,9 +5791,9 @@
 			}
 		},
 		"node_modules/vite": {
-			"version": "5.4.8",
-			"resolved": "https://registry.npmjs.org/vite/-/vite-5.4.8.tgz",
-			"integrity": "sha512-FqrItQ4DT1NC4zCUqMB4c4AZORMKIa0m8/URVCZ77OZ/QSNeJ54bU1vrFADbDsuwfIPcgknRkmqakQcgnL4GiQ==",
+			"version": "5.4.10",
+			"resolved": "https://registry.npmjs.org/vite/-/vite-5.4.10.tgz",
+			"integrity": "sha512-1hvaPshuPUtxeQ0hsVH3Mud0ZanOLwVTneA1EgbAM5LhaZEqyPWGRQ7BtaMvUrTDeEaC8pxtj6a6jku3x4z6SQ==",
 			"license": "MIT",
 			"dependencies": {
 				"esbuild": "^0.21.3",
@@ -5851,14 +5850,14 @@
 			}
 		},
 		"node_modules/vite-node": {
-			"version": "2.1.2",
-			"resolved": "https://registry.npmjs.org/vite-node/-/vite-node-2.1.2.tgz",
-			"integrity": "sha512-HPcGNN5g/7I2OtPjLqgOtCRu/qhVvBxTUD3qzitmL0SrG1cWFzxzhMDWussxSbrRYWqnKf8P2jiNhPMSN+ymsQ==",
+			"version": "2.1.4",
+			"resolved": "https://registry.npmjs.org/vite-node/-/vite-node-2.1.4.tgz",
+			"integrity": "sha512-kqa9v+oi4HwkG6g8ufRnb5AeplcRw8jUF6/7/Qz1qRQOXHImG8YnLbB+LLszENwFnoBl9xIf9nVdCFzNd7GQEg==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
 				"cac": "^6.7.14",
-				"debug": "^4.3.6",
+				"debug": "^4.3.7",
 				"pathe": "^1.1.2",
 				"vite": "^5.0.0"
 			},
@@ -5887,30 +5886,31 @@
 			}
 		},
 		"node_modules/vitest": {
-			"version": "2.1.2",
-			"resolved": "https://registry.npmjs.org/vitest/-/vitest-2.1.2.tgz",
-			"integrity": "sha512-veNjLizOMkRrJ6xxb+pvxN6/QAWg95mzcRjtmkepXdN87FNfxAss9RKe2far/G9cQpipfgP2taqg0KiWsquj8A==",
+			"version": "2.1.4",
+			"resolved": "https://registry.npmjs.org/vitest/-/vitest-2.1.4.tgz",
+			"integrity": "sha512-eDjxbVAJw1UJJCHr5xr/xM86Zx+YxIEXGAR+bmnEID7z9qWfoxpHw0zdobz+TQAFOLT+nEXz3+gx6nUJ7RgmlQ==",
 			"dev": true,
 			"license": "MIT",
 			"dependencies": {
-				"@vitest/expect": "2.1.2",
-				"@vitest/mocker": "2.1.2",
-				"@vitest/pretty-format": "^2.1.2",
-				"@vitest/runner": "2.1.2",
-				"@vitest/snapshot": "2.1.2",
-				"@vitest/spy": "2.1.2",
-				"@vitest/utils": "2.1.2",
-				"chai": "^5.1.1",
-				"debug": "^4.3.6",
-				"magic-string": "^0.30.11",
+				"@vitest/expect": "2.1.4",
+				"@vitest/mocker": "2.1.4",
+				"@vitest/pretty-format": "^2.1.4",
+				"@vitest/runner": "2.1.4",
+				"@vitest/snapshot": "2.1.4",
+				"@vitest/spy": "2.1.4",
+				"@vitest/utils": "2.1.4",
+				"chai": "^5.1.2",
+				"debug": "^4.3.7",
+				"expect-type": "^1.1.0",
+				"magic-string": "^0.30.12",
 				"pathe": "^1.1.2",
 				"std-env": "^3.7.0",
 				"tinybench": "^2.9.0",
-				"tinyexec": "^0.3.0",
-				"tinypool": "^1.0.0",
+				"tinyexec": "^0.3.1",
+				"tinypool": "^1.0.1",
 				"tinyrainbow": "^1.2.0",
 				"vite": "^5.0.0",
-				"vite-node": "2.1.2",
+				"vite-node": "2.1.4",
 				"why-is-node-running": "^2.3.0"
 			},
 			"bin": {
@@ -5925,8 +5925,8 @@
 			"peerDependencies": {
 				"@edge-runtime/vm": "*",
 				"@types/node": "^18.0.0 || >=20.0.0",
-				"@vitest/browser": "2.1.2",
-				"@vitest/ui": "2.1.2",
+				"@vitest/browser": "2.1.4",
+				"@vitest/ui": "2.1.4",
 				"happy-dom": "*",
 				"jsdom": "*"
 			},
diff --git a/package.json b/package.json
index fe64615..c118968 100644
--- a/package.json
+++ b/package.json
@@ -15,30 +15,30 @@
 	"type": "module",
 	"devDependencies": {
 		"@melt-ui/pp": "^0.3.2",
-		"@sveltejs/adapter-auto": "^3.2.5",
-		"@sveltejs/kit": "^2.6.4",
+		"@sveltejs/adapter-auto": "^3.3.1",
+		"@sveltejs/kit": "^2.7.3",
 		"@sveltejs/vite-plugin-svelte": "^3.1.2",
 		"@tailwindcss/typography": "^0.5.15",
 		"@types/eslint": "^9.6.1",
 		"autoprefixer": "^10.4.20",
-		"eslint": "^9.12.0",
+		"eslint": "^9.13.0",
 		"eslint-config-prettier": "^9.1.0",
-		"eslint-plugin-svelte": "^2.44.1",
+		"eslint-plugin-svelte": "^2.46.0",
 		"globals": "^15.11.0",
 		"prettier": "^3.3.3",
 		"prettier-plugin-svelte": "^3.2.7",
 		"prettier-plugin-tailwindcss": "^0.6.8",
 		"svelte": "^4.2.19",
-		"svelte-check": "^4.0.4",
-		"tailwindcss": "^3.4.13",
+		"svelte-check": "^4.0.5",
+		"tailwindcss": "^3.4.14",
 		"typescript": "^5.6.3",
-		"typescript-eslint": "^8.8.1",
-		"vite": "^5.4.8",
-		"vitest": "^2.1.2"
+		"typescript-eslint": "^8.12.2",
+		"vite": "^5.4.10",
+		"vitest": "^2.1.4"
 	},
 	"dependencies": {
-		"@blah-im/core": "^0.2.6",
-		"@melt-ui/svelte": "^0.83.0",
+		"@blah-im/core": "^0.3.0",
+		"@melt-ui/svelte": "^0.85.0",
 		"@zeabur/svelte-adapter": "^1.0.0",
 		"bits-ui": "^0.21.16",
 		"canonicalize": "^2.0.0",
@@ -46,10 +46,9 @@
 		"svelte-boring-avatars": "^1.2.6",
 		"svelte-hero-icons": "^5.2.0",
 		"svelte-persisted-store": "^0.11.0",
-		"tailwind-merge": "^2.5.3",
+		"tailwind-merge": "^2.5.4",
 		"typewriter-editor": "^0.12.7",
-		"unique-names-generator": "^4.7.1",
-		"virtua": "^0.35.0",
+		"virtua": "^0.35.1",
 		"zod": "^3.23.8"
 	}
 }
diff --git a/vitest.config.ts b/vitest.config.ts
deleted file mode 100644
index 8de8074..0000000
--- a/vitest.config.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import { defineConfig } from 'vitest/config';
-
-export default defineConfig({
-	test: {
-		server: {
-			deps: {
-				inline: ['unique-names-generator']
-			}
-		}
-	}
-});