diff --git a/web/package.json b/web/package.json
index 016ab3482a..45973d55c2 100644
--- a/web/package.json
+++ b/web/package.json
@@ -15,7 +15,7 @@
"dependencies": {
"@axa-ch/react-polymorphic-types": "^1.4.1",
"@floating-ui/react": "^0.27.16",
- "@inlang/paraglide-js": "^2.7.2",
+ "@inlang/paraglide-js": "^2.8.0",
"@react-hook/resize-observer": "^2.0.2",
"@shortercode/webzip": "1.1.1-0",
"@stablelib/base64": "^2.0.1",
@@ -24,8 +24,8 @@
"@tanstack/react-form": "^1.27.7",
"@tanstack/react-query": "^5.90.16",
"@tanstack/react-query-devtools": "^5.91.2",
- "@tanstack/react-router": "^1.146.2",
- "@tanstack/react-router-devtools": "^1.146.2",
+ "@tanstack/react-router": "^1.147.3",
+ "@tanstack/react-router-devtools": "^1.149.0",
"@tanstack/react-table": "^8.21.3",
"@tanstack/react-virtual": "^3.13.18",
"@uidotdev/usehooks": "^2.4.1",
@@ -50,19 +50,19 @@
"rxjs": "^7.8.2",
"text-case": "^1.2.9",
"zod": "^4.3.5",
- "zustand": "^5.0.9"
+ "zustand": "^5.0.10"
},
"devDependencies": {
"@biomejs/biome": "2.3.11",
"@inlang/paraglide-js": "2.7.2",
"@tanstack/devtools-vite": "^0.4.1",
- "@tanstack/router-plugin": "^1.146.3",
+ "@tanstack/router-plugin": "^1.149.0",
"@types/byte-size": "^8.1.2",
"@types/humanize-duration": "^3.27.4",
"@types/lodash-es": "^4.17.12",
- "@types/node": "^25.0.3",
+ "@types/node": "^25.0.6",
"@types/qs": "^6.14.0",
- "@types/react": "^19.2.7",
+ "@types/react": "^19.2.8",
"@types/react-dom": "^19.2.3",
"@vitejs/plugin-react-swc": "^4.2.2",
"autoprefixer": "^10.4.23",
diff --git a/web/pnpm-lock.yaml b/web/pnpm-lock.yaml
index 6dae261413..e2411e2e49 100644
--- a/web/pnpm-lock.yaml
+++ b/web/pnpm-lock.yaml
@@ -10,13 +10,13 @@ importers:
dependencies:
'@axa-ch/react-polymorphic-types':
specifier: ^1.4.1
- version: 1.4.1(@types/react@19.2.7)(react@19.2.3)
+ version: 1.4.1(@types/react@19.2.8)(react@19.2.3)
'@floating-ui/react':
specifier: ^0.27.16
version: 0.27.16(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
'@inlang/paraglide-js':
- specifier: ^2.7.2
- version: 2.7.2
+ specifier: ^2.8.0
+ version: 2.8.0
'@react-hook/resize-observer':
specifier: ^2.0.2
version: 2.0.2(react@19.2.3)
@@ -31,7 +31,7 @@ importers:
version: 2.0.1
'@tanstack/react-devtools':
specifier: ^0.9.2
- version: 0.9.2(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(csstype@3.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(solid-js@1.9.9)
+ version: 0.9.2(@types/react-dom@19.2.3(@types/react@19.2.8))(@types/react@19.2.8)(csstype@3.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(solid-js@1.9.9)
'@tanstack/react-form':
specifier: ^1.27.7
version: 1.27.7(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
@@ -42,11 +42,11 @@ importers:
specifier: ^5.91.2
version: 5.91.2(@tanstack/react-query@5.90.16(react@19.2.3))(react@19.2.3)
'@tanstack/react-router':
- specifier: ^1.146.2
- version: 1.146.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ specifier: ^1.147.3
+ version: 1.147.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
'@tanstack/react-router-devtools':
- specifier: ^1.146.2
- version: 1.146.2(@tanstack/react-router@1.146.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@tanstack/router-core@1.146.2)(csstype@3.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(solid-js@1.9.9)
+ specifier: ^1.149.0
+ version: 1.149.0(@tanstack/react-router@1.147.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@tanstack/router-core@1.147.1)(csstype@3.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
'@tanstack/react-table':
specifier: ^8.21.3
version: 8.21.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
@@ -103,10 +103,10 @@ importers:
version: 3.5.0(react@19.2.3)
react-markdown:
specifier: ^10.1.0
- version: 10.1.0(@types/react@19.2.7)(react@19.2.3)
+ version: 10.1.0(@types/react@19.2.8)(react@19.2.3)
recharts:
specifier: ^3.6.0
- version: 3.6.0(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react-is@19.2.0)(react@19.2.3)(redux@5.0.1)
+ version: 3.6.0(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react-is@19.2.0)(react@19.2.3)(redux@5.0.1)
rehype-raw:
specifier: ^7.0.0
version: 7.0.0
@@ -120,18 +120,18 @@ importers:
specifier: ^4.3.5
version: 4.3.5
zustand:
- specifier: ^5.0.9
- version: 5.0.9(@types/react@19.2.7)(immer@11.1.3)(react@19.2.3)(use-sync-external-store@1.6.0(react@19.2.3))
+ specifier: ^5.0.10
+ version: 5.0.10(@types/react@19.2.8)(immer@11.1.3)(react@19.2.3)(use-sync-external-store@1.6.0(react@19.2.3))
devDependencies:
'@biomejs/biome':
specifier: 2.3.11
version: 2.3.11
'@tanstack/devtools-vite':
specifier: ^0.4.1
- version: 0.4.1(vite@7.3.1(@types/node@25.0.3)(sass@1.97.2)(tsx@4.21.0))
+ version: 0.4.1(vite@7.3.1(@types/node@25.0.6)(sass@1.97.2)(tsx@4.21.0))
'@tanstack/router-plugin':
- specifier: ^1.146.3
- version: 1.146.3(@tanstack/react-router@1.146.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@7.3.1(@types/node@25.0.3)(sass@1.97.2)(tsx@4.21.0))
+ specifier: ^1.149.0
+ version: 1.149.0(@tanstack/react-router@1.147.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@7.3.1(@types/node@25.0.6)(sass@1.97.2)(tsx@4.21.0))
'@types/byte-size':
specifier: ^8.1.2
version: 8.1.2
@@ -142,20 +142,20 @@ importers:
specifier: ^4.17.12
version: 4.17.12
'@types/node':
- specifier: ^25.0.3
- version: 25.0.3
+ specifier: ^25.0.6
+ version: 25.0.6
'@types/qs':
specifier: ^6.14.0
version: 6.14.0
'@types/react':
- specifier: ^19.2.7
- version: 19.2.7
+ specifier: ^19.2.8
+ version: 19.2.8
'@types/react-dom':
specifier: ^19.2.3
- version: 19.2.3(@types/react@19.2.7)
+ version: 19.2.3(@types/react@19.2.8)
'@vitejs/plugin-react-swc':
specifier: ^4.2.2
- version: 4.2.2(vite@7.3.1(@types/node@25.0.3)(sass@1.97.2)(tsx@4.21.0))
+ version: 4.2.2(vite@7.3.1(@types/node@25.0.6)(sass@1.97.2)(tsx@4.21.0))
autoprefixer:
specifier: ^10.4.23
version: 10.4.23(postcss@8.5.6)
@@ -185,10 +185,10 @@ importers:
version: 5.9.3
vite:
specifier: ^7.3.1
- version: 7.3.1(@types/node@25.0.3)(sass@1.97.2)(tsx@4.21.0)
+ version: 7.3.1(@types/node@25.0.6)(sass@1.97.2)(tsx@4.21.0)
vite-plugin-image-optimizer:
specifier: ^2.0.3
- version: 2.0.3(sharp@0.34.5)(vite@7.3.1(@types/node@25.0.3)(sass@1.97.2)(tsx@4.21.0))
+ version: 2.0.3(sharp@0.34.5)(vite@7.3.1(@types/node@25.0.6)(sass@1.97.2)(tsx@4.21.0))
packages:
@@ -346,8 +346,8 @@ packages:
peerDependencies:
'@csstools/css-tokenizer': ^3.0.4
- '@csstools/css-syntax-patches-for-csstree@1.0.23':
- resolution: {integrity: sha512-YEmgyklR6l/oKUltidNVYdjSmLSW88vMsKx0pmiS3r71s8ZZRpd8A0Yf0U+6p/RzElmMnPBv27hNWjDQMSZRtQ==}
+ '@csstools/css-syntax-patches-for-csstree@1.0.25':
+ resolution: {integrity: sha512-g0Kw9W3vjx5BEBAF8c5Fm2NcB/Fs8jJXh85aXqwEXiL+tqtOut07TWgyaGzAAfTM+gKckrrncyeGEZPcaRgm2Q==}
engines: {node: '>=18'}
'@csstools/css-tokenizer@3.0.4':
@@ -687,15 +687,15 @@ packages:
cpu: [x64]
os: [win32]
- '@inlang/paraglide-js@2.7.2':
- resolution: {integrity: sha512-tUkzcK7yCuJsQCeSHLlCaISFFX65efYeYdFBXtTXyorl1PClH2/BxFg4MqCsemXiX7KZWgbvIfjnsDiVTrj7bQ==}
+ '@inlang/paraglide-js@2.8.0':
+ resolution: {integrity: sha512-ataaSmV53zz+tIr+KJLdC3tTB1uikS79hvtLlZk2ikbGRB/kcyQeg+lsqzjsXCAvy0/O28ucCRjxbHsTzOVQVg==}
hasBin: true
'@inlang/recommend-sherlock@0.2.1':
resolution: {integrity: sha512-ckv8HvHy/iTqaVAEKrr+gnl+p3XFNwe5D2+6w6wJk2ORV2XkcRkKOJ/XsTUJbPSiyi4PI+p+T3bqbmNx/rDUlg==}
- '@inlang/sdk@2.4.10':
- resolution: {integrity: sha512-MLcYSb9ERwvyfxMsMXGjmAYfh6Bn/rkT58ffkibWxbFLiL3ejSdmLGP8Wl7118dMo6nj2PXTcEPzUw+2YPQ62Q==}
+ '@inlang/sdk@2.6.0':
+ resolution: {integrity: sha512-f4iVHVXyzOi0CXlXSAT7XPrReLBaVXy/po/qrOPf2OHh+hUwyD1bDx2EYC5KgrZ16z3ylWfqWVuc7o4l7/tuUQ==}
engines: {node: '>=18.0.0'}
'@jridgewell/gen-mapping@0.3.13':
@@ -742,86 +742,86 @@ packages:
resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
engines: {node: '>= 8'}
- '@parcel/watcher-android-arm64@2.5.1':
- resolution: {integrity: sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==}
+ '@parcel/watcher-android-arm64@2.5.4':
+ resolution: {integrity: sha512-hoh0vx4v+b3BNI7Cjoy2/B0ARqcwVNrzN/n7DLq9ZB4I3lrsvhrkCViJyfTj/Qi5xM9YFiH4AmHGK6pgH1ss7g==}
engines: {node: '>= 10.0.0'}
cpu: [arm64]
os: [android]
- '@parcel/watcher-darwin-arm64@2.5.1':
- resolution: {integrity: sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==}
+ '@parcel/watcher-darwin-arm64@2.5.4':
+ resolution: {integrity: sha512-kphKy377pZiWpAOyTgQYPE5/XEKVMaj6VUjKT5VkNyUJlr2qZAn8gIc7CPzx+kbhvqHDT9d7EqdOqRXT6vk0zw==}
engines: {node: '>= 10.0.0'}
cpu: [arm64]
os: [darwin]
- '@parcel/watcher-darwin-x64@2.5.1':
- resolution: {integrity: sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==}
+ '@parcel/watcher-darwin-x64@2.5.4':
+ resolution: {integrity: sha512-UKaQFhCtNJW1A9YyVz3Ju7ydf6QgrpNQfRZ35wNKUhTQ3dxJ/3MULXN5JN/0Z80V/KUBDGa3RZaKq1EQT2a2gg==}
engines: {node: '>= 10.0.0'}
cpu: [x64]
os: [darwin]
- '@parcel/watcher-freebsd-x64@2.5.1':
- resolution: {integrity: sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==}
+ '@parcel/watcher-freebsd-x64@2.5.4':
+ resolution: {integrity: sha512-Dib0Wv3Ow/m2/ttvLdeI2DBXloO7t3Z0oCp4bAb2aqyqOjKPPGrg10pMJJAQ7tt8P4V2rwYwywkDhUia/FgS+Q==}
engines: {node: '>= 10.0.0'}
cpu: [x64]
os: [freebsd]
- '@parcel/watcher-linux-arm-glibc@2.5.1':
- resolution: {integrity: sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==}
+ '@parcel/watcher-linux-arm-glibc@2.5.4':
+ resolution: {integrity: sha512-I5Vb769pdf7Q7Sf4KNy8Pogl/URRCKu9ImMmnVKYayhynuyGYMzuI4UOWnegQNa2sGpsPSbzDsqbHNMyeyPCgw==}
engines: {node: '>= 10.0.0'}
cpu: [arm]
os: [linux]
- '@parcel/watcher-linux-arm-musl@2.5.1':
- resolution: {integrity: sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==}
+ '@parcel/watcher-linux-arm-musl@2.5.4':
+ resolution: {integrity: sha512-kGO8RPvVrcAotV4QcWh8kZuHr9bXi9a3bSZw7kFarYR0+fGliU7hd/zevhjw8fnvIKG3J9EO5G6sXNGCSNMYPQ==}
engines: {node: '>= 10.0.0'}
cpu: [arm]
os: [linux]
- '@parcel/watcher-linux-arm64-glibc@2.5.1':
- resolution: {integrity: sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==}
+ '@parcel/watcher-linux-arm64-glibc@2.5.4':
+ resolution: {integrity: sha512-KU75aooXhqGFY2W5/p8DYYHt4hrjHZod8AhcGAmhzPn/etTa+lYCDB2b1sJy3sWJ8ahFVTdy+EbqSBvMx3iFlw==}
engines: {node: '>= 10.0.0'}
cpu: [arm64]
os: [linux]
- '@parcel/watcher-linux-arm64-musl@2.5.1':
- resolution: {integrity: sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==}
+ '@parcel/watcher-linux-arm64-musl@2.5.4':
+ resolution: {integrity: sha512-Qx8uNiIekVutnzbVdrgSanM+cbpDD3boB1f8vMtnuG5Zau4/bdDbXyKwIn0ToqFhIuob73bcxV9NwRm04/hzHQ==}
engines: {node: '>= 10.0.0'}
cpu: [arm64]
os: [linux]
- '@parcel/watcher-linux-x64-glibc@2.5.1':
- resolution: {integrity: sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==}
+ '@parcel/watcher-linux-x64-glibc@2.5.4':
+ resolution: {integrity: sha512-UYBQvhYmgAv61LNUn24qGQdjtycFBKSK3EXr72DbJqX9aaLbtCOO8+1SkKhD/GNiJ97ExgcHBrukcYhVjrnogA==}
engines: {node: '>= 10.0.0'}
cpu: [x64]
os: [linux]
- '@parcel/watcher-linux-x64-musl@2.5.1':
- resolution: {integrity: sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==}
+ '@parcel/watcher-linux-x64-musl@2.5.4':
+ resolution: {integrity: sha512-YoRWCVgxv8akZrMhdyVi6/TyoeeMkQ0PGGOf2E4omODrvd1wxniXP+DBynKoHryStks7l+fDAMUBRzqNHrVOpg==}
engines: {node: '>= 10.0.0'}
cpu: [x64]
os: [linux]
- '@parcel/watcher-win32-arm64@2.5.1':
- resolution: {integrity: sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==}
+ '@parcel/watcher-win32-arm64@2.5.4':
+ resolution: {integrity: sha512-iby+D/YNXWkiQNYcIhg8P5hSjzXEHaQrk2SLrWOUD7VeC4Ohu0WQvmV+HDJokZVJ2UjJ4AGXW3bx7Lls9Ln4TQ==}
engines: {node: '>= 10.0.0'}
cpu: [arm64]
os: [win32]
- '@parcel/watcher-win32-ia32@2.5.1':
- resolution: {integrity: sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==}
+ '@parcel/watcher-win32-ia32@2.5.4':
+ resolution: {integrity: sha512-vQN+KIReG0a2ZDpVv8cgddlf67J8hk1WfZMMP7sMeZmJRSmEax5xNDNWKdgqSe2brOKTQQAs3aCCUal2qBHAyg==}
engines: {node: '>= 10.0.0'}
cpu: [ia32]
os: [win32]
- '@parcel/watcher-win32-x64@2.5.1':
- resolution: {integrity: sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==}
+ '@parcel/watcher-win32-x64@2.5.4':
+ resolution: {integrity: sha512-3A6efb6BOKwyw7yk9ro2vus2YTt2nvcd56AuzxdMiVOxL9umDyN5PKkKfZ/gZ9row41SjVmTVQNWQhaRRGpOKw==}
engines: {node: '>= 10.0.0'}
cpu: [x64]
os: [win32]
- '@parcel/watcher@2.5.1':
- resolution: {integrity: sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==}
+ '@parcel/watcher@2.5.4':
+ resolution: {integrity: sha512-WYa2tUVV5HiArWPB3ydlOc4R2ivq0IDrlqhMi3l7mVsFEXNcTfxYFPIHXHXIh/ca/y/V5N4E1zecyxdIBjYnkQ==}
engines: {node: '>= 10.0.0'}
'@react-hook/latest@1.0.3':
@@ -1199,20 +1199,20 @@ packages:
peerDependencies:
react: ^18 || ^19
- '@tanstack/react-router-devtools@1.146.2':
- resolution: {integrity: sha512-svUw0KM9e4SjpFtsNfYsFO5y9KqfZIc7r5cTdsfletx/gOb7cF3bekPPx/JUiAu2RU7vME9R8Rs1hlJ9kraJXA==}
+ '@tanstack/react-router-devtools@1.149.0':
+ resolution: {integrity: sha512-QJ6epMhRKTS8WrBmcMFjK1v+jDaimMQuySCSNA8NR1ZROKv3xx0gY8AjyVVgQ1h78HSXXRMYH3aql2kWYjc31g==}
engines: {node: '>=12'}
peerDependencies:
- '@tanstack/react-router': ^1.146.2
- '@tanstack/router-core': ^1.146.2
+ '@tanstack/react-router': ^1.147.3
+ '@tanstack/router-core': ^1.147.1
react: '>=18.0.0 || >=19.0.0'
react-dom: '>=18.0.0 || >=19.0.0'
peerDependenciesMeta:
'@tanstack/router-core':
optional: true
- '@tanstack/react-router@1.146.2':
- resolution: {integrity: sha512-Oq/shGk5nCNyK/YhB9SGByeU3wgjNVzpGoDovuOvIacE9hsicZYOv9EnII1fEku8xavqWtN8D9wr21z2CDanjA==}
+ '@tanstack/react-router@1.147.3':
+ resolution: {integrity: sha512-Fp9DoszYiIJclwxU43kyP/cqcWD418DPmV6yhmIOuVedsSMnfh2g7uRQ+bOoaWn996JjuU9yt/x48h66aCQSQA==}
engines: {node: '>=12'}
peerDependencies:
react: '>=18.0.0 || >=19.0.0'
@@ -1237,31 +1237,30 @@ packages:
react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
- '@tanstack/router-core@1.146.2':
- resolution: {integrity: sha512-MmTDiT6fpe+WBWYAuhp8oyzULBJX4oblm1kCqHDngf9mK3qcnNm5nkKk4d3Fk80QZmHS4DcRNFaFHKbLUVlZog==}
+ '@tanstack/router-core@1.147.1':
+ resolution: {integrity: sha512-yf8o3CNgJVGO5JnIqiTe0y2eChxEM0w7TrEs1VSumL/zz2bQroYGNr1mOXJ2VeN+7YfJJwjEqq71P5CzWwMzRg==}
engines: {node: '>=12'}
- '@tanstack/router-devtools-core@1.146.2':
- resolution: {integrity: sha512-rIo5TEyM6uex1Zr0kHtBZu9Mwo0Aj2A84hk+UaLIBLCRpqaen6tuzjxmgNDSZ4YrgZOmixfowLObdlsuMyXTsQ==}
+ '@tanstack/router-devtools-core@1.149.0':
+ resolution: {integrity: sha512-dy9xb8U9VWAavqKM0sTFhAs2ufVs3d/cGSbqczIgBcAKCjjbsAng1gV4ezPXmfF1pa+2MW6n7SViXsxxvtCRiw==}
engines: {node: '>=12'}
peerDependencies:
- '@tanstack/router-core': ^1.146.2
+ '@tanstack/router-core': ^1.147.1
csstype: ^3.0.10
- solid-js: '>=1.9.5'
peerDependenciesMeta:
csstype:
optional: true
- '@tanstack/router-generator@1.146.2':
- resolution: {integrity: sha512-0eO/iL50OrNLtG613iHLmps8AVJC7WChDz+njFViTiWCf20RMEjeUlKTffdrREx3v/QeaLVuxlBvLkXRqSW0yg==}
+ '@tanstack/router-generator@1.149.0':
+ resolution: {integrity: sha512-H+SZbJ9j4G+y/329LlRLb//4sBdPNQpuMddb/rgkfoRZpdztm9Ejm9EEbMJB0rkNDrSgfSPOZ6VtJbndYH/AQA==}
engines: {node: '>=12'}
- '@tanstack/router-plugin@1.146.3':
- resolution: {integrity: sha512-2YCieC5UbFBEf3d1Up6Q2IeGqRjc+qmxbCvVxSONnitK6aDFKpRoxltlhMyeQyeIhFsIyhqxaIADOkO+fMrFRQ==}
+ '@tanstack/router-plugin@1.149.0':
+ resolution: {integrity: sha512-DYPScneHZ0fm3FJyDhkUCW0w0dOopAKvep57n/Ft2b3RrHSeSeJB/cJWgsUvpcYJfpywkyOLyqVLMoiDvLoG/A==}
engines: {node: '>=12'}
peerDependencies:
'@rsbuild/core': '>=1.0.2'
- '@tanstack/react-router': ^1.146.2
+ '@tanstack/react-router': ^1.147.3
vite: '>=5.0.0 || >=6.0.0 || >=7.0.0'
vite-plugin-solid: ^2.11.10
webpack: '>=5.92.0'
@@ -1346,8 +1345,8 @@ packages:
'@types/lodash-es@4.17.12':
resolution: {integrity: sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==}
- '@types/lodash@4.17.21':
- resolution: {integrity: sha512-FOvQ0YPD5NOfPgMzJihoT+Za5pdkDJWcbpuj1DjaKZIr/gxodQjY/uWEFlTNqW2ugXHUiL8lRQgw63dzKHZdeQ==}
+ '@types/lodash@4.17.23':
+ resolution: {integrity: sha512-RDvF6wTulMPjrNdCoYRC8gNR880JNGT8uB+REUpC2Ns4pRqQJhGz90wh7rgdXDPpCczF3VGktDuFGVnz8zP7HA==}
'@types/mdast@4.0.4':
resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==}
@@ -1355,8 +1354,8 @@ packages:
'@types/ms@2.1.0':
resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==}
- '@types/node@25.0.3':
- resolution: {integrity: sha512-W609buLVRVmeW693xKfzHeIV6nJGGz98uCPfeXI1ELMLXVeKYZ9m15fAMSaUPBHYLGFsVRcMmSCksQOrZV9BYA==}
+ '@types/node@25.0.6':
+ resolution: {integrity: sha512-NNu0sjyNxpoiW3YuVFfNz7mxSQ+S4X2G28uqg2s+CzoqoQjLPsWSbsFFyztIAqt2vb8kfEAsJNepMGPTxFDx3Q==}
'@types/qs@6.14.0':
resolution: {integrity: sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==}
@@ -1366,8 +1365,8 @@ packages:
peerDependencies:
'@types/react': ^19.2.0
- '@types/react@19.2.7':
- resolution: {integrity: sha512-MWtvHrGZLFttgeEj28VXHxpmwYbor/ATPYbBfSFZEIRK0ecCFLl2Qo55z52Hss+UV9CRN7trSeq1zbgx7YDWWg==}
+ '@types/react@19.2.8':
+ resolution: {integrity: sha512-3MbSL37jEchWZz2p2mjntRZtPt837ij10ApxKfgmXCTuHWagYg7iA5bqPw6C8BMPfwidlvfPI/fxOc42HLhcyg==}
'@types/unist@2.0.11':
resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==}
@@ -1503,8 +1502,8 @@ packages:
resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
engines: {node: '>=6'}
- caniuse-lite@1.0.30001763:
- resolution: {integrity: sha512-mh/dGtq56uN98LlNX9qdbKnzINhX0QzhiWBFEkFfsFO4QyCvL8YegrJAazCwXIeqkIob8BlZPGM3xdnY+sgmvQ==}
+ caniuse-lite@1.0.30001764:
+ resolution: {integrity: sha512-9JGuzl2M+vPL+pz70gtMF9sHdMFbY9FJaQBi186cHKH3pSzDvzoUJUPV6fqiKIMyXbud9ZLg4F3Yza1vJ1+93g==}
ccount@2.0.1:
resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==}
@@ -1678,11 +1677,6 @@ packages:
resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
engines: {node: '>=6'}
- detect-libc@1.0.3:
- resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==}
- engines: {node: '>=0.10'}
- hasBin: true
-
detect-libc@2.1.2:
resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==}
engines: {node: '>=8'}
@@ -2776,6 +2770,10 @@ packages:
resolution: {integrity: sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==}
hasBin: true
+ uuid@13.0.0:
+ resolution: {integrity: sha512-XQegIaBTVUjSHliKqcnFqYypAd4S+WCYt5NIeRs6w/UAry7z8Y9j5ZwRRL4kzq9U3sD6v+85er9FvkEaBpji2w==}
+ hasBin: true
+
vfile-location@5.0.3:
resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==}
@@ -2876,8 +2874,8 @@ packages:
zod@4.3.5:
resolution: {integrity: sha512-k7Nwx6vuWx1IJ9Bjuf4Zt1PEllcwe7cls3VNzm4CQ1/hgtFUK2bRNG3rvnpPUhFjmqJKAKtjV576KnUkHocg/g==}
- zustand@5.0.9:
- resolution: {integrity: sha512-ALBtUj0AfjJt3uNRQoL1tL2tMvj6Gp/6e39dnfT6uzpelGru8v1tPOGBzayOWbPJvujM8JojDk3E1LxeFisBNg==}
+ zustand@5.0.10:
+ resolution: {integrity: sha512-U1AiltS1O9hSy3rul+Ub82ut2fqIAefiSuwECWt6jlMVUGejvf+5omLcRBSzqbRagSM3hQZbtzdeRc6QVScXTg==}
engines: {node: '>=12.20.0'}
peerDependencies:
'@types/react': '>=18.0.0'
@@ -2899,9 +2897,9 @@ packages:
snapshots:
- '@axa-ch/react-polymorphic-types@1.4.1(@types/react@19.2.7)(react@19.2.3)':
+ '@axa-ch/react-polymorphic-types@1.4.1(@types/react@19.2.8)(react@19.2.3)':
dependencies:
- '@types/react': 19.2.7
+ '@types/react': 19.2.8
react: 19.2.3
'@babel/code-frame@7.27.1':
@@ -3067,7 +3065,7 @@ snapshots:
dependencies:
'@csstools/css-tokenizer': 3.0.4
- '@csstools/css-syntax-patches-for-csstree@1.0.23': {}
+ '@csstools/css-syntax-patches-for-csstree@1.0.25': {}
'@csstools/css-tokenizer@3.0.4': {}
@@ -3286,10 +3284,10 @@ snapshots:
'@img/sharp-win32-x64@0.34.5':
optional: true
- '@inlang/paraglide-js@2.7.2':
+ '@inlang/paraglide-js@2.8.0':
dependencies:
'@inlang/recommend-sherlock': 0.2.1
- '@inlang/sdk': 2.4.10
+ '@inlang/sdk': 2.6.0
commander: 11.1.0
consola: 3.4.0
json5: 2.2.3
@@ -3302,13 +3300,13 @@ snapshots:
dependencies:
comment-json: 4.5.1
- '@inlang/sdk@2.4.10':
+ '@inlang/sdk@2.6.0':
dependencies:
'@lix-js/sdk': 0.4.7
'@sinclair/typebox': 0.31.28
kysely: 0.27.6
sqlite-wasm-kysely: 0.3.0(kysely@0.27.6)
- uuid: 10.0.0
+ uuid: 13.0.0
transitivePeerDependencies:
- babel-plugin-macros
@@ -3365,65 +3363,65 @@ snapshots:
'@nodelib/fs.scandir': 2.1.5
fastq: 1.20.1
- '@parcel/watcher-android-arm64@2.5.1':
+ '@parcel/watcher-android-arm64@2.5.4':
optional: true
- '@parcel/watcher-darwin-arm64@2.5.1':
+ '@parcel/watcher-darwin-arm64@2.5.4':
optional: true
- '@parcel/watcher-darwin-x64@2.5.1':
+ '@parcel/watcher-darwin-x64@2.5.4':
optional: true
- '@parcel/watcher-freebsd-x64@2.5.1':
+ '@parcel/watcher-freebsd-x64@2.5.4':
optional: true
- '@parcel/watcher-linux-arm-glibc@2.5.1':
+ '@parcel/watcher-linux-arm-glibc@2.5.4':
optional: true
- '@parcel/watcher-linux-arm-musl@2.5.1':
+ '@parcel/watcher-linux-arm-musl@2.5.4':
optional: true
- '@parcel/watcher-linux-arm64-glibc@2.5.1':
+ '@parcel/watcher-linux-arm64-glibc@2.5.4':
optional: true
- '@parcel/watcher-linux-arm64-musl@2.5.1':
+ '@parcel/watcher-linux-arm64-musl@2.5.4':
optional: true
- '@parcel/watcher-linux-x64-glibc@2.5.1':
+ '@parcel/watcher-linux-x64-glibc@2.5.4':
optional: true
- '@parcel/watcher-linux-x64-musl@2.5.1':
+ '@parcel/watcher-linux-x64-musl@2.5.4':
optional: true
- '@parcel/watcher-win32-arm64@2.5.1':
+ '@parcel/watcher-win32-arm64@2.5.4':
optional: true
- '@parcel/watcher-win32-ia32@2.5.1':
+ '@parcel/watcher-win32-ia32@2.5.4':
optional: true
- '@parcel/watcher-win32-x64@2.5.1':
+ '@parcel/watcher-win32-x64@2.5.4':
optional: true
- '@parcel/watcher@2.5.1':
+ '@parcel/watcher@2.5.4':
dependencies:
- detect-libc: 1.0.3
+ detect-libc: 2.1.2
is-glob: 4.0.3
- micromatch: 4.0.8
node-addon-api: 7.1.1
+ picomatch: 4.0.3
optionalDependencies:
- '@parcel/watcher-android-arm64': 2.5.1
- '@parcel/watcher-darwin-arm64': 2.5.1
- '@parcel/watcher-darwin-x64': 2.5.1
- '@parcel/watcher-freebsd-x64': 2.5.1
- '@parcel/watcher-linux-arm-glibc': 2.5.1
- '@parcel/watcher-linux-arm-musl': 2.5.1
- '@parcel/watcher-linux-arm64-glibc': 2.5.1
- '@parcel/watcher-linux-arm64-musl': 2.5.1
- '@parcel/watcher-linux-x64-glibc': 2.5.1
- '@parcel/watcher-linux-x64-musl': 2.5.1
- '@parcel/watcher-win32-arm64': 2.5.1
- '@parcel/watcher-win32-ia32': 2.5.1
- '@parcel/watcher-win32-x64': 2.5.1
+ '@parcel/watcher-android-arm64': 2.5.4
+ '@parcel/watcher-darwin-arm64': 2.5.4
+ '@parcel/watcher-darwin-x64': 2.5.4
+ '@parcel/watcher-freebsd-x64': 2.5.4
+ '@parcel/watcher-linux-arm-glibc': 2.5.4
+ '@parcel/watcher-linux-arm-musl': 2.5.4
+ '@parcel/watcher-linux-arm64-glibc': 2.5.4
+ '@parcel/watcher-linux-arm64-musl': 2.5.4
+ '@parcel/watcher-linux-x64-glibc': 2.5.4
+ '@parcel/watcher-linux-x64-musl': 2.5.4
+ '@parcel/watcher-win32-arm64': 2.5.4
+ '@parcel/watcher-win32-ia32': 2.5.4
+ '@parcel/watcher-win32-x64': 2.5.4
optional: true
'@react-hook/latest@1.0.3(react@19.2.3)':
@@ -3440,7 +3438,7 @@ snapshots:
'@react-hook/passive-layout-effect': 1.2.1(react@19.2.3)
react: 19.2.3
- '@reduxjs/toolkit@2.11.2(react-redux@9.2.0(@types/react@19.2.7)(react@19.2.3)(redux@5.0.1))(react@19.2.3)':
+ '@reduxjs/toolkit@2.11.2(react-redux@9.2.0(@types/react@19.2.8)(react@19.2.3)(redux@5.0.1))(react@19.2.3)':
dependencies:
'@standard-schema/spec': 1.1.0
'@standard-schema/utils': 0.3.0
@@ -3450,7 +3448,7 @@ snapshots:
reselect: 5.1.1
optionalDependencies:
react: 19.2.3
- react-redux: 9.2.0(@types/react@19.2.7)(react@19.2.3)(redux@5.0.1)
+ react-redux: 9.2.0(@types/react@19.2.8)(react@19.2.3)(redux@5.0.1)
'@rolldown/pluginutils@1.0.0-beta.47': {}
@@ -3673,7 +3671,7 @@ snapshots:
transitivePeerDependencies:
- csstype
- '@tanstack/devtools-vite@0.4.1(vite@7.3.1(@types/node@25.0.3)(sass@1.97.2)(tsx@4.21.0))':
+ '@tanstack/devtools-vite@0.4.1(vite@7.3.1(@types/node@25.0.6)(sass@1.97.2)(tsx@4.21.0))':
dependencies:
'@babel/core': 7.28.5
'@babel/generator': 7.28.5
@@ -3685,7 +3683,7 @@ snapshots:
chalk: 5.6.2
launch-editor: 2.12.0
picomatch: 4.0.3
- vite: 7.3.1(@types/node@25.0.3)(sass@1.97.2)(tsx@4.21.0)
+ vite: 7.3.1(@types/node@25.0.6)(sass@1.97.2)(tsx@4.21.0)
transitivePeerDependencies:
- bufferutil
- supports-color
@@ -3721,11 +3719,11 @@ snapshots:
'@tanstack/query-devtools@5.92.0': {}
- '@tanstack/react-devtools@0.9.2(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(csstype@3.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(solid-js@1.9.9)':
+ '@tanstack/react-devtools@0.9.2(@types/react-dom@19.2.3(@types/react@19.2.8))(@types/react@19.2.8)(csstype@3.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(solid-js@1.9.9)':
dependencies:
'@tanstack/devtools': 0.10.3(csstype@3.2.3)(solid-js@1.9.9)
- '@types/react': 19.2.7
- '@types/react-dom': 19.2.3(@types/react@19.2.7)
+ '@types/react': 19.2.8
+ '@types/react-dom': 19.2.3(@types/react@19.2.8)
react: 19.2.3
react-dom: 19.2.3(react@19.2.3)
transitivePeerDependencies:
@@ -3753,23 +3751,22 @@ snapshots:
'@tanstack/query-core': 5.90.16
react: 19.2.3
- '@tanstack/react-router-devtools@1.146.2(@tanstack/react-router@1.146.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@tanstack/router-core@1.146.2)(csstype@3.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(solid-js@1.9.9)':
+ '@tanstack/react-router-devtools@1.149.0(@tanstack/react-router@1.147.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(@tanstack/router-core@1.147.1)(csstype@3.2.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
dependencies:
- '@tanstack/react-router': 1.146.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
- '@tanstack/router-devtools-core': 1.146.2(@tanstack/router-core@1.146.2)(csstype@3.2.3)(solid-js@1.9.9)
+ '@tanstack/react-router': 1.147.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@tanstack/router-devtools-core': 1.149.0(@tanstack/router-core@1.147.1)(csstype@3.2.3)
react: 19.2.3
react-dom: 19.2.3(react@19.2.3)
optionalDependencies:
- '@tanstack/router-core': 1.146.2
+ '@tanstack/router-core': 1.147.1
transitivePeerDependencies:
- csstype
- - solid-js
- '@tanstack/react-router@1.146.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
+ '@tanstack/react-router@1.147.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
dependencies:
'@tanstack/history': 1.145.7
'@tanstack/react-store': 0.8.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
- '@tanstack/router-core': 1.146.2
+ '@tanstack/router-core': 1.147.1
isbot: 5.1.32
react: 19.2.3
react-dom: 19.2.3(react@19.2.3)
@@ -3795,7 +3792,7 @@ snapshots:
react: 19.2.3
react-dom: 19.2.3(react@19.2.3)
- '@tanstack/router-core@1.146.2':
+ '@tanstack/router-core@1.147.1':
dependencies:
'@tanstack/history': 1.145.7
'@tanstack/store': 0.8.0
@@ -3805,19 +3802,18 @@ snapshots:
tiny-invariant: 1.3.3
tiny-warning: 1.0.3
- '@tanstack/router-devtools-core@1.146.2(@tanstack/router-core@1.146.2)(csstype@3.2.3)(solid-js@1.9.9)':
+ '@tanstack/router-devtools-core@1.149.0(@tanstack/router-core@1.147.1)(csstype@3.2.3)':
dependencies:
- '@tanstack/router-core': 1.146.2
+ '@tanstack/router-core': 1.147.1
clsx: 2.1.1
goober: 2.1.18(csstype@3.2.3)
- solid-js: 1.9.9
tiny-invariant: 1.3.3
optionalDependencies:
csstype: 3.2.3
- '@tanstack/router-generator@1.146.2':
+ '@tanstack/router-generator@1.149.0':
dependencies:
- '@tanstack/router-core': 1.146.2
+ '@tanstack/router-core': 1.147.1
'@tanstack/router-utils': 1.143.11
'@tanstack/virtual-file-routes': 1.145.4
prettier: 3.7.4
@@ -3828,7 +3824,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@tanstack/router-plugin@1.146.3(@tanstack/react-router@1.146.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@7.3.1(@types/node@25.0.3)(sass@1.97.2)(tsx@4.21.0))':
+ '@tanstack/router-plugin@1.149.0(@tanstack/react-router@1.147.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(vite@7.3.1(@types/node@25.0.6)(sass@1.97.2)(tsx@4.21.0))':
dependencies:
'@babel/core': 7.28.5
'@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.5)
@@ -3836,8 +3832,8 @@ snapshots:
'@babel/template': 7.27.2
'@babel/traverse': 7.28.5
'@babel/types': 7.28.5
- '@tanstack/router-core': 1.146.2
- '@tanstack/router-generator': 1.146.2
+ '@tanstack/router-core': 1.147.1
+ '@tanstack/router-generator': 1.149.0
'@tanstack/router-utils': 1.143.11
'@tanstack/virtual-file-routes': 1.145.4
babel-dead-code-elimination: 1.0.11
@@ -3845,8 +3841,8 @@ snapshots:
unplugin: 2.3.11
zod: 3.25.76
optionalDependencies:
- '@tanstack/react-router': 1.146.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
- vite: 7.3.1(@types/node@25.0.3)(sass@1.97.2)(tsx@4.21.0)
+ '@tanstack/react-router': 1.147.3(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ vite: 7.3.1(@types/node@25.0.6)(sass@1.97.2)(tsx@4.21.0)
transitivePeerDependencies:
- supports-color
@@ -3916,9 +3912,9 @@ snapshots:
'@types/lodash-es@4.17.12':
dependencies:
- '@types/lodash': 4.17.21
+ '@types/lodash': 4.17.23
- '@types/lodash@4.17.21': {}
+ '@types/lodash@4.17.23': {}
'@types/mdast@4.0.4':
dependencies:
@@ -3926,17 +3922,17 @@ snapshots:
'@types/ms@2.1.0': {}
- '@types/node@25.0.3':
+ '@types/node@25.0.6':
dependencies:
undici-types: 7.16.0
'@types/qs@6.14.0': {}
- '@types/react-dom@19.2.3(@types/react@19.2.7)':
+ '@types/react-dom@19.2.3(@types/react@19.2.8)':
dependencies:
- '@types/react': 19.2.7
+ '@types/react': 19.2.8
- '@types/react@19.2.7':
+ '@types/react@19.2.8':
dependencies:
csstype: 3.2.3
@@ -3953,11 +3949,11 @@ snapshots:
'@ungap/structured-clone@1.3.0': {}
- '@vitejs/plugin-react-swc@4.2.2(vite@7.3.1(@types/node@25.0.3)(sass@1.97.2)(tsx@4.21.0))':
+ '@vitejs/plugin-react-swc@4.2.2(vite@7.3.1(@types/node@25.0.6)(sass@1.97.2)(tsx@4.21.0))':
dependencies:
'@rolldown/pluginutils': 1.0.0-beta.47
'@swc/core': 1.15.8
- vite: 7.3.1(@types/node@25.0.3)(sass@1.97.2)(tsx@4.21.0)
+ vite: 7.3.1(@types/node@25.0.6)(sass@1.97.2)(tsx@4.21.0)
transitivePeerDependencies:
- '@swc/helpers'
@@ -4002,7 +3998,7 @@ snapshots:
autoprefixer@10.4.23(postcss@8.5.6):
dependencies:
browserslist: 4.28.1
- caniuse-lite: 1.0.30001763
+ caniuse-lite: 1.0.30001764
fraction.js: 5.3.4
picocolors: 1.1.1
postcss: 8.5.6
@@ -4040,7 +4036,7 @@ snapshots:
browserslist@4.28.1:
dependencies:
baseline-browser-mapping: 2.9.14
- caniuse-lite: 1.0.30001763
+ caniuse-lite: 1.0.30001764
electron-to-chromium: 1.5.267
node-releases: 2.0.27
update-browserslist-db: 1.2.3(browserslist@4.28.1)
@@ -4067,7 +4063,7 @@ snapshots:
callsites@3.1.0: {}
- caniuse-lite@1.0.30001763: {}
+ caniuse-lite@1.0.30001764: {}
ccount@2.0.1: {}
@@ -4205,9 +4201,6 @@ snapshots:
dequal@2.0.3: {}
- detect-libc@1.0.3:
- optional: true
-
detect-libc@2.1.2: {}
devlop@1.1.0:
@@ -4990,11 +4983,11 @@ snapshots:
dependencies:
react: 19.2.3
- react-markdown@10.1.0(@types/react@19.2.7)(react@19.2.3):
+ react-markdown@10.1.0(@types/react@19.2.8)(react@19.2.3):
dependencies:
'@types/hast': 3.0.4
'@types/mdast': 4.0.4
- '@types/react': 19.2.7
+ '@types/react': 19.2.8
devlop: 1.1.0
hast-util-to-jsx-runtime: 2.3.6
html-url-attributes: 3.0.1
@@ -5008,13 +5001,13 @@ snapshots:
transitivePeerDependencies:
- supports-color
- react-redux@9.2.0(@types/react@19.2.7)(react@19.2.3)(redux@5.0.1):
+ react-redux@9.2.0(@types/react@19.2.8)(react@19.2.3)(redux@5.0.1):
dependencies:
'@types/use-sync-external-store': 0.0.6
react: 19.2.3
use-sync-external-store: 1.6.0(react@19.2.3)
optionalDependencies:
- '@types/react': 19.2.7
+ '@types/react': 19.2.8
redux: 5.0.1
react@19.2.3: {}
@@ -5033,9 +5026,9 @@ snapshots:
tiny-invariant: 1.3.3
tslib: 2.8.1
- recharts@3.6.0(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react-is@19.2.0)(react@19.2.3)(redux@5.0.1):
+ recharts@3.6.0(@types/react@19.2.8)(react-dom@19.2.3(react@19.2.3))(react-is@19.2.0)(react@19.2.3)(redux@5.0.1):
dependencies:
- '@reduxjs/toolkit': 2.11.2(react-redux@9.2.0(@types/react@19.2.7)(react@19.2.3)(redux@5.0.1))(react@19.2.3)
+ '@reduxjs/toolkit': 2.11.2(react-redux@9.2.0(@types/react@19.2.8)(react@19.2.3)(redux@5.0.1))(react@19.2.3)
clsx: 2.1.1
decimal.js-light: 2.5.1
es-toolkit: 1.43.0
@@ -5044,7 +5037,7 @@ snapshots:
react: 19.2.3
react-dom: 19.2.3(react@19.2.3)
react-is: 19.2.0
- react-redux: 9.2.0(@types/react@19.2.7)(react@19.2.3)(redux@5.0.1)
+ react-redux: 9.2.0(@types/react@19.2.8)(react@19.2.3)(redux@5.0.1)
reselect: 5.1.1
tiny-invariant: 1.3.3
use-sync-external-store: 1.6.0(react@19.2.3)
@@ -5139,7 +5132,7 @@ snapshots:
immutable: 5.1.4
source-map-js: 1.2.1
optionalDependencies:
- '@parcel/watcher': 2.5.1
+ '@parcel/watcher': 2.5.4
scheduler@0.27.0: {}
@@ -5313,7 +5306,7 @@ snapshots:
stylelint@16.26.1(typescript@5.9.3):
dependencies:
'@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4)
- '@csstools/css-syntax-patches-for-csstree': 1.0.23
+ '@csstools/css-syntax-patches-for-csstree': 1.0.25
'@csstools/css-tokenizer': 3.0.4
'@csstools/media-query-list-parser': 4.0.3(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)
'@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.1)
@@ -5555,6 +5548,8 @@ snapshots:
uuid@10.0.0: {}
+ uuid@13.0.0: {}
+
vfile-location@5.0.3:
dependencies:
'@types/unist': 3.0.3
@@ -5587,15 +5582,15 @@ snapshots:
d3-time: 3.1.0
d3-timer: 3.0.1
- vite-plugin-image-optimizer@2.0.3(sharp@0.34.5)(vite@7.3.1(@types/node@25.0.3)(sass@1.97.2)(tsx@4.21.0)):
+ vite-plugin-image-optimizer@2.0.3(sharp@0.34.5)(vite@7.3.1(@types/node@25.0.6)(sass@1.97.2)(tsx@4.21.0)):
dependencies:
ansi-colors: 4.1.3
pathe: 2.0.3
- vite: 7.3.1(@types/node@25.0.3)(sass@1.97.2)(tsx@4.21.0)
+ vite: 7.3.1(@types/node@25.0.6)(sass@1.97.2)(tsx@4.21.0)
optionalDependencies:
sharp: 0.34.5
- vite@7.3.1(@types/node@25.0.3)(sass@1.97.2)(tsx@4.21.0):
+ vite@7.3.1(@types/node@25.0.6)(sass@1.97.2)(tsx@4.21.0):
dependencies:
esbuild: 0.27.2
fdir: 6.5.0(picomatch@4.0.3)
@@ -5604,7 +5599,7 @@ snapshots:
rollup: 4.55.1
tinyglobby: 0.2.15
optionalDependencies:
- '@types/node': 25.0.3
+ '@types/node': 25.0.6
fsevents: 2.3.3
sass: 1.97.2
tsx: 4.21.0
@@ -5630,9 +5625,9 @@ snapshots:
zod@4.3.5: {}
- zustand@5.0.9(@types/react@19.2.7)(immer@11.1.3)(react@19.2.3)(use-sync-external-store@1.6.0(react@19.2.3)):
+ zustand@5.0.10(@types/react@19.2.8)(immer@11.1.3)(react@19.2.3)(use-sync-external-store@1.6.0(react@19.2.3)):
optionalDependencies:
- '@types/react': 19.2.7
+ '@types/react': 19.2.8
immer: 11.1.3
react: 19.2.3
use-sync-external-store: 1.6.0(react@19.2.3)
diff --git a/web/project.inlang/.gitignore b/web/project.inlang/.gitignore
index 5e46596759..04df3303b0 100644
--- a/web/project.inlang/.gitignore
+++ b/web/project.inlang/.gitignore
@@ -1 +1,19 @@
-cache
\ No newline at end of file
+# IF GIT SHOWED THAT THIS FILE CHANGED
+#
+# 1. RUN THE FOLLOWING COMMAND
+#
+# ---
+# git rm --cached '**/*.inlang/.gitignore'
+# ---
+#
+# 2. COMMIT THE CHANGE
+#
+# ---
+# git commit -m "fix: remove tracked .gitignore from inlang project"
+# ---
+#
+# Inlang handles the gitignore itself starting with version ^2.5.
+#
+# everything is ignored except settings.json
+*
+!settings.json
\ No newline at end of file
diff --git a/web/src/pages/ActivityLogPage/ActivityLogPage.tsx b/web/src/pages/ActivityLogPage/ActivityLogPage.tsx
index 2ee22a0704..415285743b 100644
--- a/web/src/pages/ActivityLogPage/ActivityLogPage.tsx
+++ b/web/src/pages/ActivityLogPage/ActivityLogPage.tsx
@@ -5,6 +5,7 @@ import { Page } from '../../shared/components/Page/Page';
import { SizedBox } from '../../shared/defguard-ui/components/SizedBox/SizedBox';
import { ThemeSpacing } from '../../shared/defguard-ui/types';
import { isPresent } from '../../shared/defguard-ui/utils/isPresent';
+import { TablePageLayout } from '../../shared/layout/TablePageLayout/TablePageLayout';
import { ActivityLogTable } from './ActivityLogTable';
export const ActivityLogPage = () => {
@@ -36,18 +37,20 @@ export const ActivityLogPage = () => {
return (
- {isPresent(flatData) && isPresent(pagination) && (
- {
- fetchNextPage();
- }}
- hasNextPage={pagination.next_page !== null}
- />
- )}
+
+ {isPresent(flatData) && isPresent(pagination) && (
+ {
+ fetchNextPage();
+ }}
+ hasNextPage={pagination.next_page !== null}
+ />
+ )}
+
);
};
diff --git a/web/src/pages/GroupsPage/GroupsPage.tsx b/web/src/pages/GroupsPage/GroupsPage.tsx
index e914244d2a..df1a51da1e 100644
--- a/web/src/pages/GroupsPage/GroupsPage.tsx
+++ b/web/src/pages/GroupsPage/GroupsPage.tsx
@@ -2,6 +2,7 @@ import { useSuspenseQuery } from '@tanstack/react-query';
import { Page } from '../../shared/components/Page/Page';
import { SizedBox } from '../../shared/defguard-ui/components/SizedBox/SizedBox';
import { ThemeSpacing } from '../../shared/defguard-ui/types';
+import { TablePageLayout } from '../../shared/layout/TablePageLayout/TablePageLayout';
import { getGroupsInfoQueryOptions, getUsersQueryOptions } from '../../shared/query';
import { GroupsTable } from './components/GroupsTable/GroupsTable';
import { CEGroupModal } from './modals/CEGroupModal/CEGroupModal';
@@ -13,7 +14,9 @@ export const GroupsPage = () => {
<>
-
+
+
+
>
diff --git a/web/src/pages/NetworkDevicesPage/NetworkDevicesPage.tsx b/web/src/pages/NetworkDevicesPage/NetworkDevicesPage.tsx
index cccbc5a1f5..c632a361a1 100644
--- a/web/src/pages/NetworkDevicesPage/NetworkDevicesPage.tsx
+++ b/web/src/pages/NetworkDevicesPage/NetworkDevicesPage.tsx
@@ -1,5 +1,6 @@
import { useSuspenseQuery } from '@tanstack/react-query';
import { Page } from '../../shared/components/Page/Page';
+import { TablePageLayout } from '../../shared/layout/TablePageLayout/TablePageLayout';
import { getNetworkDevicesQueryOptions } from '../../shared/query';
import { AddNetworkDeviceModal } from './modals/AddNetworkDeviceModal/AddNetworkDeviceModal';
import { EditNetworkDeviceModal } from './modals/EditNetworkDeviceModal/EditNetworkDeviceModal';
@@ -13,7 +14,9 @@ export const NetworkDevicesPage = () => {
return (
<>
-
+
+
+
diff --git a/web/src/pages/RulesPage/RulesPage.tsx b/web/src/pages/RulesPage/RulesPage.tsx
index d20ec1e7dd..11f0f0c678 100644
--- a/web/src/pages/RulesPage/RulesPage.tsx
+++ b/web/src/pages/RulesPage/RulesPage.tsx
@@ -7,6 +7,7 @@ import { Tabs } from '../../shared/defguard-ui/components/Tabs/Tabs';
import type { TabsItem } from '../../shared/defguard-ui/components/Tabs/types';
import { ThemeSpacing } from '../../shared/defguard-ui/types';
import { isPresent } from '../../shared/defguard-ui/utils/isPresent';
+import { TablePageLayout } from '../../shared/layout/TablePageLayout/TablePageLayout';
import { getRulesQueryOptions } from '../../shared/query';
import { RulesDeployedTab } from './tabs/RulesDeployedTab';
import { RulesPendingTab } from './tabs/RulesPendingTab';
@@ -53,12 +54,14 @@ export const RulesPage = () => {
- {activeTab === RulesPageTab.Deployed && isPresent(deployed) && (
-
- )}
- {activeTab === RulesPageTab.Pending && isPresent(pending) && (
-
- )}
+
+ {activeTab === RulesPageTab.Deployed && isPresent(deployed) && (
+
+ )}
+ {activeTab === RulesPageTab.Pending && isPresent(pending) && (
+
+ )}
+
);
};
diff --git a/web/src/pages/UsersOverviewPage/UsersOverviewPage.tsx b/web/src/pages/UsersOverviewPage/UsersOverviewPage.tsx
index 57c234a99c..f7f3fed6d9 100644
--- a/web/src/pages/UsersOverviewPage/UsersOverviewPage.tsx
+++ b/web/src/pages/UsersOverviewPage/UsersOverviewPage.tsx
@@ -1,11 +1,11 @@
import { useQuery } from '@tanstack/react-query';
-import { LayoutGrid } from '../../shared/components/LayoutGrid/LayoutGrid';
import { Page } from '../../shared/components/Page/Page';
import './style.scss';
import { m } from '../../paraglide/messages';
import { AddAuthKeyModal } from '../../shared/components/modals/AddAuthKeyModal/AddAuthKeyModal';
import { ChangePasswordModal } from '../../shared/components/modals/ChangePasswordModal/ChangePasswordModal';
import { isPresent } from '../../shared/defguard-ui/utils/isPresent';
+import { TablePageLayout } from '../../shared/layout/TablePageLayout/TablePageLayout';
import { getUsersQueryOptions } from '../../shared/query';
import { AddUserModal } from './modals/AddUserModal/AddUserModal';
import { AssignUsersToGroupsModal } from './modals/AssignUsersToGroupsModal/AssignUsersToGroupsModal';
@@ -17,7 +17,9 @@ export const UsersOverviewPage = () => {
return (
<>
- {isPresent(users) && }
+
+ {isPresent(users) && }
+
diff --git a/web/src/pages/UsersOverviewPage/UsersTable.tsx b/web/src/pages/UsersOverviewPage/UsersTable.tsx
index 040a711926..cd85f1bf74 100644
--- a/web/src/pages/UsersOverviewPage/UsersTable.tsx
+++ b/web/src/pages/UsersOverviewPage/UsersTable.tsx
@@ -23,7 +23,9 @@ import { TableValuesListCell } from '../../shared/components/TableValuesListCell
import { Avatar } from '../../shared/defguard-ui/components/Avatar/Avatar';
import { Badge } from '../../shared/defguard-ui/components/Badge/Badge';
import { Button } from '../../shared/defguard-ui/components/Button/Button';
+import type { ButtonProps } from '../../shared/defguard-ui/components/Button/types';
import { EmptyState } from '../../shared/defguard-ui/components/EmptyState/EmptyState';
+import { EmptyStateFlexible } from '../../shared/defguard-ui/components/EmptyStateFlexible/EmptyStateFlexible';
import { Icon } from '../../shared/defguard-ui/components/Icon';
import { IconButtonMenu } from '../../shared/defguard-ui/components/IconButtonMenu/IconButtonMenu';
import { Search } from '../../shared/defguard-ui/components/Search/Search';
@@ -52,6 +54,22 @@ export const UsersTable = ({ users }: Props) => {
const reservedEmails = useMemo(() => users.map((u) => u.email.toLowerCase()), [users]);
const reservedUsernames = useMemo(() => users.map((u) => u.username), [users]);
+ const addButtonProps = useMemo(
+ (): ButtonProps => ({
+ variant: 'primary',
+ text: 'Add new user',
+ iconLeft: 'add-user',
+ testId: 'add-user',
+ onClick: () => {
+ useAddUserModal.getState().open({
+ reservedEmails,
+ reservedUsernames,
+ });
+ },
+ }),
+ [reservedEmails, reservedUsernames],
+ );
+
const [search, setSearch] = useState('');
const [columnFilters, setColumnFilters] = useState([]);
@@ -429,6 +447,15 @@ export const UsersTable = ({ users }: Props) => {
getRowCanExpand: (row) => row.original.devices.length > 0,
});
+ if (users.length === 0)
+ return (
+
+ );
+
return (
<>
@@ -455,17 +482,7 @@ export const UsersTable = ({ users }: Props) => {
initialValue={search}
onChange={setSearch}
/>
-
{transformedData.length === 0 && search.length > 0 && (
{
subtitle={m.search_empty_common_subtitle()}
/>
)}
- {transformedData.length === 0 && search.length === 0 && (
- {
- useAddUserModal.getState().open({
- reservedEmails,
- reservedUsernames,
- });
- },
- }}
- />
- )}
{transformedData.length > 0 && (
{
<>
-
+
+
+
>
diff --git a/web/src/pages/settings/SettingsSmtpPage/SendTestEmailModal.tsx b/web/src/pages/settings/SettingsSmtpPage/SendTestEmailModal.tsx
index 3ce6dd74bb..db3332b4d4 100644
--- a/web/src/pages/settings/SettingsSmtpPage/SendTestEmailModal.tsx
+++ b/web/src/pages/settings/SettingsSmtpPage/SendTestEmailModal.tsx
@@ -82,6 +82,7 @@ const ModalContent = () => {
{`Check if your SMTP configuration works by sending a test email.`}
+