diff --git a/eslint.config.js b/eslint.config.js
index 444fcd0..872df75 100644
--- a/eslint.config.js
+++ b/eslint.config.js
@@ -29,6 +29,7 @@ export default ts.config(
argsIgnorePattern: '^_'
}
],
+ 'no-prototype-builtins': 'off',
'no-useless-escape': 'warn'
}
},
diff --git a/jsrepo-build-config.json b/jsrepo-build-config.json
index ea7a252..f923140 100644
--- a/jsrepo-build-config.json
+++ b/jsrepo-build-config.json
@@ -9,6 +9,7 @@
"doNotListCategories": [],
"listBlocks": [
"button",
+ "chat",
"code",
"field-set",
"ipv4address-input",
@@ -21,7 +22,8 @@
"tree-view",
"active.svelte",
"shortcut.svelte",
- "context-provider"
+ "context-provider",
+ "use-auto-scroll.svelte"
],
"listCategories": [],
"excludeDeps": ["svelte"],
diff --git a/jsrepo-manifest.json b/jsrepo-manifest.json
index 60d29b0..5956c31 100644
--- a/jsrepo-manifest.json
+++ b/jsrepo-manifest.json
@@ -2,6 +2,21 @@
{
"name": "ui",
"blocks": [
+ {
+ "name": "avatar",
+ "directory": "src/lib/components/ui/avatar",
+ "category": "ui",
+ "tests": false,
+ "subdirectory": true,
+ "list": false,
+ "files": ["avatar-fallback.svelte", "avatar-image.svelte", "avatar.svelte", "index.ts"],
+ "localDependencies": ["utils/utils"],
+ "dependencies": [],
+ "devDependencies": ["bits-ui@1.0.0-next.77"],
+ "_imports_": {
+ "$lib/utils/utils.js": "{{utils/utils}}.js"
+ }
+ },
{
"name": "button",
"directory": "src/lib/components/ui/button",
@@ -14,13 +29,44 @@
"dependencies": [],
"devDependencies": [
"lucide-svelte@^0.469.0",
- "bits-ui@1.0.0-next.74",
+ "bits-ui@1.0.0-next.77",
"tailwind-variants@^0.3.0"
],
"_imports_": {
"$lib/utils/utils.js": "{{utils/utils}}.js"
}
},
+ {
+ "name": "chat",
+ "directory": "src/lib/components/ui/chat",
+ "category": "ui",
+ "tests": false,
+ "subdirectory": true,
+ "list": true,
+ "files": [
+ "chat-bubble-avatar.svelte",
+ "chat-bubble-message.svelte",
+ "chat-bubble.svelte",
+ "chat-list.svelte",
+ "index.ts",
+ "loading-dots.svelte"
+ ],
+ "localDependencies": [
+ "ui/avatar",
+ "utils/utils",
+ "ui/button",
+ "hooks/use-auto-scroll.svelte"
+ ],
+ "dependencies": [],
+ "devDependencies": ["bits-ui@1.0.0-next.77", "lucide-svelte@^0.469.0"],
+ "_imports_": {
+ "$lib/components/ui/avatar": "{{ui/avatar}}",
+ "$lib/utils/utils.js": "{{utils/utils}}.js",
+ "$lib/utils/utils": "{{utils/utils}}",
+ "$lib/components/ui/button": "{{ui/button}}",
+ "$lib/hooks/use-auto-scroll.svelte.js": "{{hooks/use-auto-scroll.svelte}}.js"
+ }
+ },
{
"name": "code",
"directory": "src/lib/components/ui/code",
@@ -31,7 +77,7 @@
"files": ["code.svelte", "copy.svelte", "index.ts", "langs.ts", "shiki-provider.svelte"],
"localDependencies": ["utils/utils", "ui/button", "utils/context-provider"],
"dependencies": [],
- "devDependencies": ["tailwind-variants@^0.3.0", "lucide-svelte@^0.469.0", "shiki@^1.24.4"],
+ "devDependencies": ["tailwind-variants@^0.3.0", "lucide-svelte@^0.469.0", "shiki@^1.26.1"],
"_imports_": {
"$lib/utils/utils": "{{utils/utils}}",
"$lib/components/ui/button": "{{ui/button}}",
@@ -48,7 +94,7 @@
"files": ["index.ts"],
"localDependencies": [],
"dependencies": [],
- "devDependencies": ["bits-ui@1.0.0-next.74"],
+ "devDependencies": ["bits-ui@1.0.0-next.77"],
"_imports_": {}
},
{
@@ -73,7 +119,7 @@
],
"localDependencies": ["ui/dialog", "utils/utils"],
"dependencies": [],
- "devDependencies": ["bits-ui@1.0.0-next.74", "lucide-svelte@^0.469.0"],
+ "devDependencies": ["bits-ui@1.0.0-next.77", "lucide-svelte@^0.469.0"],
"_imports_": {
"$lib/components/ui/dialog/index.js": "{{ui/dialog}}/index.js",
"$lib/utils/utils.js": "{{utils/utils}}.js"
@@ -97,7 +143,7 @@
],
"localDependencies": ["utils/utils"],
"dependencies": [],
- "devDependencies": ["bits-ui@1.0.0-next.74", "lucide-svelte@^0.469.0"],
+ "devDependencies": ["bits-ui@1.0.0-next.77", "lucide-svelte@^0.469.0"],
"_imports_": {
"$lib/utils/utils.js": "{{utils/utils}}.js"
}
@@ -122,7 +168,7 @@
],
"localDependencies": ["utils/utils"],
"dependencies": [],
- "devDependencies": ["vaul-svelte@1.0.0-next.3", "bits-ui@1.0.0-next.74"],
+ "devDependencies": ["vaul-svelte@1.0.0-next.3", "bits-ui@1.0.0-next.77"],
"_imports_": {
"$lib/utils/utils.js": "{{utils/utils}}.js"
}
@@ -149,7 +195,7 @@
],
"localDependencies": ["utils/utils"],
"dependencies": [],
- "devDependencies": ["bits-ui@1.0.0-next.74", "lucide-svelte@^0.469.0"],
+ "devDependencies": ["bits-ui@1.0.0-next.77", "lucide-svelte@^0.469.0"],
"_imports_": {
"$lib/utils/utils.js": "{{utils/utils}}.js"
}
@@ -170,7 +216,7 @@
],
"localDependencies": ["utils/utils"],
"dependencies": [],
- "devDependencies": ["bits-ui@1.0.0-next.74", "tailwind-variants@^0.3.0"],
+ "devDependencies": ["bits-ui@1.0.0-next.77", "tailwind-variants@^0.3.0"],
"_imports_": {
"$lib/utils/utils": "{{utils/utils}}",
"$lib/utils/utils.js": "{{utils/utils}}.js"
@@ -275,7 +321,7 @@
"files": ["index.ts", "popover-content.svelte"],
"localDependencies": ["utils/utils"],
"dependencies": [],
- "devDependencies": ["bits-ui@1.0.0-next.74"],
+ "devDependencies": ["bits-ui@1.0.0-next.77"],
"_imports_": {
"$lib/utils/utils.js": "{{utils/utils}}.js"
}
@@ -290,7 +336,7 @@
"files": ["index.ts", "scroll-area-scrollbar.svelte", "scroll-area.svelte"],
"localDependencies": ["utils/utils"],
"dependencies": [],
- "devDependencies": ["bits-ui@1.0.0-next.74"],
+ "devDependencies": ["bits-ui@1.0.0-next.77"],
"_imports_": {
"$lib/utils/utils.js": "{{utils/utils}}.js"
}
@@ -380,6 +426,24 @@
}
]
},
+ {
+ "name": "hooks",
+ "blocks": [
+ {
+ "name": "use-auto-scroll.svelte",
+ "directory": "src/lib/hooks",
+ "category": "hooks",
+ "tests": false,
+ "subdirectory": false,
+ "list": true,
+ "files": ["use-auto-scroll.svelte.ts"],
+ "localDependencies": [],
+ "_imports_": {},
+ "dependencies": [],
+ "devDependencies": []
+ }
+ ]
+ },
{
"name": "utils",
"blocks": [
diff --git a/package.json b/package.json
index d1e9b7e..95a883c 100644
--- a/package.json
+++ b/package.json
@@ -15,26 +15,25 @@
},
"devDependencies": {
"@eslint/compat": "^1.2.3",
- "@fontsource/geist-mono": "^5.1.0",
- "@fontsource/inter": "^5.1.0",
+ "@fontsource/geist-mono": "^5.1.1",
"@sveltejs/adapter-vercel": "^5.5.2",
- "@sveltejs/kit": "^2.15.1",
+ "@sveltejs/kit": "^2.15.2",
"@sveltejs/vite-plugin-svelte": "^5.0.3",
"autoprefixer": "^10.4.20",
- "bits-ui": "1.0.0-next.74",
+ "bits-ui": "1.0.0-next.77",
"clsx": "^2.1.1",
"eslint": "^9.17.0",
"eslint-config-prettier": "^9.1.0",
"eslint-plugin-svelte": "^2.45.1",
"globals": "^15.14.0",
- "jsrepo": "^1.23.1",
+ "jsrepo": "^1.24.0",
"lucide-svelte": "^0.469.0",
"mode-watcher": "^0.5.0",
"prettier": "^3.3.2",
"prettier-plugin-svelte": "^3.2.6",
"prettier-plugin-tailwindcss": "^0.6.5",
- "shiki": "^1.24.4",
- "svelte": "^5.16.0",
+ "shiki": "^1.26.1",
+ "svelte": "^5.16.5",
"svelte-check": "^4.0.0",
"svelte-sonner": "^0.3.28",
"svelte-tel-input": "^3.5.2",
@@ -43,8 +42,11 @@
"tailwindcss": "^3.4.17",
"tailwindcss-animate": "^1.0.7",
"typescript": "^5.5.0",
- "typescript-eslint": "^8.18.2",
+ "typescript-eslint": "^8.19.1",
"vaul-svelte": "1.0.0-next.3",
- "vite": "^6.0.6"
+ "vite": "^6.0.7"
+ },
+ "dependencies": {
+ "@fontsource-variable/inter": "^5.1.1"
}
}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 41cb1cc..7a85a67 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -7,31 +7,32 @@ settings:
importers:
.:
+ dependencies:
+ '@fontsource-variable/inter':
+ specifier: ^5.1.1
+ version: 5.1.1
devDependencies:
'@eslint/compat':
specifier: ^1.2.3
version: 1.2.4(eslint@9.17.0(jiti@1.21.6))
'@fontsource/geist-mono':
- specifier: ^5.1.0
- version: 5.1.0
- '@fontsource/inter':
- specifier: ^5.1.0
- version: 5.1.0
+ specifier: ^5.1.1
+ version: 5.1.1
'@sveltejs/adapter-vercel':
specifier: ^5.5.2
- version: 5.5.2(@sveltejs/kit@2.15.1(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.16.0)(vite@6.0.6(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.16.0)(vite@6.0.6(jiti@1.21.6)(yaml@2.6.1)))(rollup@4.28.0)
+ version: 5.5.2(@sveltejs/kit@2.15.2(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.16.5)(vite@6.0.7(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.16.5)(vite@6.0.7(jiti@1.21.6)(yaml@2.6.1)))(rollup@4.28.0)
'@sveltejs/kit':
- specifier: ^2.15.1
- version: 2.15.1(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.16.0)(vite@6.0.6(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.16.0)(vite@6.0.6(jiti@1.21.6)(yaml@2.6.1))
+ specifier: ^2.15.2
+ version: 2.15.2(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.16.5)(vite@6.0.7(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.16.5)(vite@6.0.7(jiti@1.21.6)(yaml@2.6.1))
'@sveltejs/vite-plugin-svelte':
specifier: ^5.0.3
- version: 5.0.3(svelte@5.16.0)(vite@6.0.6(jiti@1.21.6)(yaml@2.6.1))
+ version: 5.0.3(svelte@5.16.5)(vite@6.0.7(jiti@1.21.6)(yaml@2.6.1))
autoprefixer:
specifier: ^10.4.20
version: 10.4.20(postcss@8.4.49)
bits-ui:
- specifier: 1.0.0-next.74
- version: 1.0.0-next.74(svelte@5.16.0)
+ specifier: 1.0.0-next.77
+ version: 1.0.0-next.77(svelte@5.16.5)
clsx:
specifier: ^2.1.1
version: 2.1.1
@@ -43,43 +44,43 @@ importers:
version: 9.1.0(eslint@9.17.0(jiti@1.21.6))
eslint-plugin-svelte:
specifier: ^2.45.1
- version: 2.46.1(eslint@9.17.0(jiti@1.21.6))(svelte@5.16.0)
+ version: 2.46.1(eslint@9.17.0(jiti@1.21.6))(svelte@5.16.5)
globals:
specifier: ^15.14.0
version: 15.14.0
jsrepo:
- specifier: ^1.23.1
- version: 1.23.1(typescript@5.7.2)
+ specifier: ^1.24.0
+ version: 1.24.0(typescript@5.7.2)
lucide-svelte:
specifier: ^0.469.0
- version: 0.469.0(svelte@5.16.0)
+ version: 0.469.0(svelte@5.16.5)
mode-watcher:
specifier: ^0.5.0
- version: 0.5.0(svelte@5.16.0)
+ version: 0.5.0(svelte@5.16.5)
prettier:
specifier: ^3.3.2
version: 3.4.2
prettier-plugin-svelte:
specifier: ^3.2.6
- version: 3.3.2(prettier@3.4.2)(svelte@5.16.0)
+ version: 3.3.2(prettier@3.4.2)(svelte@5.16.5)
prettier-plugin-tailwindcss:
specifier: ^0.6.5
- version: 0.6.9(prettier-plugin-svelte@3.3.2(prettier@3.4.2)(svelte@5.16.0))(prettier@3.4.2)
+ version: 0.6.9(prettier-plugin-svelte@3.3.2(prettier@3.4.2)(svelte@5.16.5))(prettier@3.4.2)
shiki:
- specifier: ^1.24.4
- version: 1.24.4
+ specifier: ^1.26.1
+ version: 1.26.1
svelte:
- specifier: ^5.16.0
- version: 5.16.0
+ specifier: ^5.16.5
+ version: 5.16.5
svelte-check:
specifier: ^4.0.0
- version: 4.1.1(picomatch@4.0.2)(svelte@5.16.0)(typescript@5.7.2)
+ version: 4.1.1(picomatch@4.0.2)(svelte@5.16.5)(typescript@5.7.2)
svelte-sonner:
specifier: ^0.3.28
- version: 0.3.28(svelte@5.16.0)
+ version: 0.3.28(svelte@5.16.5)
svelte-tel-input:
specifier: ^3.5.2
- version: 3.5.2(svelte@5.16.0)
+ version: 3.5.2(svelte@5.16.5)
tailwind-merge:
specifier: ^2.6.0
version: 2.6.0
@@ -96,14 +97,14 @@ importers:
specifier: ^5.5.0
version: 5.7.2
typescript-eslint:
- specifier: ^8.18.2
- version: 8.18.2(eslint@9.17.0(jiti@1.21.6))(typescript@5.7.2)
+ specifier: ^8.19.1
+ version: 8.19.1(eslint@9.17.0(jiti@1.21.6))(typescript@5.7.2)
vaul-svelte:
specifier: 1.0.0-next.3
- version: 1.0.0-next.3(svelte@5.16.0)
+ version: 1.0.0-next.3(svelte@5.16.5)
vite:
- specifier: ^6.0.6
- version: 6.0.6(jiti@1.21.6)(yaml@2.6.1)
+ specifier: ^6.0.7
+ version: 6.0.7(jiti@1.21.6)(yaml@2.6.1)
packages:
@@ -501,11 +502,11 @@ packages:
'@floating-ui/utils@0.2.8':
resolution: {integrity: sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==}
- '@fontsource/geist-mono@5.1.0':
- resolution: {integrity: sha512-MDFgmKUdDbV357vD2bOZAro597Nd2md01GAdr3GSZteCJQdPT/UhHUBCAxl9KUiH03aMPFM9Rx7x8/EtrJmpKg==}
+ '@fontsource-variable/inter@5.1.1':
+ resolution: {integrity: sha512-OpXFTmiH6tHkYijMvQTycFKBLK4X+SRV6tet1m4YOUH7SzIIlMqDja+ocDtiCA72UthBH/vF+3ZtlMr2rN/wIw==}
- '@fontsource/inter@5.1.0':
- resolution: {integrity: sha512-zKZR3kf1G0noIes1frLfOHP5EXVVm0M7sV/l9f/AaYf+M/DId35FO4LkigWjqWYjTJZGgplhdv4cB+ssvCqr5A==}
+ '@fontsource/geist-mono@5.1.1':
+ resolution: {integrity: sha512-Rr/VXX3qyRsLgEFwFUqhDS7PORzQUBDLoQc8bONbBz+hZ+SD8U0nEzHqRFBzT3zFcsf/0bMyCQPZUktKwPt3GQ==}
'@humanfs/core@0.19.1':
resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==}
@@ -789,20 +790,26 @@ packages:
'@sec-ant/readable-stream@0.4.1':
resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==}
- '@shikijs/core@1.24.4':
- resolution: {integrity: sha512-jjLsld+xEEGYlxAXDyGwWsKJ1sw5Pc1pnp4ai2ORpjx2UX08YYTC0NNqQYO1PaghYaR+PvgMOGuvzw2he9sk0Q==}
+ '@shikijs/core@1.26.1':
+ resolution: {integrity: sha512-yeo7sG+WZQblKPclUOKRPwkv1PyoHYkJ4gP9DzhFJbTdueKR7wYTI1vfF/bFi1NTgc545yG/DzvVhZgueVOXMA==}
+
+ '@shikijs/engine-javascript@1.26.1':
+ resolution: {integrity: sha512-CRhA0b8CaSLxS0E9A4Bzcb3LKBNpykfo9F85ozlNyArxjo2NkijtiwrJZ6eHa+NT5I9Kox2IXVdjUsP4dilsmw==}
- '@shikijs/engine-javascript@1.24.4':
- resolution: {integrity: sha512-TClaQOLvo9WEMJv6GoUsykQ6QdynuKszuORFWCke8qvi6PeLm7FcD9+7y45UenysxEWYpDL5KJaVXTngTE+2BA==}
+ '@shikijs/engine-oniguruma@1.26.1':
+ resolution: {integrity: sha512-F5XuxN1HljLuvfXv7d+mlTkV7XukC1cawdtOo+7pKgPD83CAB1Sf8uHqP3PK0u7njFH0ZhoXE1r+0JzEgAQ+kg==}
- '@shikijs/engine-oniguruma@1.24.4':
- resolution: {integrity: sha512-Do2ry6flp2HWdvpj2XOwwa0ljZBRy15HKZITzPcNIBOGSeprnA8gOooA/bLsSPuy8aJBa+Q/r34dMmC3KNL/zw==}
+ '@shikijs/langs@1.26.1':
+ resolution: {integrity: sha512-oz/TQiIqZejEIZbGtn68hbJijAOTtYH4TMMSWkWYozwqdpKR3EXgILneQy26WItmJjp3xVspHdiUxUCws4gtuw==}
- '@shikijs/types@1.24.4':
- resolution: {integrity: sha512-0r0XU7Eaow0PuDxuWC1bVqmWCgm3XqizIaT7SM42K03vc69LGooT0U8ccSR44xP/hGlNx4FKhtYpV+BU6aaKAA==}
+ '@shikijs/themes@1.26.1':
+ resolution: {integrity: sha512-JDxVn+z+wgLCiUhBGx2OQrLCkKZQGzNH3nAxFir4PjUcYiyD8Jdms9izyxIogYmSwmoPTatFTdzyrRKbKlSfPA==}
- '@shikijs/vscode-textmate@9.3.1':
- resolution: {integrity: sha512-79QfK1393x9Ho60QFyLti+QfdJzRQCVLFb97kOIV7Eo9vQU/roINgk7m24uv0a7AUvN//RDH36FLjjK48v0s9g==}
+ '@shikijs/types@1.26.1':
+ resolution: {integrity: sha512-d4B00TKKAMaHuFYgRf3L0gwtvqpW4hVdVwKcZYbBfAAQXspgkbWqnFfuFl3MDH6gLbsubOcr+prcnsqah3ny7Q==}
+
+ '@shikijs/vscode-textmate@10.0.1':
+ resolution: {integrity: sha512-fTIQwLF+Qhuws31iw7Ncl1R3HUDtGwIipiJ9iU+UsDUwMhegFcQKQHd51nZjb7CArq0MvON8rbgCGQYWHUKAdg==}
'@sindresorhus/merge-streams@4.0.0':
resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==}
@@ -813,8 +820,8 @@ packages:
peerDependencies:
'@sveltejs/kit': ^2.4.0
- '@sveltejs/kit@2.15.1':
- resolution: {integrity: sha512-8t7D3hQHbUDMiaQ2RVnjJJ/+Ur4Fn/tkeySJCsHtX346Q9cp3LAnav8xXdfuqYNJwpUGX0x3BqF1uvbmXQw93A==}
+ '@sveltejs/kit@2.15.2':
+ resolution: {integrity: sha512-p208T1kdM6zd8k4YXIUM60pLWQ8dZqehXSiqn4NulXHyHibX53uIAL2xtNL8GjxX2IVPqPRT978MwVYhCKExdQ==}
engines: {node: '>=18.13'}
hasBin: true
peerDependencies:
@@ -840,8 +847,8 @@ packages:
'@swc/helpers@0.5.15':
resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==}
- '@ts-morph/common@0.25.0':
- resolution: {integrity: sha512-kMnZz+vGGHi4GoHnLmMhGNjm44kGtKUXGnOvrKmMwAuvNjM/PgKVGfUnL7IDvK7Jb2QQ82jq3Zmp04Gy+r3Dkg==}
+ '@ts-morph/common@0.26.0':
+ resolution: {integrity: sha512-/RmKAtctStXqM5nECMQ46duT74Hoig/DBzhWXGHcodlDNrgRbsbwwHqSKFNbca6z9Xt/CUWMeXOsC9QEN1+rqw==}
'@types/aws-lambda@8.10.146':
resolution: {integrity: sha512-3BaDXYTh0e6UCJYL/jwV/3+GRslSc08toAiZSmleYtkAUyV5rtvdPYxrG/88uqvTuT6sb27WE9OS90ZNTIuQ0g==}
@@ -864,51 +871,51 @@ packages:
'@types/unist@3.0.3':
resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==}
- '@typescript-eslint/eslint-plugin@8.18.2':
- resolution: {integrity: sha512-adig4SzPLjeQ0Tm+jvsozSGiCliI2ajeURDGHjZ2llnA+A67HihCQ+a3amtPhUakd1GlwHxSRvzOZktbEvhPPg==}
+ '@typescript-eslint/eslint-plugin@8.19.1':
+ resolution: {integrity: sha512-tJzcVyvvb9h/PB96g30MpxACd9IrunT7GF9wfA9/0TJ1LxGOJx1TdPzSbBBnNED7K9Ka8ybJsnEpiXPktolTLg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
'@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0
eslint: ^8.57.0 || ^9.0.0
typescript: '>=4.8.4 <5.8.0'
- '@typescript-eslint/parser@8.18.2':
- resolution: {integrity: sha512-y7tcq4StgxQD4mDr9+Jb26dZ+HTZ/SkfqpXSiqeUXZHxOUyjWDKsmwKhJ0/tApR08DgOhrFAoAhyB80/p3ViuA==}
+ '@typescript-eslint/parser@8.19.1':
+ resolution: {integrity: sha512-67gbfv8rAwawjYx3fYArwldTQKoYfezNUT4D5ioWetr/xCrxXxvleo3uuiFuKfejipvq+og7mjz3b0G2bVyUCw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0
typescript: '>=4.8.4 <5.8.0'
- '@typescript-eslint/scope-manager@8.18.2':
- resolution: {integrity: sha512-YJFSfbd0CJjy14r/EvWapYgV4R5CHzptssoag2M7y3Ra7XNta6GPAJPPP5KGB9j14viYXyrzRO5GkX7CRfo8/g==}
+ '@typescript-eslint/scope-manager@8.19.1':
+ resolution: {integrity: sha512-60L9KIuN/xgmsINzonOcMDSB8p82h95hoBfSBtXuO4jlR1R9L1xSkmVZKgCPVfavDlXihh4ARNjXhh1gGnLC7Q==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@typescript-eslint/type-utils@8.18.2':
- resolution: {integrity: sha512-AB/Wr1Lz31bzHfGm/jgbFR0VB0SML/hd2P1yxzKDM48YmP7vbyJNHRExUE/wZsQj2wUCvbWH8poNHFuxLqCTnA==}
+ '@typescript-eslint/type-utils@8.19.1':
+ resolution: {integrity: sha512-Rp7k9lhDKBMRJB/nM9Ksp1zs4796wVNyihG9/TU9R6KCJDNkQbc2EOKjrBtLYh3396ZdpXLtr/MkaSEmNMtykw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0
typescript: '>=4.8.4 <5.8.0'
- '@typescript-eslint/types@8.18.2':
- resolution: {integrity: sha512-Z/zblEPp8cIvmEn6+tPDIHUbRu/0z5lqZ+NvolL5SvXWT5rQy7+Nch83M0++XzO0XrWRFWECgOAyE8bsJTl1GQ==}
+ '@typescript-eslint/types@8.19.1':
+ resolution: {integrity: sha512-JBVHMLj7B1K1v1051ZaMMgLW4Q/jre5qGK0Ew6UgXz1Rqh+/xPzV1aW581OM00X6iOfyr1be+QyW8LOUf19BbA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@typescript-eslint/typescript-estree@8.18.2':
- resolution: {integrity: sha512-WXAVt595HjpmlfH4crSdM/1bcsqh+1weFRWIa9XMTx/XHZ9TCKMcr725tLYqWOgzKdeDrqVHxFotrvWcEsk2Tg==}
+ '@typescript-eslint/typescript-estree@8.19.1':
+ resolution: {integrity: sha512-jk/TZwSMJlxlNnqhy0Eod1PNEvCkpY6MXOXE/WLlblZ6ibb32i2We4uByoKPv1d0OD2xebDv4hbs3fm11SMw8Q==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '>=4.8.4 <5.8.0'
- '@typescript-eslint/utils@8.18.2':
- resolution: {integrity: sha512-Cr4A0H7DtVIPkauj4sTSXVl+VBWewE9/o40KcF3TV9aqDEOWoXF3/+oRXNby3DYzZeCATvbdksYsGZzplwnK/Q==}
+ '@typescript-eslint/utils@8.19.1':
+ resolution: {integrity: sha512-IxG5gLO0Ne+KaUc8iW1A+XuKLd63o4wlbI1Zp692n1xojCl/THvgIKXJXBZixTh5dd5+yTJ/VXH7GJaaw21qXA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0
typescript: '>=4.8.4 <5.8.0'
- '@typescript-eslint/visitor-keys@8.18.2':
- resolution: {integrity: sha512-zORcwn4C3trOWiCqFQP1x6G3xTRyZ1LYydnj51cRnJ6hxBlr/cKPckk+PKPUw/fXmvfKTcw7bwY3w9izgx5jZw==}
+ '@typescript-eslint/visitor-keys@8.19.1':
+ resolution: {integrity: sha512-fzmjU8CHK853V/avYZAvuVut3ZTfwN5YtMaoi+X9Y9MA9keaWNHC3zEQ9zvyX/7Hj+5JkNyK1l7TOR2hevHB6Q==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@ungap/structured-clone@1.2.0':
@@ -931,6 +938,20 @@ packages:
'@vue/compiler-ssr@3.5.13':
resolution: {integrity: sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==}
+ '@vue/reactivity@3.5.13':
+ resolution: {integrity: sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==}
+
+ '@vue/runtime-core@3.5.13':
+ resolution: {integrity: sha512-Fj4YRQ3Az0WTZw1sFe+QDb0aXCerigEpw418pw1HBUKFtnQHWzwojaukAs2X/c9DQz4MQ4bsXTGlcpGxU/RCIw==}
+
+ '@vue/runtime-dom@3.5.13':
+ resolution: {integrity: sha512-dLaj94s93NYLqjLiyFzVs9X6dWhTdAlEAciC3Moq7gzAc13VJUdCnjjRurNM6uTLFATRHexHCTu/Xp3eW6yoog==}
+
+ '@vue/server-renderer@3.5.13':
+ resolution: {integrity: sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA==}
+ peerDependencies:
+ vue: 3.5.13
+
'@vue/shared@3.5.13':
resolution: {integrity: sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==}
@@ -1039,11 +1060,11 @@ packages:
bindings@1.5.0:
resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==}
- bits-ui@1.0.0-next.74:
- resolution: {integrity: sha512-cazru5+NBKBCeK9KCV/OFy5I/B1zxOJGl5WpInzPTEPla5G9qZK9nrnXr6BbExKdhgusTiMm3h4Yvq4E5WHGJA==}
+ bits-ui@1.0.0-next.77:
+ resolution: {integrity: sha512-IV0AyVEvsRkXv4s/fl4iea5E9W2b9EBf98s9mRMKMc1xHxM9MmtM2r6MZMqftHQ/c+gHTIt3A9EKuTlh7uay8w==}
engines: {node: '>=18', pnpm: '>=8.7.0'}
peerDependencies:
- svelte: ^5.0.0
+ svelte: ^5.11.0
bottleneck@2.19.5:
resolution: {integrity: sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==}
@@ -1120,8 +1141,8 @@ packages:
comma-separated-tokens@2.0.3:
resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==}
- commander@12.1.0:
- resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==}
+ commander@13.0.0:
+ resolution: {integrity: sha512-oPYleIY8wmTVzkvQq10AEok6YcTC4sRUBl8F9gVuwchGVUCTbl/vhLTaQqutuuySYOsu8YTgV+OxKc/8Yvx+mQ==}
engines: {node: '>=18'}
commander@4.1.1:
@@ -1152,6 +1173,9 @@ packages:
engines: {node: '>=4'}
hasBin: true
+ csstype@3.1.3:
+ resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
+
data-uri-to-buffer@4.0.1:
resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==}
engines: {node: '>= 12'}
@@ -1586,8 +1610,8 @@ packages:
json-stable-stringify-without-jsonify@1.0.1:
resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
- jsrepo@1.23.1:
- resolution: {integrity: sha512-jemPWAFfv/CSAo0ZnM1NEa7kK3y8Jrl+jthIlcYF1X9VL76nJB1RpNNwCwt0kdUSZvLOz9mjmsQ14JHNZLZG+Q==}
+ jsrepo@1.24.0:
+ resolution: {integrity: sha512-g1wHKH/Cm79cfPqEuuUJ9ayMiZ2GTui/P/v5i64sE+6OYi2a6GeleTzsexPk4oH3M6+LwC1Yn+5ldRZwWwfmgQ==}
hasBin: true
keyv@4.5.4:
@@ -1765,15 +1789,15 @@ packages:
resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==}
engines: {node: '>= 6'}
- octokit@4.0.2:
- resolution: {integrity: sha512-wbqF4uc1YbcldtiBFfkSnquHtECEIpYD78YUXI6ri1Im5OO2NLo6ZVpRdbJpdnpZ05zMrVPssNiEo6JQtea+Qg==}
+ octokit@4.0.3:
+ resolution: {integrity: sha512-kfqH80Yuuux4fLbZ4SvObjCvVu89U0eCh5+fulh6tr/hJkDYS1inXDGnNJDOp312GANMEhWWMLYmjQR8MvSSMQ==}
engines: {node: '>= 18'}
once@1.4.0:
resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
- oniguruma-to-es@0.8.1:
- resolution: {integrity: sha512-dekySTEvCxCj0IgKcA2uUCO/e4ArsqpucDPcX26w9ajx+DvMWLc5eZeJaRQkd7oC/+rwif5gnT900tA34uN9Zw==}
+ oniguruma-to-es@0.10.0:
+ resolution: {integrity: sha512-zapyOUOCJxt+xhiNRPPMtfJkHGsZ98HHB9qJEkdT8BGytO/+kpe4m1Ngf0MzbzTmhacn11w9yGeDP6tzDhnCdg==}
optionator@0.9.4:
resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==}
@@ -1830,8 +1854,8 @@ packages:
resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==}
engines: {node: '>=16 || 14 >=14.18'}
- pathe@1.1.2:
- resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==}
+ pathe@2.0.0:
+ resolution: {integrity: sha512-G7n4uhtk9qJt2hlD+UFfsIGY854wpF+zs2bUbQ3CQEUTcn7v25LRsrmurOxTo4bJgjE4qkyshd9ldsEuY9M6xg==}
picocolors@1.1.1:
resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
@@ -2012,14 +2036,14 @@ packages:
resolution: {integrity: sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==}
engines: {node: '>= 14.16.0'}
- regex-recursion@5.0.0:
- resolution: {integrity: sha512-UwyOqeobrCCqTXPcsSqH4gDhOjD5cI/b8kjngWgSZbxYh5yVjAwTjO5+hAuPRNiuR70+5RlWSs+U9PVcVcW9Lw==}
+ regex-recursion@5.1.1:
+ resolution: {integrity: sha512-ae7SBCbzVNrIjgSbh7wMznPcQel1DNlDtzensnFxpiNpXt1U2ju/bHugH422r+4LAVS1FpW1YCwilmnNsjum9w==}
regex-utilities@2.3.0:
resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==}
- regex@5.0.2:
- resolution: {integrity: sha512-/pczGbKIQgfTMRV0XjABvc5RzLqQmwqxLHdQao2RTXPk+pmTXB2P0IaUHYdYyk412YLwUIkaeMd5T+RzVgTqnQ==}
+ regex@5.1.1:
+ resolution: {integrity: sha512-dN5I359AVGPnwzJm2jN1k0W9LPZ+ePvoOeVMMfqIMFz53sSwXkxaJoxr50ptnsC771lK95BnTrVSZxq0b9yCGw==}
require-from-string@2.0.2:
resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
@@ -2056,10 +2080,15 @@ packages:
run-parallel@1.2.0:
resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
- runed@0.15.4:
- resolution: {integrity: sha512-kmbpstUd7v2FdlBM+MT78IyuOVd38tq/e7MHvVb0fnVCsPSPMD/m2Xh+wUhzg9qCJgxRjBbIKu68DlH/x5VXJA==}
+ runed@0.20.0:
+ resolution: {integrity: sha512-YqPxaUdWL5nUXuSF+/v8a+NkVN8TGyEGbQwTA25fLY35MR/2bvZ1c6sCbudoo1kT4CAJPh4kUkcgGVxW127WKw==}
+ peerDependencies:
+ svelte: ^5.7.0
+
+ runed@0.22.0:
+ resolution: {integrity: sha512-ZWVXWhOr0P5xdNgtviz6D1ivLUDWKLCbeC5SUEJ3zBkqLReVqWHenFxMNFeFaiC5bfxhFxyxzyzB+98uYFtwdA==}
peerDependencies:
- svelte: ^5.0.0-next.1
+ svelte: ^5.7.0
sade@1.8.1:
resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==}
@@ -2081,8 +2110,8 @@ packages:
resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
engines: {node: '>=8'}
- shiki@1.24.4:
- resolution: {integrity: sha512-aVGSFAOAr1v26Hh/+GBIsRVDWJ583XYV7CuNURKRWh9gpGv4OdbisZGq96B9arMYTZhTQkmRF5BrShOSTvNqhw==}
+ shiki@1.26.1:
+ resolution: {integrity: sha512-Gqg6DSTk3wYqaZ5OaYtzjcdxcBvX5kCy24yvRJEgjT5U+WHlmqCThLuBUx0juyxQBi+6ug53IGeuQS07DWwpcw==}
signal-exit@4.1.0:
resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
@@ -2182,8 +2211,14 @@ packages:
peerDependencies:
svelte: ^5.0.0-next.126
- svelte@5.16.0:
- resolution: {integrity: sha512-Ygqsiac6UogVED2ruKclU+pOeMThxWtp9LG+li7BXeDKC2paVIsRTMkNmcON4Zejerd1s5sZHWx6ZtU85xklVg==}
+ svelte-toolbelt@0.7.0:
+ resolution: {integrity: sha512-i/Tv4NwAWWqJnK5H0F8y/ubDnogDYlwwyzKhrspTUFzrFuGnYshqd2g4/R43ds841wmaFiSW/HsdsdWhPOlrAA==}
+ engines: {node: '>=18', pnpm: '>=8.7.0'}
+ peerDependencies:
+ svelte: ^5.0.0
+
+ svelte@5.16.5:
+ resolution: {integrity: sha512-zTG45crJUGjNYQgmQ0YDxFJ7ge1O6ZwevPxGgGOxuMOXOQhcH9LC9GEx2JS9/BlkhxdsO8ETofQ76ouFwDVpCQ==}
engines: {node: '>=18'}
tailwind-merge@2.6.0:
@@ -2219,10 +2254,6 @@ packages:
tiny-glob@0.2.9:
resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==}
- tinyglobby@0.2.10:
- resolution: {integrity: sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==}
- engines: {node: '>=12.0.0'}
-
to-regex-range@5.0.1:
resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
engines: {node: '>=8.0'}
@@ -2241,17 +2272,17 @@ packages:
trim-lines@3.0.1:
resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==}
- ts-api-utils@1.4.3:
- resolution: {integrity: sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==}
- engines: {node: '>=16'}
+ ts-api-utils@2.0.0:
+ resolution: {integrity: sha512-xCt/TOAc+EOHS1XPnijD3/yzpH6qg2xppZO1YDqGoVsNXfQfzHpOdNuXwrwOU8u4ITXJyDCTyt8w5g1sZv9ynQ==}
+ engines: {node: '>=18.12'}
peerDependencies:
- typescript: '>=4.2.0'
+ typescript: '>=4.8.4'
ts-interface-checker@0.1.13:
resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
- ts-morph@24.0.0:
- resolution: {integrity: sha512-2OAOg/Ob5yx9Et7ZX4CvTCc0UFoZHwLEJ+dpDPSUi5TgwwlTlX47w+iFRrEwzUZwYACjq83cgjS/Da50Ga37uw==}
+ ts-morph@25.0.0:
+ resolution: {integrity: sha512-ERPTUVO5qF8cEGJgAejGOsCVlbk8d0SDyiJsucKQT5XgqoZslv0Qml+gnui6Yy6o+uQqw5SestyW2HvlVtT/Sg==}
tslib@2.8.1:
resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
@@ -2264,8 +2295,8 @@ packages:
resolution: {integrity: sha512-G6zXWS1dLj6eagy6sVhOMQiLtJdxQBHIA9Z6HFUNLOlr6MFOgzV8wvmidtPONfPtEUv0uZsy77XJNzTAfwPDaA==}
engines: {node: '>=16'}
- typescript-eslint@8.18.2:
- resolution: {integrity: sha512-KuXezG6jHkvC3MvizeXgupZzaG5wjhU3yE8E7e6viOvAvD9xAWYp8/vy0WULTGe9DYDWcQu7aW03YIV3mSitrQ==}
+ typescript-eslint@8.19.1:
+ resolution: {integrity: sha512-LKPUQpdEMVOeKluHi8md7rwLcoXHhwvWp3x+sJkMuq3gGm9yaYJtPo8sRZSblMFJ5pcOGCAak/scKf1mvZDlQw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0
@@ -2317,8 +2348,8 @@ packages:
util-deprecate@1.0.2:
resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
- valibot@0.42.1:
- resolution: {integrity: sha512-3keXV29Ar5b//Hqi4MbSdV7lfVp6zuYLZuA9V1PvQUsXqogr+u5lvLPLk3A4f74VUXDnf/JfWMN6sB+koJ/FFw==}
+ valibot@1.0.0-beta.11:
+ resolution: {integrity: sha512-Ztl5Iks1Ql7Z6CwkS5oyqguN3G8tmUiNlsHpqbDt6DLMpm+eu+n8Q7f921gI3uHvNZ8xDVkd4cEJP5t+lELOfw==}
peerDependencies:
typescript: '>=5'
peerDependenciesMeta:
@@ -2341,8 +2372,8 @@ packages:
vfile@6.0.3:
resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==}
- vite@6.0.6:
- resolution: {integrity: sha512-NSjmUuckPmDU18bHz7QZ+bTYhRR0iA72cs2QAxCqDpafJ0S6qetco0LB3WW2OxlMHS0JmAv+yZ/R3uPmMyGTjQ==}
+ vite@6.0.7:
+ resolution: {integrity: sha512-RDt8r/7qx9940f8FcOIAH9PTViRrghKaK2K1jY3RaAURrEUbm9Du1mJ72G+jlhtG3WwodnfzY8ORQZbBavZEAQ==}
engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
hasBin: true
peerDependencies:
@@ -2389,6 +2420,14 @@ packages:
vite:
optional: true
+ vue@3.5.13:
+ resolution: {integrity: sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==}
+ peerDependencies:
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
web-streams-polyfill@3.3.3:
resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==}
engines: {node: '>= 8'}
@@ -2691,9 +2730,9 @@ snapshots:
'@floating-ui/utils@0.2.8': {}
- '@fontsource/geist-mono@5.1.0': {}
+ '@fontsource-variable/inter@5.1.1': {}
- '@fontsource/inter@5.1.0': {}
+ '@fontsource/geist-mono@5.1.1': {}
'@humanfs/core@0.19.1': {}
@@ -2982,38 +3021,46 @@ snapshots:
'@sec-ant/readable-stream@0.4.1': {}
- '@shikijs/core@1.24.4':
+ '@shikijs/core@1.26.1':
dependencies:
- '@shikijs/engine-javascript': 1.24.4
- '@shikijs/engine-oniguruma': 1.24.4
- '@shikijs/types': 1.24.4
- '@shikijs/vscode-textmate': 9.3.1
+ '@shikijs/engine-javascript': 1.26.1
+ '@shikijs/engine-oniguruma': 1.26.1
+ '@shikijs/types': 1.26.1
+ '@shikijs/vscode-textmate': 10.0.1
'@types/hast': 3.0.4
hast-util-to-html: 9.0.4
- '@shikijs/engine-javascript@1.24.4':
+ '@shikijs/engine-javascript@1.26.1':
dependencies:
- '@shikijs/types': 1.24.4
- '@shikijs/vscode-textmate': 9.3.1
- oniguruma-to-es: 0.8.1
+ '@shikijs/types': 1.26.1
+ '@shikijs/vscode-textmate': 10.0.1
+ oniguruma-to-es: 0.10.0
- '@shikijs/engine-oniguruma@1.24.4':
+ '@shikijs/engine-oniguruma@1.26.1':
dependencies:
- '@shikijs/types': 1.24.4
- '@shikijs/vscode-textmate': 9.3.1
+ '@shikijs/types': 1.26.1
+ '@shikijs/vscode-textmate': 10.0.1
- '@shikijs/types@1.24.4':
+ '@shikijs/langs@1.26.1':
dependencies:
- '@shikijs/vscode-textmate': 9.3.1
+ '@shikijs/types': 1.26.1
+
+ '@shikijs/themes@1.26.1':
+ dependencies:
+ '@shikijs/types': 1.26.1
+
+ '@shikijs/types@1.26.1':
+ dependencies:
+ '@shikijs/vscode-textmate': 10.0.1
'@types/hast': 3.0.4
- '@shikijs/vscode-textmate@9.3.1': {}
+ '@shikijs/vscode-textmate@10.0.1': {}
'@sindresorhus/merge-streams@4.0.0': {}
- '@sveltejs/adapter-vercel@5.5.2(@sveltejs/kit@2.15.1(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.16.0)(vite@6.0.6(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.16.0)(vite@6.0.6(jiti@1.21.6)(yaml@2.6.1)))(rollup@4.28.0)':
+ '@sveltejs/adapter-vercel@5.5.2(@sveltejs/kit@2.15.2(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.16.5)(vite@6.0.7(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.16.5)(vite@6.0.7(jiti@1.21.6)(yaml@2.6.1)))(rollup@4.28.0)':
dependencies:
- '@sveltejs/kit': 2.15.1(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.16.0)(vite@6.0.6(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.16.0)(vite@6.0.6(jiti@1.21.6)(yaml@2.6.1))
+ '@sveltejs/kit': 2.15.2(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.16.5)(vite@6.0.7(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.16.5)(vite@6.0.7(jiti@1.21.6)(yaml@2.6.1))
'@vercel/nft': 0.27.9(rollup@4.28.0)
esbuild: 0.24.0
transitivePeerDependencies:
@@ -3021,9 +3068,9 @@ snapshots:
- rollup
- supports-color
- '@sveltejs/kit@2.15.1(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.16.0)(vite@6.0.6(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.16.0)(vite@6.0.6(jiti@1.21.6)(yaml@2.6.1))':
+ '@sveltejs/kit@2.15.2(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.16.5)(vite@6.0.7(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.16.5)(vite@6.0.7(jiti@1.21.6)(yaml@2.6.1))':
dependencies:
- '@sveltejs/vite-plugin-svelte': 5.0.3(svelte@5.16.0)(vite@6.0.6(jiti@1.21.6)(yaml@2.6.1))
+ '@sveltejs/vite-plugin-svelte': 5.0.3(svelte@5.16.5)(vite@6.0.7(jiti@1.21.6)(yaml@2.6.1))
'@types/cookie': 0.6.0
cookie: 0.6.0
devalue: 5.1.1
@@ -3035,29 +3082,29 @@ snapshots:
sade: 1.8.1
set-cookie-parser: 2.7.1
sirv: 3.0.0
- svelte: 5.16.0
+ svelte: 5.16.5
tiny-glob: 0.2.9
- vite: 6.0.6(jiti@1.21.6)(yaml@2.6.1)
+ vite: 6.0.7(jiti@1.21.6)(yaml@2.6.1)
- '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.16.0)(vite@6.0.6(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.16.0)(vite@6.0.6(jiti@1.21.6)(yaml@2.6.1))':
+ '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.16.5)(vite@6.0.7(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.16.5)(vite@6.0.7(jiti@1.21.6)(yaml@2.6.1))':
dependencies:
- '@sveltejs/vite-plugin-svelte': 5.0.3(svelte@5.16.0)(vite@6.0.6(jiti@1.21.6)(yaml@2.6.1))
+ '@sveltejs/vite-plugin-svelte': 5.0.3(svelte@5.16.5)(vite@6.0.7(jiti@1.21.6)(yaml@2.6.1))
debug: 4.4.0
- svelte: 5.16.0
- vite: 6.0.6(jiti@1.21.6)(yaml@2.6.1)
+ svelte: 5.16.5
+ vite: 6.0.7(jiti@1.21.6)(yaml@2.6.1)
transitivePeerDependencies:
- supports-color
- '@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.16.0)(vite@6.0.6(jiti@1.21.6)(yaml@2.6.1))':
+ '@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.16.5)(vite@6.0.7(jiti@1.21.6)(yaml@2.6.1))':
dependencies:
- '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.16.0)(vite@6.0.6(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.16.0)(vite@6.0.6(jiti@1.21.6)(yaml@2.6.1))
+ '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.16.5)(vite@6.0.7(jiti@1.21.6)(yaml@2.6.1)))(svelte@5.16.5)(vite@6.0.7(jiti@1.21.6)(yaml@2.6.1))
debug: 4.4.0
deepmerge: 4.3.1
kleur: 4.1.5
magic-string: 0.30.17
- svelte: 5.16.0
- vite: 6.0.6(jiti@1.21.6)(yaml@2.6.1)
- vitefu: 1.0.4(vite@6.0.6(jiti@1.21.6)(yaml@2.6.1))
+ svelte: 5.16.5
+ vite: 6.0.7(jiti@1.21.6)(yaml@2.6.1)
+ vitefu: 1.0.4(vite@6.0.7(jiti@1.21.6)(yaml@2.6.1))
transitivePeerDependencies:
- supports-color
@@ -3065,11 +3112,11 @@ snapshots:
dependencies:
tslib: 2.8.1
- '@ts-morph/common@0.25.0':
+ '@ts-morph/common@0.26.0':
dependencies:
+ fast-glob: 3.3.2
minimatch: 9.0.5
path-browserify: 1.0.1
- tinyglobby: 0.2.10
'@types/aws-lambda@8.10.146': {}
@@ -3089,81 +3136,81 @@ snapshots:
'@types/unist@3.0.3': {}
- '@typescript-eslint/eslint-plugin@8.18.2(@typescript-eslint/parser@8.18.2(eslint@9.17.0(jiti@1.21.6))(typescript@5.7.2))(eslint@9.17.0(jiti@1.21.6))(typescript@5.7.2)':
+ '@typescript-eslint/eslint-plugin@8.19.1(@typescript-eslint/parser@8.19.1(eslint@9.17.0(jiti@1.21.6))(typescript@5.7.2))(eslint@9.17.0(jiti@1.21.6))(typescript@5.7.2)':
dependencies:
'@eslint-community/regexpp': 4.12.1
- '@typescript-eslint/parser': 8.18.2(eslint@9.17.0(jiti@1.21.6))(typescript@5.7.2)
- '@typescript-eslint/scope-manager': 8.18.2
- '@typescript-eslint/type-utils': 8.18.2(eslint@9.17.0(jiti@1.21.6))(typescript@5.7.2)
- '@typescript-eslint/utils': 8.18.2(eslint@9.17.0(jiti@1.21.6))(typescript@5.7.2)
- '@typescript-eslint/visitor-keys': 8.18.2
+ '@typescript-eslint/parser': 8.19.1(eslint@9.17.0(jiti@1.21.6))(typescript@5.7.2)
+ '@typescript-eslint/scope-manager': 8.19.1
+ '@typescript-eslint/type-utils': 8.19.1(eslint@9.17.0(jiti@1.21.6))(typescript@5.7.2)
+ '@typescript-eslint/utils': 8.19.1(eslint@9.17.0(jiti@1.21.6))(typescript@5.7.2)
+ '@typescript-eslint/visitor-keys': 8.19.1
eslint: 9.17.0(jiti@1.21.6)
graphemer: 1.4.0
ignore: 5.3.2
natural-compare: 1.4.0
- ts-api-utils: 1.4.3(typescript@5.7.2)
+ ts-api-utils: 2.0.0(typescript@5.7.2)
typescript: 5.7.2
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/parser@8.18.2(eslint@9.17.0(jiti@1.21.6))(typescript@5.7.2)':
+ '@typescript-eslint/parser@8.19.1(eslint@9.17.0(jiti@1.21.6))(typescript@5.7.2)':
dependencies:
- '@typescript-eslint/scope-manager': 8.18.2
- '@typescript-eslint/types': 8.18.2
- '@typescript-eslint/typescript-estree': 8.18.2(typescript@5.7.2)
- '@typescript-eslint/visitor-keys': 8.18.2
+ '@typescript-eslint/scope-manager': 8.19.1
+ '@typescript-eslint/types': 8.19.1
+ '@typescript-eslint/typescript-estree': 8.19.1(typescript@5.7.2)
+ '@typescript-eslint/visitor-keys': 8.19.1
debug: 4.4.0
eslint: 9.17.0(jiti@1.21.6)
typescript: 5.7.2
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/scope-manager@8.18.2':
+ '@typescript-eslint/scope-manager@8.19.1':
dependencies:
- '@typescript-eslint/types': 8.18.2
- '@typescript-eslint/visitor-keys': 8.18.2
+ '@typescript-eslint/types': 8.19.1
+ '@typescript-eslint/visitor-keys': 8.19.1
- '@typescript-eslint/type-utils@8.18.2(eslint@9.17.0(jiti@1.21.6))(typescript@5.7.2)':
+ '@typescript-eslint/type-utils@8.19.1(eslint@9.17.0(jiti@1.21.6))(typescript@5.7.2)':
dependencies:
- '@typescript-eslint/typescript-estree': 8.18.2(typescript@5.7.2)
- '@typescript-eslint/utils': 8.18.2(eslint@9.17.0(jiti@1.21.6))(typescript@5.7.2)
+ '@typescript-eslint/typescript-estree': 8.19.1(typescript@5.7.2)
+ '@typescript-eslint/utils': 8.19.1(eslint@9.17.0(jiti@1.21.6))(typescript@5.7.2)
debug: 4.4.0
eslint: 9.17.0(jiti@1.21.6)
- ts-api-utils: 1.4.3(typescript@5.7.2)
+ ts-api-utils: 2.0.0(typescript@5.7.2)
typescript: 5.7.2
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/types@8.18.2': {}
+ '@typescript-eslint/types@8.19.1': {}
- '@typescript-eslint/typescript-estree@8.18.2(typescript@5.7.2)':
+ '@typescript-eslint/typescript-estree@8.19.1(typescript@5.7.2)':
dependencies:
- '@typescript-eslint/types': 8.18.2
- '@typescript-eslint/visitor-keys': 8.18.2
+ '@typescript-eslint/types': 8.19.1
+ '@typescript-eslint/visitor-keys': 8.19.1
debug: 4.4.0
fast-glob: 3.3.2
is-glob: 4.0.3
minimatch: 9.0.5
semver: 7.6.3
- ts-api-utils: 1.4.3(typescript@5.7.2)
+ ts-api-utils: 2.0.0(typescript@5.7.2)
typescript: 5.7.2
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/utils@8.18.2(eslint@9.17.0(jiti@1.21.6))(typescript@5.7.2)':
+ '@typescript-eslint/utils@8.19.1(eslint@9.17.0(jiti@1.21.6))(typescript@5.7.2)':
dependencies:
'@eslint-community/eslint-utils': 4.4.1(eslint@9.17.0(jiti@1.21.6))
- '@typescript-eslint/scope-manager': 8.18.2
- '@typescript-eslint/types': 8.18.2
- '@typescript-eslint/typescript-estree': 8.18.2(typescript@5.7.2)
+ '@typescript-eslint/scope-manager': 8.19.1
+ '@typescript-eslint/types': 8.19.1
+ '@typescript-eslint/typescript-estree': 8.19.1(typescript@5.7.2)
eslint: 9.17.0(jiti@1.21.6)
typescript: 5.7.2
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/visitor-keys@8.18.2':
+ '@typescript-eslint/visitor-keys@8.19.1':
dependencies:
- '@typescript-eslint/types': 8.18.2
+ '@typescript-eslint/types': 8.19.1
eslint-visitor-keys: 4.2.0
'@ungap/structured-clone@1.2.0': {}
@@ -3217,6 +3264,28 @@ snapshots:
'@vue/compiler-dom': 3.5.13
'@vue/shared': 3.5.13
+ '@vue/reactivity@3.5.13':
+ dependencies:
+ '@vue/shared': 3.5.13
+
+ '@vue/runtime-core@3.5.13':
+ dependencies:
+ '@vue/reactivity': 3.5.13
+ '@vue/shared': 3.5.13
+
+ '@vue/runtime-dom@3.5.13':
+ dependencies:
+ '@vue/reactivity': 3.5.13
+ '@vue/runtime-core': 3.5.13
+ '@vue/shared': 3.5.13
+ csstype: 3.1.3
+
+ '@vue/server-renderer@3.5.13(vue@3.5.13(typescript@5.7.2))':
+ dependencies:
+ '@vue/compiler-ssr': 3.5.13
+ '@vue/shared': 3.5.13
+ vue: 3.5.13(typescript@5.7.2)
+
'@vue/shared@3.5.13': {}
abbrev@2.0.0: {}
@@ -3307,15 +3376,15 @@ snapshots:
dependencies:
file-uri-to-path: 1.0.0
- bits-ui@1.0.0-next.74(svelte@5.16.0):
+ bits-ui@1.0.0-next.77(svelte@5.16.5):
dependencies:
'@floating-ui/core': 1.6.8
'@floating-ui/dom': 1.6.12
'@internationalized/date': 3.6.0
esm-env: 1.2.1
- runed: 0.15.4(svelte@5.16.0)
- svelte: 5.16.0
- svelte-toolbelt: 0.4.6(svelte@5.16.0)
+ runed: 0.22.0(svelte@5.16.5)
+ svelte: 5.16.5
+ svelte-toolbelt: 0.7.0(svelte@5.16.5)
bottleneck@2.19.5: {}
@@ -3388,7 +3457,7 @@ snapshots:
comma-separated-tokens@2.0.3: {}
- commander@12.1.0: {}
+ commander@13.0.0: {}
commander@4.1.1: {}
@@ -3418,6 +3487,8 @@ snapshots:
cssesc@3.0.0: {}
+ csstype@3.1.3: {}
+
data-uri-to-buffer@4.0.1: {}
debounce-fn@6.0.0:
@@ -3540,7 +3611,7 @@ snapshots:
dependencies:
eslint: 9.17.0(jiti@1.21.6)
- eslint-plugin-svelte@2.46.1(eslint@9.17.0(jiti@1.21.6))(svelte@5.16.0):
+ eslint-plugin-svelte@2.46.1(eslint@9.17.0(jiti@1.21.6))(svelte@5.16.5):
dependencies:
'@eslint-community/eslint-utils': 4.4.1(eslint@9.17.0(jiti@1.21.6))
'@jridgewell/sourcemap-codec': 1.5.0
@@ -3553,9 +3624,9 @@ snapshots:
postcss-safe-parser: 6.0.0(postcss@8.4.49)
postcss-selector-parser: 6.1.2
semver: 7.6.3
- svelte-eslint-parser: 0.43.0(svelte@5.16.0)
+ svelte-eslint-parser: 0.43.0(svelte@5.16.5)
optionalDependencies:
- svelte: 5.16.0
+ svelte: 5.16.5
transitivePeerDependencies:
- ts-node
@@ -3892,15 +3963,14 @@ snapshots:
json-stable-stringify-without-jsonify@1.0.1: {}
- jsrepo@1.23.1(typescript@5.7.2):
+ jsrepo@1.24.0(typescript@5.7.2):
dependencies:
'@biomejs/js-api': 0.7.1(@biomejs/wasm-nodejs@1.9.4)
'@biomejs/wasm-nodejs': 1.9.4
'@clack/prompts': 0.9.0
- '@vue/compiler-sfc': 3.5.13
ansi-regex: 6.1.0
chalk: 5.4.1
- commander: 12.1.0
+ commander: 13.0.0
conf: 13.1.0
diff: 7.0.0
escape-string-regexp: 5.0.0
@@ -3908,15 +3978,17 @@ snapshots:
execa: 9.5.2
get-tsconfig: 4.8.1
node-fetch: 3.3.2
- octokit: 4.0.2
+ octokit: 4.0.3
package-manager-detector: 0.2.8
parse5: 7.2.1
- pathe: 1.1.2
+ pathe: 2.0.0
prettier: 3.4.2
- svelte: 5.16.0
- ts-morph: 24.0.0
- valibot: 0.42.1(typescript@5.7.2)
+ semver: 7.6.3
+ svelte: 5.16.5
+ ts-morph: 25.0.0
+ valibot: 1.0.0-beta.11(typescript@5.7.2)
validate-npm-package-name: 6.0.0
+ vue: 3.5.13(typescript@5.7.2)
transitivePeerDependencies:
- '@biomejs/wasm-bundler'
- '@biomejs/wasm-web'
@@ -3953,9 +4025,9 @@ snapshots:
lru-cache@10.4.3: {}
- lucide-svelte@0.469.0(svelte@5.16.0):
+ lucide-svelte@0.469.0(svelte@5.16.5):
dependencies:
- svelte: 5.16.0
+ svelte: 5.16.5
magic-string@0.30.17:
dependencies:
@@ -4016,9 +4088,9 @@ snapshots:
mkdirp@3.0.1: {}
- mode-watcher@0.5.0(svelte@5.16.0):
+ mode-watcher@0.5.0(svelte@5.16.5):
dependencies:
- svelte: 5.16.0
+ svelte: 5.16.5
mri@1.2.0: {}
@@ -4069,7 +4141,7 @@ snapshots:
object-hash@3.0.0: {}
- octokit@4.0.2:
+ octokit@4.0.3:
dependencies:
'@octokit/app': 15.1.1
'@octokit/core': 6.1.2
@@ -4086,11 +4158,11 @@ snapshots:
dependencies:
wrappy: 1.0.2
- oniguruma-to-es@0.8.1:
+ oniguruma-to-es@0.10.0:
dependencies:
emoji-regex-xs: 1.0.0
- regex: 5.0.2
- regex-recursion: 5.0.0
+ regex: 5.1.1
+ regex-recursion: 5.1.1
optionator@0.9.4:
dependencies:
@@ -4140,7 +4212,7 @@ snapshots:
lru-cache: 10.4.3
minipass: 7.1.2
- pathe@1.1.2: {}
+ pathe@2.0.0: {}
picocolors@1.1.1: {}
@@ -4206,16 +4278,16 @@ snapshots:
prelude-ls@1.2.1: {}
- prettier-plugin-svelte@3.3.2(prettier@3.4.2)(svelte@5.16.0):
+ prettier-plugin-svelte@3.3.2(prettier@3.4.2)(svelte@5.16.5):
dependencies:
prettier: 3.4.2
- svelte: 5.16.0
+ svelte: 5.16.5
- prettier-plugin-tailwindcss@0.6.9(prettier-plugin-svelte@3.3.2(prettier@3.4.2)(svelte@5.16.0))(prettier@3.4.2):
+ prettier-plugin-tailwindcss@0.6.9(prettier-plugin-svelte@3.3.2(prettier@3.4.2)(svelte@5.16.5))(prettier@3.4.2):
dependencies:
prettier: 3.4.2
optionalDependencies:
- prettier-plugin-svelte: 3.3.2(prettier@3.4.2)(svelte@5.16.0)
+ prettier-plugin-svelte: 3.3.2(prettier@3.4.2)(svelte@5.16.5)
prettier@3.4.2: {}
@@ -4239,13 +4311,14 @@ snapshots:
readdirp@4.0.2: {}
- regex-recursion@5.0.0:
+ regex-recursion@5.1.1:
dependencies:
+ regex: 5.1.1
regex-utilities: 2.3.0
regex-utilities@2.3.0: {}
- regex@5.0.2:
+ regex@5.1.1:
dependencies:
regex-utilities: 2.3.0
@@ -4297,10 +4370,15 @@ snapshots:
dependencies:
queue-microtask: 1.2.3
- runed@0.15.4(svelte@5.16.0):
+ runed@0.20.0(svelte@5.16.5):
+ dependencies:
+ esm-env: 1.2.1
+ svelte: 5.16.5
+
+ runed@0.22.0(svelte@5.16.5):
dependencies:
esm-env: 1.2.1
- svelte: 5.16.0
+ svelte: 5.16.5
sade@1.8.1:
dependencies:
@@ -4316,13 +4394,15 @@ snapshots:
shebang-regex@3.0.0: {}
- shiki@1.24.4:
+ shiki@1.26.1:
dependencies:
- '@shikijs/core': 1.24.4
- '@shikijs/engine-javascript': 1.24.4
- '@shikijs/engine-oniguruma': 1.24.4
- '@shikijs/types': 1.24.4
- '@shikijs/vscode-textmate': 9.3.1
+ '@shikijs/core': 1.26.1
+ '@shikijs/engine-javascript': 1.26.1
+ '@shikijs/engine-oniguruma': 1.26.1
+ '@shikijs/langs': 1.26.1
+ '@shikijs/themes': 1.26.1
+ '@shikijs/types': 1.26.1
+ '@shikijs/vscode-textmate': 10.0.1
'@types/hast': 3.0.4
signal-exit@4.1.0: {}
@@ -4390,19 +4470,19 @@ snapshots:
supports-preserve-symlinks-flag@1.0.0: {}
- svelte-check@4.1.1(picomatch@4.0.2)(svelte@5.16.0)(typescript@5.7.2):
+ svelte-check@4.1.1(picomatch@4.0.2)(svelte@5.16.5)(typescript@5.7.2):
dependencies:
'@jridgewell/trace-mapping': 0.3.25
chokidar: 4.0.1
fdir: 6.4.2(picomatch@4.0.2)
picocolors: 1.1.1
sade: 1.8.1
- svelte: 5.16.0
+ svelte: 5.16.5
typescript: 5.7.2
transitivePeerDependencies:
- picomatch
- svelte-eslint-parser@0.43.0(svelte@5.16.0):
+ svelte-eslint-parser@0.43.0(svelte@5.16.5):
dependencies:
eslint-scope: 7.2.2
eslint-visitor-keys: 3.4.3
@@ -4410,24 +4490,31 @@ snapshots:
postcss: 8.4.49
postcss-scss: 4.0.9(postcss@8.4.49)
optionalDependencies:
- svelte: 5.16.0
+ svelte: 5.16.5
- svelte-sonner@0.3.28(svelte@5.16.0):
+ svelte-sonner@0.3.28(svelte@5.16.5):
dependencies:
- svelte: 5.16.0
+ svelte: 5.16.5
- svelte-tel-input@3.5.2(svelte@5.16.0):
+ svelte-tel-input@3.5.2(svelte@5.16.5):
dependencies:
libphonenumber-js: 1.10.43
- svelte: 5.16.0
+ svelte: 5.16.5
- svelte-toolbelt@0.4.6(svelte@5.16.0):
+ svelte-toolbelt@0.4.6(svelte@5.16.5):
dependencies:
clsx: 2.1.1
style-to-object: 1.0.8
- svelte: 5.16.0
+ svelte: 5.16.5
- svelte@5.16.0:
+ svelte-toolbelt@0.7.0(svelte@5.16.5):
+ dependencies:
+ clsx: 2.1.1
+ runed: 0.20.0(svelte@5.16.5)
+ style-to-object: 1.0.8
+ svelte: 5.16.5
+
+ svelte@5.16.5:
dependencies:
'@ampproject/remapping': 2.3.0
'@jridgewell/sourcemap-codec': 1.5.0
@@ -4504,11 +4591,6 @@ snapshots:
globalyzer: 0.1.0
globrex: 0.1.2
- tinyglobby@0.2.10:
- dependencies:
- fdir: 6.4.2(picomatch@4.0.2)
- picomatch: 4.0.2
-
to-regex-range@5.0.1:
dependencies:
is-number: 7.0.0
@@ -4521,15 +4603,15 @@ snapshots:
trim-lines@3.0.1: {}
- ts-api-utils@1.4.3(typescript@5.7.2):
+ ts-api-utils@2.0.0(typescript@5.7.2):
dependencies:
typescript: 5.7.2
ts-interface-checker@0.1.13: {}
- ts-morph@24.0.0:
+ ts-morph@25.0.0:
dependencies:
- '@ts-morph/common': 0.25.0
+ '@ts-morph/common': 0.26.0
code-block-writer: 13.0.3
tslib@2.8.1: {}
@@ -4540,11 +4622,11 @@ snapshots:
type-fest@4.30.0: {}
- typescript-eslint@8.18.2(eslint@9.17.0(jiti@1.21.6))(typescript@5.7.2):
+ typescript-eslint@8.19.1(eslint@9.17.0(jiti@1.21.6))(typescript@5.7.2):
dependencies:
- '@typescript-eslint/eslint-plugin': 8.18.2(@typescript-eslint/parser@8.18.2(eslint@9.17.0(jiti@1.21.6))(typescript@5.7.2))(eslint@9.17.0(jiti@1.21.6))(typescript@5.7.2)
- '@typescript-eslint/parser': 8.18.2(eslint@9.17.0(jiti@1.21.6))(typescript@5.7.2)
- '@typescript-eslint/utils': 8.18.2(eslint@9.17.0(jiti@1.21.6))(typescript@5.7.2)
+ '@typescript-eslint/eslint-plugin': 8.19.1(@typescript-eslint/parser@8.19.1(eslint@9.17.0(jiti@1.21.6))(typescript@5.7.2))(eslint@9.17.0(jiti@1.21.6))(typescript@5.7.2)
+ '@typescript-eslint/parser': 8.19.1(eslint@9.17.0(jiti@1.21.6))(typescript@5.7.2)
+ '@typescript-eslint/utils': 8.19.1(eslint@9.17.0(jiti@1.21.6))(typescript@5.7.2)
eslint: 9.17.0(jiti@1.21.6)
typescript: 5.7.2
transitivePeerDependencies:
@@ -4595,17 +4677,17 @@ snapshots:
util-deprecate@1.0.2: {}
- valibot@0.42.1(typescript@5.7.2):
+ valibot@1.0.0-beta.11(typescript@5.7.2):
optionalDependencies:
typescript: 5.7.2
validate-npm-package-name@6.0.0: {}
- vaul-svelte@1.0.0-next.3(svelte@5.16.0):
+ vaul-svelte@1.0.0-next.3(svelte@5.16.5):
dependencies:
- bits-ui: 1.0.0-next.74(svelte@5.16.0)
- svelte: 5.16.0
- svelte-toolbelt: 0.4.6(svelte@5.16.0)
+ bits-ui: 1.0.0-next.77(svelte@5.16.5)
+ svelte: 5.16.5
+ svelte-toolbelt: 0.4.6(svelte@5.16.5)
vfile-message@4.0.2:
dependencies:
@@ -4617,7 +4699,7 @@ snapshots:
'@types/unist': 3.0.3
vfile-message: 4.0.2
- vite@6.0.6(jiti@1.21.6)(yaml@2.6.1):
+ vite@6.0.7(jiti@1.21.6)(yaml@2.6.1):
dependencies:
esbuild: 0.24.2
postcss: 8.4.49
@@ -4627,9 +4709,19 @@ snapshots:
jiti: 1.21.6
yaml: 2.6.1
- vitefu@1.0.4(vite@6.0.6(jiti@1.21.6)(yaml@2.6.1)):
+ vitefu@1.0.4(vite@6.0.7(jiti@1.21.6)(yaml@2.6.1)):
optionalDependencies:
- vite: 6.0.6(jiti@1.21.6)(yaml@2.6.1)
+ vite: 6.0.7(jiti@1.21.6)(yaml@2.6.1)
+
+ vue@3.5.13(typescript@5.7.2):
+ dependencies:
+ '@vue/compiler-dom': 3.5.13
+ '@vue/compiler-sfc': 3.5.13
+ '@vue/runtime-dom': 3.5.13
+ '@vue/server-renderer': 3.5.13(vue@3.5.13(typescript@5.7.2))
+ '@vue/shared': 3.5.13
+ optionalDependencies:
+ typescript: 5.7.2
web-streams-polyfill@3.3.3: {}
diff --git a/src/lib/components/ui/avatar/avatar-fallback.svelte b/src/lib/components/ui/avatar/avatar-fallback.svelte
new file mode 100644
index 0000000..0f42fe6
--- /dev/null
+++ b/src/lib/components/ui/avatar/avatar-fallback.svelte
@@ -0,0 +1,16 @@
+
+
+
@@ -19,6 +20,7 @@
+ import * as Chat from "$lib/components/ui/chat";
+\<\/script\>
+
+
+
+
+
+
+ CN
+
+
+
+ Hello, World!
+
+
+ `}
+/>
diff --git a/src/routes/components/chat/basic.svelte b/src/routes/components/chat/basic.svelte
new file mode 100644
index 0000000..9c91e2e
--- /dev/null
+++ b/src/routes/components/chat/basic.svelte
@@ -0,0 +1,94 @@
+
+
+
+
+
+
+
+
+ {initials(data.friend.name)}
+
+
+
+ {data.friend.name}
+ Active 2 mins ago
+
+
+
+
+
+
+
+
+
+ {#each messages as message}
+ {@const sender = data.users.find((u) => u.id === message.senderId)}
+
+
+
+
+
+ {initials(sender?.name ?? '')}
+
+
+
+ {message.message}
+
+ {message.sentAt}
+
+
+
+ {/each}
+
+
+
+
+ {initials(data.friend.name)}
+
+
+
+
+
+
+
diff --git a/src/routes/components/chat/data.ts b/src/routes/components/chat/data.ts
new file mode 100644
index 0000000..ddb0fa3
--- /dev/null
+++ b/src/routes/components/chat/data.ts
@@ -0,0 +1,76 @@
+import type { Message, User } from './types';
+import { formatShortTime } from './utils';
+
+const firstMessageMinutesAgo = 25;
+
+const now = new Date();
+const baseTime = new Date(now.getTime() - firstMessageMinutesAgo * 60000);
+
+export const messages: Message[] = [
+ {
+ senderId: '123456',
+ message: 'Hey, did you see Svelte 5 just got released?',
+ sentAt: formatShortTime(new Date(baseTime.getTime()))
+ },
+ {
+ senderId: '654321',
+ message: 'Yes! The runes system looks really interesting!',
+ sentAt: formatShortTime(new Date(baseTime.getTime() + 3 * 60000))
+ },
+ {
+ senderId: '123456',
+ message: 'Right? Such a big change from the previous reactive system',
+ sentAt: formatShortTime(new Date(baseTime.getTime() + 5 * 60000))
+ },
+ {
+ senderId: '654321',
+ message: 'Have you tried migrating any projects to it yet?',
+ sentAt: formatShortTime(new Date(baseTime.getTime() + 8 * 60000))
+ },
+ {
+ senderId: '123456',
+ message: 'Just started with a small one. The migration guide is super helpful',
+ sentAt: formatShortTime(new Date(baseTime.getTime() + 10 * 60000))
+ },
+ {
+ senderId: '654321',
+ message: 'Any breaking changes causing issues?',
+ sentAt: formatShortTime(new Date(baseTime.getTime() + 13 * 60000))
+ },
+ {
+ senderId: '123456',
+ message: 'The new $state syntax took some getting used to, but its cleaner now',
+ sentAt: formatShortTime(new Date(baseTime.getTime() + 15 * 60000))
+ },
+ {
+ senderId: '654321',
+ message: 'The performance improvements are impressive too',
+ sentAt: formatShortTime(new Date(baseTime.getTime() + 18 * 60000))
+ },
+ {
+ senderId: '123456',
+ message: 'Yeah, the compiler optimizations are amazing. Much faster now',
+ sentAt: formatShortTime(new Date(baseTime.getTime() + 20 * 60000))
+ },
+ {
+ senderId: '654321',
+ message: 'Looking forward to using it in my next project!',
+ sentAt: formatShortTime(new Date(baseTime.getTime() + 23 * 60000))
+ }
+];
+
+export const user: User = {
+ id: '123456',
+ name: 'Jane Doe',
+ username: '@janedoe',
+ img: 'https://images.freeimages.com/images/large-previews/971/basic-shape-avatar-1632968.jpg?fmt=webp&h=350'
+};
+
+export const friend: User = {
+ id: '654321',
+ name: 'John Doe',
+ username: '@johndoe',
+ img: 'https://images.freeimages.com/images/large-previews/fdd/man-avatar-1632964.jpg?fmt=webp&h=35'
+};
+
+export const users = [user, friend];
diff --git a/src/routes/components/chat/examples.ts b/src/routes/components/chat/examples.ts
new file mode 100644
index 0000000..e9253ad
--- /dev/null
+++ b/src/routes/components/chat/examples.ts
@@ -0,0 +1,11 @@
+import Basic from './basic.svelte';
+import basicRaw from './basic.svelte?raw';
+
+const examples = {
+ basic: {
+ code: basicRaw,
+ Component: Basic
+ }
+};
+
+export { examples };
diff --git a/src/routes/components/chat/types.ts b/src/routes/components/chat/types.ts
new file mode 100644
index 0000000..eaa1231
--- /dev/null
+++ b/src/routes/components/chat/types.ts
@@ -0,0 +1,12 @@
+export type User = {
+ id: string;
+ username: string;
+ name: string;
+ img: string;
+};
+
+export type Message = {
+ senderId: string;
+ message: string;
+ sentAt: string;
+};
diff --git a/src/routes/components/chat/utils.ts b/src/routes/components/chat/utils.ts
new file mode 100644
index 0000000..f58f265
--- /dev/null
+++ b/src/routes/components/chat/utils.ts
@@ -0,0 +1,13 @@
+export const formatShortTime = (date: Date) => {
+ return date.toLocaleTimeString('en-US', {
+ hour: 'numeric',
+ minute: '2-digit',
+ hour12: true
+ });
+};
+
+export const initials = (name: string) =>
+ name
+ .split(' ')
+ .map((n) => n[0])
+ .join('');
diff --git a/src/routes/hooks/use-auto-scroll/+page.svelte b/src/routes/hooks/use-auto-scroll/+page.svelte
new file mode 100644
index 0000000..23dcc89
--- /dev/null
+++ b/src/routes/hooks/use-auto-scroll/+page.svelte
@@ -0,0 +1,31 @@
+
+
+
+Usage
+Create a container that automatically scrolls to the bottom.
+
+ import { UseAutoScroll } from '$lib/hooks/use-auto-scroll.svelte';
+
+ let { children } = $props();
+
+ const autoScroll = new UseAutoScroll();
+\<\/script\>
+
+
+
+ {@render children?.()}
+
+ {#if !autoScroll.isAtBottom}
+
+ {/if}
+`}
+/>
diff --git a/tailwind.config.ts b/tailwind.config.ts
index 06d15e1..39c0547 100644
--- a/tailwind.config.ts
+++ b/tailwind.config.ts
@@ -67,7 +67,7 @@ const config: Config = {
sm: 'calc(var(--radius) - 4px)'
},
fontFamily: {
- sans: ['Inter', 'sans-serif'],
+ sans: ['Inter Variable', 'sans-serif'],
mono: ['Geist Mono', 'monospace']
},
keyframes: {