From d897fca03b7f7e6cfa36e8b2cb5b69764f187485 Mon Sep 17 00:00:00 2001 From: "focp212@naver.com" Date: Thu, 13 Nov 2025 13:09:17 +0900 Subject: [PATCH] =?UTF-8?q?=ED=99=88=20=EC=A6=90=EA=B2=A8=EC=B0=BE?= =?UTF-8?q?=EA=B8=B0=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 1 - pnpm-lock.yaml | 537 +++++++++++++--------- src/app/providers/app-provider.tsx | 15 +- src/entities/common/model/types.ts | 5 - src/entities/home/ui/favorite-wrapper.tsx | 26 +- src/entities/menu/ui/menu-category.tsx | 13 +- src/pages/home/home-page.tsx | 15 +- src/shared/model/store.ts | 25 + src/shared/ui/menu/index.tsx | 40 +- src/widgets/navigation/footer.tsx | 8 +- src/widgets/navigation/header.tsx | 9 +- src/widgets/sub-layout/index.tsx | 11 - src/widgets/sub-layout/use-sub-layout.ts | 27 -- 13 files changed, 392 insertions(+), 340 deletions(-) diff --git a/package.json b/package.json index 9fbffb8..cc9c9bb 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,6 @@ "react-tooltip": "^5.29.1", "react-transition-group": "^4.4.5", "react-use": "^17.6.0", - "recoil": "^0.7.7", "rimraf": "^6.0.1", "root": "git+https://github.com/tanstack/react-query.git", "source-map-loader": "^5.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a64cabc..acf9865 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,10 +10,10 @@ importers: dependencies: '@babel/plugin-transform-react-jsx': specifier: ^7.27.1 - version: 7.27.1(@babel/core@7.28.4) + version: 7.27.1(@babel/core@7.28.5) '@babel/preset-react': specifier: ^7.27.1 - version: 7.27.1(@babel/core@7.28.4) + version: 7.27.1(@babel/core@7.28.5) '@dhmk/zustand-lens': specifier: ^5.0.0 version: 5.0.0(zustand@5.0.8(@types/react@19.1.12)(immer@10.1.3)(react@19.1.1)(use-sync-external-store@1.5.0(react@19.1.1))) @@ -22,7 +22,7 @@ importers: version: 11.13.5 '@emotion/babel-plugin-jsx-pragmatic': specifier: ^0.3.0 - version: 0.3.0(@babel/core@7.28.4) + version: 0.3.0(@babel/core@7.28.5) '@emotion/react': specifier: ^11.14.0 version: 11.14.0(@types/react@19.1.12)(react@19.1.1) @@ -82,16 +82,16 @@ importers: version: 24.3.1 '@vitejs/plugin-legacy': specifier: ^7.2.1 - version: 7.2.1(terser@5.44.0)(vite@7.1.5(@types/node@24.3.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1)) + version: 7.2.1(terser@5.44.1)(vite@7.1.5(@types/node@24.3.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.44.1)(tsx@4.20.5)(yaml@2.8.1)) '@vitejs/plugin-react-swc': specifier: ^3.11.0 - version: 3.11.0(@swc/helpers@0.5.17)(vite@7.1.5(@types/node@24.3.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1)) + version: 3.11.0(@swc/helpers@0.5.17)(vite@7.1.5(@types/node@24.3.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.44.1)(tsx@4.20.5)(yaml@2.8.1)) '@webview-bridge/react': specifier: ^1.7.8 version: 1.7.8(@webview-bridge/web@1.7.8)(react@19.1.1) '@webview-bridge/react-native': specifier: ^1.7.8 - version: 1.7.8(react-native-webview@13.15.0(react-native@0.80.2(@babel/core@7.28.4)(@types/react@19.1.12)(react@19.1.1))(react@19.1.1))(react@19.1.1) + version: 1.7.8(react-native-webview@13.15.0(react-native@0.80.2(@babel/core@7.28.5)(@types/react@19.1.12)(react@19.1.1))(react@19.1.1))(react@19.1.1) '@webview-bridge/web': specifier: ^1.7.8 version: 1.7.8 @@ -103,7 +103,7 @@ importers: version: 1.12.0 babel-plugin-styled-components: specifier: ^2.1.4 - version: 2.1.4(@babel/core@7.28.4)(styled-components@6.1.19(react-dom@19.1.1(react@19.1.1))(react@19.1.1)) + version: 2.1.4(@babel/core@7.28.5)(styled-components@6.1.19(react-dom@19.1.1(react@19.1.1))(react@19.1.1)) clsx: specifier: ^2.1.1 version: 2.1.1 @@ -190,7 +190,7 @@ importers: version: 7.62.0(react@19.1.1) react-i18next: specifier: ^15.7.3 - version: 15.7.3(i18next@25.5.2(typescript@5.9.2))(react-dom@19.1.1(react@19.1.1))(react-native@0.80.2(@babel/core@7.28.4)(@types/react@19.1.12)(react@19.1.1))(react@19.1.1)(typescript@5.9.2) + version: 15.7.3(i18next@25.5.2(typescript@5.9.2))(react-dom@19.1.1(react@19.1.1))(react-native@0.80.2(@babel/core@7.28.5)(@types/react@19.1.12)(react@19.1.1))(react@19.1.1)(typescript@5.9.2) react-intersection-observer: specifier: ^9.16.0 version: 9.16.0(react-dom@19.1.1(react@19.1.1))(react@19.1.1) @@ -227,9 +227,6 @@ importers: react-use: specifier: ^17.6.0 version: 17.6.0(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - recoil: - specifier: ^0.7.7 - version: 0.7.7(react-dom@19.1.1(react@19.1.1))(react-native@0.80.2(@babel/core@7.28.4)(@types/react@19.1.12)(react@19.1.1))(react@19.1.1) rimraf: specifier: ^6.0.1 version: 6.0.1 @@ -259,13 +256,13 @@ importers: version: 19.5.0(react-dom@19.1.1(react@19.1.1))(react@19.1.1) vite-plugin-checker: specifier: ^0.10.3 - version: 0.10.3(eslint@9.35.0(jiti@2.5.1))(meow@13.2.0)(optionator@0.9.4)(typescript@5.9.2)(vite@7.1.5(@types/node@24.3.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1)) + version: 0.10.3(eslint@9.35.0(jiti@2.5.1))(meow@13.2.0)(optionator@0.9.4)(typescript@5.9.2)(vite@7.1.5(@types/node@24.3.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.44.1)(tsx@4.20.5)(yaml@2.8.1)) vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@5.9.2)(vite@7.1.5(@types/node@24.3.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1)) + version: 5.1.4(typescript@5.9.2)(vite@7.1.5(@types/node@24.3.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.44.1)(tsx@4.20.5)(yaml@2.8.1)) vitest: specifier: ^3.2.4 - version: 3.2.4(@types/node@24.3.1)(jiti@2.5.1)(jsdom@26.1.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1) + version: 3.2.4(@types/node@24.3.1)(jiti@2.5.1)(jsdom@26.1.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.44.1)(tsx@4.20.5)(yaml@2.8.1) zustand: specifier: ^5.0.8 version: 5.0.8(@types/react@19.1.12)(immer@10.1.3)(react@19.1.1)(use-sync-external-store@1.5.0(react@19.1.1)) @@ -275,7 +272,7 @@ importers: version: 9.35.0 '@tanstack/router-plugin': specifier: ^1.131.41 - version: 1.131.41(@tanstack/react-router@1.131.41(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(vite@7.1.5(@types/node@24.3.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1))(webpack@5.101.0(@swc/core@1.13.5(@swc/helpers@0.5.17))) + version: 1.131.41(@tanstack/react-router@1.131.41(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(vite@7.1.5(@types/node@24.3.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.44.1)(tsx@4.20.5)(yaml@2.8.1))(webpack@5.101.0(@swc/core@1.13.5(@swc/helpers@0.5.17))) '@types/react': specifier: ^19.1.12 version: 19.1.12 @@ -293,7 +290,7 @@ importers: version: 8.43.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2) '@vitejs/plugin-react': specifier: ^4.7.0 - version: 4.7.0(vite@7.1.5(@types/node@24.3.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1)) + version: 4.7.0(vite@7.1.5(@types/node@24.3.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.44.1)(tsx@4.20.5)(yaml@2.8.1)) autoprefixer: specifier: ^10.4.21 version: 10.4.21(postcss@8.5.6) @@ -329,7 +326,7 @@ importers: version: 5.9.2 vite: specifier: ^7.1.5 - version: 7.1.5(@types/node@24.3.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1) + version: 7.1.5(@types/node@24.3.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.44.1)(tsx@4.20.5)(yaml@2.8.1) packages: @@ -355,10 +352,18 @@ packages: resolution: {integrity: sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==} engines: {node: '>=6.9.0'} + '@babel/core@7.28.5': + resolution: {integrity: sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==} + engines: {node: '>=6.9.0'} + '@babel/generator@7.28.3': resolution: {integrity: sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==} engines: {node: '>=6.9.0'} + '@babel/generator@7.28.5': + resolution: {integrity: sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==} + engines: {node: '>=6.9.0'} + '@babel/helper-annotate-as-pure@7.27.3': resolution: {integrity: sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==} engines: {node: '>=6.9.0'} @@ -434,6 +439,10 @@ packages: resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.28.5': + resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} + engines: {node: '>=6.9.0'} + '@babel/helper-validator-option@7.27.1': resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} engines: {node: '>=6.9.0'} @@ -451,6 +460,11 @@ packages: engines: {node: '>=6.0.0'} hasBin: true + '@babel/parser@7.28.5': + resolution: {integrity: sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==} + engines: {node: '>=6.0.0'} + hasBin: true + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.27.1': resolution: {integrity: sha512-QPG3C9cCVRQLxAVwmefEmwdTanECuUBMQZ/ym5kiw3XKCGA7qkuQLcjWWHcrD/GKbn/WmJwaezfuuAOcyKlRPA==} engines: {node: '>=6.9.0'} @@ -973,10 +987,18 @@ packages: resolution: {integrity: sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==} engines: {node: '>=6.9.0'} + '@babel/traverse@7.28.5': + resolution: {integrity: sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==} + engines: {node: '>=6.9.0'} + '@babel/types@7.28.4': resolution: {integrity: sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==} engines: {node: '>=6.9.0'} + '@babel/types@7.28.5': + resolution: {integrity: sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==} + engines: {node: '>=6.9.0'} + '@bufbuild/protobuf@2.8.0': resolution: {integrity: sha512-r1/0w5C9dkbcdjyxY8ZHsC5AOWg4Pnzhm2zu7LO4UHSounp2tMm6Y+oioV9zlGbLveE7YaWRDUk48WLxRDgoqg==} @@ -2178,6 +2200,9 @@ packages: '@types/lodash@4.17.20': resolution: {integrity: sha512-H3MHACvFUEiujabxhaI/ImO6gUrd8oOurg7LQtS7mbwIXA/cUqWrvBsaeJ23aZEPk1TAYkurjfMbSELfoCXlGA==} + '@types/node@24.10.1': + resolution: {integrity: sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ==} + '@types/node@24.3.1': resolution: {integrity: sha512-3vXmQDXy+woz+gnrTvuvNrPzekOi+Ds0ReMxw0LzBiK3a+1k0kQn9f2NWk+lgD4rJehFUmYy2gMhJ2ZI+7YP9g==} @@ -2985,6 +3010,15 @@ packages: supports-color: optional: true + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + decimal.js@10.6.0: resolution: {integrity: sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==} @@ -3031,8 +3065,8 @@ packages: engines: {node: '>=0.10'} hasBin: true - detect-libc@2.0.4: - resolution: {integrity: sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==} + detect-libc@2.1.2: + resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} engines: {node: '>=8'} didyoumean@1.2.2: @@ -3109,6 +3143,9 @@ packages: error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + error-ex@1.3.4: + resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==} + error-stack-parser@2.1.4: resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} @@ -3275,8 +3312,8 @@ packages: resolution: {integrity: sha512-xvHszRavo28ejws8FpemjhwswGj4w/BetHIL8cU49u4sGyXDw2+p3YbeDbj6xzlxi6kWTjIRSTJ+9sNXPnF0Zg==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - exponential-backoff@3.1.2: - resolution: {integrity: sha512-8QxYTVXUkuy7fIIoitQkPwGonB8F3Zj8eEO8Sqg9Zv/bkI7RJAzowee4gr81Hak/dUTpA2Z7VfQgoijjPNlUZA==} + exponential-backoff@3.1.3: + resolution: {integrity: sha512-ZgEeZXj30q+I0EN+CbSSpIyPaJ5HVQD18Z1m+u1FXbAeT94mr1zw50q4q6jiiC447Nl/YTcIYSAftiGqetwXCA==} express@5.1.0: resolution: {integrity: sha512-DT9ck5YIRU+8GYzzU5kT3eHGA5iL+1Zd0EutOmTE9Dtk+Tvuzd23VBU+ec7HPNSTxXYO55gPV/hq4pSBJDjFpA==} @@ -3504,9 +3541,6 @@ packages: graphemer@1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - hamt_plus@1.0.2: - resolution: {integrity: sha512-t2JXKaehnMb9paaYA7J0BX8QQAY8lwfQ9Gjf4pg/mk4krt+cmwmU652HOoWonf+7+EQV97ARPMhhVgU1ra2GhA==} - has-bigints@1.1.0: resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} engines: {node: '>= 0.4'} @@ -4087,8 +4121,8 @@ packages: lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - loader-runner@4.3.0: - resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} + loader-runner@4.3.1: + resolution: {integrity: sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==} engines: {node: '>=6.11.5'} localforage@1.10.0: @@ -4892,18 +4926,6 @@ packages: resolution: {integrity: sha512-YTUo+Flmw4ZXiWfQKGcwwc11KnoRAYgzAE2E7mXKCjSviTKShtxBsN6YUUBB2gtaBzKzeKunxhUwNHQuRryhWA==} engines: {node: '>= 4'} - recoil@0.7.7: - resolution: {integrity: sha512-8Og5KPQW9LwC577Vc7Ug2P0vQshkv1y3zG3tSSkWMqkWSwHmE+by06L8JtnGocjW6gcCvfwB3YtrJG6/tWivNQ==} - peerDependencies: - react: '>=16.13.1' - react-dom: '*' - react-native: '*' - peerDependenciesMeta: - react-dom: - optional: true - react-native: - optional: true - redent@3.0.0: resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} engines: {node: '>=8'} @@ -5163,6 +5185,10 @@ packages: resolution: {integrity: sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==} engines: {node: '>= 10.13.0'} + schema-utils@4.3.3: + resolution: {integrity: sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==} + engines: {node: '>= 10.13.0'} + screenfull@5.2.0: resolution: {integrity: sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA==} engines: {node: '>=0.10.0'} @@ -5176,6 +5202,11 @@ packages: engines: {node: '>=10'} hasBin: true + semver@7.7.3: + resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==} + engines: {node: '>=10'} + hasBin: true + send@0.19.0: resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==} engines: {node: '>= 0.8.0'} @@ -5476,6 +5507,10 @@ packages: resolution: {integrity: sha512-ZL6DDuAlRlLGghwcfmSn9sK3Hr6ArtyudlSAiCqQ6IfE+b+HHbydbYDIG15IfS5do+7XQQBdBiubF/cV2dnDzg==} engines: {node: '>=6'} + tapable@2.3.0: + resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==} + engines: {node: '>=6'} + terser-webpack-plugin@5.3.14: resolution: {integrity: sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==} engines: {node: '>= 10.13.0'} @@ -5492,8 +5527,8 @@ packages: uglify-js: optional: true - terser@5.44.0: - resolution: {integrity: sha512-nIVck8DK+GM/0Frwd+nIhZ84pR/BX7rmXMfYwyg+Sri5oGVE99/E3KvXqpC2xHFxyqXyGHTKBSioxxplrO4I4w==} + terser@5.44.1: + resolution: {integrity: sha512-t/R3R/n0MSwnnazuPpPNVO60LX0SKL45pyl9YlvxIdkH0Of7D5qM2EVe+yASRIlY5pZ73nclYJfNANGWPwFDZw==} engines: {node: '>=10'} hasBin: true @@ -5699,6 +5734,9 @@ packages: undici-types@7.10.0: resolution: {integrity: sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==} + undici-types@7.16.0: + resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==} + unicode-canonical-property-names-ecmascript@2.0.1: resolution: {integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==} engines: {node: '>=4'} @@ -6147,6 +6185,26 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/core@7.28.5': + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.28.5 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.5) + '@babel/helpers': 7.28.4 + '@babel/parser': 7.28.5 + '@babel/template': 7.27.2 + '@babel/traverse': 7.28.5 + '@babel/types': 7.28.5 + '@jridgewell/remapping': 2.3.5 + convert-source-map: 2.0.0 + debug: 4.4.3 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + '@babel/generator@7.28.3': dependencies: '@babel/parser': 7.28.4 @@ -6155,6 +6213,14 @@ snapshots: '@jridgewell/trace-mapping': 0.3.31 jsesc: 3.1.0 + '@babel/generator@7.28.5': + dependencies: + '@babel/parser': 7.28.5 + '@babel/types': 7.28.5 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + jsesc: 3.1.0 + '@babel/helper-annotate-as-pure@7.27.3': dependencies: '@babel/types': 7.28.4 @@ -6223,6 +6289,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-module-transforms@7.28.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-module-imports': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 + '@babel/traverse': 7.28.4 + transitivePeerDependencies: + - supports-color + '@babel/helper-optimise-call-expression@7.27.1': dependencies: '@babel/types': 7.28.4 @@ -6258,6 +6333,8 @@ snapshots: '@babel/helper-validator-identifier@7.27.1': {} + '@babel/helper-validator-identifier@7.28.5': {} + '@babel/helper-validator-option@7.27.1': {} '@babel/helper-wrap-function@7.28.3': @@ -6277,6 +6354,10 @@ snapshots: dependencies: '@babel/types': 7.28.4 + '@babel/parser@7.28.5': + dependencies: + '@babel/types': 7.28.5 + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.27.1(@babel/core@7.28.4)': dependencies: '@babel/core': 7.28.4 @@ -6316,24 +6397,24 @@ snapshots: dependencies: '@babel/core': 7.28.4 - '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.28.4)': + '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.28.4)': + '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.28.4)': + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.28.4)': + '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-import-assertions@7.27.1(@babel/core@7.28.4)': @@ -6346,14 +6427,19 @@ snapshots: '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.28.4)': + '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.28.4)': + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.4)': @@ -6361,44 +6447,49 @@ snapshots: '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.28.4)': + '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.28.4)': + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.28.4)': + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.28.4)': + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.28.4)': + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.28.4)': + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.28.4)': + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.28.4)': + '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.28.4)': @@ -6678,15 +6769,15 @@ snapshots: '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-react-display-name@7.28.0(@babel/core@7.28.4)': + '@babel/plugin-transform-react-display-name@7.28.0(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-react-jsx-development@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-react-jsx-development@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 - '@babel/plugin-transform-react-jsx': 7.27.1(@babel/core@7.28.4) + '@babel/core': 7.28.5 + '@babel/plugin-transform-react-jsx': 7.27.1(@babel/core@7.28.5) transitivePeerDependencies: - supports-color @@ -6700,20 +6791,20 @@ snapshots: '@babel/core': 7.28.4 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-react-jsx@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-react-jsx@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-module-imports': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.5) '@babel/types': 7.28.4 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-react-pure-annotations@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-react-pure-annotations@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-plugin-utils': 7.27.1 @@ -6878,15 +6969,15 @@ snapshots: '@babel/types': 7.28.4 esutils: 2.0.3 - '@babel/preset-react@7.27.1(@babel/core@7.28.4)': + '@babel/preset-react@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-validator-option': 7.27.1 - '@babel/plugin-transform-react-display-name': 7.28.0(@babel/core@7.28.4) - '@babel/plugin-transform-react-jsx': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-react-jsx-development': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-react-pure-annotations': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-transform-react-display-name': 7.28.0(@babel/core@7.28.5) + '@babel/plugin-transform-react-jsx': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-react-jsx-development': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-react-pure-annotations': 7.27.1(@babel/core@7.28.5) transitivePeerDependencies: - supports-color @@ -6921,11 +7012,28 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/traverse@7.28.5': + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.28.5 + '@babel/helper-globals': 7.28.0 + '@babel/parser': 7.28.5 + '@babel/template': 7.27.2 + '@babel/types': 7.28.5 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + '@babel/types@7.28.4': dependencies: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 + '@babel/types@7.28.5': + dependencies: + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.28.5 + '@bufbuild/protobuf@2.8.0': {} '@cspotcode/source-map-support@0.8.1': @@ -6960,10 +7068,10 @@ snapshots: '@dhmk/utils': 4.4.1 zustand: 5.0.8(@types/react@19.1.12)(immer@10.1.3)(react@19.1.1)(use-sync-external-store@1.5.0(react@19.1.1)) - '@emotion/babel-plugin-jsx-pragmatic@0.3.0(@babel/core@7.28.4)': + '@emotion/babel-plugin-jsx-pragmatic@0.3.0(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 - '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.4) + '@babel/core': 7.28.5 + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.5) '@emotion/babel-plugin@11.13.5': dependencies: @@ -7261,7 +7369,7 @@ snapshots: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 24.3.1 + '@types/node': 24.10.1 jest-mock: 29.7.0 '@jest/expect-utils@30.1.2': @@ -7272,7 +7380,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 24.3.1 + '@types/node': 24.10.1 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -7294,7 +7402,7 @@ snapshots: '@jest/transform@29.7.0': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.31 babel-plugin-istanbul: 6.1.1 @@ -7603,9 +7711,9 @@ snapshots: '@react-native/assets-registry@0.80.2': {} - '@react-native/codegen@0.80.2(@babel/core@7.28.4)': + '@react-native/codegen@0.80.2(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 glob: 7.2.3 hermes-parser: 0.28.1 invariant: 2.2.4 @@ -7616,12 +7724,12 @@ snapshots: dependencies: '@react-native/dev-middleware': 0.80.2 chalk: 4.1.2 - debug: 4.4.1(supports-color@10.2.2) + debug: 4.4.3 invariant: 2.2.4 metro: 0.82.5 metro-config: 0.82.5 metro-core: 0.82.5 - semver: 7.7.2 + semver: 7.7.3 transitivePeerDependencies: - bufferutil - supports-color @@ -7636,7 +7744,7 @@ snapshots: chrome-launcher: 0.15.2 chromium-edge-launcher: 0.2.0 connect: 3.7.0 - debug: 4.4.1(supports-color@10.2.2) + debug: 4.4.3 invariant: 2.2.4 nullthrows: 1.1.1 open: 7.4.2 @@ -7653,12 +7761,12 @@ snapshots: '@react-native/normalize-colors@0.80.2': {} - '@react-native/virtualized-lists@0.80.2(@types/react@19.1.12)(react-native@0.80.2(@babel/core@7.28.4)(@types/react@19.1.12)(react@19.1.1))(react@19.1.1)': + '@react-native/virtualized-lists@0.80.2(@types/react@19.1.12)(react-native@0.80.2(@babel/core@7.28.5)(@types/react@19.1.12)(react@19.1.1))(react@19.1.1)': dependencies: invariant: 2.2.4 nullthrows: 1.1.1 react: 19.1.1 - react-native: 0.80.2(@babel/core@7.28.4)(@types/react@19.1.12)(react@19.1.1) + react-native: 0.80.2(@babel/core@7.28.5)(@types/react@19.1.12)(react@19.1.1) optionalDependencies: '@types/react': 19.1.12 @@ -7955,7 +8063,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@tanstack/router-plugin@1.131.41(@tanstack/react-router@1.131.41(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(vite@7.1.5(@types/node@24.3.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1))(webpack@5.101.0(@swc/core@1.13.5(@swc/helpers@0.5.17)))': + '@tanstack/router-plugin@1.131.41(@tanstack/react-router@1.131.41(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(vite@7.1.5(@types/node@24.3.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.44.1)(tsx@4.20.5)(yaml@2.8.1))(webpack@5.101.0(@swc/core@1.13.5(@swc/helpers@0.5.17)))': dependencies: '@babel/core': 7.28.4 '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.4) @@ -7973,7 +8081,7 @@ snapshots: zod: 3.25.76 optionalDependencies: '@tanstack/react-router': 1.131.41(react-dom@19.1.1(react@19.1.1))(react@19.1.1) - vite: 7.1.5(@types/node@24.3.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1) + vite: 7.1.5(@types/node@24.3.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.44.1)(tsx@4.20.5)(yaml@2.8.1) webpack: 5.101.0(@swc/core@1.13.5(@swc/helpers@0.5.17)) transitivePeerDependencies: - supports-color @@ -8084,7 +8192,7 @@ snapshots: '@types/graceful-fs@4.1.9': dependencies: - '@types/node': 24.3.1 + '@types/node': 24.10.1 '@types/hoist-non-react-statics@3.3.7(@types/react@19.1.12)': dependencies: @@ -8120,6 +8228,10 @@ snapshots: '@types/lodash@4.17.20': {} + '@types/node@24.10.1': + dependencies: + undici-types: 7.16.0 + '@types/node@24.3.1': dependencies: undici-types: 7.10.0 @@ -8252,7 +8364,7 @@ snapshots: native-promise-only: 0.8.1 weakmap-polyfill: 2.0.4 - '@vitejs/plugin-legacy@7.2.1(terser@5.44.0)(vite@7.1.5(@types/node@24.3.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1))': + '@vitejs/plugin-legacy@7.2.1(terser@5.44.1)(vite@7.1.5(@types/node@24.3.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.44.1)(tsx@4.20.5)(yaml@2.8.1))': dependencies: '@babel/core': 7.28.4 '@babel/plugin-transform-dynamic-import': 7.27.1(@babel/core@7.28.4) @@ -8266,20 +8378,20 @@ snapshots: magic-string: 0.30.19 regenerator-runtime: 0.14.1 systemjs: 6.15.1 - terser: 5.44.0 - vite: 7.1.5(@types/node@24.3.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1) + terser: 5.44.1 + vite: 7.1.5(@types/node@24.3.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.44.1)(tsx@4.20.5)(yaml@2.8.1) transitivePeerDependencies: - supports-color - '@vitejs/plugin-react-swc@3.11.0(@swc/helpers@0.5.17)(vite@7.1.5(@types/node@24.3.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1))': + '@vitejs/plugin-react-swc@3.11.0(@swc/helpers@0.5.17)(vite@7.1.5(@types/node@24.3.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.44.1)(tsx@4.20.5)(yaml@2.8.1))': dependencies: '@rolldown/pluginutils': 1.0.0-beta.27 '@swc/core': 1.13.5(@swc/helpers@0.5.17) - vite: 7.1.5(@types/node@24.3.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1) + vite: 7.1.5(@types/node@24.3.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.44.1)(tsx@4.20.5)(yaml@2.8.1) transitivePeerDependencies: - '@swc/helpers' - '@vitejs/plugin-react@4.7.0(vite@7.1.5(@types/node@24.3.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1))': + '@vitejs/plugin-react@4.7.0(vite@7.1.5(@types/node@24.3.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.44.1)(tsx@4.20.5)(yaml@2.8.1))': dependencies: '@babel/core': 7.28.4 '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.4) @@ -8287,7 +8399,7 @@ snapshots: '@rolldown/pluginutils': 1.0.0-beta.27 '@types/babel__core': 7.20.5 react-refresh: 0.17.0 - vite: 7.1.5(@types/node@24.3.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1) + vite: 7.1.5(@types/node@24.3.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.44.1)(tsx@4.20.5)(yaml@2.8.1) transitivePeerDependencies: - supports-color @@ -8299,13 +8411,13 @@ snapshots: chai: 5.3.3 tinyrainbow: 2.0.0 - '@vitest/mocker@3.2.4(vite@7.1.5(@types/node@24.3.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1))': + '@vitest/mocker@3.2.4(vite@7.1.5(@types/node@24.3.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.44.1)(tsx@4.20.5)(yaml@2.8.1))': dependencies: '@vitest/spy': 3.2.4 estree-walker: 3.0.3 magic-string: 0.30.19 optionalDependencies: - vite: 7.1.5(@types/node@24.3.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1) + vite: 7.1.5(@types/node@24.3.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.44.1)(tsx@4.20.5)(yaml@2.8.1) '@vitest/pretty-format@3.2.4': dependencies: @@ -8409,12 +8521,12 @@ snapshots: '@webassemblyjs/ast': 1.14.1 '@xtuc/long': 4.2.2 - '@webview-bridge/react-native@1.7.8(react-native-webview@13.15.0(react-native@0.80.2(@babel/core@7.28.4)(@types/react@19.1.12)(react@19.1.1))(react@19.1.1))(react@19.1.1)': + '@webview-bridge/react-native@1.7.8(react-native-webview@13.15.0(react-native@0.80.2(@babel/core@7.28.5)(@types/react@19.1.12)(react@19.1.1))(react@19.1.1))(react@19.1.1)': dependencies: '@webview-bridge/types': 1.7.8 '@webview-bridge/utils': 1.7.8 react: 19.1.1 - react-native-webview: 13.15.0(react-native@0.80.2(@babel/core@7.28.4)(@types/react@19.1.12)(react@19.1.1))(react@19.1.1) + react-native-webview: 13.15.0(react-native@0.80.2(@babel/core@7.28.5)(@types/react@19.1.12)(react@19.1.1))(react@19.1.1) use-sync-external-store: 1.5.0(react@19.1.1) '@webview-bridge/react@1.7.8(@webview-bridge/web@1.7.8)(react@19.1.1)': @@ -8642,13 +8754,13 @@ snapshots: transitivePeerDependencies: - supports-color - babel-jest@29.7.0(@babel/core@7.28.4): + babel-jest@29.7.0(@babel/core@7.28.5): dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@jest/transform': 29.7.0 '@types/babel__core': 7.20.5 babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 29.6.3(@babel/core@7.28.4) + babel-preset-jest: 29.6.3(@babel/core@7.28.5) chalk: 4.1.2 graceful-fs: 4.2.11 slash: 3.0.0 @@ -8668,7 +8780,7 @@ snapshots: babel-plugin-jest-hoist@29.6.3: dependencies: '@babel/template': 7.27.2 - '@babel/types': 7.28.4 + '@babel/types': 7.28.5 '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.28.0 @@ -8702,11 +8814,11 @@ snapshots: transitivePeerDependencies: - supports-color - babel-plugin-styled-components@2.1.4(@babel/core@7.28.4)(styled-components@6.1.19(react-dom@19.1.1(react@19.1.1))(react@19.1.1)): + babel-plugin-styled-components@2.1.4(@babel/core@7.28.5)(styled-components@6.1.19(react-dom@19.1.1(react@19.1.1))(react@19.1.1)): dependencies: '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-module-imports': 7.27.1 - '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.5) lodash: 4.17.21 picomatch: 2.3.1 styled-components: 6.1.19(react-dom@19.1.1(react@19.1.1))(react@19.1.1) @@ -8718,30 +8830,30 @@ snapshots: dependencies: hermes-parser: 0.28.1 - babel-preset-current-node-syntax@1.2.0(@babel/core@7.28.4): + babel-preset-current-node-syntax@1.2.0(@babel/core@7.28.5): dependencies: - '@babel/core': 7.28.4 - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.28.4) - '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.28.4) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.28.4) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.28.4) - '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.28.4) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.28.4) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.28.4) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.28.4) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.28.4) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.28.4) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.28.4) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.28.4) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.28.4) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.28.4) + '@babel/core': 7.28.5 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.28.5) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.28.5) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.28.5) + '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.28.5) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.28.5) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.28.5) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.28.5) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.28.5) - babel-preset-jest@29.6.3(@babel/core@7.28.4): + babel-preset-jest@29.6.3(@babel/core@7.28.5): dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 babel-plugin-jest-hoist: 29.6.3 - babel-preset-current-node-syntax: 1.2.0(@babel/core@7.28.4) + babel-preset-current-node-syntax: 1.2.0(@babel/core@7.28.5) balanced-match@1.0.2: {} @@ -8895,7 +9007,7 @@ snapshots: chrome-launcher@0.15.2: dependencies: - '@types/node': 24.3.1 + '@types/node': 24.10.1 escape-string-regexp: 4.0.0 is-wsl: 2.2.0 lighthouse-logger: 1.4.2 @@ -8906,7 +9018,7 @@ snapshots: chromium-edge-launcher@0.2.0: dependencies: - '@types/node': 24.3.1 + '@types/node': 24.10.1 escape-string-regexp: 4.0.0 is-wsl: 2.2.0 lighthouse-logger: 1.4.2 @@ -9103,6 +9215,10 @@ snapshots: optionalDependencies: supports-color: 10.2.2 + debug@4.4.3: + dependencies: + ms: 2.1.3 + decimal.js@10.6.0: {} deep-eql@5.0.2: {} @@ -9136,7 +9252,7 @@ snapshots: detect-libc@1.0.3: optional: true - detect-libc@2.0.4: + detect-libc@2.1.2: optional: true didyoumean@1.2.2: {} @@ -9199,6 +9315,10 @@ snapshots: dependencies: is-arrayish: 0.2.1 + error-ex@1.3.4: + dependencies: + is-arrayish: 0.2.1 + error-stack-parser@2.1.4: dependencies: stackframe: 1.3.4 @@ -9487,7 +9607,7 @@ snapshots: jest-mock: 30.0.5 jest-util: 30.0.5 - exponential-backoff@3.1.2: {} + exponential-backoff@3.1.3: {} express@5.1.0: dependencies: @@ -9756,8 +9876,6 @@ snapshots: graphemer@1.4.0: {} - hamt_plus@1.0.2: {} - has-bigints@1.1.0: {} has-flag@4.0.0: {} @@ -10088,8 +10206,8 @@ snapshots: istanbul-lib-instrument@5.2.1: dependencies: - '@babel/core': 7.28.4 - '@babel/parser': 7.28.4 + '@babel/core': 7.28.5 + '@babel/parser': 7.28.5 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 6.3.1 @@ -10127,7 +10245,7 @@ snapshots: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 24.3.1 + '@types/node': 24.10.1 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -10137,7 +10255,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 - '@types/node': 24.3.1 + '@types/node': 24.10.1 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -10183,7 +10301,7 @@ snapshots: jest-mock@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 24.3.1 + '@types/node': 24.10.1 jest-util: 29.7.0 jest-mock@30.0.5: @@ -10225,7 +10343,7 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 24.3.1 + '@types/node': 24.10.1 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -10365,7 +10483,7 @@ snapshots: lightningcss@1.30.1: dependencies: - detect-libc: 2.0.4 + detect-libc: 2.1.2 optionalDependencies: lightningcss-darwin-arm64: 1.30.1 lightningcss-darwin-x64: 1.30.1 @@ -10383,7 +10501,7 @@ snapshots: lines-and-columns@1.2.4: {} - loader-runner@4.3.0: {} + loader-runner@4.3.1: {} localforage@1.10.0: dependencies: @@ -10468,7 +10586,7 @@ snapshots: metro-babel-transformer@0.82.5: dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 flow-enums-runtime: 0.0.6 hermes-parser: 0.29.1 nullthrows: 1.1.1 @@ -10481,7 +10599,7 @@ snapshots: metro-cache@0.82.5: dependencies: - exponential-backoff: 3.1.2 + exponential-backoff: 3.1.3 flow-enums-runtime: 0.0.6 https-proxy-agent: 7.0.6(supports-color@10.2.2) metro-core: 0.82.5 @@ -10511,7 +10629,7 @@ snapshots: metro-file-map@0.82.5: dependencies: - debug: 4.4.1(supports-color@10.2.2) + debug: 4.4.3 fb-watchman: 2.0.2 flow-enums-runtime: 0.0.6 graceful-fs: 4.2.11 @@ -10526,7 +10644,7 @@ snapshots: metro-minify-terser@0.82.5: dependencies: flow-enums-runtime: 0.0.6 - terser: 5.44.0 + terser: 5.44.1 metro-resolver@0.82.5: dependencies: @@ -10539,9 +10657,9 @@ snapshots: metro-source-map@0.82.5: dependencies: - '@babel/traverse': 7.28.4 - '@babel/traverse--for-generate-function-map': '@babel/traverse@7.28.4' - '@babel/types': 7.28.4 + '@babel/traverse': 7.28.5 + '@babel/traverse--for-generate-function-map': '@babel/traverse@7.28.5' + '@babel/types': 7.28.5 flow-enums-runtime: 0.0.6 invariant: 2.2.4 metro-symbolicate: 0.82.5 @@ -10565,10 +10683,10 @@ snapshots: metro-transform-plugins@0.82.5: dependencies: - '@babel/core': 7.28.4 - '@babel/generator': 7.28.3 + '@babel/core': 7.28.5 + '@babel/generator': 7.28.5 '@babel/template': 7.27.2 - '@babel/traverse': 7.28.4 + '@babel/traverse': 7.28.5 flow-enums-runtime: 0.0.6 nullthrows: 1.1.1 transitivePeerDependencies: @@ -10576,10 +10694,10 @@ snapshots: metro-transform-worker@0.82.5: dependencies: - '@babel/core': 7.28.4 - '@babel/generator': 7.28.3 - '@babel/parser': 7.28.4 - '@babel/types': 7.28.4 + '@babel/core': 7.28.5 + '@babel/generator': 7.28.5 + '@babel/parser': 7.28.5 + '@babel/types': 7.28.5 flow-enums-runtime: 0.0.6 metro: 0.82.5 metro-babel-transformer: 0.82.5 @@ -10597,17 +10715,17 @@ snapshots: metro@0.82.5: dependencies: '@babel/code-frame': 7.27.1 - '@babel/core': 7.28.4 - '@babel/generator': 7.28.3 - '@babel/parser': 7.28.4 + '@babel/core': 7.28.5 + '@babel/generator': 7.28.5 + '@babel/parser': 7.28.5 '@babel/template': 7.27.2 - '@babel/traverse': 7.28.4 - '@babel/types': 7.28.4 + '@babel/traverse': 7.28.5 + '@babel/types': 7.28.5 accepts: 1.3.8 chalk: 4.1.2 ci-info: 2.0.0 connect: 3.7.0 - debug: 4.4.1(supports-color@10.2.2) + debug: 4.4.3 error-stack-parser: 2.1.4 flow-enums-runtime: 0.0.6 graceful-fs: 4.2.11 @@ -10870,7 +10988,7 @@ snapshots: parse-json@4.0.0: dependencies: - error-ex: 1.3.2 + error-ex: 1.3.4 json-parse-better-errors: 1.0.2 parse-json@5.2.0: @@ -11101,7 +11219,7 @@ snapshots: dependencies: react: 19.1.1 - react-i18next@15.7.3(i18next@25.5.2(typescript@5.9.2))(react-dom@19.1.1(react@19.1.1))(react-native@0.80.2(@babel/core@7.28.4)(@types/react@19.1.12)(react@19.1.1))(react@19.1.1)(typescript@5.9.2): + react-i18next@15.7.3(i18next@25.5.2(typescript@5.9.2))(react-dom@19.1.1(react@19.1.1))(react-native@0.80.2(@babel/core@7.28.5)(@types/react@19.1.12)(react@19.1.1))(react@19.1.1)(typescript@5.9.2): dependencies: '@babel/runtime': 7.28.4 html-parse-stringify: 3.0.1 @@ -11109,7 +11227,7 @@ snapshots: react: 19.1.1 optionalDependencies: react-dom: 19.1.1(react@19.1.1) - react-native: 0.80.2(@babel/core@7.28.4)(@types/react@19.1.12)(react@19.1.1) + react-native: 0.80.2(@babel/core@7.28.5)(@types/react@19.1.12)(react@19.1.1) typescript: 5.9.2 react-intersection-observer@9.16.0(react-dom@19.1.1(react@19.1.1))(react@19.1.1): @@ -11126,27 +11244,27 @@ snapshots: react-is@19.1.1: {} - react-native-webview@13.15.0(react-native@0.80.2(@babel/core@7.28.4)(@types/react@19.1.12)(react@19.1.1))(react@19.1.1): + react-native-webview@13.15.0(react-native@0.80.2(@babel/core@7.28.5)(@types/react@19.1.12)(react@19.1.1))(react@19.1.1): dependencies: escape-string-regexp: 4.0.0 invariant: 2.2.4 react: 19.1.1 - react-native: 0.80.2(@babel/core@7.28.4)(@types/react@19.1.12)(react@19.1.1) + react-native: 0.80.2(@babel/core@7.28.5)(@types/react@19.1.12)(react@19.1.1) - react-native@0.80.2(@babel/core@7.28.4)(@types/react@19.1.12)(react@19.1.1): + react-native@0.80.2(@babel/core@7.28.5)(@types/react@19.1.12)(react@19.1.1): dependencies: '@jest/create-cache-key-function': 29.7.0 '@react-native/assets-registry': 0.80.2 - '@react-native/codegen': 0.80.2(@babel/core@7.28.4) + '@react-native/codegen': 0.80.2(@babel/core@7.28.5) '@react-native/community-cli-plugin': 0.80.2 '@react-native/gradle-plugin': 0.80.2 '@react-native/js-polyfills': 0.80.2 '@react-native/normalize-colors': 0.80.2 - '@react-native/virtualized-lists': 0.80.2(@types/react@19.1.12)(react-native@0.80.2(@babel/core@7.28.4)(@types/react@19.1.12)(react@19.1.1))(react@19.1.1) + '@react-native/virtualized-lists': 0.80.2(@types/react@19.1.12)(react-native@0.80.2(@babel/core@7.28.5)(@types/react@19.1.12)(react@19.1.1))(react@19.1.1) abort-controller: 3.0.0 anser: 1.4.10 ansi-regex: 5.0.1 - babel-jest: 29.7.0(@babel/core@7.28.4) + babel-jest: 29.7.0(@babel/core@7.28.5) babel-plugin-syntax-hermes-parser: 0.28.1 base64-js: 1.5.1 chalk: 4.1.2 @@ -11166,7 +11284,7 @@ snapshots: react-refresh: 0.14.2 regenerator-runtime: 0.13.11 scheduler: 0.26.0 - semver: 7.7.2 + semver: 7.7.3 stacktrace-parser: 0.1.11 whatwg-fetch: 3.6.20 ws: 6.2.3 @@ -11304,14 +11422,6 @@ snapshots: tiny-invariant: 1.3.3 tslib: 2.8.1 - recoil@0.7.7(react-dom@19.1.1(react@19.1.1))(react-native@0.80.2(@babel/core@7.28.4)(@types/react@19.1.12)(react@19.1.1))(react@19.1.1): - dependencies: - hamt_plus: 1.0.2 - react: 19.1.1 - optionalDependencies: - react-dom: 19.1.1(react@19.1.1) - react-native: 0.80.2(@babel/core@7.28.4)(@types/react@19.1.12)(react@19.1.1) - redent@3.0.0: dependencies: indent-string: 4.0.0 @@ -11589,12 +11699,21 @@ snapshots: ajv-formats: 2.1.1(ajv@8.17.1) ajv-keywords: 5.1.0(ajv@8.17.1) + schema-utils@4.3.3: + dependencies: + '@types/json-schema': 7.0.15 + ajv: 8.17.1 + ajv-formats: 2.1.1(ajv@8.17.1) + ajv-keywords: 5.1.0(ajv@8.17.1) + screenfull@5.2.0: {} semver@6.3.1: {} semver@7.7.2: {} + semver@7.7.3: {} + send@0.19.0: dependencies: debug: 2.6.9 @@ -11967,18 +12086,20 @@ snapshots: tapable@2.2.3: {} + tapable@2.3.0: {} + terser-webpack-plugin@5.3.14(@swc/core@1.13.5(@swc/helpers@0.5.17))(webpack@5.101.0(@swc/core@1.13.5(@swc/helpers@0.5.17))): dependencies: '@jridgewell/trace-mapping': 0.3.31 jest-worker: 27.5.1 - schema-utils: 4.3.2 + schema-utils: 4.3.3 serialize-javascript: 6.0.2 - terser: 5.44.0 + terser: 5.44.1 webpack: 5.101.0(@swc/core@1.13.5(@swc/helpers@0.5.17)) optionalDependencies: '@swc/core': 1.13.5(@swc/helpers@0.5.17) - terser@5.44.0: + terser@5.44.1: dependencies: '@jridgewell/source-map': 0.3.11 acorn: 8.15.0 @@ -12187,6 +12308,8 @@ snapshots: undici-types@7.10.0: {} + undici-types@7.16.0: {} + unicode-canonical-property-names-ecmascript@2.0.1: {} unicode-match-property-ecmascript@2.0.0: @@ -12253,13 +12376,13 @@ snapshots: dependencies: '@vimeo/player': 2.29.0 - vite-node@3.2.4(@types/node@24.3.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1): + vite-node@3.2.4(@types/node@24.3.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.44.1)(tsx@4.20.5)(yaml@2.8.1): dependencies: cac: 6.7.14 debug: 4.4.1(supports-color@10.2.2) es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 7.1.5(@types/node@24.3.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1) + vite: 7.1.5(@types/node@24.3.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.44.1)(tsx@4.20.5)(yaml@2.8.1) transitivePeerDependencies: - '@types/node' - jiti @@ -12274,7 +12397,7 @@ snapshots: - tsx - yaml - vite-plugin-checker@0.10.3(eslint@9.35.0(jiti@2.5.1))(meow@13.2.0)(optionator@0.9.4)(typescript@5.9.2)(vite@7.1.5(@types/node@24.3.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1)): + vite-plugin-checker@0.10.3(eslint@9.35.0(jiti@2.5.1))(meow@13.2.0)(optionator@0.9.4)(typescript@5.9.2)(vite@7.1.5(@types/node@24.3.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.44.1)(tsx@4.20.5)(yaml@2.8.1)): dependencies: '@babel/code-frame': 7.27.1 chokidar: 4.0.3 @@ -12284,7 +12407,7 @@ snapshots: strip-ansi: 7.1.2 tiny-invariant: 1.3.3 tinyglobby: 0.2.15 - vite: 7.1.5(@types/node@24.3.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1) + vite: 7.1.5(@types/node@24.3.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.44.1)(tsx@4.20.5)(yaml@2.8.1) vscode-uri: 3.1.0 optionalDependencies: eslint: 9.35.0(jiti@2.5.1) @@ -12292,18 +12415,18 @@ snapshots: optionator: 0.9.4 typescript: 5.9.2 - vite-tsconfig-paths@5.1.4(typescript@5.9.2)(vite@7.1.5(@types/node@24.3.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1)): + vite-tsconfig-paths@5.1.4(typescript@5.9.2)(vite@7.1.5(@types/node@24.3.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.44.1)(tsx@4.20.5)(yaml@2.8.1)): dependencies: debug: 4.4.1(supports-color@10.2.2) globrex: 0.1.2 tsconfck: 3.1.6(typescript@5.9.2) optionalDependencies: - vite: 7.1.5(@types/node@24.3.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1) + vite: 7.1.5(@types/node@24.3.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.44.1)(tsx@4.20.5)(yaml@2.8.1) transitivePeerDependencies: - supports-color - typescript - vite@7.1.5(@types/node@24.3.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1): + vite@7.1.5(@types/node@24.3.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.44.1)(tsx@4.20.5)(yaml@2.8.1): dependencies: esbuild: 0.25.9 fdir: 6.5.0(picomatch@4.0.3) @@ -12318,15 +12441,15 @@ snapshots: lightningcss: 1.30.1 sass: 1.92.1 sass-embedded: 1.92.1 - terser: 5.44.0 + terser: 5.44.1 tsx: 4.20.5 yaml: 2.8.1 - vitest@3.2.4(@types/node@24.3.1)(jiti@2.5.1)(jsdom@26.1.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1): + vitest@3.2.4(@types/node@24.3.1)(jiti@2.5.1)(jsdom@26.1.0)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.44.1)(tsx@4.20.5)(yaml@2.8.1): dependencies: '@types/chai': 5.2.2 '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(vite@7.1.5(@types/node@24.3.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1)) + '@vitest/mocker': 3.2.4(vite@7.1.5(@types/node@24.3.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.44.1)(tsx@4.20.5)(yaml@2.8.1)) '@vitest/pretty-format': 3.2.4 '@vitest/runner': 3.2.4 '@vitest/snapshot': 3.2.4 @@ -12344,8 +12467,8 @@ snapshots: tinyglobby: 0.2.15 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 7.1.5(@types/node@24.3.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1) - vite-node: 3.2.4(@types/node@24.3.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.44.0)(tsx@4.20.5)(yaml@2.8.1) + vite: 7.1.5(@types/node@24.3.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.44.1)(tsx@4.20.5)(yaml@2.8.1) + vite-node: 3.2.4(@types/node@24.3.1)(jiti@2.5.1)(lightningcss@1.30.1)(sass-embedded@1.92.1)(sass@1.92.1)(terser@5.44.1)(tsx@4.20.5)(yaml@2.8.1) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 24.3.1 @@ -12414,11 +12537,11 @@ snapshots: glob-to-regexp: 0.4.1 graceful-fs: 4.2.11 json-parse-even-better-errors: 2.3.1 - loader-runner: 4.3.0 + loader-runner: 4.3.1 mime-types: 2.1.35 neo-async: 2.6.2 - schema-utils: 4.3.2 - tapable: 2.2.3 + schema-utils: 4.3.3 + tapable: 2.3.0 terser-webpack-plugin: 5.3.14(@swc/core@1.13.5(@swc/helpers@0.5.17))(webpack@5.101.0(@swc/core@1.13.5(@swc/helpers@0.5.17))) watchpack: 2.4.4 webpack-sources: 3.3.3 diff --git a/src/app/providers/app-provider.tsx b/src/app/providers/app-provider.tsx index 11ef615..5e00439 100644 --- a/src/app/providers/app-provider.tsx +++ b/src/app/providers/app-provider.tsx @@ -1,6 +1,5 @@ import { Splash } from '@/widgets/splash/splash'; import { Suspense } from 'react'; -import { RecoilRoot } from 'recoil'; import { CookiesProvider } from 'react-cookie'; import { QueryClientProvider } from '@tanstack/react-query'; import { GlobalErrorBoundary } from '@/widgets/error-boundaries'; @@ -16,14 +15,12 @@ export const AppProvider = ({ }: AppProviderProps) => { return ( - - - }> - {children} - {/* */} - - - + + }> + {children} + {/* */} + + ); }; diff --git a/src/entities/common/model/types.ts b/src/entities/common/model/types.ts index a66a064..237939c 100644 --- a/src/entities/common/model/types.ts +++ b/src/entities/common/model/types.ts @@ -72,19 +72,14 @@ export interface HeaderNavigationProps { headerTitle?: string; headerLeft?: React.ReactNode; headerRight?: React.ReactNode; - menuOn: boolean; headerType: HeaderType; - setMenuOn: (menuOn: boolean) => void; - favoriteEdit?: boolean; loginSuccess: boolean; mid?: string; setMid: (mid: string) => void; }; export interface FooterProps { - setMenuOn: (menuOn: boolean) => void; footerCurrentPage?: string | null; - setFavoriteEdit: (favoriteEdit: boolean) => void; }; export enum FooterItemActiveKey { Home = 'Home', diff --git a/src/entities/home/ui/favorite-wrapper.tsx b/src/entities/home/ui/favorite-wrapper.tsx index 1b5f499..8fcfcc9 100644 --- a/src/entities/home/ui/favorite-wrapper.tsx +++ b/src/entities/home/ui/favorite-wrapper.tsx @@ -4,29 +4,26 @@ import { Swiper, SwiperSlide } from 'swiper/react'; import 'swiper/css'; import { IMAGE_ROOT } from '@/shared/constants/common'; import { UserFavorite } from '@/entities/user/model/types'; -import { useStore } from '@/shared/model/store'; +import { useFavoriteEditOnStore, useMenuOnStore, useStore } from '@/shared/model/store'; import { useTranslation } from 'react-i18next'; import { showAlert } from '@/widgets/show-alert'; import { checkGrant } from '@/shared/lib/check-grant'; export interface FavoriteWrapperProps { usingType: 'home' | 'menu', - editMode?: boolean, - setEditMode?: (editMode: boolean) => void; changeMenuId?: string; - setMenuOn?: (menuOn: boolean) => void; }; export const FavoriteWrapper = ({ usingType, - editMode, - setEditMode, changeMenuId, - setMenuOn }: FavoriteWrapperProps) => { const { navigate } = useNavigate(); const { i18n, t } = useTranslation(); + const { menuOn, setMenuOn } = useMenuOnStore(); + const { favoriteEditOn, setFavoriteEditOn } = useFavoriteEditOnStore(); + const [favoriteItems, setFavoriteItems] = useState>([]); const itemAdd: UserFavorite = { @@ -38,18 +35,15 @@ export const FavoriteWrapper = ({ }; const onClickToFavoriteEdit = () => { - if(setEditMode){ - setEditMode(true); - } + setMenuOn(true); + setFavoriteEditOn(true); }; const onClickToNavigate = (menuId?: number, path?: string) => { if(menuId && checkGrant(menuId, 'R')){ if(!!path){ navigate(path); - if(setMenuOn){ - setMenuOn(false); - } + setMenuOn(false); } } else{ @@ -73,7 +67,7 @@ export const FavoriteWrapper = ({
!editMode && onClickToNavigate(favoriteItems[i]?.menuId, favoriteItems[i]?.programPath) } + onClick={ () => !favoriteEditOn && onClickToNavigate(favoriteItems[i]?.menuId, favoriteItems[i]?.programPath) } >
{ let rs = []; - if(!editMode && usingType === 'menu'){ + if(!favoriteEditOn){ rs.push(
{ getFavoriteList(); - }, [changeMenuId]); + }, [changeMenuId, favoriteEditOn]); return ( <> diff --git a/src/entities/menu/ui/menu-category.tsx b/src/entities/menu/ui/menu-category.tsx index 48c7cab..d76660c 100644 --- a/src/entities/menu/ui/menu-category.tsx +++ b/src/entities/menu/ui/menu-category.tsx @@ -1,5 +1,5 @@ import { useNavigate } from '@/shared/lib/hooks/use-navigate'; -import { useStore } from '@/shared/model/store'; +import { useFavoriteEditOnStore, useMenuOnStore, useStore } from '@/shared/model/store'; import { UserFavorite } from '@/entities/user/model/types'; import { RefObject, useEffect, useState } from 'react'; import { MenuItem } from '../model/types'; @@ -13,8 +13,6 @@ export interface MenuCategoryProps { menuName?: string; iconFilePath?: string; subMenu?: Array; - setMenuOn?: (menuOn: boolean) => void; - editMode?: boolean; changeMenuId?: string; setChangeMenuId: (menuIdChecked?: string) => void; buttonRefs: RefObject>; @@ -26,8 +24,6 @@ export const MenuCategory = ({ iconFilePath, menuName, subMenu, - setMenuOn, - editMode, changeMenuId, setChangeMenuId, buttonRefs, @@ -39,9 +35,12 @@ export const MenuCategory = ({ const [favoriteItems, setFavoriteItems] = useState>([]); const [menuIds, setMenuIds] = useState>([]); + const { menuOn, setMenuOn } = useMenuOnStore(); + const { favoriteEditOn, setFavoriteEditOn } = useFavoriteEditOnStore(); + const onClickToNavigate = (menuId?: number, path?: string) => { if(menuId && checkGrant(menuId, 'R')){ - if(!!path && !!setMenuOn && !editMode){ + if(!!path && !favoriteEditOn){ setMenuOn(false); navigate(path); } @@ -125,7 +124,7 @@ export const MenuCategory = ({ ? subMenu[i]?.menuNameEng : subMenu[i]?.menuName; - if(!!editMode && subMenu[i] && subMenu[i]?.menuId){ + if(!!favoriteEditOn && subMenu[i] && subMenu[i]?.menuId){ rs.push(
  • { - homeReloadKey++; -}; - export const HomePage = () => { const { openBiometricRegistrationPopup, checkAlarmLink } = useAppBridge(); const { mutateAsync: homeBannerList } = useHomeBannerListMutation(); @@ -46,7 +40,6 @@ export const HomePage = () => { const [bottomBannerOn, setBottomBannerOn] = useState(false); const [authRegisterOn, setAuthRegisterOn] = useState(false); - const [favoriteItems, setFavoriteItems] = useState>([]); const [bannerList, setBannerList] = useState>([]); const callHomeBannerList = () => { @@ -117,12 +110,9 @@ export const HomePage = () => { else{ useStore.getState().UserStore.setFirstAccess(false); } - - let userFavorite = useStore.getState().UserStore.userFavorite; - setFavoriteItems(userFavorite); callHomeBannerList(); }, []); - + const setBottomBannerEffect = (mode: boolean) => { setBottomBannerOn(mode); if(mode === false){ @@ -143,7 +133,6 @@ export const HomePage = () => {
    diff --git a/src/shared/model/store.ts b/src/shared/model/store.ts index fcde38d..f207b29 100644 --- a/src/shared/model/store.ts +++ b/src/shared/model/store.ts @@ -6,6 +6,31 @@ import { createUserInfoStore, UserInfoState } from '@/entities/user/model/store' import { createBannerInfoStore, BannerInfoState, createCommonStore, CommonState } from '@/entities/common/model/store'; import { StorageKeys } from '@/shared/constants/local-storage'; +export interface MenuOnStore { + menuOn: boolean; + setMenuOn: (menuOn: boolean) => void; +}; +export interface FavoriteEditOnStore { + favoriteEditOn: boolean; + setFavoriteEditOn: (favoriteEditOn: boolean) => void; +}; +export const useMenuOnStore = create((set) => ({ + menuOn: false, + setMenuOn: (menuOn: boolean) => { + set((state: { menuOn: boolean}) => ({ + menuOn: (state.menuOn = menuOn) + })) + } +})); +export const useFavoriteEditOnStore = create((set) => ({ + favoriteEditOn: false, + setFavoriteEditOn: (favoriteEditOn: boolean) => { + set((state: { favoriteEditOn: boolean}) => ({ + favoriteEditOn: (state.favoriteEditOn = favoriteEditOn) + })) + } +})); + export type RootStore = { UserStore: UserInfoState; BannerStore: BannerInfoState; diff --git a/src/shared/ui/menu/index.tsx b/src/shared/ui/menu/index.tsx index f65f826..14f0b6a 100644 --- a/src/shared/ui/menu/index.tsx +++ b/src/shared/ui/menu/index.tsx @@ -4,11 +4,10 @@ import { IMAGE_ROOT } from '@/shared/constants/common'; import { useNavigate } from '@/shared/lib/hooks/use-navigate'; import { MenuCategory } from '@/entities/menu/ui/menu-category'; import { FavoriteWrapper } from '@/entities/home/ui/favorite-wrapper'; -import { useStore } from '@/shared/model/store'; +import { useFavoriteEditOnStore, useMenuOnStore, useStore } from '@/shared/model/store'; import { FilterMotionDuration, FilterMotionStyle, FilterMotionVariants, MenuItems } from '@/entities/common/model/constant'; import { useEffect, useRef, useState } from 'react'; import { useLocation } from 'react-router'; -import { setHomeReloadKey } from '@/pages/home/home-page'; import { useShortcutSaveMutation } from '@/entities/user/api/use-shortcut-save-mutation'; import { ShortcutSaveParams, ShortcutSaveResponse } from '@/entities/user/model/types'; import { useTranslation } from 'react-i18next'; @@ -28,17 +27,10 @@ interface ShortButton { index: number; } -export interface MenuProps { - menuOn: boolean; - setMenuOn: (menuOn: boolean) => void; - favoriteEdit?: boolean; -} +export const Menu = () => { + const { menuOn, setMenuOn } = useMenuOnStore(); + const { favoriteEditOn, setFavoriteEditOn } = useFavoriteEditOnStore(); -export const Menu = ({ - menuOn, - setMenuOn, - favoriteEdit -}: MenuProps) => { const { i18n } = useTranslation(); const userMids = useStore.getState().UserStore.userMids; const userMid = useStore.getState().UserStore.mid; @@ -49,7 +41,6 @@ export const Menu = ({ const { mutateAsync: shortcutSave } = useShortcutSaveMutation(); const [shortBtns, setShortBtns] = useState([]); - const [editMode, setEditMode] = useState(false); const [changeMenuId, setChangeMenuId] = useState(); const [shortBtnIdx, setShortBtnIdx] = useState(0); @@ -135,17 +126,12 @@ export const Menu = ({ }, SCROLL_ANIMATION_DURATION); }; const onClickToMenuClose = () => { - if(editMode){ - setEditMode(false); + if(favoriteEditOn){ + setFavoriteEditOn(false); callShortcutSave(); - - // 여기에 저장 로직? } else{ setMenuOn(false); - if(location.pathname === PATHS.home){ - setHomeReloadKey(); - } } }; @@ -160,8 +146,6 @@ export const Menu = ({ iconFilePath={ MenuItems[i]?.iconFilePath } menuName={ MenuItems[i]?.menuName } subMenu={ MenuItems[i]?.subMenu } - setMenuOn={ setMenuOn } - editMode={ editMode } changeMenuId={ changeMenuId } setChangeMenuId= { setChangeMenuId } buttonRefs={ buttonRefs } @@ -254,12 +238,7 @@ export const Menu = ({ shortBtnsSetting(); // eslint-disable-next-line react-hooks/exhaustive-deps }, [i18n.language]); - - useEffect(() => { - if(favoriteEdit){ - setEditMode(favoriteEdit) - } - },[favoriteEdit]); + // 메뉴가 열릴 때 초기화 useEffect(() => { @@ -292,7 +271,7 @@ export const Menu = ({
    { userMid }
    - { !editMode && + { !favoriteEditOn &&
    diff --git a/src/widgets/navigation/footer.tsx b/src/widgets/navigation/footer.tsx index 08c97c6..7ddaae5 100644 --- a/src/widgets/navigation/footer.tsx +++ b/src/widgets/navigation/footer.tsx @@ -8,17 +8,17 @@ import { import { useEffect, useState } from 'react'; import { useAppBridge } from '@/hooks'; import { useTranslation } from 'react-i18next'; -import { useStore } from '@/shared/model/store'; import { showAlert } from '../show-alert'; import { checkGrant } from '@/shared/lib/check-grant'; +import { useFavoriteEditOnStore, useMenuOnStore } from '@/shared/model/store'; export const FooterNavigation = ({ - setMenuOn, footerCurrentPage, - setFavoriteEdit }: FooterProps) => { + const { favoriteEditOn, setFavoriteEditOn } = useFavoriteEditOnStore(); const { navigate } = useNavigate(); const { t } = useTranslation(); + const { menuOn, setMenuOn } = useMenuOnStore(); const [isFooterOn, setIsFooterOn] = useState(true); @@ -33,7 +33,7 @@ export const FooterNavigation = ({ } }; const onClickToOpenMenu = () => { - setFavoriteEdit(false); + setFavoriteEditOn(false); setMenuOn(true); }; diff --git a/src/widgets/navigation/header.tsx b/src/widgets/navigation/header.tsx index 2c12cf5..fa83f90 100644 --- a/src/widgets/navigation/header.tsx +++ b/src/widgets/navigation/header.tsx @@ -15,10 +15,7 @@ import { appBridge } from '@/utils/appBridge'; export const HeaderNavigation = ({ onBack, headerTitle, - menuOn, headerType, - setMenuOn, - favoriteEdit, loginSuccess, mid, setMid @@ -95,11 +92,7 @@ export const HeaderNavigation = ({ || headerType === HeaderType.Alim || headerType === HeaderType.LeftArrow ) && - + } { (headerType !== HeaderType.NoHeader) && diff --git a/src/widgets/sub-layout/index.tsx b/src/widgets/sub-layout/index.tsx index dbe5c7c..845a1aa 100644 --- a/src/widgets/sub-layout/index.tsx +++ b/src/widgets/sub-layout/index.tsx @@ -66,12 +66,9 @@ export const SubLayout = () => { const [onBack, setOnBack] = useState(undefined); const [headerTitle, setHeaderTitle] = useState(''); - const [isPullToRefreshEnabled, setIsPullToRefreshEnabled] = useState(false); - const [menuOn, setMenuOn] = useState(false); const [headerType, setHeaderType] = useState(HeaderType.NoHeader); const [footerMode, setFooterMode] = useState(false); const [footerCurrentPage, setFooterCurrentPage] = useState(undefined); - const [favoriteEdit, setFavoriteEdit] = useState(false); const [headerNavigationKey, setHeaderNavigationKey] = useState(1); const [loginSuccess, setLoginSuccess] = useState(false); const [mid, setMid] = useState(); @@ -411,10 +408,7 @@ export const SubLayout = () => { { context={{ setOnBack, setHeaderTitle, - setIsPullToRefreshEnabled, - setMenuOn, setHeaderType, setFooterMode, setFooterCurrentPage, - setFavoriteEdit }} /> } { footerMode && } { alarmRoutesOn && diff --git a/src/widgets/sub-layout/use-sub-layout.ts b/src/widgets/sub-layout/use-sub-layout.ts index 9a09dac..490f787 100644 --- a/src/widgets/sub-layout/use-sub-layout.ts +++ b/src/widgets/sub-layout/use-sub-layout.ts @@ -28,24 +28,6 @@ export const useSetHeaderTitle = (title: string) => { return { setHeaderTitle }; }; -export const useSetIsPullToRefreshEnabled = (enabled: boolean) => { - const { setIsPullToRefreshEnabled } = useSubLayoutContext(); - useEffect(() => { - setIsPullToRefreshEnabled(enabled); - return () => setIsPullToRefreshEnabled(false); - }, [enabled, setIsPullToRefreshEnabled]); - return { setIsPullToRefreshEnabled }; -}; - -export const useSetMenuOn = (menuOn: boolean) => { - const { setMenuOn } = useSubLayoutContext(); - useEffect(() => { - setMenuOn(menuOn); - return () => setMenuOn(false); - }, [menuOn, setMenuOn]); - return { setMenuOn }; -}; - export const useSetHeaderType = (headerType: HeaderType) => { const { setHeaderType } = useSubLayoutContext(); useEffect(() => { @@ -55,15 +37,6 @@ export const useSetHeaderType = (headerType: HeaderType) => { return { setHeaderType }; }; -export const useSetFavoriteEdit = (favoriteEdit: boolean) => { - const { setFavoriteEdit } = useSubLayoutContext(); - useEffect(() => { - setFavoriteEdit(favoriteEdit); - return () => setFavoriteEdit(false); - }, [favoriteEdit, setFavoriteEdit]); - return { setFavoriteEdit } -}; - export const useSetFooterMode = (footerMode: boolean) => { const { setFooterMode } = useSubLayoutContext(); useEffect(() => {