From 12721675ddd1fa9c30282621ac2b0dd75667f2e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Ciarcin=CC=81ski?= Date: Fri, 22 May 2026 18:05:20 +0200 Subject: [PATCH 01/15] Fixes for new window on macOS --- package.json | 20 +- pnpm-lock.yaml | 406 +++++++++++++------------- src-tauri/Cargo.lock | 100 ++----- src-tauri/Cargo.toml | 3 +- src-tauri/src/window_manager/macos.rs | 121 ++++---- src-tauri/src/window_manager/mod.rs | 62 ++-- 6 files changed, 324 insertions(+), 388 deletions(-) diff --git a/package.json b/package.json index af898b44..d2c3cc26 100644 --- a/package.json +++ b/package.json @@ -56,8 +56,8 @@ "@react-hook/resize-observer": "^2.0.2", "@stablelib/base64": "^2.0.1", "@stablelib/x25519": "^2.0.1", - "@tanstack/query-core": "^5.100.10", - "@tanstack/react-virtual": "^3.13.24", + "@tanstack/query-core": "^5.100.11", + "@tanstack/react-virtual": "^3.13.25", "@tauri-apps/api": "^2.11.0", "@tauri-apps/plugin-clipboard-manager": "^2.3.2", "@tauri-apps/plugin-deep-link": "^2.4.9", @@ -83,12 +83,12 @@ "file-saver": "^2.0.5", "get-text-width": "^1.0.3", "html-react-parser": "^6.1.1", - "itertools": "^2.6.0", + "itertools": "^2.7.0", "js-base64": "^3.7.8", "lodash-es": "^4.18.1", "merge-refs": "^2.0.0", "millify": "^6.1.0", - "motion": "^12.38.0", + "motion": "^12.40.0", "p-timeout": "^7.0.1", "prop-types": "^15.8.1", "radash": "^12.1.1", @@ -115,25 +115,25 @@ "@biomejs/biome": "^2.4.15", "@hookform/devtools": "^4.4.0", "@svgr/cli": "^8.1.0", - "@tanstack/react-query": "^5.100.10", - "@tanstack/react-query-devtools": "^5.100.10", + "@tanstack/react-query": "^5.100.11", + "@tanstack/react-query-devtools": "^5.100.11", "@tauri-apps/cli": "^2.11.2", "@types/file-saver": "^2.0.7", "@types/lodash-es": "^4.17.12", - "@types/node": "^25.8.0", - "@types/react": "^19.2.14", + "@types/node": "^25.9.1", + "@types/react": "^19.2.15", "@types/react-dom": "^19.2.3", "@vitejs/plugin-react": "^6.0.2", "@vitejs/plugin-react-swc": "^4.3.1", "autoprefixer": "^10.5.0", "npm-run-all": "^4.1.5", - "postcss": "^8.5.14", + "postcss": "^8.5.15", "prettier": "^3.8.3", "sass": "~1.99.0", "typedoc": "^0.28.19", "typesafe-i18n": "^5.27.1", "typescript": "^5.9.3", - "vite": "^8.0.13" + "vite": "^8.0.14" }, "volta": { "node": "20.5.1" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bf1eda96..49a8ff7c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -24,11 +24,11 @@ importers: specifier: ^2.0.1 version: 2.0.1 '@tanstack/query-core': - specifier: ^5.100.10 - version: 5.100.10 + specifier: ^5.100.11 + version: 5.100.11 '@tanstack/react-virtual': - specifier: ^3.13.24 - version: 3.13.24(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + specifier: ^3.13.25 + version: 3.13.25(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@tauri-apps/api': specifier: ^2.11.0 version: 2.11.0 @@ -103,10 +103,10 @@ importers: version: 1.0.3 html-react-parser: specifier: ^6.1.1 - version: 6.1.1(@types/react@19.2.14)(react@19.2.6) + version: 6.1.1(@types/react@19.2.15)(react@19.2.6) itertools: - specifier: ^2.6.0 - version: 2.6.0 + specifier: ^2.7.0 + version: 2.7.0 js-base64: specifier: ^3.7.8 version: 3.7.8 @@ -115,13 +115,13 @@ importers: version: 4.18.1 merge-refs: specifier: ^2.0.0 - version: 2.0.0(@types/react@19.2.14) + version: 2.0.0(@types/react@19.2.15) millify: specifier: ^6.1.0 version: 6.1.0 motion: - specifier: ^12.38.0 - version: 12.38.0(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + specifier: ^12.40.0 + version: 12.40.0(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) p-timeout: specifier: ^7.0.1 version: 7.0.1 @@ -154,7 +154,7 @@ importers: version: 3.5.0(react@19.2.6) react-markdown: specifier: ^10.1.0 - version: 10.1.0(@types/react@19.2.14)(react@19.2.6) + version: 10.1.0(@types/react@19.2.15)(react@19.2.6) react-qr-code: specifier: ^2.0.21 version: 2.0.21(react@19.2.6) @@ -169,7 +169,7 @@ importers: version: 1.0.26(react-dom@19.2.6(react@19.2.6))(react@19.2.6) recharts: specifier: ^3.8.1 - version: 3.8.1(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react-is@16.13.1)(react@19.2.6)(redux@5.0.1) + version: 3.8.1(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react-is@16.13.1)(react@19.2.6)(redux@5.0.1) rehype-sanitize: specifier: ^6.0.0 version: 6.0.0 @@ -184,23 +184,23 @@ importers: version: 3.25.76 zustand: specifier: ^5.0.13 - version: 5.0.13(@types/react@19.2.14)(immer@11.1.8)(react@19.2.6)(use-sync-external-store@1.6.0(react@19.2.6)) + version: 5.0.13(@types/react@19.2.15)(immer@11.1.8)(react@19.2.6)(use-sync-external-store@1.6.0(react@19.2.6)) devDependencies: '@biomejs/biome': specifier: ^2.4.15 version: 2.4.15 '@hookform/devtools': specifier: ^4.4.0 - version: 4.4.0(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + version: 4.4.0(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@svgr/cli': specifier: ^8.1.0 version: 8.1.0(typescript@5.9.3) '@tanstack/react-query': - specifier: ^5.100.10 - version: 5.100.10(react@19.2.6) + specifier: ^5.100.11 + version: 5.100.11(react@19.2.6) '@tanstack/react-query-devtools': - specifier: ^5.100.10 - version: 5.100.10(@tanstack/react-query@5.100.10(react@19.2.6))(react@19.2.6) + specifier: ^5.100.11 + version: 5.100.11(@tanstack/react-query@5.100.11(react@19.2.6))(react@19.2.6) '@tauri-apps/cli': specifier: ^2.11.2 version: 2.11.2 @@ -211,29 +211,29 @@ importers: specifier: ^4.17.12 version: 4.17.12 '@types/node': - specifier: ^25.8.0 - version: 25.8.0 + specifier: ^25.9.1 + version: 25.9.1 '@types/react': - specifier: ^19.2.14 - version: 19.2.14 + specifier: ^19.2.15 + version: 19.2.15 '@types/react-dom': specifier: ^19.2.3 - version: 19.2.3(@types/react@19.2.14) + version: 19.2.3(@types/react@19.2.15) '@vitejs/plugin-react': specifier: ^6.0.2 - version: 6.0.2(vite@8.0.13(@types/node@25.8.0)(sass@1.99.0)(yaml@2.9.0)) + version: 6.0.2(vite@8.0.14(@types/node@25.9.1)(sass@1.99.0)(yaml@2.9.0)) '@vitejs/plugin-react-swc': specifier: ^4.3.1 - version: 4.3.1(vite@8.0.13(@types/node@25.8.0)(sass@1.99.0)(yaml@2.9.0)) + version: 4.3.1(vite@8.0.14(@types/node@25.9.1)(sass@1.99.0)(yaml@2.9.0)) autoprefixer: specifier: ^10.5.0 - version: 10.5.0(postcss@8.5.14) + version: 10.5.0(postcss@8.5.15) npm-run-all: specifier: ^4.1.5 version: 4.1.5 postcss: - specifier: ^8.5.14 - version: 8.5.14 + specifier: ^8.5.15 + version: 8.5.15 prettier: specifier: ^3.8.3 version: 3.8.3 @@ -250,8 +250,8 @@ importers: specifier: ^5.9.3 version: 5.9.3 vite: - specifier: ^8.0.13 - version: 8.0.13(@types/node@25.8.0)(sass@1.99.0)(yaml@2.9.0) + specifier: ^8.0.14 + version: 8.0.14(@types/node@25.9.1)(sass@1.99.0)(yaml@2.9.0) packages: @@ -503,8 +503,8 @@ packages: '@emnapi/core': ^1.7.1 '@emnapi/runtime': ^1.7.1 - '@oxc-project/types@0.130.0': - resolution: {integrity: sha512-ibD2usx9JRu7f5pu2tMKMI4cpA4NgXJQoYRP4pQ7Pxmn1l6k/53qWtQWZayhYy3X4QZkt90Ot+mJEaeXouio6Q==} + '@oxc-project/types@0.132.0': + resolution: {integrity: sha512-FESMOxil5Se014ui/Eq8fT5uHJo6nIRwH0PfJrZJXs6Gek3ZVFOrpUv3YIZT20m+extU98Hg1Ym72U58rlsxUQ==} '@parcel/watcher-android-arm64@2.5.6': resolution: {integrity: sha512-YQxSS34tPF/6ZG7r/Ih9xy+kP/WwediEUsqmtf0cuCV5TPPKw/PQHRhueUo6JdeFJaqV3pyjm0GdYjZotbRt/A==} @@ -624,97 +624,97 @@ packages: resolution: {integrity: sha512-Ic6m2U/rMjTkhERIa/0ZtXJP17QUi2CbWE7cqx4J58M8aA3QTfW+2UlQ4psvTX9IO1RfNVhK3pcpdjej7L+t2w==} engines: {node: '>=14.0.0'} - '@rolldown/binding-android-arm64@1.0.1': - resolution: {integrity: sha512-fJI3I0r3C3Oj/zdBCpaCmBRZYf07xpaq4yCfDDoSFm+beWNzbIl26puW8RraUdugoJw/95zerNOn6jasAhzSmg==} + '@rolldown/binding-android-arm64@1.0.2': + resolution: {integrity: sha512-ZS4D1JPGn/MYQN/SYDWftIE/nVsM8j/AFOYEzAoOE2O3NktQOZru+/vYXGbR/qtdLdIfGCP0lcoJiYVzsEz+iQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@rolldown/binding-darwin-arm64@1.0.1': - resolution: {integrity: sha512-cKnAhWEsV7TPcA/5EAteDp6KcJZBQ2G+BqE7zayMMi7kMvwRsbv7WT9aOnn0WNl4SKEIf43vjS31iUPu80nzXg==} + '@rolldown/binding-darwin-arm64@1.0.2': + resolution: {integrity: sha512-vdFA9+C/rekyGce7WqHs/xoT0ioZEWaOFyZLIV1mEeNFaFDUQrPIo8Vs2GvJ6eetb3rzDUtUBgzto3ExpXJB3w==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@rolldown/binding-darwin-x64@1.0.1': - resolution: {integrity: sha512-YKrVwQjIRBPo+5G/u03wGjbdy4q7pyzCe93DK9VJ7zkVmeg8LJ7GbgsiHWdR4xSoe4CAXRD7Bcjgbtr64bkXNg==} + '@rolldown/binding-darwin-x64@1.0.2': + resolution: {integrity: sha512-BewSOwTHazv77DTYiAZXSqqKZ4KP/KonFisDMVU7PImxoWfB2aepnPhd2E4SWz3zDzYgDNbs6jBmTdgNnF02GA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@rolldown/binding-freebsd-x64@1.0.1': - resolution: {integrity: sha512-z/oBsREo46SsFqBwYtFe0kpJeBijAT48O/WXLI4suiCLBkr03RTtTJMCzSdDd2znlh8VJizL09XVkQgk8IZonw==} + '@rolldown/binding-freebsd-x64@1.0.2': + resolution: {integrity: sha512-m41o7M0YWtUdqk61Tb+jnKb2rN++iRdIASlExkUoKfIAH30DOHCB8fVLzSUpbWHHU8esmEioY62PxzexE8MBuA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@rolldown/binding-linux-arm-gnueabihf@1.0.1': - resolution: {integrity: sha512-ik8q7GM11zxvYxFc2PeDcT6TBvhCQMaUxfph/M5l9sKuTs/Sjg3L+Byw0F7w0ZVLBZmx30P+gG0ECzzN+MFcmQ==} + '@rolldown/binding-linux-arm-gnueabihf@1.0.2': + resolution: {integrity: sha512-jcojB9H7W/jS29pMKWAK1N+fU99vXodHDTatS3b3y/XSOCiHo0kkA74pL3jJmkoQtYpOCxDvaKs1fo2Ij/1X5w==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@rolldown/binding-linux-arm64-gnu@1.0.1': - resolution: {integrity: sha512-QoSx2EkyrrdZ6kcyE8stqZ62t0Yra8Fs5ia9lOxJrh6TMQJK7gQKmscdTHf7pOXKREKrVwOtJcQG3qVSfc866A==} + '@rolldown/binding-linux-arm64-gnu@1.0.2': + resolution: {integrity: sha512-1jn6qDU5iiOgFgygDzKUuKP0maTi0/f1+sBLgvij/76C77Nm3ts6ufz9Bjg5q5dduxiUIxtq86JIoBvo1xQ4Ig==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-arm64-musl@1.0.1': - resolution: {integrity: sha512-uwNwFpwKeNiZawfAWBgg0VIztPTV3ihhh1vV334h9ivnNLorxnQMU6Fz8wG1Zb4Qh9LC1/MkcyT3YlDXG3Rsgg==} + '@rolldown/binding-linux-arm64-musl@1.0.2': + resolution: {integrity: sha512-QVLO/czFMdoMFSqlX3bcswcJNm/23r+qoa/jgtmFc/qEp6/jXmIkDjF/XIo8dPfGaiwy1xfQn8o77L79GeXFgw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [musl] - '@rolldown/binding-linux-ppc64-gnu@1.0.1': - resolution: {integrity: sha512-zY1bul7OWr7DFBiJ++wofXvnr8B45ce3QsQUhKrIhXsygAh7bTkwyeM1bi1a2g5C/yC/N8TZyGDEoMfm/l9mpg==} + '@rolldown/binding-linux-ppc64-gnu@1.0.2': + resolution: {integrity: sha512-hgO5Abm0w5UL6FEa2iFnZqo2KlK7TQ5QhV5x09hujBf7t5KzHQ1VmfPuTpqRy/rNlSxua3eWH374xxiVrP+lcA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-s390x-gnu@1.0.1': - resolution: {integrity: sha512-0frlsT/f4Ft6I7SMESTKnF3cZsdicQn1dCMkF/jT9wDLE+gGoiQfv1nmT9e+s7s/fekvvy6tZM2jHvI2tkbJDQ==} + '@rolldown/binding-linux-s390x-gnu@1.0.2': + resolution: {integrity: sha512-fy8rXxuYEu602abC8MUNaPjYLIFzReOaEIEMKMUa0rFEUxNpVXhs15KSSQ4qlqSaM7B6rcj9rDZgADh/IGDzLQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] libc: [glibc] - '@rolldown/binding-linux-x64-gnu@1.0.1': - resolution: {integrity: sha512-XABVmGp9Tg0WspTVvwduTc4fpqy6JnAUrSQe6OuyqD/03nI7r0O9OWUkMIwFrjKAIqolvqoA4ZrJppgwE0Gxmw==} + '@rolldown/binding-linux-x64-gnu@1.0.2': + resolution: {integrity: sha512-0+bOkiQ779+r1WpoHOWHqncvyySci0vKph+myNDYb+im6meJAzHQXay6oEgnkHuUGouM1LKTZwqKpBow6Kj7CQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-x64-musl@1.0.1': - resolution: {integrity: sha512-bV4fzswuzVcKD90o/VM6QqKxnxlDq0g2BISDLNVmxrnhpv1DDbyPhCIjYfvzYLV+MvkKKnQt2Q6AO86SEBULUQ==} + '@rolldown/binding-linux-x64-musl@1.0.2': + resolution: {integrity: sha512-mjSkrzZK5Qsl0a9d1JgILOiuZOSDTVdKENcSXBoqbzSrspLR/4/IRVDo5wd2GgZjNss/viBFJdeq+j7qH2nypw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [musl] - '@rolldown/binding-openharmony-arm64@1.0.1': - resolution: {integrity: sha512-/Mh0Zhq3OP7fVs0kcQHZP6lZEthMGTaSf8UBQYSFEZDWGXXlEC+nJ6EqenaK2t4LBXMe3A+K/G2BVXXdtOr4PQ==} + '@rolldown/binding-openharmony-arm64@1.0.2': + resolution: {integrity: sha512-1v5vHasdfQAZoEHakBV72LIFAC9JjnymsiKxp+GEr/ma3+NJCPSaYK+qavInOovJkgwFrs7GccX2d6IgDA3Z5w==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@rolldown/binding-wasm32-wasi@1.0.1': - resolution: {integrity: sha512-+1xc9X45l8ufsBAm6Gjvx2qDRIY9lTVt0cgWNcJ+1gdhXvkbxePA60yRTwSTuXL09CMhyJmjpV7E3NoyxbqFQQ==} + '@rolldown/binding-wasm32-wasi@1.0.2': + resolution: {integrity: sha512-mb1VobWn6NheziTk5/WEaR6AKVbrwT5sOi6C7zk3gy/pD1qtJfU1j4PgTo2NJnOtbL9Dl3Aeei8w9jJ7qC2jZQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [wasm32] - '@rolldown/binding-win32-arm64-msvc@1.0.1': - resolution: {integrity: sha512-1D+UqZdfnuR+Jy1GgMJwi85bD40H21uNmOPRWQhw4oRSuolZ/B5rixZ45DK2KXOTCvmVCecauWgEhbw8bI7tOw==} + '@rolldown/binding-win32-arm64-msvc@1.0.2': + resolution: {integrity: sha512-SqKonF56vA/L2yHwHYcEp2P34URpOZ7d1fS635cTkpDnUtEGdUbhI6NzsPdqeSWvAAeGDrxjWjNmibDIdFf9/A==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@rolldown/binding-win32-x64-msvc@1.0.1': - resolution: {integrity: sha512-INAycaWuhlOK3wk4mRHGsdgwYWmd9cChdPdE9bwWmy6rn9VqVNYNFGhOdXrofXUxwHIncSiPNb8tNm8knDVIeQ==} + '@rolldown/binding-win32-x64-msvc@1.0.2': + resolution: {integrity: sha512-v7qRI7gXLRINcOGXt+7YmAZ6iFuyZVMIoXAxhd8oP+DR9dLfL9GfNIx7PLMxmhZdvq8waUJBQiWN9EKNy+TRBQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] @@ -945,31 +945,31 @@ packages: '@swc/types@0.1.26': resolution: {integrity: sha512-lyMwd7WGgG79RS7EERZV3T8wMdmPq3xwyg+1nmAM64kIhx5yl+juO2PYIHb7vTiPgPCj8LYjsNV2T5wiQHUEaw==} - '@tanstack/query-core@5.100.10': - resolution: {integrity: sha512-8UR0yJR+GiQ40m3lPhUr0xbfAupe6GSQiksSBSa9SM2NjezFyxXCIA69/lz8cSoNKZLrw1/PktIyQBJcVeMi3w==} + '@tanstack/query-core@5.100.11': + resolution: {integrity: sha512-lmE0994apShXPj8CUxgx4ch5yUJhE9k/+tVwihBvPOyerACWdBocfFg24t8+0RhtlTd7tEgchDkhlCxNssvDxw==} - '@tanstack/query-devtools@5.100.10': - resolution: {integrity: sha512-3DmJf25hDPus5IpVvp6ujXv6bKV2zPzI9vpbAmpJigsL/H6DPvPjmf7/Q9yVKEke//8fgeQ45abjgnLuyYxAiw==} + '@tanstack/query-devtools@5.100.11': + resolution: {integrity: sha512-47rVBDuGMW/A4ekt3YQdz+q0JSIwktwGnWCYyQUvSs2/g/Oa+6Fi2/IQk4/Y4vf6u1uwI7hOogHslgMC8f3X/Q==} - '@tanstack/react-query-devtools@5.100.10': - resolution: {integrity: sha512-zes0+o9ef5rAZXJ9f/SeaLs2nufJaeVkZkl/Or9NGrWVF41kL9Od9ED9nCwtQlgiF2VGtrzhEw5AU/igAO+aAg==} + '@tanstack/react-query-devtools@5.100.11': + resolution: {integrity: sha512-75RFlJEG53Ed/Cxe5WLmgIpOElPNpgLZq7h0fLFnM5XwTYxSTk1rX/gC6MqGVXsSdrbP7zn7hPSJx9MinwiUHA==} peerDependencies: - '@tanstack/react-query': ^5.100.10 + '@tanstack/react-query': ^5.100.11 react: ^18 || ^19 - '@tanstack/react-query@5.100.10': - resolution: {integrity: sha512-FLaZf2RCrA/Zgp4aiu5tG3TyasTRO7aZ99skxQpr3Hg/zXOhu6yq5FZCYQ/tRaJtM9ylnoK8tFK7PolXQadv6Q==} + '@tanstack/react-query@5.100.11': + resolution: {integrity: sha512-J0f9s5x3LE1450nNNfYx+e/n0DMa0uOBdFJUy5r0RvmsXd4nB/n0rbHtHI1vYXhikNFan+wf51p6Tmp4c8ucrg==} peerDependencies: react: ^18 || ^19 - '@tanstack/react-virtual@3.13.24': - resolution: {integrity: sha512-aIJvz5OSkhNIhZIpYivrxrPTKYsjW9Uzy+sP/mx0S3sev2HyvPb7xmjbYvokzEpfgYHy/HjzJ2zFAETuUfgCpg==} + '@tanstack/react-virtual@3.13.25': + resolution: {integrity: sha512-bmNoqMu6gcAW9JGrKVB0Q1tN1i5RONZF8r1fW0bbE4Oyf3DwEGnzzQJ2OW+Ozg1P4s8PyugkHg2ULZoFQN+cqw==} peerDependencies: 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/virtual-core@3.14.0': - resolution: {integrity: sha512-JLANqGy/D6k4Ujmh8Tr25lGimuOXNiaVyXaCAZS0W+1390sADdGnyUdSWNIfd49gebtIxGMij4IktRVzrdr12Q==} + '@tanstack/virtual-core@3.15.0': + resolution: {integrity: sha512-0AwPGx0I8QxPYjAxShT/+z+ZOe9u8mW5rsXvivCTjRfRmz9a43+3mRyi4wwlyoUqOC56q/jatKa0Bh9M99BEHQ==} '@tauri-apps/api@2.11.0': resolution: {integrity: sha512-7CinYODhky9lmO23xHnUFv0Xt43fbtWMyxZcLcRBlFkcgXKuEirBvHpmtJ89YMhyeGcq20Wuc47Fa4XjyniywA==} @@ -1143,8 +1143,8 @@ packages: '@types/ms@2.1.0': resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} - '@types/node@25.8.0': - resolution: {integrity: sha512-TCFSk8IZh+iLX1xtksoBVtdmgL+1IX0fC9BeU4QqFSuNdN/K+HUlhqOzEmSYYpZUVsLYcPqc9KX+60iDuninSQ==} + '@types/node@25.9.1': + resolution: {integrity: sha512-xfrlY7UD5rMJk3ZVJP8BNzS28J36YJg+xp+LPXV1TdWxr8uMH5A860QNxYDGQe/ylDSgjxE52Q9VnO7p75tJxg==} '@types/parse-json@4.0.2': resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} @@ -1154,8 +1154,8 @@ packages: peerDependencies: '@types/react': ^19.2.0 - '@types/react@19.2.14': - resolution: {integrity: sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==} + '@types/react@19.2.15': + resolution: {integrity: sha512-eRwcGNHve+E8qtEQSSRl6urh+rFop4v8gm6O8rGv25CodbvFdLjA1vVQ1KkiFE0w0UPOnb8tDiFKL5lp0rtY5Q==} '@types/unist@2.0.11': resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} @@ -1248,8 +1248,8 @@ packages: resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} engines: {node: 18 || 20 || >=22} - baseline-browser-mapping@2.10.30: - resolution: {integrity: sha512-xjOFN16Ha1+Rz4nFYKqHU/LSB+gx/Vi3yQLX7r7sAW+Wa+8hhF2h4pvqTrTMc8+WcDBEunnUurr46Jvv0jk3Vg==} + baseline-browser-mapping@2.10.31: + resolution: {integrity: sha512-MujYO3eP72uvmSE0i4wltsodRfIpZATP3jvzRNRGGxgzId7aVocVJJV3nf01qnzzKFGxQVC9bpWxl5cjxTr/7Q==} engines: {node: '>=6.0.0'} hasBin: true @@ -1300,8 +1300,8 @@ packages: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - caniuse-lite@1.0.30001792: - resolution: {integrity: sha512-hVLMUZFgR4JJ6ACt1uEESvQN1/dBVqPAKY0hgrV70eN3391K6juAfTjKZLKvOMsx8PxA7gsY1/tLMMTcfFLLpw==} + caniuse-lite@1.0.30001793: + resolution: {integrity: sha512-iwSsYWaCOoh26cV8NwNRViHlrfUvYsHDfRVcbtmw0Kg6PJIZZXwMkj1442FYLBGkeUf1juAsU3DTfxW579mrPA==} ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} @@ -1560,8 +1560,8 @@ packages: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} - electron-to-chromium@1.5.357: - resolution: {integrity: sha512-NHlTIQDK8fmVwHwuIzmXYEJ1Ewq3D9wDNc0cWXxDGysP6Pb21giwGNkxiTifyKy/4SoPuN5l6GLP1W9Sv7zB2g==} + electron-to-chromium@1.5.360: + resolution: {integrity: sha512-GkcBt6YYAw9SxFWn+xVar4cLVGlXVuswwtRLBozi2zp0GjXs4ZnOrqV4zbXzg35n7w81hCkyJNYicgXlVHAmBA==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -1650,8 +1650,8 @@ packages: fraction.js@5.3.4: resolution: {integrity: sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==} - framer-motion@12.38.0: - resolution: {integrity: sha512-rFYkY/pigbcswl1XQSb7q424kSTQ8q6eAC+YUsSKooHQYuLdzdHjrt6uxUC+PRAO++q5IS7+TamgIw1AphxR+g==} + framer-motion@12.40.0: + resolution: {integrity: sha512-uaBd3qC1v3KQqBEjwTUd183K6PbS+j0yR9w9VmEOLWA/tnUcSn8Xa3uck7t4dgpDoUss8xQTcj8W2L07lrnLFg==} peerDependencies: '@emotion/is-prop-valid': '*' react: ^18.0.0 || ^19.0.0 @@ -1946,8 +1946,9 @@ packages: isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - itertools@2.6.0: - resolution: {integrity: sha512-nCqtnZTEGq8Bcs+W3kqdYL77tV6sGuQCA1WvKeA8L5Bx+BUMWcyHfJTCY38yNf51EE0/uB9UQHB84AM1j+djIw==} + itertools@2.7.0: + resolution: {integrity: sha512-lAzdYJo4Yy35HitzvAkaRej8GeWuow2B1mQ8T1KCvFjEIvSan87odXF8L2iAEw5f+jG7PLnwpF9hLqfJirKePw==} + engines: {node: '>=22'} js-base64@3.7.8: resolution: {integrity: sha512-hNngCeKxIUQiEUN3GPJOkz4wF/YvdUdbNL9hsBcMQTkKzboD7T/q3OYOuuPZLUE6dBxSGpwhk5mwuDud7JVAow==} @@ -2217,14 +2218,14 @@ packages: resolution: {integrity: sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==} engines: {node: '>=10'} - motion-dom@12.38.0: - resolution: {integrity: sha512-pdkHLD8QYRp8VfiNLb8xIBJis1byQ9gPT3Jnh2jqfFtAsWUA3dEepDlsWe/xMpO8McV+VdpKVcp+E+TGJEtOoA==} + motion-dom@12.40.0: + resolution: {integrity: sha512-HxU3ZaBwNPVQUBQf1xxgq+7JrPNZvjLVxgbpEZL7RrWJnsxOf0/OM+yrHG9ogLQ31Do/r57Oz2gQWPK+6q62mg==} - motion-utils@12.36.0: - resolution: {integrity: sha512-eHWisygbiwVvf6PZ1vhaHCLamvkSbPIeAYxWUuL3a2PD/TROgE7FvfHWTIH4vMl798QLfMw15nRqIaRDXTlYRg==} + motion-utils@12.39.0: + resolution: {integrity: sha512-8nadJAJjTtqRkmRF36FoJTrywK9nnFmnPwnSMyxaOCU7GDjN9RTMJIxx9De8ErM+vpPhMccr/6fo5WciyQLnMQ==} - motion@12.38.0: - resolution: {integrity: sha512-uYfXzeHlgThchzwz5Te47dlv5JOUC7OB4rjJ/7XTUgtBZD8CchMN8qEJ4ZVsUmTyYA44zjV0fBwsiktRuFnn+w==} + motion@12.40.0: + resolution: {integrity: sha512-yjrHUrBFW6kQvjJwRsoiPSAhC5tRwRqNGJWmiJ4CrGnbKp0V88AdzkhBmDoqIsIPfarOe0Uddd37Xq43/gIocA==} peerDependencies: '@emotion/is-prop-valid': '*' react: ^18.0.0 || ^19.0.0 @@ -2254,8 +2255,9 @@ packages: node-addon-api@7.1.1: resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} - node-releases@2.0.44: - resolution: {integrity: sha512-5WUyunoPMsvvEhS8AxHtRzP+oA8UCkJ7YRxatWKjngndhDGLiqEVAQKWjFAiAiuL8zMRGzGSJxFnLetoa43qGQ==} + node-releases@2.0.45: + resolution: {integrity: sha512-iIbHXV9eBB2nB0wa7oTsrrXq+qQt+9SIlx9AX3T96YgobtEQfis5n6TJ6vV+3QP8DwdriEAcGhARaFCu37peBg==} + engines: {node: '>=18'} normalize-package-data@2.5.0: resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} @@ -2348,8 +2350,8 @@ packages: postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - postcss@8.5.14: - resolution: {integrity: sha512-SoSL4+OSEtR99LHFZQiJLkT59C5B1amGO1NzTwj7TT1qCUgUO6hxOvzkOYxD+vMrXBM3XJIKzokoERdqQq/Zmg==} + postcss@8.5.15: + resolution: {integrity: sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==} engines: {node: ^10 || ^12 || >=14} prettier@2.8.8: @@ -2531,8 +2533,8 @@ packages: engines: {node: '>= 0.4'} hasBin: true - rolldown@1.0.1: - resolution: {integrity: sha512-X0KQHljNnEkWNqqiz9zJrGunh1B0HgOxLXvnFpCOcadzcy5qohZ3tqMEUg00vncoRovXuK3ZqCT9KnnKzoInFQ==} + rolldown@1.0.2: + resolution: {integrity: sha512-oZx5zVDtVB44AW3eaifgDml1gWRDZGvjcfdxonE4swNPG98PrrXjaO/KrnUjzlMnztCCRVlUueA1kCXhARGk6g==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true @@ -2823,8 +2825,8 @@ packages: victory-vendor@37.3.6: resolution: {integrity: sha512-SbPDPdDBYp+5MJHhBCAyI7wKM3d5ivekigc2Dk2s7pgbZ9wIgIBYGVw4zGHBml/qTFbexrofXW6Gu4noGxrOwQ==} - vite@8.0.13: - resolution: {integrity: sha512-MFtjBYgzmSxmgA4RAfjIyXWpGe1oALnjgUTzzV7QLx/TKxCzjtMH6Fd9/eVK+5Fg1qNoz5VAwsmMs/NofrmJvw==} + vite@8.0.14: + resolution: {integrity: sha512-s4BJJ+5y1pYL6Otw51FHhVJQhPnuRinKig64g/1+EUNaJsd3gCKdD31IPFvswUgW9/60QT9oFHbZHbQK5imcxw==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: @@ -3128,7 +3130,7 @@ snapshots: '@emotion/memoize@0.9.0': {} - '@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.6)': + '@emotion/react@11.14.0(@types/react@19.2.15)(react@19.2.6)': dependencies: '@babel/runtime': 7.29.2 '@emotion/babel-plugin': 11.13.5 @@ -3140,7 +3142,7 @@ snapshots: hoist-non-react-statics: 3.3.2 react: 19.2.6 optionalDependencies: - '@types/react': 19.2.14 + '@types/react': 19.2.15 transitivePeerDependencies: - supports-color @@ -3154,18 +3156,18 @@ snapshots: '@emotion/sheet@1.4.0': {} - '@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.6))(@types/react@19.2.14)(react@19.2.6)': + '@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.15)(react@19.2.6))(@types/react@19.2.15)(react@19.2.6)': dependencies: '@babel/runtime': 7.29.2 '@emotion/babel-plugin': 11.13.5 '@emotion/is-prop-valid': 1.4.0 - '@emotion/react': 11.14.0(@types/react@19.2.14)(react@19.2.6) + '@emotion/react': 11.14.0(@types/react@19.2.15)(react@19.2.6) '@emotion/serialize': 1.3.3 '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@19.2.6) '@emotion/utils': 1.4.2 react: 19.2.6 optionalDependencies: - '@types/react': 19.2.14 + '@types/react': 19.2.15 transitivePeerDependencies: - supports-color @@ -3212,10 +3214,10 @@ snapshots: '@shikijs/types': 3.23.0 '@shikijs/vscode-textmate': 10.0.2 - '@hookform/devtools@4.4.0(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + '@hookform/devtools@4.4.0(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: - '@emotion/react': 11.14.0(@types/react@19.2.14)(react@19.2.6) - '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.6))(@types/react@19.2.14)(react@19.2.6) + '@emotion/react': 11.14.0(@types/react@19.2.15)(react@19.2.6) + '@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.2.15)(react@19.2.6))(@types/react@19.2.15)(react@19.2.6) '@types/lodash': 4.17.24 little-state-machine: 4.8.1(react@19.2.6) lodash: 4.18.1 @@ -3258,7 +3260,7 @@ snapshots: '@tybys/wasm-util': 0.10.2 optional: true - '@oxc-project/types@0.130.0': {} + '@oxc-project/types@0.132.0': {} '@parcel/watcher-android-arm64@2.5.6': optional: true @@ -3335,7 +3337,7 @@ snapshots: '@react-hook/passive-layout-effect': 1.2.1(react@19.2.6) react: 19.2.6 - '@reduxjs/toolkit@2.12.0(react-redux@9.3.0(@types/react@19.2.14)(react@19.2.6)(redux@5.0.1))(react@19.2.6)': + '@reduxjs/toolkit@2.12.0(react-redux@9.3.0(@types/react@19.2.15)(react@19.2.6)(redux@5.0.1))(react@19.2.6)': dependencies: '@standard-schema/spec': 1.1.0 '@standard-schema/utils': 0.3.0 @@ -3345,57 +3347,57 @@ snapshots: reselect: 5.1.1 optionalDependencies: react: 19.2.6 - react-redux: 9.3.0(@types/react@19.2.14)(react@19.2.6)(redux@5.0.1) + react-redux: 9.3.0(@types/react@19.2.15)(react@19.2.6)(redux@5.0.1) '@remix-run/router@1.23.2': {} - '@rolldown/binding-android-arm64@1.0.1': + '@rolldown/binding-android-arm64@1.0.2': optional: true - '@rolldown/binding-darwin-arm64@1.0.1': + '@rolldown/binding-darwin-arm64@1.0.2': optional: true - '@rolldown/binding-darwin-x64@1.0.1': + '@rolldown/binding-darwin-x64@1.0.2': optional: true - '@rolldown/binding-freebsd-x64@1.0.1': + '@rolldown/binding-freebsd-x64@1.0.2': optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.0.1': + '@rolldown/binding-linux-arm-gnueabihf@1.0.2': optional: true - '@rolldown/binding-linux-arm64-gnu@1.0.1': + '@rolldown/binding-linux-arm64-gnu@1.0.2': optional: true - '@rolldown/binding-linux-arm64-musl@1.0.1': + '@rolldown/binding-linux-arm64-musl@1.0.2': optional: true - '@rolldown/binding-linux-ppc64-gnu@1.0.1': + '@rolldown/binding-linux-ppc64-gnu@1.0.2': optional: true - '@rolldown/binding-linux-s390x-gnu@1.0.1': + '@rolldown/binding-linux-s390x-gnu@1.0.2': optional: true - '@rolldown/binding-linux-x64-gnu@1.0.1': + '@rolldown/binding-linux-x64-gnu@1.0.2': optional: true - '@rolldown/binding-linux-x64-musl@1.0.1': + '@rolldown/binding-linux-x64-musl@1.0.2': optional: true - '@rolldown/binding-openharmony-arm64@1.0.1': + '@rolldown/binding-openharmony-arm64@1.0.2': optional: true - '@rolldown/binding-wasm32-wasi@1.0.1': + '@rolldown/binding-wasm32-wasi@1.0.2': dependencies: '@emnapi/core': 1.10.0 '@emnapi/runtime': 1.10.0 '@napi-rs/wasm-runtime': 1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) optional: true - '@rolldown/binding-win32-arm64-msvc@1.0.1': + '@rolldown/binding-win32-arm64-msvc@1.0.2': optional: true - '@rolldown/binding-win32-x64-msvc@1.0.1': + '@rolldown/binding-win32-x64-msvc@1.0.2': optional: true '@rolldown/pluginutils@1.0.1': {} @@ -3612,28 +3614,28 @@ snapshots: dependencies: '@swc/counter': 0.1.3 - '@tanstack/query-core@5.100.10': {} + '@tanstack/query-core@5.100.11': {} - '@tanstack/query-devtools@5.100.10': {} + '@tanstack/query-devtools@5.100.11': {} - '@tanstack/react-query-devtools@5.100.10(@tanstack/react-query@5.100.10(react@19.2.6))(react@19.2.6)': + '@tanstack/react-query-devtools@5.100.11(@tanstack/react-query@5.100.11(react@19.2.6))(react@19.2.6)': dependencies: - '@tanstack/query-devtools': 5.100.10 - '@tanstack/react-query': 5.100.10(react@19.2.6) + '@tanstack/query-devtools': 5.100.11 + '@tanstack/react-query': 5.100.11(react@19.2.6) react: 19.2.6 - '@tanstack/react-query@5.100.10(react@19.2.6)': + '@tanstack/react-query@5.100.11(react@19.2.6)': dependencies: - '@tanstack/query-core': 5.100.10 + '@tanstack/query-core': 5.100.11 react: 19.2.6 - '@tanstack/react-virtual@3.13.24(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + '@tanstack/react-virtual@3.13.25(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: - '@tanstack/virtual-core': 3.14.0 + '@tanstack/virtual-core': 3.15.0 react: 19.2.6 react-dom: 19.2.6(react@19.2.6) - '@tanstack/virtual-core@3.14.0': {} + '@tanstack/virtual-core@3.15.0': {} '@tauri-apps/api@2.11.0': {} @@ -3787,17 +3789,17 @@ snapshots: '@types/ms@2.1.0': {} - '@types/node@25.8.0': + '@types/node@25.9.1': dependencies: undici-types: 7.24.6 '@types/parse-json@4.0.2': {} - '@types/react-dom@19.2.3(@types/react@19.2.14)': + '@types/react-dom@19.2.3(@types/react@19.2.15)': dependencies: - '@types/react': 19.2.14 + '@types/react': 19.2.15 - '@types/react@19.2.14': + '@types/react@19.2.15': dependencies: csstype: 3.2.3 @@ -3816,18 +3818,18 @@ snapshots: '@use-gesture/core': 10.3.1 react: 19.2.6 - '@vitejs/plugin-react-swc@4.3.1(vite@8.0.13(@types/node@25.8.0)(sass@1.99.0)(yaml@2.9.0))': + '@vitejs/plugin-react-swc@4.3.1(vite@8.0.14(@types/node@25.9.1)(sass@1.99.0)(yaml@2.9.0))': dependencies: '@rolldown/pluginutils': 1.0.1 '@swc/core': 1.15.33 - vite: 8.0.13(@types/node@25.8.0)(sass@1.99.0)(yaml@2.9.0) + vite: 8.0.14(@types/node@25.9.1)(sass@1.99.0)(yaml@2.9.0) transitivePeerDependencies: - '@swc/helpers' - '@vitejs/plugin-react@6.0.2(vite@8.0.13(@types/node@25.8.0)(sass@1.99.0)(yaml@2.9.0))': + '@vitejs/plugin-react@6.0.2(vite@8.0.14(@types/node@25.9.1)(sass@1.99.0)(yaml@2.9.0))': dependencies: '@rolldown/pluginutils': 1.0.1 - vite: 8.0.13(@types/node@25.8.0)(sass@1.99.0)(yaml@2.9.0) + vite: 8.0.14(@types/node@25.9.1)(sass@1.99.0)(yaml@2.9.0) ansi-regex@5.0.1: {} @@ -3858,13 +3860,13 @@ snapshots: async-function@1.0.0: {} - autoprefixer@10.5.0(postcss@8.5.14): + autoprefixer@10.5.0(postcss@8.5.15): dependencies: browserslist: 4.28.2 - caniuse-lite: 1.0.30001792 + caniuse-lite: 1.0.30001793 fraction.js: 5.3.4 picocolors: 1.1.1 - postcss: 8.5.14 + postcss: 8.5.15 postcss-value-parser: 4.2.0 available-typed-arrays@1.0.7: @@ -3883,7 +3885,7 @@ snapshots: balanced-match@4.0.4: {} - baseline-browser-mapping@2.10.30: {} + baseline-browser-mapping@2.10.31: {} boolbase@1.0.0: {} @@ -3902,10 +3904,10 @@ snapshots: browserslist@4.28.2: dependencies: - baseline-browser-mapping: 2.10.30 - caniuse-lite: 1.0.30001792 - electron-to-chromium: 1.5.357 - node-releases: 2.0.44 + baseline-browser-mapping: 2.10.31 + caniuse-lite: 1.0.30001793 + electron-to-chromium: 1.5.360 + node-releases: 2.0.45 update-browserslist-db: 1.2.3(browserslist@4.28.2) byte-size@9.0.1: {} @@ -3931,7 +3933,7 @@ snapshots: camelcase@6.3.0: {} - caniuse-lite@1.0.30001792: {} + caniuse-lite@1.0.30001793: {} ccount@2.0.1: {} @@ -4188,7 +4190,7 @@ snapshots: es-errors: 1.3.0 gopd: 1.2.0 - electron-to-chromium@1.5.357: {} + electron-to-chromium@1.5.360: {} emoji-regex@8.0.0: {} @@ -4308,10 +4310,10 @@ snapshots: fraction.js@5.3.4: {} - framer-motion@12.38.0(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6): + framer-motion@12.40.0(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6): dependencies: - motion-dom: 12.38.0 - motion-utils: 12.36.0 + motion-dom: 12.40.0 + motion-utils: 12.39.0 tslib: 2.8.1 optionalDependencies: '@emotion/is-prop-valid': 1.4.0 @@ -4450,7 +4452,7 @@ snapshots: domhandler: 6.0.1 htmlparser2: 12.0.0 - html-react-parser@6.1.1(@types/react@19.2.14)(react@19.2.6): + html-react-parser@6.1.1(@types/react@19.2.15)(react@19.2.6): dependencies: domhandler: 6.0.1 html-dom-parser: 7.1.0 @@ -4458,7 +4460,7 @@ snapshots: react-property: 2.0.2 style-to-js: 1.1.21 optionalDependencies: - '@types/react': 19.2.14 + '@types/react': 19.2.15 html-url-attributes@3.0.1: {} @@ -4626,7 +4628,7 @@ snapshots: isexe@2.0.0: {} - itertools@2.6.0: {} + itertools@2.7.0: {} js-base64@3.7.8: {} @@ -4838,9 +4840,9 @@ snapshots: memorystream@0.3.1: {} - merge-refs@2.0.0(@types/react@19.2.14): + merge-refs@2.0.0(@types/react@19.2.15): optionalDependencies: - '@types/react': 19.2.14 + '@types/react': 19.2.15 micromark-core-commonmark@2.0.3: dependencies: @@ -4991,15 +4993,15 @@ snapshots: dependencies: brace-expansion: 2.1.0 - motion-dom@12.38.0: + motion-dom@12.40.0: dependencies: - motion-utils: 12.36.0 + motion-utils: 12.39.0 - motion-utils@12.36.0: {} + motion-utils@12.39.0: {} - motion@12.38.0(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6): + motion@12.40.0(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6): dependencies: - framer-motion: 12.38.0(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + framer-motion: 12.40.0(@emotion/is-prop-valid@1.4.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) tslib: 2.8.1 optionalDependencies: '@emotion/is-prop-valid': 1.4.0 @@ -5020,7 +5022,7 @@ snapshots: node-addon-api@7.1.1: optional: true - node-releases@2.0.44: {} + node-releases@2.0.45: {} normalize-package-data@2.5.0: dependencies: @@ -5120,7 +5122,7 @@ snapshots: postcss-value-parser@4.2.0: {} - postcss@8.5.14: + postcss@8.5.15: dependencies: nanoid: 3.3.12 picocolors: 1.1.1 @@ -5173,11 +5175,11 @@ snapshots: dependencies: react: 19.2.6 - react-markdown@10.1.0(@types/react@19.2.14)(react@19.2.6): + react-markdown@10.1.0(@types/react@19.2.15)(react@19.2.6): dependencies: '@types/hast': 3.0.4 '@types/mdast': 4.0.4 - '@types/react': 19.2.14 + '@types/react': 19.2.15 devlop: 1.1.0 hast-util-to-jsx-runtime: 2.3.6 html-url-attributes: 3.0.1 @@ -5199,13 +5201,13 @@ snapshots: qr.js: 0.0.0 react: 19.2.6 - react-redux@9.3.0(@types/react@19.2.14)(react@19.2.6)(redux@5.0.1): + react-redux@9.3.0(@types/react@19.2.15)(react@19.2.6)(redux@5.0.1): dependencies: '@types/use-sync-external-store': 0.0.6 react: 19.2.6 use-sync-external-store: 1.6.0(react@19.2.6) optionalDependencies: - '@types/react': 19.2.14 + '@types/react': 19.2.15 redux: 5.0.1 react-router-dom@6.30.3(react-dom@19.2.6(react@19.2.6))(react@19.2.6): @@ -5241,9 +5243,9 @@ snapshots: readdirp@4.1.2: {} - recharts@3.8.1(@types/react@19.2.14)(react-dom@19.2.6(react@19.2.6))(react-is@16.13.1)(react@19.2.6)(redux@5.0.1): + recharts@3.8.1(@types/react@19.2.15)(react-dom@19.2.6(react@19.2.6))(react-is@16.13.1)(react@19.2.6)(redux@5.0.1): dependencies: - '@reduxjs/toolkit': 2.12.0(react-redux@9.3.0(@types/react@19.2.14)(react@19.2.6)(redux@5.0.1))(react@19.2.6) + '@reduxjs/toolkit': 2.12.0(react-redux@9.3.0(@types/react@19.2.15)(react@19.2.6)(redux@5.0.1))(react@19.2.6) clsx: 2.1.1 decimal.js-light: 2.5.1 es-toolkit: 1.46.1 @@ -5252,7 +5254,7 @@ snapshots: react: 19.2.6 react-dom: 19.2.6(react@19.2.6) react-is: 16.13.1 - react-redux: 9.3.0(@types/react@19.2.14)(react@19.2.6)(redux@5.0.1) + react-redux: 9.3.0(@types/react@19.2.15)(react@19.2.6)(redux@5.0.1) reselect: 5.1.1 tiny-invariant: 1.3.3 use-sync-external-store: 1.6.0(react@19.2.6) @@ -5322,26 +5324,26 @@ snapshots: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - rolldown@1.0.1: + rolldown@1.0.2: dependencies: - '@oxc-project/types': 0.130.0 + '@oxc-project/types': 0.132.0 '@rolldown/pluginutils': 1.0.1 optionalDependencies: - '@rolldown/binding-android-arm64': 1.0.1 - '@rolldown/binding-darwin-arm64': 1.0.1 - '@rolldown/binding-darwin-x64': 1.0.1 - '@rolldown/binding-freebsd-x64': 1.0.1 - '@rolldown/binding-linux-arm-gnueabihf': 1.0.1 - '@rolldown/binding-linux-arm64-gnu': 1.0.1 - '@rolldown/binding-linux-arm64-musl': 1.0.1 - '@rolldown/binding-linux-ppc64-gnu': 1.0.1 - '@rolldown/binding-linux-s390x-gnu': 1.0.1 - '@rolldown/binding-linux-x64-gnu': 1.0.1 - '@rolldown/binding-linux-x64-musl': 1.0.1 - '@rolldown/binding-openharmony-arm64': 1.0.1 - '@rolldown/binding-wasm32-wasi': 1.0.1 - '@rolldown/binding-win32-arm64-msvc': 1.0.1 - '@rolldown/binding-win32-x64-msvc': 1.0.1 + '@rolldown/binding-android-arm64': 1.0.2 + '@rolldown/binding-darwin-arm64': 1.0.2 + '@rolldown/binding-darwin-x64': 1.0.2 + '@rolldown/binding-freebsd-x64': 1.0.2 + '@rolldown/binding-linux-arm-gnueabihf': 1.0.2 + '@rolldown/binding-linux-arm64-gnu': 1.0.2 + '@rolldown/binding-linux-arm64-musl': 1.0.2 + '@rolldown/binding-linux-ppc64-gnu': 1.0.2 + '@rolldown/binding-linux-s390x-gnu': 1.0.2 + '@rolldown/binding-linux-x64-gnu': 1.0.2 + '@rolldown/binding-linux-x64-musl': 1.0.2 + '@rolldown/binding-openharmony-arm64': 1.0.2 + '@rolldown/binding-wasm32-wasi': 1.0.2 + '@rolldown/binding-win32-arm64-msvc': 1.0.2 + '@rolldown/binding-win32-x64-msvc': 1.0.2 rxjs@7.8.2: dependencies: @@ -5711,15 +5713,15 @@ snapshots: d3-time: 3.1.0 d3-timer: 3.0.1 - vite@8.0.13(@types/node@25.8.0)(sass@1.99.0)(yaml@2.9.0): + vite@8.0.14(@types/node@25.9.1)(sass@1.99.0)(yaml@2.9.0): dependencies: lightningcss: 1.32.0 picomatch: 4.0.4 - postcss: 8.5.14 - rolldown: 1.0.1 + postcss: 8.5.15 + rolldown: 1.0.2 tinyglobby: 0.2.16 optionalDependencies: - '@types/node': 25.8.0 + '@types/node': 25.9.1 fsevents: 2.3.3 sass: 1.99.0 yaml: 2.9.0 @@ -5799,9 +5801,9 @@ snapshots: zod@3.25.76: {} - zustand@5.0.13(@types/react@19.2.14)(immer@11.1.8)(react@19.2.6)(use-sync-external-store@1.6.0(react@19.2.6)): + zustand@5.0.13(@types/react@19.2.15)(immer@11.1.8)(react@19.2.6)(use-sync-external-store@1.6.0(react@19.2.6)): optionalDependencies: - '@types/react': 19.2.14 + '@types/react': 19.2.15 immer: 11.1.8 react: 19.2.6 use-sync-external-store: 1.6.0(react@19.2.6) diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index 087a3b83..c53658b1 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -495,9 +495,9 @@ checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" [[package]] name = "autocfg" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" +checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53" [[package]] name = "aws-lc-rs" @@ -642,12 +642,6 @@ dependencies = [ "digest", ] -[[package]] -name = "block" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" - [[package]] name = "block-buffer" version = "0.10.4" @@ -744,9 +738,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.20.2" +version = "3.20.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb" +checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649" [[package]] name = "byte-unit" @@ -1034,35 +1028,6 @@ dependencies = [ "cc", ] -[[package]] -name = "cocoa" -version = "0.26.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad36507aeb7e16159dfe68db81ccc27571c3ccd4b76fb2fb72fc59e7a4b1b64c" -dependencies = [ - "bitflags 2.11.1", - "block", - "cocoa-foundation", - "core-foundation 0.10.1", - "core-graphics 0.24.0", - "foreign-types 0.5.0", - "libc", - "objc", -] - -[[package]] -name = "cocoa-foundation" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81411967c50ee9a1fc11365f8c585f863a22a9697c89239c452292c40ba79b0d" -dependencies = [ - "bitflags 2.11.1", - "block", - "core-foundation 0.10.1", - "core-graphics-types", - "objc", -] - [[package]] name = "colorchoice" version = "1.0.5" @@ -1176,19 +1141,6 @@ version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" -[[package]] -name = "core-graphics" -version = "0.24.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa95a34622365fa5bbf40b20b75dba8dfa8c94c734aea8ac9a5ca38af14316f1" -dependencies = [ - "bitflags 2.11.1", - "core-foundation 0.10.1", - "core-graphics-types", - "foreign-types 0.5.0", - "libc", -] - [[package]] name = "core-graphics" version = "0.25.0" @@ -1463,7 +1415,6 @@ dependencies = [ "block2 0.6.2", "chrono", "clap", - "cocoa", "common", "dark-light", "defguard_wireguard_rs", @@ -1473,8 +1424,8 @@ dependencies = [ "known-folders", "log", "nix", - "objc", "objc2 0.6.4", + "objc2-app-kit", "objc2-foundation 0.3.2", "objc2-network-extension", "os_info", @@ -3531,15 +3482,6 @@ dependencies = [ "time", ] -[[package]] -name = "malloc_buf" -version = "0.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" -dependencies = [ - "libc", -] - [[package]] name = "markup5ever" version = "0.38.0" @@ -3925,15 +3867,6 @@ dependencies = [ "libc", ] -[[package]] -name = "objc" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" -dependencies = [ - "malloc_buf", -] - [[package]] name = "objc-sys" version = "0.3.5" @@ -3968,10 +3901,17 @@ checksum = "d49e936b501e5c5bf01fda3a9452ff86dc3ea98ad5f283e1455153142d97518c" dependencies = [ "bitflags 2.11.1", "block2 0.6.2", + "libc", "objc2 0.6.4", + "objc2-cloud-kit", + "objc2-core-data", "objc2-core-foundation", "objc2-core-graphics", + "objc2-core-image", + "objc2-core-text", + "objc2-core-video", "objc2-foundation 0.3.2", + "objc2-quartz-core", ] [[package]] @@ -3991,6 +3931,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b402a653efbb5e82ce4df10683b6b28027616a2715e90009947d50b8dd298fa" dependencies = [ + "bitflags 2.11.1", "objc2 0.6.4", "objc2-foundation 0.3.2", ] @@ -4051,6 +3992,19 @@ dependencies = [ "objc2-core-graphics", ] +[[package]] +name = "objc2-core-video" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d425caf1df73233f29fd8a5c3e5edbc30d2d4307870f802d18f00d83dc5141a6" +dependencies = [ + "bitflags 2.11.1", + "objc2 0.6.4", + "objc2-core-foundation", + "objc2-core-graphics", + "objc2-io-surface", +] + [[package]] name = "objc2-encode" version = "4.1.0" @@ -6359,7 +6313,7 @@ dependencies = [ "bitflags 2.11.1", "block2 0.6.2", "core-foundation 0.10.1", - "core-graphics 0.25.0", + "core-graphics", "crossbeam-channel", "dbus", "dispatch2", diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index 3a347acf..4ab353d8 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -124,12 +124,11 @@ x25519-dalek = { version = "2", features = [ ] } [target.'cfg(target_os = "macos")'.dependencies] -cocoa = "0.26" block2 = "0.6" objc2 = "0.6" +objc2-app-kit = "0.3" objc2-foundation = "0.3" objc2-network-extension = "0.3" -objc = "0.2" [target.'cfg(unix)'.dependencies] nix = { version = "0.31", features = ["user", "fs"] } diff --git a/src-tauri/src/window_manager/macos.rs b/src-tauri/src/window_manager/macos.rs index c1cdd371..8fd21b33 100644 --- a/src-tauri/src/window_manager/macos.rs +++ b/src-tauri/src/window_manager/macos.rs @@ -1,66 +1,49 @@ #![allow(deprecated)] -use tauri::{AppHandle, LogicalPosition, Manager, Monitor, PhysicalSize, Position, WebviewWindow}; - -#[cfg(target_os = "macos")] -use tauri::Runtime; - -use crate::appstate::AppState; -use crate::window_manager::{WindowManager, NEW_UI_WINDOW_ID, OLD_UI_WINDOW_ID}; - -#[cfg(target_os = "macos")] -use cocoa::{ - appkit::{NSView, NSWindow, NSWindowButton, NSWindowStyleMask, NSWindowTitleVisibility}, - base::id, +use objc2_app_kit::{ + NSClosableWindowMask, NSFullSizeContentViewWindowMask, NSMiniaturizableWindowMask, + NSResizableWindowMask, NSTitledWindowMask, NSWindow, NSWindowButton, +}; +use tauri::{ + AppHandle, LogicalPosition, LogicalSize, Manager, Monitor, Position, Runtime, WebviewWindow, }; -#[cfg(target_os = "macos")] -use objc::{msg_send, sel, sel_impl}; +use crate::{ + appstate::AppState, + window_manager::{WindowManager, NEW_UI_WINDOW_ID, OLD_UI_WINDOW_ID, WINDOW_GAP}, +}; -#[cfg(target_os = "macos")] -pub fn enable_rounded_corners(window: WebviewWindow) -> Result<(), String> { +pub fn enable_rounded_corners(window: &WebviewWindow) -> Result<(), String> { window .with_webview(move |webview| { - unsafe { - let ns_window = webview.ns_window() as id; - - let mut style_mask = ns_window.styleMask(); - - // Add necessary styles for rounded corners - style_mask |= NSWindowStyleMask::NSFullSizeContentViewWindowMask; - style_mask |= NSWindowStyleMask::NSTitledWindowMask; - style_mask |= NSWindowStyleMask::NSClosableWindowMask; - style_mask |= NSWindowStyleMask::NSMiniaturizableWindowMask; - style_mask |= NSWindowStyleMask::NSResizableWindowMask; - - ns_window.setStyleMask_(style_mask); - ns_window.setTitlebarAppearsTransparent_(cocoa::base::YES); - - // Hide the window title - ns_window.setTitleVisibility_(NSWindowTitleVisibility::NSWindowTitleHidden); - - // Hide the standard window buttons (close, minimize, zoom) - let close_button = - ns_window.standardWindowButton_(NSWindowButton::NSWindowCloseButton); - if !close_button.is_null() { - let _: () = msg_send![close_button, setHidden: cocoa::base::YES]; - } - let miniaturize_button = - ns_window.standardWindowButton_(NSWindowButton::NSWindowMiniaturizeButton); - if !miniaturize_button.is_null() { - let _: () = msg_send![miniaturize_button, setHidden: cocoa::base::YES]; - } - let zoom_button = - ns_window.standardWindowButton_(NSWindowButton::NSWindowZoomButton); - if !zoom_button.is_null() { - let _: () = msg_send![zoom_button, setHidden: cocoa::base::YES]; - } - - let content_view = ns_window.contentView(); - content_view.setWantsLayer(cocoa::base::YES); + let ns_window = unsafe { &*webview.ns_window().cast::() }; + let mut style_mask = ns_window.styleMask(); + + // Add necessary styles for rounded corners. + style_mask |= NSFullSizeContentViewWindowMask; + style_mask |= NSTitledWindowMask; + style_mask |= NSClosableWindowMask; + style_mask |= NSMiniaturizableWindowMask; + style_mask |= NSResizableWindowMask; + + ns_window.setStyleMask(style_mask); + ns_window.setTitlebarAppearsTransparent(true); + + // Hide the standard window buttons (close, minimize, zoom) + if let Some(close_button) = ns_window.standardWindowButton(NSWindowButton::CloseButton) + { + close_button.setHidden(true); + } + if let Some(miniaturize_button) = + ns_window.standardWindowButton(NSWindowButton::MiniaturizeButton) + { + miniaturize_button.setHidden(true); + } + if let Some(zoom_button) = ns_window.standardWindowButton(NSWindowButton::ZoomButton) { + zoom_button.setHidden(true); } }) - .map_err(|e| e.to_string()) + .map_err(|err| err.to_string()) } /// Try to get monitor at the given position, with a fall back to primary monitor, and then to the @@ -85,22 +68,22 @@ fn get_monitor_for_position(app: &AppHandle, x: f64, y: f64) -> Option fn get_tray_window_position( app: &AppHandle, - size: PhysicalSize, + window_size: LogicalSize, ) -> Option> { let app_state = app.state::(); - let tray_click_position = app_state.tray_click_position.lock().unwrap().to_owned(); + let mut x; + let mut y; - if let Some(tray_position) = tray_click_position { + if let Some(tray_position) = *app_state.tray_click_position.lock().unwrap() { let monitor = get_monitor_for_position(app, tray_position.x, tray_position.y)?; let scale_factor = monitor.scale_factor(); let monitor_position = monitor.position().to_logical::(scale_factor); let monitor_size = monitor.size().to_logical::(scale_factor); let tray_position = tray_position.to_logical::(scale_factor); - let window_size = size.to_logical::(scale_factor); - let mut x = tray_position.x; - let mut y = tray_position.y; + x = tray_position.x; + y = tray_position.y; x = x.clamp( monitor_position.x, @@ -110,27 +93,23 @@ fn get_tray_window_position( monitor_position.y, monitor_position.y + monitor_size.height - window_size.height, ); - - Some(LogicalPosition::new(x, y)) } else { let monitor = app.primary_monitor().ok().flatten()?; let scale_factor = monitor.scale_factor(); let monitor_position = monitor.position().to_logical::(scale_factor); let monitor_size = monitor.size().to_logical::(scale_factor); - let window_size = size.to_logical::(scale_factor); - - let gap = crate::window_manager::WINDOW_GAP; - let x = monitor_position.x + monitor_size.width - window_size.width - gap; - let y = monitor_position.y + gap; - - Some(LogicalPosition::new(x, y)) + x = monitor_position.x + monitor_size.width - window_size.width - WINDOW_GAP; + y = monitor_position.y + WINDOW_GAP; } + + Some(LogicalPosition::new(x, y)) } fn position_window_near_tray(app: &AppHandle, window: &WebviewWindow) { let size = window.outer_size().unwrap_or_default(); - if let Some(position) = get_tray_window_position(app, size) { + let scale_factor = window.scale_factor().unwrap_or(1.0); + if let Some(position) = get_tray_window_position(app, size.to_logical::(scale_factor)) { if let Err(err) = window.set_position(Position::Logical(position)) { warn!("Failed to position window near tray icon: {err}"); } @@ -146,7 +125,6 @@ impl WindowManager { Self::build_tray_window(app)? }; position_window_near_tray(app, &window); - #[cfg(target_os = "macos")] let _ = app.show(); let _ = window.show(); let _ = window.set_focus(); @@ -160,7 +138,6 @@ impl WindowManager { } else { Self::build_full_window(app)? }; - #[cfg(target_os = "macos")] let _ = app.show(); let _ = window.show(); let _ = window.set_focus(); diff --git a/src-tauri/src/window_manager/mod.rs b/src-tauri/src/window_manager/mod.rs index b08ba8f8..7b2b3743 100644 --- a/src-tauri/src/window_manager/mod.rs +++ b/src-tauri/src/window_manager/mod.rs @@ -1,4 +1,7 @@ +use std::time::Duration; + use tauri::{AppHandle, WebviewUrl, WebviewWindow, WebviewWindowBuilder}; +use tokio::time::sleep; #[cfg(not(target_os = "linux"))] use crate::database::{models::location::Location, DB_POOL}; @@ -18,11 +21,14 @@ pub const NEW_UI_WIDTH: f64 = 380.0; pub const NEW_UI_HEIGHT: f64 = 640.0; pub const OLD_UI_WIDTH: f64 = 1280.0; pub const OLD_UI_HEIGHT: f64 = 920.0; -pub const WINDOW_GAP: f64 = 20.0; +const WINDOW_GAP: f64 = 20.0; +const WINDOW_TITLE: &str = "Defguard"; +// Sleep briefly to let the IPC handler return. +const UI_SWAP_DELAY: Duration = Duration::from_millis(50); #[must_use] pub fn new_ui_url() -> WebviewUrl { - if cfg!(any(defguard_client_dev, debug_assertions)) { + if cfg!(any(defguard_client_dev)) { WebviewUrl::External("http://localhost:5072".parse().unwrap()) } else { WebviewUrl::App("new-ui/".into()) @@ -31,7 +37,7 @@ pub fn new_ui_url() -> WebviewUrl { #[must_use] pub fn old_ui_url() -> WebviewUrl { - if cfg!(any(defguard_client_dev, debug_assertions)) { + if cfg!(any(defguard_client_dev)) { WebviewUrl::External("http://localhost:5071".parse().unwrap()) } else { WebviewUrl::App("old-ui/index.html".into()) @@ -43,17 +49,19 @@ pub struct WindowManager; impl WindowManager { pub fn build_tray_window(app: &AppHandle) -> tauri::Result { let window = WebviewWindowBuilder::new(app, NEW_UI_WINDOW_ID, new_ui_url()) - .title("Defguard") + .title(WINDOW_TITLE) .inner_size(NEW_UI_WIDTH, NEW_UI_HEIGHT) .resizable(false) - .decorations(false) .visible(false) .always_on_top(true) - .skip_taskbar(true) - .build()?; + .skip_taskbar(true); + #[cfg(target_os = "macos")] + let window = window.hidden_title(true); + + let window = window.build()?; #[cfg(target_os = "macos")] - if let Err(err) = macos::enable_rounded_corners(window.clone()) { + if let Err(err) = macos::enable_rounded_corners(&window) { tracing::warn!("Failed to enable rounded corners on tray window: {err}"); } @@ -62,7 +70,7 @@ impl WindowManager { pub fn build_full_window(app: &AppHandle) -> tauri::Result { WebviewWindowBuilder::new(app, OLD_UI_WINDOW_ID, old_ui_url()) - .title("Defguard") + .title(WINDOW_TITLE) .inner_size(OLD_UI_WIDTH, OLD_UI_HEIGHT) .decorations(true) .visible(false) @@ -70,10 +78,10 @@ impl WindowManager { } } -#[cfg(target_os = "windows")] +#[cfg(windows)] pub mod windows; -#[cfg(not(target_os = "windows"))] +#[cfg(target_os = "macos")] pub mod macos; // Export tauri commands so they can be registered in main.rs @@ -99,15 +107,14 @@ pub fn open_old_ui_window(app: AppHandle) { pub fn swap_to_old_ui(app: AppHandle) { tracing::info!("swap_to_old_ui called"); tauri::async_runtime::spawn(async move { - // Sleep briefly to let the IPC handler return - tokio::time::sleep(std::time::Duration::from_millis(50)).await; - if let Some(w) = tauri::Manager::get_webview_window(&app, NEW_UI_WINDOW_ID) { - if let Err(e) = w.hide() { - tracing::error!("swap_to_old_ui task: Failed to hide new-ui window: {:?}", e); + sleep(UI_SWAP_DELAY).await; + if let Some(window) = tauri::Manager::get_webview_window(&app, NEW_UI_WINDOW_ID) { + if let Err(err) = window.hide() { + tracing::error!("swap_to_old_ui task: Failed to hide new-ui window: {err:?}"); } } - if let Err(e) = WindowManager::open_full_view(&app) { - tracing::error!("swap_to_old_ui task: Failed to open full view: {:?}", e); + if let Err(err) = WindowManager::open_full_view(&app) { + tracing::error!("swap_to_old_ui task: Failed to open full view: {err:?}"); } }); } @@ -116,14 +123,11 @@ pub fn swap_to_old_ui(app: AppHandle) { pub fn close_tray_window(app: AppHandle) { tracing::info!("close_tray_window called"); tauri::async_runtime::spawn(async move { - tokio::time::sleep(std::time::Duration::from_millis(50)).await; - if let Some(w) = tauri::Manager::get_webview_window(&app, NEW_UI_WINDOW_ID) { + sleep(UI_SWAP_DELAY).await; + if let Some(window) = tauri::Manager::get_webview_window(&app, NEW_UI_WINDOW_ID) { tracing::info!("close_tray_window task: Hiding new-ui window"); - if let Err(e) = w.hide() { - tracing::error!( - "close_tray_window task: Failed to hide new-ui window: {:?}", - e - ); + if let Err(err) = window.hide() { + tracing::error!("close_tray_window task: Failed to hide new-ui window: {err:?}"); } } else { tracing::warn!("close_tray_window task: new-ui window not found"); @@ -135,11 +139,11 @@ pub fn close_tray_window(app: AppHandle) { pub fn swap_to_new_ui(app: AppHandle) { tracing::info!("swap_to_new_ui called"); tauri::async_runtime::spawn(async move { - tokio::time::sleep(std::time::Duration::from_millis(50)).await; + sleep(UI_SWAP_DELAY).await; show_new_ui_window(&app); - if let Some(w) = tauri::Manager::get_webview_window(&app, OLD_UI_WINDOW_ID) { - if let Err(e) = w.hide() { - tracing::error!("swap_to_new_ui task: Failed to hide old-ui window: {:?}", e); + if let Some(window) = tauri::Manager::get_webview_window(&app, OLD_UI_WINDOW_ID) { + if let Err(err) = window.hide() { + tracing::error!("swap_to_new_ui task: Failed to hide old-ui window: {err:?}"); } } }); From 8c0fc71474975c7fd6c2ac0a41653a2a2293c496 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Ciarcin=CC=81ski?= Date: Fri, 22 May 2026 18:29:45 +0200 Subject: [PATCH 02/15] set_dock_visibility --- src-tauri/src/bin/defguard-client.rs | 2 ++ src-tauri/src/window_manager/mod.rs | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/src-tauri/src/bin/defguard-client.rs b/src-tauri/src/bin/defguard-client.rs index 15c10029..75811dae 100644 --- a/src-tauri/src/bin/defguard-client.rs +++ b/src-tauri/src/bin/defguard-client.rs @@ -261,6 +261,8 @@ fn main() { let _ = app.opener().open_url(REPORT_URL, None::<&str>); } }); + + app.set_dock_visibility(false); } // Register for Linux and debug Windows builds. diff --git a/src-tauri/src/window_manager/mod.rs b/src-tauri/src/window_manager/mod.rs index 7b2b3743..892f0b36 100644 --- a/src-tauri/src/window_manager/mod.rs +++ b/src-tauri/src/window_manager/mod.rs @@ -106,6 +106,8 @@ pub fn open_old_ui_window(app: AppHandle) { #[tauri::command] pub fn swap_to_old_ui(app: AppHandle) { tracing::info!("swap_to_old_ui called"); + #[cfg(target_os = "macos")] + let _ = app.set_dock_visibility(true); tauri::async_runtime::spawn(async move { sleep(UI_SWAP_DELAY).await; if let Some(window) = tauri::Manager::get_webview_window(&app, NEW_UI_WINDOW_ID) { @@ -138,6 +140,8 @@ pub fn close_tray_window(app: AppHandle) { #[tauri::command] pub fn swap_to_new_ui(app: AppHandle) { tracing::info!("swap_to_new_ui called"); + #[cfg(target_os = "macos")] + let _ = app.set_dock_visibility(false); tauri::async_runtime::spawn(async move { sleep(UI_SWAP_DELAY).await; show_new_ui_window(&app); From ae959275e1e383c73df92fb06dd498ad2d5f254f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Ciarcin=CC=81ski?= Date: Fri, 22 May 2026 18:33:33 +0200 Subject: [PATCH 03/15] pnpm-workspace.yaml --- pnpm-workspace.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 65c830c8..914359cc 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -2,3 +2,4 @@ allowBuilds: '@parcel/watcher': true '@swc/core': true esbuild: true + itertools: true From d1633816feb4c22d76a317a3edecc13301b25afb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Ciarcin=CC=81ski?= Date: Fri, 22 May 2026 18:41:16 +0200 Subject: [PATCH 04/15] pnpm-workspace.yaml --- package.json | 15 --------------- pnpm-workspace.yaml | 2 +- 2 files changed, 1 insertion(+), 16 deletions(-) diff --git a/package.json b/package.json index d2c3cc26..52431454 100644 --- a/package.json +++ b/package.json @@ -35,21 +35,6 @@ "last 1 safari version" ] }, - "pnpm": { - "peerDependencyRules": { - "ignoreMissing": [ - "react-native" - ] - }, - "onlyBuiltDependencies": [ - "@parcel/watcher", - "@swc/core", - "esbuild" - ], - "overrides": { - "mdast-util-to-hast": "13.2.1" - } - }, "dependencies": { "@floating-ui/react": "^0.27.19", "@hookform/resolvers": "^3.10.0", diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 914359cc..8e865a77 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -2,4 +2,4 @@ allowBuilds: '@parcel/watcher': true '@swc/core': true esbuild: true - itertools: true + itertools: false From a281ceda93d64d253096954acc8b06448629b3ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Ciarcin=CC=81ski?= Date: Fri, 22 May 2026 18:46:30 +0200 Subject: [PATCH 05/15] fix for linux --- src-tauri/src/window_manager/mod.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src-tauri/src/window_manager/mod.rs b/src-tauri/src/window_manager/mod.rs index 892f0b36..9a133f49 100644 --- a/src-tauri/src/window_manager/mod.rs +++ b/src-tauri/src/window_manager/mod.rs @@ -86,6 +86,7 @@ pub mod macos; // Export tauri commands so they can be registered in main.rs pub(crate) fn show_new_ui_window(app: &AppHandle) { + #[cfg(not(target_os = "linux"))] let _ = WindowManager::open_tray(app); } From 796ff6593894091bfa76f01406fea58fbc20b51f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Ciarcin=CC=81ski?= Date: Fri, 22 May 2026 18:47:02 +0200 Subject: [PATCH 06/15] fix for linux --- src-tauri/src/window_manager/mod.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src-tauri/src/window_manager/mod.rs b/src-tauri/src/window_manager/mod.rs index 9a133f49..c2253ccf 100644 --- a/src-tauri/src/window_manager/mod.rs +++ b/src-tauri/src/window_manager/mod.rs @@ -101,6 +101,7 @@ pub fn open_new_ui_window(app: AppHandle) { #[tauri::command] pub fn open_old_ui_window(app: AppHandle) { + #[cfg(not(target_os = "linux"))] let _ = WindowManager::open_full_view(&app); } From 4f6439ff4270de47d2661713dbfd6c74a6b2bc7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Ciarcin=CC=81ski?= Date: Fri, 22 May 2026 18:47:46 +0200 Subject: [PATCH 07/15] fix for Linux --- src-tauri/src/window_manager/mod.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src-tauri/src/window_manager/mod.rs b/src-tauri/src/window_manager/mod.rs index c2253ccf..41c2ddaa 100644 --- a/src-tauri/src/window_manager/mod.rs +++ b/src-tauri/src/window_manager/mod.rs @@ -117,8 +117,11 @@ pub fn swap_to_old_ui(app: AppHandle) { tracing::error!("swap_to_old_ui task: Failed to hide new-ui window: {err:?}"); } } - if let Err(err) = WindowManager::open_full_view(&app) { - tracing::error!("swap_to_old_ui task: Failed to open full view: {err:?}"); + #[cfg(not(target_os = "linux"))] + { + if let Err(err) = WindowManager::open_full_view(&app) { + tracing::error!("swap_to_old_ui task: Failed to open full view: {err:?}"); + } } }); } From 17d3980e49c4fd0ae2944b4e69542915231e2b1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Ciarcin=CC=81ski?= Date: Fri, 22 May 2026 18:55:18 +0200 Subject: [PATCH 08/15] linux --- src-tauri/src/window_manager/mod.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src-tauri/src/window_manager/mod.rs b/src-tauri/src/window_manager/mod.rs index 41c2ddaa..3a8e6701 100644 --- a/src-tauri/src/window_manager/mod.rs +++ b/src-tauri/src/window_manager/mod.rs @@ -21,6 +21,7 @@ pub const NEW_UI_WIDTH: f64 = 380.0; pub const NEW_UI_HEIGHT: f64 = 640.0; pub const OLD_UI_WIDTH: f64 = 1280.0; pub const OLD_UI_HEIGHT: f64 = 920.0; +#[cfg_attr(target_os = "linux", allow(unused_variables))] const WINDOW_GAP: f64 = 20.0; const WINDOW_TITLE: &str = "Defguard"; // Sleep briefly to let the IPC handler return. @@ -85,6 +86,7 @@ pub mod windows; pub mod macos; // Export tauri commands so they can be registered in main.rs +#[cfg_attr(target_os = "linux", allow(unused_variables))] pub(crate) fn show_new_ui_window(app: &AppHandle) { #[cfg(not(target_os = "linux"))] let _ = WindowManager::open_tray(app); @@ -99,6 +101,7 @@ pub fn open_new_ui_window(app: AppHandle) { show_new_ui_window(&app); } +#[cfg_attr(target_os = "linux", allow(unused_variables))] #[tauri::command] pub fn open_old_ui_window(app: AppHandle) { #[cfg(not(target_os = "linux"))] From 3ed68b9337b3a2818f40674197f56dddc57f9961 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Ciarcin=CC=81ski?= Date: Fri, 22 May 2026 19:07:18 +0200 Subject: [PATCH 09/15] aaargh --- src-tauri/src/window_manager/macos.rs | 36 ++---------------------- src-tauri/src/window_manager/mod.rs | 37 +++++++++++++++++++++++-- src-tauri/src/window_manager/windows.rs | 10 ++----- 3 files changed, 40 insertions(+), 43 deletions(-) diff --git a/src-tauri/src/window_manager/macos.rs b/src-tauri/src/window_manager/macos.rs index 8fd21b33..42da58de 100644 --- a/src-tauri/src/window_manager/macos.rs +++ b/src-tauri/src/window_manager/macos.rs @@ -8,10 +8,7 @@ use tauri::{ AppHandle, LogicalPosition, LogicalSize, Manager, Monitor, Position, Runtime, WebviewWindow, }; -use crate::{ - appstate::AppState, - window_manager::{WindowManager, NEW_UI_WINDOW_ID, OLD_UI_WINDOW_ID, WINDOW_GAP}, -}; +use crate::{appstate::AppState, window_manager::WINDOW_GAP}; pub fn enable_rounded_corners(window: &WebviewWindow) -> Result<(), String> { window @@ -106,7 +103,7 @@ fn get_tray_window_position( Some(LogicalPosition::new(x, y)) } -fn position_window_near_tray(app: &AppHandle, window: &WebviewWindow) { +pub(super) fn position_window_near_tray(app: &AppHandle, window: &WebviewWindow) { let size = window.outer_size().unwrap_or_default(); let scale_factor = window.scale_factor().unwrap_or(1.0); if let Some(position) = get_tray_window_position(app, size.to_logical::(scale_factor)) { @@ -115,32 +112,3 @@ fn position_window_near_tray(app: &AppHandle, window: &WebviewWindow) { } } } - -impl WindowManager { - pub fn open_tray(app: &AppHandle) -> tauri::Result { - let window = if let Some(window) = app.get_webview_window(NEW_UI_WINDOW_ID) { - let _ = window.unminimize(); - window - } else { - Self::build_tray_window(app)? - }; - position_window_near_tray(app, &window); - let _ = app.show(); - let _ = window.show(); - let _ = window.set_focus(); - Ok(window) - } - - pub fn open_full_view(app: &AppHandle) -> tauri::Result { - let window = if let Some(window) = app.get_webview_window(OLD_UI_WINDOW_ID) { - let _ = window.unminimize(); - window - } else { - Self::build_full_window(app)? - }; - let _ = app.show(); - let _ = window.show(); - let _ = window.set_focus(); - Ok(window) - } -} diff --git a/src-tauri/src/window_manager/mod.rs b/src-tauri/src/window_manager/mod.rs index 3a8e6701..9cc84866 100644 --- a/src-tauri/src/window_manager/mod.rs +++ b/src-tauri/src/window_manager/mod.rs @@ -1,6 +1,6 @@ use std::time::Duration; -use tauri::{AppHandle, WebviewUrl, WebviewWindow, WebviewWindowBuilder}; +use tauri::{AppHandle, Manager, WebviewUrl, WebviewWindow, WebviewWindowBuilder}; use tokio::time::sleep; #[cfg(not(target_os = "linux"))] @@ -21,7 +21,7 @@ pub const NEW_UI_WIDTH: f64 = 380.0; pub const NEW_UI_HEIGHT: f64 = 640.0; pub const OLD_UI_WIDTH: f64 = 1280.0; pub const OLD_UI_HEIGHT: f64 = 920.0; -#[cfg_attr(target_os = "linux", allow(unused_variables))] +#[cfg(not(target_os = "linux"))] const WINDOW_GAP: f64 = 20.0; const WINDOW_TITLE: &str = "Defguard"; // Sleep briefly to let the IPC handler return. @@ -79,6 +79,39 @@ impl WindowManager { } } +#[cfg(not(windows))] +impl WindowManager { + pub fn open_tray(app: &AppHandle) -> tauri::Result { + let window = if let Some(window) = app.get_webview_window(NEW_UI_WINDOW_ID) { + let _ = window.unminimize(); + window + } else { + Self::build_tray_window(app)? + }; + #[cfg(target_os = "macos")] + macos::position_window_near_tray(app, &window); + #[cfg(target_os = "macos")] + let _ = app.show(); + let _ = window.show(); + let _ = window.set_focus(); + Ok(window) + } + + pub fn open_full_view(app: &AppHandle) -> tauri::Result { + let window = if let Some(window) = app.get_webview_window(OLD_UI_WINDOW_ID) { + let _ = window.unminimize(); + window + } else { + Self::build_full_window(app)? + }; + #[cfg(target_os = "macos")] + let _ = app.show(); + let _ = window.show(); + let _ = window.set_focus(); + Ok(window) + } +} + #[cfg(windows)] pub mod windows; diff --git a/src-tauri/src/window_manager/windows.rs b/src-tauri/src/window_manager/windows.rs index 56c5dc46..1d0955eb 100644 --- a/src-tauri/src/window_manager/windows.rs +++ b/src-tauri/src/window_manager/windows.rs @@ -266,14 +266,14 @@ impl WindowManager { width: (OLD_UI_WIDTH * primary.scale_factor) as u32, height: (OLD_UI_HEIGHT * primary.scale_factor) as u32, }); - log::info!("open_full_view: outer_size = {:?}", outer_size); + log::info!("open_full_view: outer_size = {outer_size:?}"); log::info!("open_full_view: Querying inner_size"); let inner_size = window.inner_size().unwrap_or(tauri::PhysicalSize { width: (OLD_UI_WIDTH * primary.scale_factor) as u32, height: (OLD_UI_HEIGHT * primary.scale_factor) as u32, }); - log::info!("open_full_view: inner_size = {:?}", inner_size); + log::info!("open_full_view: inner_size = {inner_size:?}"); let physical_width = outer_size.width as i32; let physical_height = outer_size.height as i32; @@ -324,11 +324,7 @@ impl WindowManager { _ => {} } - log::info!( - "open_full_view: Setting position to ({}, {})", - window_x, - window_y - ); + log::info!("open_full_view: Setting position to ({window_x}, {window_y})"); window.set_position(tauri::PhysicalPosition::new(window_x, window_y))?; log::info!("open_full_view: Position set, showing window"); window.show()?; From 6087cc093fae565160fd72cdc414ec7878967af1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20=C5=9Al=C4=99zak?= Date: Fri, 22 May 2026 19:35:19 +0200 Subject: [PATCH 10/15] fix for windows --- src-tauri/src/window_manager/mod.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src-tauri/src/window_manager/mod.rs b/src-tauri/src/window_manager/mod.rs index 9cc84866..c043976c 100644 --- a/src-tauri/src/window_manager/mod.rs +++ b/src-tauri/src/window_manager/mod.rs @@ -1,6 +1,6 @@ use std::time::Duration; -use tauri::{AppHandle, Manager, WebviewUrl, WebviewWindow, WebviewWindowBuilder}; +use tauri::{AppHandle, WebviewUrl, WebviewWindow, WebviewWindowBuilder}; use tokio::time::sleep; #[cfg(not(target_os = "linux"))] @@ -59,6 +59,9 @@ impl WindowManager { #[cfg(target_os = "macos")] let window = window.hidden_title(true); + #[cfg(target_os = "windows")] + let window = window.decorations(false); + let window = window.build()?; #[cfg(target_os = "macos")] From da5ae302ebf4934b1fe2f809b29dd57addf04b0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20=C5=9Al=C4=99zak?= Date: Fri, 22 May 2026 19:41:08 +0200 Subject: [PATCH 11/15] fix for linux --- src-tauri/src/window_manager/mod.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src-tauri/src/window_manager/mod.rs b/src-tauri/src/window_manager/mod.rs index c043976c..fb84b316 100644 --- a/src-tauri/src/window_manager/mod.rs +++ b/src-tauri/src/window_manager/mod.rs @@ -1,5 +1,7 @@ use std::time::Duration; +#[cfg(not(target_os = "windows"))] +use tauri::Manager; use tauri::{AppHandle, WebviewUrl, WebviewWindow, WebviewWindowBuilder}; use tokio::time::sleep; From 46283a4e465123bc0139dd11982810f78fdffe53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Ciarcin=CC=81ski?= Date: Fri, 22 May 2026 19:49:18 +0200 Subject: [PATCH 12/15] decorations --- src-tauri/src/window_manager/mod.rs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src-tauri/src/window_manager/mod.rs b/src-tauri/src/window_manager/mod.rs index fb84b316..780b57a8 100644 --- a/src-tauri/src/window_manager/mod.rs +++ b/src-tauri/src/window_manager/mod.rs @@ -55,15 +55,13 @@ impl WindowManager { .title(WINDOW_TITLE) .inner_size(NEW_UI_WIDTH, NEW_UI_HEIGHT) .resizable(false) + .decorations(false) .visible(false) .always_on_top(true) .skip_taskbar(true); #[cfg(target_os = "macos")] let window = window.hidden_title(true); - #[cfg(target_os = "windows")] - let window = window.decorations(false); - let window = window.build()?; #[cfg(target_os = "macos")] From 292e99ca5d6e327bdb8e270825a72f458c68f57a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Ciarcin=CC=81ski?= Date: Mon, 25 May 2026 08:53:47 +0200 Subject: [PATCH 13/15] spawn to async fn --- new-ui/package.json | 18 +- new-ui/pnpm-lock.yaml | 511 +++++++++++++--------------- package.json | 12 +- pnpm-lock.yaml | 267 ++++++++------- src-tauri/Cargo.lock | 32 +- src-tauri/src/window_manager/mod.rs | 69 ++-- 6 files changed, 431 insertions(+), 478 deletions(-) diff --git a/new-ui/package.json b/new-ui/package.json index 5e3c0516..db7cc879 100644 --- a/new-ui/package.json +++ b/new-ui/package.json @@ -17,9 +17,9 @@ "@floating-ui/react": "^0.27.19", "@stablelib/base64": "^2.0.1", "@tanstack/react-form": "^1.32.0", - "@tanstack/react-query": "^5.100.10", - "@tanstack/react-router": "^1.170.4", - "@tanstack/router-plugin": "^1.168.6", + "@tanstack/react-query": "^5.100.14", + "@tanstack/react-router": "^1.170.8", + "@tanstack/router-plugin": "^1.168.11", "@tauri-apps/api": "^2.11.0", "@tauri-apps/plugin-http": "^2.5.9", "@tauri-apps/plugin-log": "^2.8.0", @@ -29,7 +29,7 @@ "chart.js": "^4.5.1", "clsx": "^2.1.1", "dayjs": "^1.11.20", - "motion": "^12.38.0", + "motion": "^12.40.0", "p-timeout": "^7.0.1", "prettier": "^3.8.3", "qrcode.react": "^4.2.0", @@ -37,23 +37,23 @@ "react": "^19.2.6", "react-chartjs-2": "^5.3.1", "react-dom": "^19.2.6", - "sass": "^1.99.0", + "sass": "^1.100.0", "zod": "^4.4.3", "zustand": "^5.0.13" }, "devDependencies": { "@tanstack/devtools-vite": "^0.7.0", "@types/byte-size": "^8.1.2", - "@types/node": "^25.8.0", - "@types/react": "^19.2.14", + "@types/node": "^25.9.1", + "@types/react": "^19.2.15", "@types/react-dom": "^19.2.3", "@vitejs/plugin-react": "^6.0.2", "autoprefixer": "^10.5.0", "globals": "^17.6.0", - "stylelint": "^17.11.1", + "stylelint": "^17.12.0", "stylelint-config-standard-scss": "^17.0.0", "stylelint-scss": "^7.1.1", "typescript": "~6.0.3", - "vite": "^8.0.13" + "vite": "^8.0.14" } } diff --git a/new-ui/pnpm-lock.yaml b/new-ui/pnpm-lock.yaml index 98c6a6b7..44192227 100644 --- a/new-ui/pnpm-lock.yaml +++ b/new-ui/pnpm-lock.yaml @@ -21,14 +21,14 @@ importers: specifier: ^1.32.0 version: 1.32.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@tanstack/react-query': - specifier: ^5.100.10 - version: 5.100.10(react@19.2.6) + specifier: ^5.100.14 + version: 5.100.14(react@19.2.6) '@tanstack/react-router': - specifier: ^1.170.4 - version: 1.170.4(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + specifier: ^1.170.8 + version: 1.170.8(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@tanstack/router-plugin': - specifier: ^1.168.6 - version: 1.168.6(@tanstack/react-router@1.170.4(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vite@8.0.13(@types/node@25.8.0)(jiti@2.7.0)(sass@1.99.0)) + specifier: ^1.168.11 + version: 1.168.11(@tanstack/react-router@1.170.8(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(sass@1.100.0)) '@tauri-apps/api': specifier: ^2.11.0 version: 2.11.0 @@ -57,8 +57,8 @@ importers: specifier: ^1.11.20 version: 1.11.20 motion: - specifier: ^12.38.0 - version: 12.38.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + specifier: ^12.40.0 + version: 12.40.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6) p-timeout: specifier: ^7.0.1 version: 7.0.1 @@ -81,54 +81,54 @@ importers: specifier: ^19.2.6 version: 19.2.6(react@19.2.6) sass: - specifier: ^1.99.0 - version: 1.99.0 + specifier: ^1.100.0 + version: 1.100.0 zod: specifier: ^4.4.3 version: 4.4.3 zustand: specifier: ^5.0.13 - version: 5.0.13(@types/react@19.2.14)(react@19.2.6)(use-sync-external-store@1.6.0(react@19.2.6)) + version: 5.0.13(@types/react@19.2.15)(react@19.2.6)(use-sync-external-store@1.6.0(react@19.2.6)) devDependencies: '@tanstack/devtools-vite': specifier: ^0.7.0 - version: 0.7.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(vite@8.0.13(@types/node@25.8.0)(jiti@2.7.0)(sass@1.99.0)) + version: 0.7.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(sass@1.100.0)) '@types/byte-size': specifier: ^8.1.2 version: 8.1.2 '@types/node': - specifier: ^25.8.0 - version: 25.8.0 + specifier: ^25.9.1 + version: 25.9.1 '@types/react': - specifier: ^19.2.14 - version: 19.2.14 + specifier: ^19.2.15 + version: 19.2.15 '@types/react-dom': specifier: ^19.2.3 - version: 19.2.3(@types/react@19.2.14) + version: 19.2.3(@types/react@19.2.15) '@vitejs/plugin-react': specifier: ^6.0.2 - version: 6.0.2(vite@8.0.13(@types/node@25.8.0)(jiti@2.7.0)(sass@1.99.0)) + version: 6.0.2(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(sass@1.100.0)) autoprefixer: specifier: ^10.5.0 - version: 10.5.0(postcss@8.5.14) + version: 10.5.0(postcss@8.5.15) globals: specifier: ^17.6.0 version: 17.6.0 stylelint: - specifier: ^17.11.1 - version: 17.11.1(typescript@6.0.3) + specifier: ^17.12.0 + version: 17.12.0(typescript@6.0.3) stylelint-config-standard-scss: specifier: ^17.0.0 - version: 17.0.0(postcss@8.5.14)(stylelint@17.11.1(typescript@6.0.3)) + version: 17.0.0(postcss@8.5.15)(stylelint@17.12.0(typescript@6.0.3)) stylelint-scss: specifier: ^7.1.1 - version: 7.1.1(stylelint@17.11.1(typescript@6.0.3)) + version: 7.1.1(stylelint@17.12.0(typescript@6.0.3)) typescript: specifier: ~6.0.3 version: 6.0.3 vite: - specifier: ^8.0.13 - version: 8.0.13(@types/node@25.8.0)(jiti@2.7.0)(sass@1.99.0) + specifier: ^8.0.14 + version: 8.0.14(@types/node@25.9.1)(jiti@2.7.0)(sass@1.100.0) packages: @@ -528,8 +528,8 @@ packages: '@oxc-project/types@0.120.0': resolution: {integrity: sha512-k1YNu55DuvAip/MGE1FTsIuU3FUCn6v/ujG9V7Nq5Df/kX2CWb13hhwD0lmJGMGqE+bE1MXvv9SZVnMzEXlWcg==} - '@oxc-project/types@0.130.0': - resolution: {integrity: sha512-ibD2usx9JRu7f5pu2tMKMI4cpA4NgXJQoYRP4pQ7Pxmn1l6k/53qWtQWZayhYy3X4QZkt90Ot+mJEaeXouio6Q==} + '@oxc-project/types@0.132.0': + resolution: {integrity: sha512-FESMOxil5Se014ui/Eq8fT5uHJo6nIRwH0PfJrZJXs6Gek3ZVFOrpUv3YIZT20m+extU98Hg1Ym72U58rlsxUQ==} '@parcel/watcher-android-arm64@2.5.6': resolution: {integrity: sha512-YQxSS34tPF/6ZG7r/Ih9xy+kP/WwediEUsqmtf0cuCV5TPPKw/PQHRhueUo6JdeFJaqV3pyjm0GdYjZotbRt/A==} @@ -619,97 +619,97 @@ packages: resolution: {integrity: sha512-tmmZ3lQxAe/k/+rNnXQRawJ4NjxO2hqiOLTHvWchtGZULp4RyFeh6aU4XdOYBFe2KE1oShQTv4AblOs2iOrNnQ==} engines: {node: '>= 10.0.0'} - '@rolldown/binding-android-arm64@1.0.1': - resolution: {integrity: sha512-fJI3I0r3C3Oj/zdBCpaCmBRZYf07xpaq4yCfDDoSFm+beWNzbIl26puW8RraUdugoJw/95zerNOn6jasAhzSmg==} + '@rolldown/binding-android-arm64@1.0.2': + resolution: {integrity: sha512-ZS4D1JPGn/MYQN/SYDWftIE/nVsM8j/AFOYEzAoOE2O3NktQOZru+/vYXGbR/qtdLdIfGCP0lcoJiYVzsEz+iQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@rolldown/binding-darwin-arm64@1.0.1': - resolution: {integrity: sha512-cKnAhWEsV7TPcA/5EAteDp6KcJZBQ2G+BqE7zayMMi7kMvwRsbv7WT9aOnn0WNl4SKEIf43vjS31iUPu80nzXg==} + '@rolldown/binding-darwin-arm64@1.0.2': + resolution: {integrity: sha512-vdFA9+C/rekyGce7WqHs/xoT0ioZEWaOFyZLIV1mEeNFaFDUQrPIo8Vs2GvJ6eetb3rzDUtUBgzto3ExpXJB3w==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@rolldown/binding-darwin-x64@1.0.1': - resolution: {integrity: sha512-YKrVwQjIRBPo+5G/u03wGjbdy4q7pyzCe93DK9VJ7zkVmeg8LJ7GbgsiHWdR4xSoe4CAXRD7Bcjgbtr64bkXNg==} + '@rolldown/binding-darwin-x64@1.0.2': + resolution: {integrity: sha512-BewSOwTHazv77DTYiAZXSqqKZ4KP/KonFisDMVU7PImxoWfB2aepnPhd2E4SWz3zDzYgDNbs6jBmTdgNnF02GA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@rolldown/binding-freebsd-x64@1.0.1': - resolution: {integrity: sha512-z/oBsREo46SsFqBwYtFe0kpJeBijAT48O/WXLI4suiCLBkr03RTtTJMCzSdDd2znlh8VJizL09XVkQgk8IZonw==} + '@rolldown/binding-freebsd-x64@1.0.2': + resolution: {integrity: sha512-m41o7M0YWtUdqk61Tb+jnKb2rN++iRdIASlExkUoKfIAH30DOHCB8fVLzSUpbWHHU8esmEioY62PxzexE8MBuA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@rolldown/binding-linux-arm-gnueabihf@1.0.1': - resolution: {integrity: sha512-ik8q7GM11zxvYxFc2PeDcT6TBvhCQMaUxfph/M5l9sKuTs/Sjg3L+Byw0F7w0ZVLBZmx30P+gG0ECzzN+MFcmQ==} + '@rolldown/binding-linux-arm-gnueabihf@1.0.2': + resolution: {integrity: sha512-jcojB9H7W/jS29pMKWAK1N+fU99vXodHDTatS3b3y/XSOCiHo0kkA74pL3jJmkoQtYpOCxDvaKs1fo2Ij/1X5w==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@rolldown/binding-linux-arm64-gnu@1.0.1': - resolution: {integrity: sha512-QoSx2EkyrrdZ6kcyE8stqZ62t0Yra8Fs5ia9lOxJrh6TMQJK7gQKmscdTHf7pOXKREKrVwOtJcQG3qVSfc866A==} + '@rolldown/binding-linux-arm64-gnu@1.0.2': + resolution: {integrity: sha512-1jn6qDU5iiOgFgygDzKUuKP0maTi0/f1+sBLgvij/76C77Nm3ts6ufz9Bjg5q5dduxiUIxtq86JIoBvo1xQ4Ig==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-arm64-musl@1.0.1': - resolution: {integrity: sha512-uwNwFpwKeNiZawfAWBgg0VIztPTV3ihhh1vV334h9ivnNLorxnQMU6Fz8wG1Zb4Qh9LC1/MkcyT3YlDXG3Rsgg==} + '@rolldown/binding-linux-arm64-musl@1.0.2': + resolution: {integrity: sha512-QVLO/czFMdoMFSqlX3bcswcJNm/23r+qoa/jgtmFc/qEp6/jXmIkDjF/XIo8dPfGaiwy1xfQn8o77L79GeXFgw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [musl] - '@rolldown/binding-linux-ppc64-gnu@1.0.1': - resolution: {integrity: sha512-zY1bul7OWr7DFBiJ++wofXvnr8B45ce3QsQUhKrIhXsygAh7bTkwyeM1bi1a2g5C/yC/N8TZyGDEoMfm/l9mpg==} + '@rolldown/binding-linux-ppc64-gnu@1.0.2': + resolution: {integrity: sha512-hgO5Abm0w5UL6FEa2iFnZqo2KlK7TQ5QhV5x09hujBf7t5KzHQ1VmfPuTpqRy/rNlSxua3eWH374xxiVrP+lcA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-s390x-gnu@1.0.1': - resolution: {integrity: sha512-0frlsT/f4Ft6I7SMESTKnF3cZsdicQn1dCMkF/jT9wDLE+gGoiQfv1nmT9e+s7s/fekvvy6tZM2jHvI2tkbJDQ==} + '@rolldown/binding-linux-s390x-gnu@1.0.2': + resolution: {integrity: sha512-fy8rXxuYEu602abC8MUNaPjYLIFzReOaEIEMKMUa0rFEUxNpVXhs15KSSQ4qlqSaM7B6rcj9rDZgADh/IGDzLQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] libc: [glibc] - '@rolldown/binding-linux-x64-gnu@1.0.1': - resolution: {integrity: sha512-XABVmGp9Tg0WspTVvwduTc4fpqy6JnAUrSQe6OuyqD/03nI7r0O9OWUkMIwFrjKAIqolvqoA4ZrJppgwE0Gxmw==} + '@rolldown/binding-linux-x64-gnu@1.0.2': + resolution: {integrity: sha512-0+bOkiQ779+r1WpoHOWHqncvyySci0vKph+myNDYb+im6meJAzHQXay6oEgnkHuUGouM1LKTZwqKpBow6Kj7CQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-x64-musl@1.0.1': - resolution: {integrity: sha512-bV4fzswuzVcKD90o/VM6QqKxnxlDq0g2BISDLNVmxrnhpv1DDbyPhCIjYfvzYLV+MvkKKnQt2Q6AO86SEBULUQ==} + '@rolldown/binding-linux-x64-musl@1.0.2': + resolution: {integrity: sha512-mjSkrzZK5Qsl0a9d1JgILOiuZOSDTVdKENcSXBoqbzSrspLR/4/IRVDo5wd2GgZjNss/viBFJdeq+j7qH2nypw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [musl] - '@rolldown/binding-openharmony-arm64@1.0.1': - resolution: {integrity: sha512-/Mh0Zhq3OP7fVs0kcQHZP6lZEthMGTaSf8UBQYSFEZDWGXXlEC+nJ6EqenaK2t4LBXMe3A+K/G2BVXXdtOr4PQ==} + '@rolldown/binding-openharmony-arm64@1.0.2': + resolution: {integrity: sha512-1v5vHasdfQAZoEHakBV72LIFAC9JjnymsiKxp+GEr/ma3+NJCPSaYK+qavInOovJkgwFrs7GccX2d6IgDA3Z5w==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@rolldown/binding-wasm32-wasi@1.0.1': - resolution: {integrity: sha512-+1xc9X45l8ufsBAm6Gjvx2qDRIY9lTVt0cgWNcJ+1gdhXvkbxePA60yRTwSTuXL09CMhyJmjpV7E3NoyxbqFQQ==} + '@rolldown/binding-wasm32-wasi@1.0.2': + resolution: {integrity: sha512-mb1VobWn6NheziTk5/WEaR6AKVbrwT5sOi6C7zk3gy/pD1qtJfU1j4PgTo2NJnOtbL9Dl3Aeei8w9jJ7qC2jZQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [wasm32] - '@rolldown/binding-win32-arm64-msvc@1.0.1': - resolution: {integrity: sha512-1D+UqZdfnuR+Jy1GgMJwi85bD40H21uNmOPRWQhw4oRSuolZ/B5rixZ45DK2KXOTCvmVCecauWgEhbw8bI7tOw==} + '@rolldown/binding-win32-arm64-msvc@1.0.2': + resolution: {integrity: sha512-SqKonF56vA/L2yHwHYcEp2P34URpOZ7d1fS635cTkpDnUtEGdUbhI6NzsPdqeSWvAAeGDrxjWjNmibDIdFf9/A==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@rolldown/binding-win32-x64-msvc@1.0.1': - resolution: {integrity: sha512-INAycaWuhlOK3wk4mRHGsdgwYWmd9cChdPdE9bwWmy6rn9VqVNYNFGhOdXrofXUxwHIncSiPNb8tNm8knDVIeQ==} + '@rolldown/binding-win32-x64-msvc@1.0.2': + resolution: {integrity: sha512-v7qRI7gXLRINcOGXt+7YmAZ6iFuyZVMIoXAxhd8oP+DR9dLfL9GfNIx7PLMxmhZdvq8waUJBQiWN9EKNy+TRBQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] @@ -755,8 +755,8 @@ packages: resolution: {integrity: sha512-y/xtNPNt/YeyoVxE/JCx+T7yjEzpezmbb+toK8DDD1P4m7Kzs5YR956+7OKexG3f8aXgC3rLZl7b1V+yNUSy5w==} engines: {node: '>=18'} - '@tanstack/query-core@5.100.10': - resolution: {integrity: sha512-8UR0yJR+GiQ40m3lPhUr0xbfAupe6GSQiksSBSa9SM2NjezFyxXCIA69/lz8cSoNKZLrw1/PktIyQBJcVeMi3w==} + '@tanstack/query-core@5.100.14': + resolution: {integrity: sha512-5X41dGpxgeaHISCRW2oYwcSycZeULZzAunaudXT9ov1KOTj9xwt0CH6hbwqP1/z74ZWF7rYFnDpyYH07XFcZew==} '@tanstack/react-form@1.32.0': resolution: {integrity: sha512-6WP5SQTA6/H9crCpvpq3ZppYWqtrdE5NjOy6ebABi6uAQPqhfTzrdjS9t40mCZCFtGI5585OhJV6zBP/KN2zcw==} @@ -767,13 +767,13 @@ packages: '@tanstack/react-start': optional: true - '@tanstack/react-query@5.100.10': - resolution: {integrity: sha512-FLaZf2RCrA/Zgp4aiu5tG3TyasTRO7aZ99skxQpr3Hg/zXOhu6yq5FZCYQ/tRaJtM9ylnoK8tFK7PolXQadv6Q==} + '@tanstack/react-query@5.100.14': + resolution: {integrity: sha512-oOr6aRdSFEwWhzxEkD/9ZcItM3+LjBSkeVmadWKwUssAHTsqd/7bOjWrX4AbvEkoEhgAxzN0Xk6H/aYzXiYBAw==} peerDependencies: react: ^18 || ^19 - '@tanstack/react-router@1.170.4': - resolution: {integrity: sha512-cusL4YCTuGGJhjfsXEBm6/SmOAs/G8wRVNadeyN3ofu4OZwX69KAybBEf217buxYzI+FohdJVoigEpJV+tGzIw==} + '@tanstack/react-router@1.170.8': + resolution: {integrity: sha512-Qw2ju6jjnIsMpuW+VrnHZWHuugqs592PWsnI56sG28qNhg14CgRLahOcNajfuJR9P4MxKGP94WVzmFKSYUz/ig==} engines: {node: '>=20.19'} peerDependencies: react: '>=18.0.0 || >=19.0.0' @@ -785,20 +785,20 @@ 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.171.2': - resolution: {integrity: sha512-sUd+BhGYkBF64LVhmOHnYsc1AutPNch/huohEXiXL4IUgmk17Gy+RkUazvjQhptVdYW5QT+qtATrUr2cQZNHFA==} + '@tanstack/router-core@1.171.6': + resolution: {integrity: sha512-Ol6DQ+j6rf/rPVELIzo8LHwOQV2KL+zry3b+39kL/GKrt7YId52WJRAFMzuseY4XceSW+PU7sG/Cc1QkwJr0hg==} engines: {node: '>=20.19'} - '@tanstack/router-generator@1.167.5': - resolution: {integrity: sha512-S7h9qs7WjwF1IlMiOxSv+xB/bSOQ6QS84NlApM9iWLVdkbOVUn7RzTaCqw2qdDa5cPrfSiZJ2wK2a6RFDmFubA==} + '@tanstack/router-generator@1.167.10': + resolution: {integrity: sha512-CjbjWRSo6djLU/C7ncb9IbKUcf4IwpdqhLGngkwKkXaVFXGxEAafA/uhvOCv/UEUVR7NI3tJqqQmxYXGcJPbjw==} engines: {node: '>=20.19'} - '@tanstack/router-plugin@1.168.6': - resolution: {integrity: sha512-u5CNtTWGyFvV8gGWKBt9LdwVGg+ISSBXG/aeeU1/d1YpEKPqlJHS6oN3tvNKOScubeV64HjpeV0tD6fqRfCpvw==} + '@tanstack/router-plugin@1.168.11': + resolution: {integrity: sha512-b2eom/8xCWL/OiWxKub8kYsr8p+kvmB/eXwYGqCWG8vilcJo+eQCSyp54nKt0AZ5k/ET1+eINc+4mwL3bVeAgg==} engines: {node: '>=20.19'} peerDependencies: '@rsbuild/core': '>=1.0.2 || ^2.0.0' - '@tanstack/react-router': ^1.170.4 + '@tanstack/react-router': ^1.170.8 vite: '>=5.0.0 || >=6.0.0 || >=7.0.0 || >=8.0.0' vite-plugin-solid: ^2.11.10 || ^3.0.0-0 webpack: '>=5.92.0' @@ -814,8 +814,8 @@ packages: webpack: optional: true - '@tanstack/router-utils@1.162.0': - resolution: {integrity: sha512-c3GhqhBRCP636B41nf3TKvVz8EWzC5PTZ3I4J4LDH2tVjpxbyFNYsQKRtbNWiMFl+GTtgK4nCha346Wv7j4hcQ==} + '@tanstack/router-utils@1.162.1': + resolution: {integrity: sha512-62layyTGmclHDQS/eidwKRfN1hhCKwViG7iEBcVmL0MXgcAB3OOucWCEcDDGd9Cu11H6b4QQ5oOo47MWIqwz0A==} engines: {node: '>=20.19'} '@tanstack/store@0.9.3': @@ -843,16 +843,16 @@ packages: '@types/byte-size@8.1.2': resolution: {integrity: sha512-jGyVzYu6avI8yuqQCNTZd65tzI8HZrLjKX9sdMqZrGWVlNChu0rf6p368oVEDCYJe5BMx2Ov04tD1wqtgTwGSA==} - '@types/node@25.8.0': - resolution: {integrity: sha512-TCFSk8IZh+iLX1xtksoBVtdmgL+1IX0fC9BeU4QqFSuNdN/K+HUlhqOzEmSYYpZUVsLYcPqc9KX+60iDuninSQ==} + '@types/node@25.9.1': + resolution: {integrity: sha512-xfrlY7UD5rMJk3ZVJP8BNzS28J36YJg+xp+LPXV1TdWxr8uMH5A860QNxYDGQe/ylDSgjxE52Q9VnO7p75tJxg==} '@types/react-dom@19.2.3': resolution: {integrity: sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==} peerDependencies: '@types/react': ^19.2.0 - '@types/react@19.2.14': - resolution: {integrity: sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==} + '@types/react@19.2.15': + resolution: {integrity: sha512-eRwcGNHve+E8qtEQSSRl6urh+rFop4v8gm6O8rGv25CodbvFdLjA1vVQ1KkiFE0w0UPOnb8tDiFKL5lp0rtY5Q==} '@uidotdev/usehooks@2.4.1': resolution: {integrity: sha512-1I+RwWyS+kdv3Mv0Vmc+p0dPYH0DTRAo04HLyXReYBL9AeseDWUJyi4THuksBJcu9F0Pih69Ak150VDnqbVnXg==} @@ -893,10 +893,6 @@ packages: resolution: {integrity: sha512-44mvgtPvohuU/70DdY5Oz2AIrLJ9k6/5x4KmoSvPwO+5Moijo0+N9D0fKbbYZQWP1hNm5CpOf+E01jhxG/r8xg==} engines: {node: '>=14'} - anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} - argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} @@ -914,15 +910,11 @@ packages: babel-dead-code-elimination@1.0.12: resolution: {integrity: sha512-GERT7L2TiYcYDtYk1IpD+ASAYXjKbLTDPhBtYj7X1NuRMDTMtAx9kyBenub1Ev41lo91OHCKdmP+egTDmfQ7Ig==} - baseline-browser-mapping@2.10.30: - resolution: {integrity: sha512-xjOFN16Ha1+Rz4nFYKqHU/LSB+gx/Vi3yQLX7r7sAW+Wa+8hhF2h4pvqTrTMc8+WcDBEunnUurr46Jvv0jk3Vg==} + baseline-browser-mapping@2.10.32: + resolution: {integrity: sha512-wbPvpyjJPC0zdfdKXxqEL3Ea+bOMD/87X4lftiJkkaBiuG6ALQy1SLmEd7BSmVCuwCQsBrCamgBoLyfFDD1EPg==} engines: {node: '>=6.0.0'} hasBin: true - binary-extensions@2.3.0: - resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} - engines: {node: '>=8'} - braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} @@ -959,13 +951,9 @@ packages: resolution: {integrity: sha512-GIjfiT9dbmHRiYi6Nl2yFCq7kkwdkp1W/lp2J99rX0yo9tgJGn3lKQATztIjb5tVtevcBtIdICNWqlq5+E8/Pw==} engines: {pnpm: '>=8'} - chokidar@3.6.0: - resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} - engines: {node: '>= 8.10.0'} - - chokidar@4.0.3: - resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} - engines: {node: '>= 14.16.0'} + chokidar@5.0.0: + resolution: {integrity: sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==} + engines: {node: '>= 20.19.0'} clsx@2.1.1: resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} @@ -1032,8 +1020,8 @@ packages: resolution: {integrity: sha512-DPi0FmjiSU5EvQV0++GFDOJ9ASQUVFh5kD+OzOnYdi7n3Wpm9hWWGfB/O2blfHcMVTL5WkQXSnRiK9makhrcnw==} engines: {node: '>=0.3.1'} - electron-to-chromium@1.5.357: - resolution: {integrity: sha512-NHlTIQDK8fmVwHwuIzmXYEJ1Ewq3D9wDNc0cWXxDGysP6Pb21giwGNkxiTifyKy/4SoPuN5l6GLP1W9Sv7zB2g==} + electron-to-chromium@1.5.361: + resolution: {integrity: sha512-Q6Hts7N9FnJc5LeGRINFvLhCI9xZmNtTDe5ZbcVezQz7cU4a8Aua3GH1b8J2XY8Al9PF+OCwYqhgsOOheMdvkA==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -1091,8 +1079,8 @@ packages: fraction.js@5.3.4: resolution: {integrity: sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==} - framer-motion@12.38.0: - resolution: {integrity: sha512-rFYkY/pigbcswl1XQSb7q424kSTQ8q6eAC+YUsSKooHQYuLdzdHjrt6uxUC+PRAO++q5IS7+TamgIw1AphxR+g==} + framer-motion@12.40.0: + resolution: {integrity: sha512-uaBd3qC1v3KQqBEjwTUd183K6PbS+j0yR9w9VmEOLWA/tnUcSn8Xa3uck7t4dgpDoUss8xQTcj8W2L07lrnLFg==} peerDependencies: '@emotion/is-prop-valid': '*' react: ^18.0.0 || ^19.0.0 @@ -1179,10 +1167,6 @@ packages: is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} - is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} @@ -1358,14 +1342,14 @@ packages: resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} - motion-dom@12.38.0: - resolution: {integrity: sha512-pdkHLD8QYRp8VfiNLb8xIBJis1byQ9gPT3Jnh2jqfFtAsWUA3dEepDlsWe/xMpO8McV+VdpKVcp+E+TGJEtOoA==} + motion-dom@12.40.0: + resolution: {integrity: sha512-HxU3ZaBwNPVQUBQf1xxgq+7JrPNZvjLVxgbpEZL7RrWJnsxOf0/OM+yrHG9ogLQ31Do/r57Oz2gQWPK+6q62mg==} - motion-utils@12.36.0: - resolution: {integrity: sha512-eHWisygbiwVvf6PZ1vhaHCLamvkSbPIeAYxWUuL3a2PD/TROgE7FvfHWTIH4vMl798QLfMw15nRqIaRDXTlYRg==} + motion-utils@12.39.0: + resolution: {integrity: sha512-8nadJAJjTtqRkmRF36FoJTrywK9nnFmnPwnSMyxaOCU7GDjN9RTMJIxx9De8ErM+vpPhMccr/6fo5WciyQLnMQ==} - motion@12.38.0: - resolution: {integrity: sha512-uYfXzeHlgThchzwz5Te47dlv5JOUC7OB4rjJ/7XTUgtBZD8CchMN8qEJ4ZVsUmTyYA44zjV0fBwsiktRuFnn+w==} + motion@12.40.0: + resolution: {integrity: sha512-yjrHUrBFW6kQvjJwRsoiPSAhC5tRwRqNGJWmiJ4CrGnbKp0V88AdzkhBmDoqIsIPfarOe0Uddd37Xq43/gIocA==} peerDependencies: '@emotion/is-prop-valid': '*' react: ^18.0.0 || ^19.0.0 @@ -1389,8 +1373,9 @@ packages: node-addon-api@7.1.1: resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} - node-releases@2.0.44: - resolution: {integrity: sha512-5WUyunoPMsvvEhS8AxHtRzP+oA8UCkJ7YRxatWKjngndhDGLiqEVAQKWjFAiAiuL8zMRGzGSJxFnLetoa43qGQ==} + node-releases@2.0.46: + resolution: {integrity: sha512-GYVXHE2KnrzAfsAjl4uP++evGFCrAU1jta4ubEjIG7YWt/64Gqv66a30yKwWczVjA6j3bM4nBwH7Pk1JmDHaxQ==} + engines: {node: '>=18'} normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} @@ -1451,8 +1436,8 @@ packages: postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - postcss@8.5.14: - resolution: {integrity: sha512-SoSL4+OSEtR99LHFZQiJLkT59C5B1amGO1NzTwj7TT1qCUgUO6hxOvzkOYxD+vMrXBM3XJIKzokoERdqQq/Zmg==} + postcss@8.5.15: + resolution: {integrity: sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==} engines: {node: ^10 || ^12 || >=14} prettier@3.8.3: @@ -1491,13 +1476,9 @@ packages: resolution: {integrity: sha512-sfWGGfavi0xr8Pg0sVsyHMAOziVYKgPLNrS7ig+ivMNb3wbCBw3KxtflsGBAwD3gYQlE/AEZsTLgToRrSCjb0Q==} engines: {node: '>=0.10.0'} - readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} - - readdirp@4.1.2: - resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} - engines: {node: '>= 14.18.0'} + readdirp@5.0.0: + resolution: {integrity: sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==} + engines: {node: '>= 20.19.0'} require-from-string@2.0.2: resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} @@ -1511,17 +1492,17 @@ packages: resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - rolldown@1.0.1: - resolution: {integrity: sha512-X0KQHljNnEkWNqqiz9zJrGunh1B0HgOxLXvnFpCOcadzcy5qohZ3tqMEUg00vncoRovXuK3ZqCT9KnnKzoInFQ==} + rolldown@1.0.2: + resolution: {integrity: sha512-oZx5zVDtVB44AW3eaifgDml1gWRDZGvjcfdxonE4swNPG98PrrXjaO/KrnUjzlMnztCCRVlUueA1kCXhARGk6g==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - sass@1.99.0: - resolution: {integrity: sha512-kgW13M54DUB7IsIRM5LvJkNlpH+WhMpooUcaWGFARkF1Tc82v9mIWkCbCYf+MBvpIUBSeSOTilpZjEPr2VYE6Q==} - engines: {node: '>=14.0.0'} + sass@1.100.0: + resolution: {integrity: sha512-B5j0rYMlinhhOo9tjQebMVVn0TfyXAF+wB3b2ggZUuJ/is/Y+7+JGjirAMxHZ9Z3hIP98NPfamlAkBHa1lAaXQ==} + engines: {node: '>=20.19.0'} hasBin: true scheduler@0.27.0: @@ -1541,8 +1522,8 @@ packages: resolution: {integrity: sha512-46uFvgrXTVxZcUorgSSRZ4y+ieqLLQRMlG4bnCZKW3qI6BZm7Rg4ntMW4p1mILEEBZWrFlcpp0AyIIlM6jD9iw==} engines: {node: '>=10'} - shell-quote@1.8.3: - resolution: {integrity: sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==} + shell-quote@1.8.4: + resolution: {integrity: sha512-VsC6n6vz1ihYYyZZwX7YZSF5l5x36ca17OC+a69h94YqB7X6XLwf+5MOgynYir2SLFUbl8gIYvBo8K8RoNQ6bQ==} engines: {node: '>= 0.4'} signal-exit@4.1.0: @@ -1615,8 +1596,8 @@ packages: peerDependencies: stylelint: ^16.8.2 || ^17.0.0 - stylelint@17.11.1: - resolution: {integrity: sha512-+smN/HqVTggUx3iuAzOi9fPh8SrH+cJWlZrYVldXoJ06orWBhZ4Ue/QEp64oei6pVrAh4w3tG+Y12Vw7MbCFRQ==} + stylelint@17.12.0: + resolution: {integrity: sha512-KIlzWXMHUvgfPUR0R7TK3H80yCIi0uoivUwf+6Az4yrHJD1Q3c1qIkh/H5Z0i/K3QXgtq/UMEkWyBUSUwnpnOg==} engines: {node: '>=20.19.0'} hasBin: true @@ -1679,8 +1660,8 @@ packages: util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - vite@8.0.13: - resolution: {integrity: sha512-MFtjBYgzmSxmgA4RAfjIyXWpGe1oALnjgUTzzV7QLx/TKxCzjtMH6Fd9/eVK+5Fg1qNoz5VAwsmMs/NofrmJvw==} + vite@8.0.14: + resolution: {integrity: sha512-s4BJJ+5y1pYL6Otw51FHhVJQhPnuRinKig64g/1+EUNaJsd3gCKdD31IPFvswUgW9/60QT9oFHbZHbQK5imcxw==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: @@ -1733,8 +1714,8 @@ packages: resolution: {integrity: sha512-OTIk8iR8/aCRWBqvxrzxR0hgxWpnYBblY1S5hDWBQfk/VFmJwzmJgQFN3WsoUKHISv2eAwe+PpbUzyL1CKTLXg==} engines: {node: ^20.17.0 || >=22.9.0} - ws@8.20.1: - resolution: {integrity: sha512-It4dO0K5v//JtTXuPkfEOaI3uUN87iYPnqo/ZzqCoG3g8uhA66QUMs/SrM0YK7/NAu+r4LMh/9dq2A7k+rHs+w==} + ws@8.21.0: + resolution: {integrity: sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -1748,9 +1729,6 @@ packages: yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - zod@3.25.76: - resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} - zod@4.4.3: resolution: {integrity: sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==} @@ -2117,7 +2095,7 @@ snapshots: '@oxc-project/types@0.120.0': {} - '@oxc-project/types@0.130.0': {} + '@oxc-project/types@0.132.0': {} '@parcel/watcher-android-arm64@2.5.6': optional: true @@ -2180,53 +2158,53 @@ snapshots: '@parcel/watcher-win32-x64': 2.5.6 optional: true - '@rolldown/binding-android-arm64@1.0.1': + '@rolldown/binding-android-arm64@1.0.2': optional: true - '@rolldown/binding-darwin-arm64@1.0.1': + '@rolldown/binding-darwin-arm64@1.0.2': optional: true - '@rolldown/binding-darwin-x64@1.0.1': + '@rolldown/binding-darwin-x64@1.0.2': optional: true - '@rolldown/binding-freebsd-x64@1.0.1': + '@rolldown/binding-freebsd-x64@1.0.2': optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.0.1': + '@rolldown/binding-linux-arm-gnueabihf@1.0.2': optional: true - '@rolldown/binding-linux-arm64-gnu@1.0.1': + '@rolldown/binding-linux-arm64-gnu@1.0.2': optional: true - '@rolldown/binding-linux-arm64-musl@1.0.1': + '@rolldown/binding-linux-arm64-musl@1.0.2': optional: true - '@rolldown/binding-linux-ppc64-gnu@1.0.1': + '@rolldown/binding-linux-ppc64-gnu@1.0.2': optional: true - '@rolldown/binding-linux-s390x-gnu@1.0.1': + '@rolldown/binding-linux-s390x-gnu@1.0.2': optional: true - '@rolldown/binding-linux-x64-gnu@1.0.1': + '@rolldown/binding-linux-x64-gnu@1.0.2': optional: true - '@rolldown/binding-linux-x64-musl@1.0.1': + '@rolldown/binding-linux-x64-musl@1.0.2': optional: true - '@rolldown/binding-openharmony-arm64@1.0.1': + '@rolldown/binding-openharmony-arm64@1.0.2': optional: true - '@rolldown/binding-wasm32-wasi@1.0.1': + '@rolldown/binding-wasm32-wasi@1.0.2': dependencies: '@emnapi/core': 1.10.0 '@emnapi/runtime': 1.10.0 '@napi-rs/wasm-runtime': 1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) optional: true - '@rolldown/binding-win32-arm64-msvc@1.0.1': + '@rolldown/binding-win32-arm64-msvc@1.0.2': optional: true - '@rolldown/binding-win32-x64-msvc@1.0.1': + '@rolldown/binding-win32-x64-msvc@1.0.2': optional: true '@rolldown/pluginutils@1.0.1': {} @@ -2241,14 +2219,14 @@ snapshots: '@tanstack/devtools-event-bus@0.4.1': dependencies: - ws: 8.20.1 + ws: 8.21.0 transitivePeerDependencies: - bufferutil - utf-8-validate '@tanstack/devtools-event-client@0.4.3': {} - '@tanstack/devtools-vite@0.7.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(vite@8.0.13(@types/node@25.8.0)(jiti@2.7.0)(sass@1.99.0))': + '@tanstack/devtools-vite@0.7.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(sass@1.100.0))': dependencies: '@tanstack/devtools-client': 0.0.6 '@tanstack/devtools-event-bus': 0.4.1 @@ -2257,7 +2235,7 @@ snapshots: magic-string: 0.30.21 oxc-parser: 0.120.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) picomatch: 4.0.4 - vite: 8.0.13(@types/node@25.8.0)(jiti@2.7.0)(sass@1.99.0) + vite: 8.0.14(@types/node@25.9.1)(jiti@2.7.0)(sass@1.100.0) transitivePeerDependencies: - '@emnapi/core' - '@emnapi/runtime' @@ -2274,7 +2252,7 @@ snapshots: '@tanstack/pacer-lite@0.1.1': {} - '@tanstack/query-core@5.100.10': {} + '@tanstack/query-core@5.100.14': {} '@tanstack/react-form@1.32.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: @@ -2284,16 +2262,16 @@ snapshots: transitivePeerDependencies: - react-dom - '@tanstack/react-query@5.100.10(react@19.2.6)': + '@tanstack/react-query@5.100.14(react@19.2.6)': dependencies: - '@tanstack/query-core': 5.100.10 + '@tanstack/query-core': 5.100.14 react: 19.2.6 - '@tanstack/react-router@1.170.4(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': + '@tanstack/react-router@1.170.8(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': dependencies: '@tanstack/history': 1.162.0 '@tanstack/react-store': 0.9.3(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - '@tanstack/router-core': 1.171.2 + '@tanstack/router-core': 1.171.6 isbot: 5.1.40 react: 19.2.6 react-dom: 19.2.6(react@19.2.6) @@ -2305,27 +2283,27 @@ snapshots: react-dom: 19.2.6(react@19.2.6) use-sync-external-store: 1.6.0(react@19.2.6) - '@tanstack/router-core@1.171.2': + '@tanstack/router-core@1.171.6': dependencies: '@tanstack/history': 1.162.0 cookie-es: 3.1.1 seroval: 1.5.4 seroval-plugins: 1.5.4(seroval@1.5.4) - '@tanstack/router-generator@1.167.5': + '@tanstack/router-generator@1.167.10': dependencies: '@babel/types': 7.29.0 - '@tanstack/router-core': 1.171.2 - '@tanstack/router-utils': 1.162.0 + '@tanstack/router-core': 1.171.6 + '@tanstack/router-utils': 1.162.1 '@tanstack/virtual-file-routes': 1.162.0 jiti: 2.7.0 magic-string: 0.30.21 prettier: 3.8.3 - zod: 3.25.76 + zod: 4.4.3 transitivePeerDependencies: - supports-color - '@tanstack/router-plugin@1.168.6(@tanstack/react-router@1.170.4(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vite@8.0.13(@types/node@25.8.0)(jiti@2.7.0)(sass@1.99.0))': + '@tanstack/router-plugin@1.168.11(@tanstack/react-router@1.170.8(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(sass@1.100.0))': dependencies: '@babel/core': 7.29.0 '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.29.0) @@ -2333,20 +2311,20 @@ snapshots: '@babel/template': 7.28.6 '@babel/traverse': 7.29.0 '@babel/types': 7.29.0 - '@tanstack/router-core': 1.171.2 - '@tanstack/router-generator': 1.167.5 - '@tanstack/router-utils': 1.162.0 + '@tanstack/router-core': 1.171.6 + '@tanstack/router-generator': 1.167.10 + '@tanstack/router-utils': 1.162.1 '@tanstack/virtual-file-routes': 1.162.0 - chokidar: 3.6.0 + chokidar: 5.0.0 unplugin: 3.0.0 - zod: 3.25.76 + zod: 4.4.3 optionalDependencies: - '@tanstack/react-router': 1.170.4(react-dom@19.2.6(react@19.2.6))(react@19.2.6) - vite: 8.0.13(@types/node@25.8.0)(jiti@2.7.0)(sass@1.99.0) + '@tanstack/react-router': 1.170.8(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + vite: 8.0.14(@types/node@25.9.1)(jiti@2.7.0)(sass@1.100.0) transitivePeerDependencies: - supports-color - '@tanstack/router-utils@1.162.0': + '@tanstack/router-utils@1.162.1': dependencies: '@babel/core': 7.29.0 '@babel/generator': 7.29.1 @@ -2385,15 +2363,15 @@ snapshots: '@types/byte-size@8.1.2': {} - '@types/node@25.8.0': + '@types/node@25.9.1': dependencies: undici-types: 7.24.6 - '@types/react-dom@19.2.3(@types/react@19.2.14)': + '@types/react-dom@19.2.3(@types/react@19.2.15)': dependencies: - '@types/react': 19.2.14 + '@types/react': 19.2.15 - '@types/react@19.2.14': + '@types/react@19.2.15': dependencies: csstype: 3.2.3 @@ -2402,10 +2380,10 @@ snapshots: react: 19.2.6 react-dom: 19.2.6(react@19.2.6) - '@vitejs/plugin-react@6.0.2(vite@8.0.13(@types/node@25.8.0)(jiti@2.7.0)(sass@1.99.0))': + '@vitejs/plugin-react@6.0.2(vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(sass@1.100.0))': dependencies: '@rolldown/pluginutils': 1.0.1 - vite: 8.0.13(@types/node@25.8.0)(jiti@2.7.0)(sass@1.99.0) + vite: 8.0.14(@types/node@25.9.1)(jiti@2.7.0)(sass@1.100.0) ajv@8.20.0: dependencies: @@ -2424,22 +2402,17 @@ snapshots: ansis@4.3.0: {} - anymatch@3.1.3: - dependencies: - normalize-path: 3.0.0 - picomatch: 2.3.2 - argparse@2.0.1: {} astral-regex@2.0.0: {} - autoprefixer@10.5.0(postcss@8.5.14): + autoprefixer@10.5.0(postcss@8.5.15): dependencies: browserslist: 4.28.2 caniuse-lite: 1.0.30001793 fraction.js: 5.3.4 picocolors: 1.1.1 - postcss: 8.5.14 + postcss: 8.5.15 postcss-value-parser: 4.2.0 babel-dead-code-elimination@1.0.12: @@ -2451,9 +2424,7 @@ snapshots: transitivePeerDependencies: - supports-color - baseline-browser-mapping@2.10.30: {} - - binary-extensions@2.3.0: {} + baseline-browser-mapping@2.10.32: {} braces@3.0.3: dependencies: @@ -2461,10 +2432,10 @@ snapshots: browserslist@4.28.2: dependencies: - baseline-browser-mapping: 2.10.30 + baseline-browser-mapping: 2.10.32 caniuse-lite: 1.0.30001793 - electron-to-chromium: 1.5.357 - node-releases: 2.0.44 + electron-to-chromium: 1.5.361 + node-releases: 2.0.46 update-browserslist-db: 1.2.3(browserslist@4.28.2) byte-size@9.0.1: {} @@ -2487,21 +2458,9 @@ snapshots: dependencies: '@kurkle/color': 0.3.4 - chokidar@3.6.0: + chokidar@5.0.0: dependencies: - anymatch: 3.1.3 - braces: 3.0.3 - glob-parent: 5.1.2 - is-binary-path: 2.1.0 - is-glob: 4.0.3 - normalize-path: 3.0.0 - readdirp: 3.6.0 - optionalDependencies: - fsevents: 2.3.3 - - chokidar@4.0.3: - dependencies: - readdirp: 4.1.2 + readdirp: 5.0.0 clsx@2.1.1: {} @@ -2547,7 +2506,7 @@ snapshots: diff@8.0.4: {} - electron-to-chromium@1.5.357: {} + electron-to-chromium@1.5.361: {} emoji-regex@8.0.0: {} @@ -2599,10 +2558,10 @@ snapshots: fraction.js@5.3.4: {} - framer-motion@12.38.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6): + framer-motion@12.40.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6): dependencies: - motion-dom: 12.38.0 - motion-utils: 12.36.0 + motion-dom: 12.40.0 + motion-utils: 12.39.0 tslib: 2.8.1 optionalDependencies: react: 19.2.6 @@ -2669,10 +2628,6 @@ snapshots: is-arrayish@0.2.1: {} - is-binary-path@2.1.0: - dependencies: - binary-extensions: 2.3.0 - is-extglob@2.1.1: {} is-fullwidth-code-point@3.0.0: {} @@ -2718,7 +2673,7 @@ snapshots: launch-editor@2.13.2: dependencies: picocolors: 1.1.1 - shell-quote: 1.8.3 + shell-quote: 1.8.4 lightningcss-android-arm64@1.32.0: optional: true @@ -2794,15 +2749,15 @@ snapshots: braces: 3.0.3 picomatch: 2.3.2 - motion-dom@12.38.0: + motion-dom@12.40.0: dependencies: - motion-utils: 12.36.0 + motion-utils: 12.39.0 - motion-utils@12.36.0: {} + motion-utils@12.39.0: {} - motion@12.38.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6): + motion@12.40.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6): dependencies: - framer-motion: 12.38.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6) + framer-motion: 12.40.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6) tslib: 2.8.1 optionalDependencies: react: 19.2.6 @@ -2815,7 +2770,7 @@ snapshots: node-addon-api@7.1.1: optional: true - node-releases@2.0.44: {} + node-releases@2.0.46: {} normalize-path@3.0.0: {} @@ -2872,13 +2827,13 @@ snapshots: postcss-resolve-nested-selector@0.1.6: {} - postcss-safe-parser@7.0.1(postcss@8.5.14): + postcss-safe-parser@7.0.1(postcss@8.5.15): dependencies: - postcss: 8.5.14 + postcss: 8.5.15 - postcss-scss@4.0.9(postcss@8.5.14): + postcss-scss@4.0.9(postcss@8.5.15): dependencies: - postcss: 8.5.14 + postcss: 8.5.15 postcss-selector-parser@7.1.1: dependencies: @@ -2887,7 +2842,7 @@ snapshots: postcss-value-parser@4.2.0: {} - postcss@8.5.14: + postcss@8.5.15: dependencies: nanoid: 3.3.12 picocolors: 1.1.1 @@ -2919,11 +2874,7 @@ snapshots: react@19.2.6: {} - readdirp@3.6.0: - dependencies: - picomatch: 2.3.2 - - readdirp@4.1.2: {} + readdirp@5.0.0: {} require-from-string@2.0.2: {} @@ -2931,34 +2882,34 @@ snapshots: reusify@1.1.0: {} - rolldown@1.0.1: + rolldown@1.0.2: dependencies: - '@oxc-project/types': 0.130.0 + '@oxc-project/types': 0.132.0 '@rolldown/pluginutils': 1.0.1 optionalDependencies: - '@rolldown/binding-android-arm64': 1.0.1 - '@rolldown/binding-darwin-arm64': 1.0.1 - '@rolldown/binding-darwin-x64': 1.0.1 - '@rolldown/binding-freebsd-x64': 1.0.1 - '@rolldown/binding-linux-arm-gnueabihf': 1.0.1 - '@rolldown/binding-linux-arm64-gnu': 1.0.1 - '@rolldown/binding-linux-arm64-musl': 1.0.1 - '@rolldown/binding-linux-ppc64-gnu': 1.0.1 - '@rolldown/binding-linux-s390x-gnu': 1.0.1 - '@rolldown/binding-linux-x64-gnu': 1.0.1 - '@rolldown/binding-linux-x64-musl': 1.0.1 - '@rolldown/binding-openharmony-arm64': 1.0.1 - '@rolldown/binding-wasm32-wasi': 1.0.1 - '@rolldown/binding-win32-arm64-msvc': 1.0.1 - '@rolldown/binding-win32-x64-msvc': 1.0.1 + '@rolldown/binding-android-arm64': 1.0.2 + '@rolldown/binding-darwin-arm64': 1.0.2 + '@rolldown/binding-darwin-x64': 1.0.2 + '@rolldown/binding-freebsd-x64': 1.0.2 + '@rolldown/binding-linux-arm-gnueabihf': 1.0.2 + '@rolldown/binding-linux-arm64-gnu': 1.0.2 + '@rolldown/binding-linux-arm64-musl': 1.0.2 + '@rolldown/binding-linux-ppc64-gnu': 1.0.2 + '@rolldown/binding-linux-s390x-gnu': 1.0.2 + '@rolldown/binding-linux-x64-gnu': 1.0.2 + '@rolldown/binding-linux-x64-musl': 1.0.2 + '@rolldown/binding-openharmony-arm64': 1.0.2 + '@rolldown/binding-wasm32-wasi': 1.0.2 + '@rolldown/binding-win32-arm64-msvc': 1.0.2 + '@rolldown/binding-win32-x64-msvc': 1.0.2 run-parallel@1.2.0: dependencies: queue-microtask: 1.2.3 - sass@1.99.0: + sass@1.100.0: dependencies: - chokidar: 4.0.3 + chokidar: 5.0.0 immutable: 5.1.5 source-map-js: 1.2.1 optionalDependencies: @@ -2974,7 +2925,7 @@ snapshots: seroval@1.5.4: {} - shell-quote@1.8.3: {} + shell-quote@1.8.4: {} signal-exit@4.1.0: {} @@ -3007,33 +2958,33 @@ snapshots: dependencies: ansi-regex: 6.2.2 - stylelint-config-recommended-scss@17.0.1(postcss@8.5.14)(stylelint@17.11.1(typescript@6.0.3)): + stylelint-config-recommended-scss@17.0.1(postcss@8.5.15)(stylelint@17.12.0(typescript@6.0.3)): dependencies: - postcss-scss: 4.0.9(postcss@8.5.14) - stylelint: 17.11.1(typescript@6.0.3) - stylelint-config-recommended: 18.0.0(stylelint@17.11.1(typescript@6.0.3)) - stylelint-scss: 7.1.1(stylelint@17.11.1(typescript@6.0.3)) + postcss-scss: 4.0.9(postcss@8.5.15) + stylelint: 17.12.0(typescript@6.0.3) + stylelint-config-recommended: 18.0.0(stylelint@17.12.0(typescript@6.0.3)) + stylelint-scss: 7.1.1(stylelint@17.12.0(typescript@6.0.3)) optionalDependencies: - postcss: 8.5.14 + postcss: 8.5.15 - stylelint-config-recommended@18.0.0(stylelint@17.11.1(typescript@6.0.3)): + stylelint-config-recommended@18.0.0(stylelint@17.12.0(typescript@6.0.3)): dependencies: - stylelint: 17.11.1(typescript@6.0.3) + stylelint: 17.12.0(typescript@6.0.3) - stylelint-config-standard-scss@17.0.0(postcss@8.5.14)(stylelint@17.11.1(typescript@6.0.3)): + stylelint-config-standard-scss@17.0.0(postcss@8.5.15)(stylelint@17.12.0(typescript@6.0.3)): dependencies: - stylelint: 17.11.1(typescript@6.0.3) - stylelint-config-recommended-scss: 17.0.1(postcss@8.5.14)(stylelint@17.11.1(typescript@6.0.3)) - stylelint-config-standard: 40.0.0(stylelint@17.11.1(typescript@6.0.3)) + stylelint: 17.12.0(typescript@6.0.3) + stylelint-config-recommended-scss: 17.0.1(postcss@8.5.15)(stylelint@17.12.0(typescript@6.0.3)) + stylelint-config-standard: 40.0.0(stylelint@17.12.0(typescript@6.0.3)) optionalDependencies: - postcss: 8.5.14 + postcss: 8.5.15 - stylelint-config-standard@40.0.0(stylelint@17.11.1(typescript@6.0.3)): + stylelint-config-standard@40.0.0(stylelint@17.12.0(typescript@6.0.3)): dependencies: - stylelint: 17.11.1(typescript@6.0.3) - stylelint-config-recommended: 18.0.0(stylelint@17.11.1(typescript@6.0.3)) + stylelint: 17.12.0(typescript@6.0.3) + stylelint-config-recommended: 18.0.0(stylelint@17.12.0(typescript@6.0.3)) - stylelint-scss@7.1.1(stylelint@17.11.1(typescript@6.0.3)): + stylelint-scss@7.1.1(stylelint@17.12.0(typescript@6.0.3)): dependencies: '@csstools/css-calc': 3.2.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) @@ -3046,9 +2997,9 @@ snapshots: postcss-resolve-nested-selector: 0.1.6 postcss-selector-parser: 7.1.1 postcss-value-parser: 4.2.0 - stylelint: 17.11.1(typescript@6.0.3) + stylelint: 17.12.0(typescript@6.0.3) - stylelint@17.11.1(typescript@6.0.3): + stylelint@17.12.0(typescript@6.0.3): dependencies: '@csstools/css-calc': 3.2.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) @@ -3076,8 +3027,8 @@ snapshots: micromatch: 4.0.8 normalize-path: 3.0.0 picocolors: 1.1.1 - postcss: 8.5.14 - postcss-safe-parser: 7.0.1(postcss@8.5.14) + postcss: 8.5.15 + postcss-safe-parser: 7.0.1(postcss@8.5.15) postcss-selector-parser: 7.1.1 postcss-value-parser: 4.2.0 string-width: 8.2.1 @@ -3143,18 +3094,18 @@ snapshots: util-deprecate@1.0.2: {} - vite@8.0.13(@types/node@25.8.0)(jiti@2.7.0)(sass@1.99.0): + vite@8.0.14(@types/node@25.9.1)(jiti@2.7.0)(sass@1.100.0): dependencies: lightningcss: 1.32.0 picomatch: 4.0.4 - postcss: 8.5.14 - rolldown: 1.0.1 + postcss: 8.5.15 + rolldown: 1.0.2 tinyglobby: 0.2.16 optionalDependencies: - '@types/node': 25.8.0 + '@types/node': 25.9.1 fsevents: 2.3.3 jiti: 2.7.0 - sass: 1.99.0 + sass: 1.100.0 webpack-virtual-modules@0.6.2: {} @@ -3166,16 +3117,14 @@ snapshots: dependencies: signal-exit: 4.1.0 - ws@8.20.1: {} + ws@8.21.0: {} yallist@3.1.1: {} - zod@3.25.76: {} - zod@4.4.3: {} - zustand@5.0.13(@types/react@19.2.14)(react@19.2.6)(use-sync-external-store@1.6.0(react@19.2.6)): + zustand@5.0.13(@types/react@19.2.15)(react@19.2.6)(use-sync-external-store@1.6.0(react@19.2.6)): optionalDependencies: - '@types/react': 19.2.14 + '@types/react': 19.2.15 react: 19.2.6 use-sync-external-store: 1.6.0(react@19.2.6) diff --git a/package.json b/package.json index 52431454..a4af3395 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "@react-hook/resize-observer": "^2.0.2", "@stablelib/base64": "^2.0.1", "@stablelib/x25519": "^2.0.1", - "@tanstack/query-core": "^5.100.11", + "@tanstack/query-core": "^5.100.14", "@tanstack/react-virtual": "^3.13.25", "@tauri-apps/api": "^2.11.0", "@tauri-apps/plugin-clipboard-manager": "^2.3.2", @@ -67,8 +67,8 @@ "fast-deep-equal": "^3.1.3", "file-saver": "^2.0.5", "get-text-width": "^1.0.3", - "html-react-parser": "^6.1.1", - "itertools": "^2.7.0", + "html-react-parser": "^6.1.2", + "itertools": "^2.7.1", "js-base64": "^3.7.8", "lodash-es": "^4.18.1", "merge-refs": "^2.0.0", @@ -81,7 +81,7 @@ "react-auth-code-input": "^3.2.1", "react-click-away-listener": "^2.4.1", "react-dom": "^19.2.6", - "react-hook-form": "^7.76.0", + "react-hook-form": "^7.76.1", "react-hotkeys-hook": "^5.3.2", "react-loading-skeleton": "^3.5.0", "react-markdown": "^10.1.0", @@ -100,8 +100,8 @@ "@biomejs/biome": "^2.4.15", "@hookform/devtools": "^4.4.0", "@svgr/cli": "^8.1.0", - "@tanstack/react-query": "^5.100.11", - "@tanstack/react-query-devtools": "^5.100.11", + "@tanstack/react-query": "^5.100.14", + "@tanstack/react-query-devtools": "^5.100.14", "@tauri-apps/cli": "^2.11.2", "@types/file-saver": "^2.0.7", "@types/lodash-es": "^4.17.12", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 49a8ff7c..1791b2d8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,7 +13,7 @@ importers: version: 0.27.19(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@hookform/resolvers': specifier: ^3.10.0 - version: 3.10.0(react-hook-form@7.76.0(react@19.2.6)) + version: 3.10.0(react-hook-form@7.76.1(react@19.2.6)) '@react-hook/resize-observer': specifier: ^2.0.2 version: 2.0.2(react@19.2.6) @@ -24,8 +24,8 @@ importers: specifier: ^2.0.1 version: 2.0.1 '@tanstack/query-core': - specifier: ^5.100.11 - version: 5.100.11 + specifier: ^5.100.14 + version: 5.100.14 '@tanstack/react-virtual': specifier: ^3.13.25 version: 3.13.25(react-dom@19.2.6(react@19.2.6))(react@19.2.6) @@ -102,11 +102,11 @@ importers: specifier: ^1.0.3 version: 1.0.3 html-react-parser: - specifier: ^6.1.1 - version: 6.1.1(@types/react@19.2.15)(react@19.2.6) + specifier: ^6.1.2 + version: 6.1.2(@types/react@19.2.15)(react@19.2.6) itertools: - specifier: ^2.7.0 - version: 2.7.0 + specifier: ^2.7.1 + version: 2.7.1 js-base64: specifier: ^3.7.8 version: 3.7.8 @@ -144,8 +144,8 @@ importers: specifier: ^19.2.6 version: 19.2.6(react@19.2.6) react-hook-form: - specifier: ^7.76.0 - version: 7.76.0(react@19.2.6) + specifier: ^7.76.1 + version: 7.76.1(react@19.2.6) react-hotkeys-hook: specifier: ^5.3.2 version: 5.3.2(react-dom@19.2.6(react@19.2.6))(react@19.2.6) @@ -196,11 +196,11 @@ importers: specifier: ^8.1.0 version: 8.1.0(typescript@5.9.3) '@tanstack/react-query': - specifier: ^5.100.11 - version: 5.100.11(react@19.2.6) + specifier: ^5.100.14 + version: 5.100.14(react@19.2.6) '@tanstack/react-query-devtools': - specifier: ^5.100.11 - version: 5.100.11(@tanstack/react-query@5.100.11(react@19.2.6))(react@19.2.6) + specifier: ^5.100.14 + version: 5.100.14(@tanstack/react-query@5.100.14(react@19.2.6))(react@19.2.6) '@tauri-apps/cli': specifier: ^2.11.2 version: 2.11.2 @@ -852,86 +852,86 @@ packages: peerDependencies: '@svgr/core': '*' - '@swc/core-darwin-arm64@1.15.33': - resolution: {integrity: sha512-N+L0uXhuO7FIfzqwgxmzv0zIpV0qEp8wPX3QQs2p4atjMoywup2JTeDlXPw+z9pWJGCae3JjM+tZ6myclI+2gA==} + '@swc/core-darwin-arm64@1.15.40': + resolution: {integrity: sha512-PaYyclfmQ++77D8ityYvmmVzHv9aG8ROwt2GfG6/ccloy4Hgf80qtOnzb9VYvPsUT7Ty1uhuDRhv3XYpf62qhQ==} engines: {node: '>=10'} cpu: [arm64] os: [darwin] - '@swc/core-darwin-x64@1.15.33': - resolution: {integrity: sha512-/Il4QHSOhV4FekbsDtkrNmKbsX26oSysvgrRswa/RYOHXAkwXDbB4jaeKq6PsJLSPkzJ2KzQ061gtBnk0vNHfA==} + '@swc/core-darwin-x64@1.15.40': + resolution: {integrity: sha512-HbbPzvfLBUXjIB1Ezks+//lNUjmLjfyd63XSwprJgrZaXYdm70kohXPJUWdqKZozolFxbPaO+xtBaiUp6BoueA==} engines: {node: '>=10'} cpu: [x64] os: [darwin] - '@swc/core-linux-arm-gnueabihf@1.15.33': - resolution: {integrity: sha512-C64hBnBxq4viOPQ8hlx+2lJ23bzZBGnjw7ryALmS+0Q3zHmwO8lw1/DArLENw4Q18/0w5wdEO1k3m1wWNtKGqQ==} + '@swc/core-linux-arm-gnueabihf@1.15.40': + resolution: {integrity: sha512-SlRZsCjOCPR2LvFs0Ri/Xrx/5o5TCt8vl4gW6mX1hEZOG0a625RxzRHpHdAQNGykmAN/7IeaFAJG+QnNmxlHcA==} engines: {node: '>=10'} cpu: [arm] os: [linux] - '@swc/core-linux-arm64-gnu@1.15.33': - resolution: {integrity: sha512-TRJfnJbX3jqpxRDRoieMzRiCBS5jOmXNb3iQXmcgjFEHKLnAgK1RZRU8Cq1MsPqO4jAJp/ld1G4O3fXuxv85uw==} + '@swc/core-linux-arm64-gnu@1.15.40': + resolution: {integrity: sha512-Q8byxJt2fh8CR3EUX6snBpy47AoBVm+In/+Z3rjDHMjC38ZvR9/gtUUNCT0tfrn4EdVsO8/QPi59nxrxvqxvBQ==} engines: {node: '>=10'} cpu: [arm64] os: [linux] libc: [glibc] - '@swc/core-linux-arm64-musl@1.15.33': - resolution: {integrity: sha512-il7tYM+CpUNzieQbwAjFT1P8zqAhmGWNAGhQZBnxurXZ0aNn+5nqYFTEUKNZl7QibtT0uQXzTZrNGHCIj6Y1Og==} + '@swc/core-linux-arm64-musl@1.15.40': + resolution: {integrity: sha512-4z0MgHU+7M0pZDqBN1El7mFXDI1SBwinfcUkAyA4v8QrhOIUOZltySt2aStQLZGrdXVXM4Y4ylfiTC04ED+MoQ==} engines: {node: '>=10'} cpu: [arm64] os: [linux] libc: [musl] - '@swc/core-linux-ppc64-gnu@1.15.33': - resolution: {integrity: sha512-ZtNBwN0Z7CFj9Il0FcPaKdjgP7URyKu/3RfH46vq+0paOBqLj4NYldD6Qo//Duif/7IOtAraUfDOmp0PLAufog==} + '@swc/core-linux-ppc64-gnu@1.15.40': + resolution: {integrity: sha512-fLI4iUgeSZu0eRWUXwe6YzPFx9gHbFiPkl8Rp3mJfP8OpNR3nTQCGPvHdDh9xniW7mVvgMY4ni7A4VzqI1KrpA==} engines: {node: '>=10'} cpu: [ppc64] os: [linux] libc: [glibc] - '@swc/core-linux-s390x-gnu@1.15.33': - resolution: {integrity: sha512-De1IyajoOmhOYYjw/lx66bKlyDpHZTueqwpDrWgf5O7T6d1ODeJJO9/OqMBmrBQc5C+dNnlmIufHsp4QVCWufA==} + '@swc/core-linux-s390x-gnu@1.15.40': + resolution: {integrity: sha512-YqeKMAb7d4nQSGMJQ454IlaCENpzcDqhvBE9+CPfdnYpnUXxd+BSrB6Xk0YjW8UyoEhUj4p6quATCxbsp6J3jg==} engines: {node: '>=10'} cpu: [s390x] os: [linux] libc: [glibc] - '@swc/core-linux-x64-gnu@1.15.33': - resolution: {integrity: sha512-mGTH0YxmUN+x6vRN/I6NOk5X0ogNktkwPnJ94IMvR7QjhRDwL0O8RXEDhyUM0YtwWrryBOqaJQBX4zruxEPRGw==} + '@swc/core-linux-x64-gnu@1.15.40': + resolution: {integrity: sha512-7HOuS1iGcme/j/TuL1TfmmLGiMQrjv/GmjyZeydl00FKPtpGXEldwqfI56xgd1YzrzoB2svWjxbGGyQ0TEASxg==} engines: {node: '>=10'} cpu: [x64] os: [linux] libc: [glibc] - '@swc/core-linux-x64-musl@1.15.33': - resolution: {integrity: sha512-hj628ZkSEJf6zMf5VMbYrG2O6QqyTIp2qwY6VlCjvIa9lAEZ5c2lfPblCLVGYubTeLJDxadLB/CxqQYOQABeEQ==} + '@swc/core-linux-x64-musl@1.15.40': + resolution: {integrity: sha512-h4kZYHc7dpc9P9u4brRJaS8Pl7tPVHAeiLSzw7T5RfIJgAoSdaCMKzI/2Uay9gFhaw8uyCDl0L5q37r0EpAfIA==} engines: {node: '>=10'} cpu: [x64] os: [linux] libc: [musl] - '@swc/core-win32-arm64-msvc@1.15.33': - resolution: {integrity: sha512-GV2oohtN2/5+KSccl86VULu3aT+LrISC8uzgSq0FRnikpD+Zwc+sBlXmoKQ+Db6jI57ITUOIB8jRkdGMABC29g==} + '@swc/core-win32-arm64-msvc@1.15.40': + resolution: {integrity: sha512-+mQgKZXSj6mV38Zh05QaxSjUDmGP/R2JWlXZTDLSPkDzHU6p3GxN9eeSf5dfyDVU86946fmCvSzyl/ucImx8+A==} engines: {node: '>=10'} cpu: [arm64] os: [win32] - '@swc/core-win32-ia32-msvc@1.15.33': - resolution: {integrity: sha512-gtyvzSNR8DHKfFEA2uqb8Ld1myqi6uEg2jyeUq3ikn5ytYs7H8RpZYC8mdy4NXr8hfcdJfCLXPlYaqqfBXpoEQ==} + '@swc/core-win32-ia32-msvc@1.15.40': + resolution: {integrity: sha512-yvwdPLGd25mcj/mNatjNQ0lZujtQD6psH3v9PNmMb+fSzjbNG8KIDxjFWrcV+fsFVLOkyOmdJsFmX7NAFjVyPw==} engines: {node: '>=10'} cpu: [ia32] os: [win32] - '@swc/core-win32-x64-msvc@1.15.33': - resolution: {integrity: sha512-d6fRqQSkJI+kmMEBWaDQ7TMl8+YjLYbwRUPZQ9DY0ORBJeTzOrG0twvfvlZ2xgw6jA0ScQKgfBm4vHLSLl5Hqg==} + '@swc/core-win32-x64-msvc@1.15.40': + resolution: {integrity: sha512-OXtKsLU1bVtInzzDEAY2sYiF/rl4tvAnLLLpuMp3HzAOQZ5A+i69AKDhA1YLQTaMAqO3vzyYNVAYVRMPtSYD4w==} engines: {node: '>=10'} cpu: [x64] os: [win32] - '@swc/core@1.15.33': - resolution: {integrity: sha512-jOlwnFV2xhuuZeAUILGFULeR6vDPfijEJ57evfocwznQldLU3w2cZ9bSDryY9ip+AsM3r1NJKzf47V2NXebkeQ==} + '@swc/core@1.15.40': + resolution: {integrity: sha512-2kwzJikRvgtNAG7MwVZY2vEzZjTxKIq5jXOihuSV/8U+Hej8Va22t65aKnJZs3P+NwojZvR8Mf8kyM7O+V8sQg==} engines: {node: '>=10'} peerDependencies: '@swc/helpers': '>=0.5.17' @@ -945,20 +945,20 @@ packages: '@swc/types@0.1.26': resolution: {integrity: sha512-lyMwd7WGgG79RS7EERZV3T8wMdmPq3xwyg+1nmAM64kIhx5yl+juO2PYIHb7vTiPgPCj8LYjsNV2T5wiQHUEaw==} - '@tanstack/query-core@5.100.11': - resolution: {integrity: sha512-lmE0994apShXPj8CUxgx4ch5yUJhE9k/+tVwihBvPOyerACWdBocfFg24t8+0RhtlTd7tEgchDkhlCxNssvDxw==} + '@tanstack/query-core@5.100.14': + resolution: {integrity: sha512-5X41dGpxgeaHISCRW2oYwcSycZeULZzAunaudXT9ov1KOTj9xwt0CH6hbwqP1/z74ZWF7rYFnDpyYH07XFcZew==} - '@tanstack/query-devtools@5.100.11': - resolution: {integrity: sha512-47rVBDuGMW/A4ekt3YQdz+q0JSIwktwGnWCYyQUvSs2/g/Oa+6Fi2/IQk4/Y4vf6u1uwI7hOogHslgMC8f3X/Q==} + '@tanstack/query-devtools@5.100.14': + resolution: {integrity: sha512-g96SmSSQecYTYcyuAMRXr895GplJv01UGt7qttQWPOUyZ5EGz5tbRc589bMc2m5BsPFD6O0PCEAHdbDYNP6UBw==} - '@tanstack/react-query-devtools@5.100.11': - resolution: {integrity: sha512-75RFlJEG53Ed/Cxe5WLmgIpOElPNpgLZq7h0fLFnM5XwTYxSTk1rX/gC6MqGVXsSdrbP7zn7hPSJx9MinwiUHA==} + '@tanstack/react-query-devtools@5.100.14': + resolution: {integrity: sha512-JkP5VDgKOw3t/QSA1OABRHEqx8BuNs5MfvZRooNqdvN57SzTuGq3fKR1a2IH5rqa5HDLUm+FOXUEnB9ueHiLzg==} peerDependencies: - '@tanstack/react-query': ^5.100.11 + '@tanstack/react-query': ^5.100.14 react: ^18 || ^19 - '@tanstack/react-query@5.100.11': - resolution: {integrity: sha512-J0f9s5x3LE1450nNNfYx+e/n0DMa0uOBdFJUy5r0RvmsXd4nB/n0rbHtHI1vYXhikNFan+wf51p6Tmp4c8ucrg==} + '@tanstack/react-query@5.100.14': + resolution: {integrity: sha512-oOr6aRdSFEwWhzxEkD/9ZcItM3+LjBSkeVmadWKwUssAHTsqd/7bOjWrX4AbvEkoEhgAxzN0Xk6H/aYzXiYBAw==} peerDependencies: react: ^18 || ^19 @@ -1248,8 +1248,8 @@ packages: resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} engines: {node: 18 || 20 || >=22} - baseline-browser-mapping@2.10.31: - resolution: {integrity: sha512-MujYO3eP72uvmSE0i4wltsodRfIpZATP3jvzRNRGGxgzId7aVocVJJV3nf01qnzzKFGxQVC9bpWxl5cjxTr/7Q==} + baseline-browser-mapping@2.10.32: + resolution: {integrity: sha512-wbPvpyjJPC0zdfdKXxqEL3Ea+bOMD/87X4lftiJkkaBiuG6ALQy1SLmEd7BSmVCuwCQsBrCamgBoLyfFDD1EPg==} engines: {node: '>=6.0.0'} hasBin: true @@ -1560,8 +1560,8 @@ packages: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} - electron-to-chromium@1.5.360: - resolution: {integrity: sha512-GkcBt6YYAw9SxFWn+xVar4cLVGlXVuswwtRLBozi2zp0GjXs4ZnOrqV4zbXzg35n7w81hCkyJNYicgXlVHAmBA==} + electron-to-chromium@1.5.361: + resolution: {integrity: sha512-Q6Hts7N9FnJc5LeGRINFvLhCI9xZmNtTDe5ZbcVezQz7cU4a8Aua3GH1b8J2XY8Al9PF+OCwYqhgsOOheMdvkA==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -1589,8 +1589,8 @@ packages: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} - es-object-atoms@1.1.1: - resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} + es-object-atoms@1.1.2: + resolution: {integrity: sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==} engines: {node: '>= 0.4'} es-set-tostringtag@2.1.0: @@ -1774,8 +1774,8 @@ packages: html-dom-parser@7.1.0: resolution: {integrity: sha512-83BgaFSW/Sj6QTotGenvPvKfGxFzpFfrJNYes77mzqnq+YjVm12d4qeG0+108w4ejnam/+nCnnLuyyJlXkuPtA==} - html-react-parser@6.1.1: - resolution: {integrity: sha512-TitVBqKNyZYGVutHdALEtaNZV29QmuBgJcqeWnF4voLunG6YBlMpnm5XCVHQhxhUPW14nw1LW27NReGbCfPU0A==} + html-react-parser@6.1.2: + resolution: {integrity: sha512-mV2hG5kvuC7tqND9kWwzOqlnWue8KLf8/OtT46WFsH9qvk/4t3D3SQTBgGRykzmroRUA8md63965DFzljNjHQQ==} peerDependencies: '@types/react': 0.14 || 15 || 16 || 17 || 18 || 19 react: 0.14 || 15 || 16 || 17 || 18 || 19 @@ -1946,8 +1946,8 @@ packages: isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - itertools@2.7.0: - resolution: {integrity: sha512-lAzdYJo4Yy35HitzvAkaRej8GeWuow2B1mQ8T1KCvFjEIvSan87odXF8L2iAEw5f+jG7PLnwpF9hLqfJirKePw==} + itertools@2.7.1: + resolution: {integrity: sha512-xrbTDDdUfkJhM4EzYOwwzEf2ksPT5WLgQ5i2X9X5yUpcmXJPEjeAnpMl1tIrYDzuCD19/AEH+cbLunQHGn8v7w==} engines: {node: '>=22'} js-base64@3.7.8: @@ -2053,8 +2053,8 @@ packages: lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - linkify-it@5.0.0: - resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} + linkify-it@5.0.1: + resolution: {integrity: sha512-wVoTjP4Q6R0NW5hiZkVJaFZPWgtXfoGF+6LucL3/FtiNjmcHhYjEr5f1Kqjirc1nBW07J/ZuRFumqr2oqccEWg==} little-state-machine@4.8.1: resolution: {integrity: sha512-liPHqaWMQ7rzZryQUDnbZ1Gclnnai3dIyaJ0nAgwZRXMzqbYrydrlCI0NDojRUbE5VYh5vu6hygEUZiH77nQkQ==} @@ -2087,8 +2087,8 @@ packages: lunr@2.3.9: resolution: {integrity: sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==} - markdown-it@14.1.1: - resolution: {integrity: sha512-BuU2qnTti9YKgK5N+IeMubp14ZUKUUw7yeJbkjtosvHiP0AZ5c8IAgEMk79D0eC8F23r4Ac/q8cAIFdm2FtyoA==} + markdown-it@14.2.0: + resolution: {integrity: sha512-1TGiQiJVRQ3NPmZH6sx5Cfnmg6GQm9jvC1ch4TK511NjSJvjzKLzn5pPfZRNZkRPZP0HqCioSndqH8v2nRaWVQ==} hasBin: true math-intrinsics@1.1.0: @@ -2255,8 +2255,8 @@ packages: node-addon-api@7.1.1: resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} - node-releases@2.0.45: - resolution: {integrity: sha512-iIbHXV9eBB2nB0wa7oTsrrXq+qQt+9SIlx9AX3T96YgobtEQfis5n6TJ6vV+3QP8DwdriEAcGhARaFCu37peBg==} + node-releases@2.0.46: + resolution: {integrity: sha512-GYVXHE2KnrzAfsAjl4uP++evGFCrAU1jta4ubEjIG7YWt/64Gqv66a30yKwWczVjA6j3bM4nBwH7Pk1JmDHaxQ==} engines: {node: '>=18'} normalize-package-data@2.5.0: @@ -2399,8 +2399,8 @@ packages: peerDependencies: react: ^19.2.6 - react-hook-form@7.76.0: - resolution: {integrity: sha512-eKtLGgFeSgkHqQD8J59AMZ9a4uD1D83iSIzt4YlTGD7liDen5rrjcUO1rVIGd9yC1gofryjtHbv+4ny4hkLWlw==} + react-hook-form@7.76.1: + resolution: {integrity: sha512-rYM7tPiWlu3nZchkR/ex7piyzui2vFPyaLnXnI/RnblB/L4qfMmyses8llJVtF1NpE9WBBsJlGtcSZzPCXW1qQ==} engines: {node: '>=18.0.0'} peerDependencies: react: ^16.8.0 || ^17 || ^18 || ^19 @@ -2593,8 +2593,8 @@ packages: resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} engines: {node: '>=0.10.0'} - shell-quote@1.8.3: - resolution: {integrity: sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==} + shell-quote@1.8.4: + resolution: {integrity: sha512-VsC6n6vz1ihYYyZZwX7YZSF5l5x36ca17OC+a69h94YqB7X6XLwf+5MOgynYir2SLFUbl8gIYvBo8K8RoNQ6bQ==} engines: {node: '>= 0.4'} side-channel-list@1.0.1: @@ -2677,6 +2677,9 @@ packages: style-to-js@1.1.21: resolution: {integrity: sha512-RjQetxJrrUJLQPHbLku6U/ocGtzyjbJMP9lCNK7Ag0CNh690nSH8woqWH9u16nMjYBAok+i7JO1NP2pOy8IsPQ==} + style-to-js@2.0.0: + resolution: {integrity: sha512-amkl/SwHF/Gb430+eOiN+XToZ6VsD2nota1kCXps4k1xagZOniEVNm8zKYm7RrGm2Q6d6hjnZdqebFIunoSJng==} + style-to-object@1.0.14: resolution: {integrity: sha512-LIN7rULI0jBscWQYaSswptyderlarFkjQ+t79nzty8tcIAceVomEVlLzH5VP4Cmsv6MtKhs7qaAiwlcp+Mgaxw==} @@ -3230,9 +3233,9 @@ snapshots: - '@types/react' - supports-color - '@hookform/resolvers@3.10.0(react-hook-form@7.76.0(react@19.2.6))': + '@hookform/resolvers@3.10.0(react-hook-form@7.76.1(react@19.2.6))': dependencies: - react-hook-form: 7.76.0(react@19.2.6) + react-hook-form: 7.76.1(react@19.2.6) '@jridgewell/gen-mapping@0.3.13': dependencies: @@ -3554,59 +3557,59 @@ snapshots: transitivePeerDependencies: - typescript - '@swc/core-darwin-arm64@1.15.33': + '@swc/core-darwin-arm64@1.15.40': optional: true - '@swc/core-darwin-x64@1.15.33': + '@swc/core-darwin-x64@1.15.40': optional: true - '@swc/core-linux-arm-gnueabihf@1.15.33': + '@swc/core-linux-arm-gnueabihf@1.15.40': optional: true - '@swc/core-linux-arm64-gnu@1.15.33': + '@swc/core-linux-arm64-gnu@1.15.40': optional: true - '@swc/core-linux-arm64-musl@1.15.33': + '@swc/core-linux-arm64-musl@1.15.40': optional: true - '@swc/core-linux-ppc64-gnu@1.15.33': + '@swc/core-linux-ppc64-gnu@1.15.40': optional: true - '@swc/core-linux-s390x-gnu@1.15.33': + '@swc/core-linux-s390x-gnu@1.15.40': optional: true - '@swc/core-linux-x64-gnu@1.15.33': + '@swc/core-linux-x64-gnu@1.15.40': optional: true - '@swc/core-linux-x64-musl@1.15.33': + '@swc/core-linux-x64-musl@1.15.40': optional: true - '@swc/core-win32-arm64-msvc@1.15.33': + '@swc/core-win32-arm64-msvc@1.15.40': optional: true - '@swc/core-win32-ia32-msvc@1.15.33': + '@swc/core-win32-ia32-msvc@1.15.40': optional: true - '@swc/core-win32-x64-msvc@1.15.33': + '@swc/core-win32-x64-msvc@1.15.40': optional: true - '@swc/core@1.15.33': + '@swc/core@1.15.40': dependencies: '@swc/counter': 0.1.3 '@swc/types': 0.1.26 optionalDependencies: - '@swc/core-darwin-arm64': 1.15.33 - '@swc/core-darwin-x64': 1.15.33 - '@swc/core-linux-arm-gnueabihf': 1.15.33 - '@swc/core-linux-arm64-gnu': 1.15.33 - '@swc/core-linux-arm64-musl': 1.15.33 - '@swc/core-linux-ppc64-gnu': 1.15.33 - '@swc/core-linux-s390x-gnu': 1.15.33 - '@swc/core-linux-x64-gnu': 1.15.33 - '@swc/core-linux-x64-musl': 1.15.33 - '@swc/core-win32-arm64-msvc': 1.15.33 - '@swc/core-win32-ia32-msvc': 1.15.33 - '@swc/core-win32-x64-msvc': 1.15.33 + '@swc/core-darwin-arm64': 1.15.40 + '@swc/core-darwin-x64': 1.15.40 + '@swc/core-linux-arm-gnueabihf': 1.15.40 + '@swc/core-linux-arm64-gnu': 1.15.40 + '@swc/core-linux-arm64-musl': 1.15.40 + '@swc/core-linux-ppc64-gnu': 1.15.40 + '@swc/core-linux-s390x-gnu': 1.15.40 + '@swc/core-linux-x64-gnu': 1.15.40 + '@swc/core-linux-x64-musl': 1.15.40 + '@swc/core-win32-arm64-msvc': 1.15.40 + '@swc/core-win32-ia32-msvc': 1.15.40 + '@swc/core-win32-x64-msvc': 1.15.40 '@swc/counter@0.1.3': {} @@ -3614,19 +3617,19 @@ snapshots: dependencies: '@swc/counter': 0.1.3 - '@tanstack/query-core@5.100.11': {} + '@tanstack/query-core@5.100.14': {} - '@tanstack/query-devtools@5.100.11': {} + '@tanstack/query-devtools@5.100.14': {} - '@tanstack/react-query-devtools@5.100.11(@tanstack/react-query@5.100.11(react@19.2.6))(react@19.2.6)': + '@tanstack/react-query-devtools@5.100.14(@tanstack/react-query@5.100.14(react@19.2.6))(react@19.2.6)': dependencies: - '@tanstack/query-devtools': 5.100.11 - '@tanstack/react-query': 5.100.11(react@19.2.6) + '@tanstack/query-devtools': 5.100.14 + '@tanstack/react-query': 5.100.14(react@19.2.6) react: 19.2.6 - '@tanstack/react-query@5.100.11(react@19.2.6)': + '@tanstack/react-query@5.100.14(react@19.2.6)': dependencies: - '@tanstack/query-core': 5.100.11 + '@tanstack/query-core': 5.100.14 react: 19.2.6 '@tanstack/react-virtual@3.13.25(react-dom@19.2.6(react@19.2.6))(react@19.2.6)': @@ -3821,7 +3824,7 @@ snapshots: '@vitejs/plugin-react-swc@4.3.1(vite@8.0.14(@types/node@25.9.1)(sass@1.99.0)(yaml@2.9.0))': dependencies: '@rolldown/pluginutils': 1.0.1 - '@swc/core': 1.15.33 + '@swc/core': 1.15.40 vite: 8.0.14(@types/node@25.9.1)(sass@1.99.0)(yaml@2.9.0) transitivePeerDependencies: - '@swc/helpers' @@ -3885,7 +3888,7 @@ snapshots: balanced-match@4.0.4: {} - baseline-browser-mapping@2.10.31: {} + baseline-browser-mapping@2.10.32: {} boolbase@1.0.0: {} @@ -3904,10 +3907,10 @@ snapshots: browserslist@4.28.2: dependencies: - baseline-browser-mapping: 2.10.31 + baseline-browser-mapping: 2.10.32 caniuse-lite: 1.0.30001793 - electron-to-chromium: 1.5.360 - node-releases: 2.0.45 + electron-to-chromium: 1.5.361 + node-releases: 2.0.46 update-browserslist-db: 1.2.3(browserslist@4.28.2) byte-size@9.0.1: {} @@ -4190,7 +4193,7 @@ snapshots: es-errors: 1.3.0 gopd: 1.2.0 - electron-to-chromium@1.5.360: {} + electron-to-chromium@1.5.361: {} emoji-regex@8.0.0: {} @@ -4214,7 +4217,7 @@ snapshots: data-view-byte-offset: 1.0.1 es-define-property: 1.0.1 es-errors: 1.3.0 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 es-set-tostringtag: 2.1.0 es-to-primitive: 1.3.0 function.prototype.name: 1.1.8 @@ -4263,7 +4266,7 @@ snapshots: es-errors@1.3.0: {} - es-object-atoms@1.1.1: + es-object-atoms@1.1.2: dependencies: es-errors: 1.3.0 @@ -4349,7 +4352,7 @@ snapshots: call-bind-apply-helpers: 1.0.2 es-define-property: 1.0.1 es-errors: 1.3.0 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 function-bind: 1.1.2 get-proto: 1.0.1 gopd: 1.2.0 @@ -4360,7 +4363,7 @@ snapshots: get-proto@1.0.1: dependencies: dunder-proto: 1.0.1 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 get-symbol-description@1.1.0: dependencies: @@ -4452,13 +4455,13 @@ snapshots: domhandler: 6.0.1 htmlparser2: 12.0.0 - html-react-parser@6.1.1(@types/react@19.2.15)(react@19.2.6): + html-react-parser@6.1.2(@types/react@19.2.15)(react@19.2.6): dependencies: domhandler: 6.0.1 html-dom-parser: 7.1.0 react: 19.2.6 react-property: 2.0.2 - style-to-js: 1.1.21 + style-to-js: 2.0.0 optionalDependencies: '@types/react': 19.2.15 @@ -4628,7 +4631,7 @@ snapshots: isexe@2.0.0: {} - itertools@2.7.0: {} + itertools@2.7.1: {} js-base64@3.7.8: {} @@ -4697,7 +4700,7 @@ snapshots: lines-and-columns@1.2.4: {} - linkify-it@5.0.0: + linkify-it@5.0.1: dependencies: uc.micro: 2.1.0 @@ -4732,11 +4735,11 @@ snapshots: lunr@2.3.9: {} - markdown-it@14.1.1: + markdown-it@14.2.0: dependencies: argparse: 2.0.1 entities: 4.5.0 - linkify-it: 5.0.0 + linkify-it: 5.0.1 mdurl: 2.0.0 punycode.js: 2.3.1 uc.micro: 2.1.0 @@ -5022,7 +5025,7 @@ snapshots: node-addon-api@7.1.1: optional: true - node-releases@2.0.45: {} + node-releases@2.0.46: {} normalize-package-data@2.5.0: dependencies: @@ -5040,7 +5043,7 @@ snapshots: minimatch: 3.1.5 pidtree: 0.3.1 read-pkg: 3.0.0 - shell-quote: 1.8.3 + shell-quote: 1.8.4 string.prototype.padend: 3.1.6 nth-check@2.1.1: @@ -5058,7 +5061,7 @@ snapshots: call-bind: 1.0.9 call-bound: 1.0.4 define-properties: 1.2.1 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 has-symbols: 1.1.0 object-keys: 1.1.1 @@ -5160,7 +5163,7 @@ snapshots: react: 19.2.6 scheduler: 0.27.0 - react-hook-form@7.76.0(react@19.2.6): + react-hook-form@7.76.1(react@19.2.6): dependencies: react: 19.2.6 @@ -5275,7 +5278,7 @@ snapshots: define-properties: 1.2.1 es-abstract: 1.24.2 es-errors: 1.3.0 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 get-intrinsic: 1.3.0 get-proto: 1.0.1 which-builtin-type: 1.2.1 @@ -5404,7 +5407,7 @@ snapshots: dependencies: dunder-proto: 1.0.1 es-errors: 1.3.0 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 shebang-command@1.2.0: dependencies: @@ -5412,7 +5415,7 @@ snapshots: shebang-regex@1.0.0: {} - shell-quote@1.8.3: {} + shell-quote@1.8.4: {} side-channel-list@1.0.1: dependencies: @@ -5483,7 +5486,7 @@ snapshots: call-bind: 1.0.9 define-properties: 1.2.1 es-abstract: 1.24.2 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 string.prototype.trim@1.2.10: dependencies: @@ -5492,7 +5495,7 @@ snapshots: define-data-property: 1.1.4 define-properties: 1.2.1 es-abstract: 1.24.2 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 has-property-descriptors: 1.0.2 string.prototype.trimend@1.0.9: @@ -5500,13 +5503,13 @@ snapshots: call-bind: 1.0.9 call-bound: 1.0.4 define-properties: 1.2.1 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 string.prototype.trimstart@1.0.8: dependencies: call-bind: 1.0.9 define-properties: 1.2.1 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 stringify-entities@4.0.4: dependencies: @@ -5523,6 +5526,10 @@ snapshots: dependencies: style-to-object: 1.0.14 + style-to-js@2.0.0: + dependencies: + style-to-object: 1.0.14 + style-to-object@1.0.14: dependencies: inline-style-parser: 0.2.7 @@ -5603,7 +5610,7 @@ snapshots: dependencies: '@gerrit0/mini-shiki': 3.23.0 lunr: 2.3.9 - markdown-it: 14.1.1 + markdown-it: 14.2.0 minimatch: 10.2.5 typescript: 5.9.3 yaml: 2.9.0 diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index c53658b1..70af8679 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -3239,9 +3239,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.98" +version = "0.3.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67df7112613f8bfd9150013a0314e196f4800d3201ae742489d999db2f979f08" +checksum = "142bc4740e452c1e57ade0cbc129f139c9093e354346f0872ef985f4f5cf5f11" dependencies = [ "cfg-if", "futures-util", @@ -6306,9 +6306,9 @@ dependencies = [ [[package]] name = "tao" -version = "0.35.2" +version = "0.35.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a33f7f9e486ade65fcf1e45c440f9236c904f5c1002cdc7fc6ae582777345ce4" +checksum = "d1c93047acf68669466a34690ac58cca7010bd1b201e1ec86f1fd0a75d3dd4a9" dependencies = [ "bitflags 2.11.1", "block2 0.6.2", @@ -7893,9 +7893,9 @@ checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b" [[package]] name = "wasm-bindgen" -version = "0.2.121" +version = "0.2.122" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49ace1d07c165b0864824eee619580c4689389afa9dc9ed3a4c75040d82e6790" +checksum = "3ed04576f974d2b2fba0f38c51dbc5518011e38c36bf1143164be765528fd409" dependencies = [ "cfg-if", "once_cell", @@ -7906,9 +7906,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.71" +version = "0.4.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96492d0d3ffba25305a7dc88720d250b1401d7edca02cc3bcd50633b424673b8" +checksum = "9473dbd2991ae90b6291c3c32c30c6187ac49aa32f9905d1cce280ec1e110b0f" dependencies = [ "js-sys", "wasm-bindgen", @@ -7916,9 +7916,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.121" +version = "0.2.122" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e68e6f4afd367a562002c05637acb8578ff2dea1943df76afb9e83d177c8578" +checksum = "916151b09da36bd82f6615cbf3a419e2f0ba23a03c6160e8e92eb6bd4aa1dec6" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -7926,9 +7926,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.121" +version = "0.2.122" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d95a9ec35c64b2a7cb35d3fead40c4238d0940c86d107136999567a4703259f2" +checksum = "299047362ccbfce148b67ab7e73349f77748e00c8296f9542adfad2ad82c5c5e" dependencies = [ "bumpalo", "proc-macro2", @@ -7939,9 +7939,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.121" +version = "0.2.122" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4e0100b01e9f0d03189a92b96772a1fb998639d981193d7dbab487302513441" +checksum = "9a929b2c61f11ba3e9bc35b50c1f25cb38e0e892c0c231ae2b8cf78d5dad4437" dependencies = [ "unicode-ident", ] @@ -8065,9 +8065,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.98" +version = "0.3.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b572dff8bcf38bad0fa19729c89bb5748b2b9b1d8be70cf90df697e3a8f32aa" +checksum = "6d621441cfc37b84979402712047321980c178f299193a3589d05b99e8763436" dependencies = [ "js-sys", "wasm-bindgen", diff --git a/src-tauri/src/window_manager/mod.rs b/src-tauri/src/window_manager/mod.rs index 780b57a8..3dd978f4 100644 --- a/src-tauri/src/window_manager/mod.rs +++ b/src-tauri/src/window_manager/mod.rs @@ -144,55 +144,52 @@ pub fn open_old_ui_window(app: AppHandle) { let _ = WindowManager::open_full_view(&app); } -#[tauri::command] -pub fn swap_to_old_ui(app: AppHandle) { +#[tauri::command(async)] +pub async fn swap_to_old_ui(app: AppHandle) { tracing::info!("swap_to_old_ui called"); #[cfg(target_os = "macos")] let _ = app.set_dock_visibility(true); - tauri::async_runtime::spawn(async move { - sleep(UI_SWAP_DELAY).await; - if let Some(window) = tauri::Manager::get_webview_window(&app, NEW_UI_WINDOW_ID) { - if let Err(err) = window.hide() { - tracing::error!("swap_to_old_ui task: Failed to hide new-ui window: {err:?}"); - } + + sleep(UI_SWAP_DELAY).await; + if let Some(window) = tauri::Manager::get_webview_window(&app, NEW_UI_WINDOW_ID) { + if let Err(err) = window.hide() { + tracing::error!("swap_to_old_ui task: Failed to hide new-ui window: {err:?}"); } - #[cfg(not(target_os = "linux"))] - { - if let Err(err) = WindowManager::open_full_view(&app) { - tracing::error!("swap_to_old_ui task: Failed to open full view: {err:?}"); - } + } + #[cfg(not(target_os = "linux"))] + { + if let Err(err) = WindowManager::open_full_view(&app) { + tracing::error!("swap_to_old_ui task: Failed to open full view: {err:?}"); } - }); + } } -#[tauri::command] -pub fn close_tray_window(app: AppHandle) { +#[tauri::command(async)] +pub async fn close_tray_window(app: AppHandle) { tracing::info!("close_tray_window called"); - tauri::async_runtime::spawn(async move { - sleep(UI_SWAP_DELAY).await; - if let Some(window) = tauri::Manager::get_webview_window(&app, NEW_UI_WINDOW_ID) { - tracing::info!("close_tray_window task: Hiding new-ui window"); - if let Err(err) = window.hide() { - tracing::error!("close_tray_window task: Failed to hide new-ui window: {err:?}"); - } - } else { - tracing::warn!("close_tray_window task: new-ui window not found"); + + sleep(UI_SWAP_DELAY).await; + if let Some(window) = tauri::Manager::get_webview_window(&app, NEW_UI_WINDOW_ID) { + tracing::info!("close_tray_window task: Hiding new-ui window"); + if let Err(err) = window.hide() { + tracing::error!("close_tray_window task: Failed to hide new-ui window: {err:?}"); } - }); + } else { + tracing::warn!("close_tray_window task: new-ui window not found"); + } } -#[tauri::command] -pub fn swap_to_new_ui(app: AppHandle) { +#[tauri::command(async)] +pub async fn swap_to_new_ui(app: AppHandle) { tracing::info!("swap_to_new_ui called"); #[cfg(target_os = "macos")] let _ = app.set_dock_visibility(false); - tauri::async_runtime::spawn(async move { - sleep(UI_SWAP_DELAY).await; - show_new_ui_window(&app); - if let Some(window) = tauri::Manager::get_webview_window(&app, OLD_UI_WINDOW_ID) { - if let Err(err) = window.hide() { - tracing::error!("swap_to_new_ui task: Failed to hide old-ui window: {err:?}"); - } + + sleep(UI_SWAP_DELAY).await; + show_new_ui_window(&app); + if let Some(window) = tauri::Manager::get_webview_window(&app, OLD_UI_WINDOW_ID) { + if let Err(err) = window.hide() { + tracing::error!("swap_to_new_ui task: Failed to hide old-ui window: {err:?}"); } - }); + } } From 06a66352f3a0b90163c669e3e9019a44b12cc42b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Ciarcin=CC=81ski?= Date: Mon, 25 May 2026 10:03:24 +0200 Subject: [PATCH 14/15] Remove delay --- src-tauri/src/window_manager/mod.rs | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/src-tauri/src/window_manager/mod.rs b/src-tauri/src/window_manager/mod.rs index 3dd978f4..825e1b5f 100644 --- a/src-tauri/src/window_manager/mod.rs +++ b/src-tauri/src/window_manager/mod.rs @@ -26,8 +26,6 @@ pub const OLD_UI_HEIGHT: f64 = 920.0; #[cfg(not(target_os = "linux"))] const WINDOW_GAP: f64 = 20.0; const WINDOW_TITLE: &str = "Defguard"; -// Sleep briefly to let the IPC handler return. -const UI_SWAP_DELAY: Duration = Duration::from_millis(50); #[must_use] pub fn new_ui_url() -> WebviewUrl { @@ -144,13 +142,12 @@ pub fn open_old_ui_window(app: AppHandle) { let _ = WindowManager::open_full_view(&app); } -#[tauri::command(async)] -pub async fn swap_to_old_ui(app: AppHandle) { +#[tauri::command] +pub fn swap_to_old_ui(app: AppHandle) { tracing::info!("swap_to_old_ui called"); #[cfg(target_os = "macos")] let _ = app.set_dock_visibility(true); - sleep(UI_SWAP_DELAY).await; if let Some(window) = tauri::Manager::get_webview_window(&app, NEW_UI_WINDOW_ID) { if let Err(err) = window.hide() { tracing::error!("swap_to_old_ui task: Failed to hide new-ui window: {err:?}"); @@ -164,11 +161,10 @@ pub async fn swap_to_old_ui(app: AppHandle) { } } -#[tauri::command(async)] -pub async fn close_tray_window(app: AppHandle) { +#[tauri::command] +pub fn close_tray_window(app: AppHandle) { tracing::info!("close_tray_window called"); - sleep(UI_SWAP_DELAY).await; if let Some(window) = tauri::Manager::get_webview_window(&app, NEW_UI_WINDOW_ID) { tracing::info!("close_tray_window task: Hiding new-ui window"); if let Err(err) = window.hide() { @@ -179,13 +175,12 @@ pub async fn close_tray_window(app: AppHandle) { } } -#[tauri::command(async)] -pub async fn swap_to_new_ui(app: AppHandle) { +#[tauri::command] +pub fn swap_to_new_ui(app: AppHandle) { tracing::info!("swap_to_new_ui called"); #[cfg(target_os = "macos")] let _ = app.set_dock_visibility(false); - sleep(UI_SWAP_DELAY).await; show_new_ui_window(&app); if let Some(window) = tauri::Manager::get_webview_window(&app, OLD_UI_WINDOW_ID) { if let Err(err) = window.hide() { From 806937f3d8a8f561f7ba7fecfb9310ed410edc24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Ciarcin=CC=81ski?= Date: Mon, 25 May 2026 10:46:01 +0200 Subject: [PATCH 15/15] Remove unused imports --- src-tauri/src/window_manager/mod.rs | 3 --- 1 file changed, 3 deletions(-) diff --git a/src-tauri/src/window_manager/mod.rs b/src-tauri/src/window_manager/mod.rs index 825e1b5f..8ab01c07 100644 --- a/src-tauri/src/window_manager/mod.rs +++ b/src-tauri/src/window_manager/mod.rs @@ -1,9 +1,6 @@ -use std::time::Duration; - #[cfg(not(target_os = "windows"))] use tauri::Manager; use tauri::{AppHandle, WebviewUrl, WebviewWindow, WebviewWindowBuilder}; -use tokio::time::sleep; #[cfg(not(target_os = "linux"))] use crate::database::{models::location::Location, DB_POOL};