From a3fd0a14dfca20116b1cd7c440e64f354352ee0c Mon Sep 17 00:00:00 2001 From: Pablo Pettinari Date: Fri, 13 Mar 2026 18:05:08 +0100 Subject: [PATCH 01/14] phase 1: replace framer-motion with motion, update radix ui, add react pnpm overrides --- .storybook/preview.tsx | 2 +- package.json | 40 +- pnpm-lock.yaml | 717 +++++++++--------- src/components/Homepage/SavingsCarousel.tsx | 6 +- src/components/Nav/Menu/MenuContent.tsx | 2 +- src/components/Nav/Menu/SubMenu.tsx | 2 +- src/components/Nav/Menu/index.tsx | 2 +- src/components/Nav/Menu/useNavMenu.ts | 2 +- src/components/Nav/Menu/useSubMenu.ts | 2 +- .../Nav/MobileMenu/HamburgerButton.tsx | 2 +- src/components/SideNav.tsx | 2 +- src/components/SideNavMobile.tsx | 2 +- src/components/Simulator/ClickAnimation.tsx | 4 +- src/components/Simulator/Explanation.tsx | 2 +- src/components/Simulator/MoreInfoPopover.tsx | 4 +- src/components/Simulator/ProgressCta.tsx | 4 +- src/components/Simulator/PulseAnimation.tsx | 2 +- .../Simulator/screens/ConnectWeb3/Browser.tsx | 2 +- .../Simulator/screens/ConnectWeb3/Slider.tsx | 2 +- .../Simulator/screens/ConnectWeb3/index.tsx | 2 +- .../screens/CreateAccount/GeneratingKeys.tsx | 2 +- .../screens/CreateAccount/HomeScreen.tsx | 2 +- .../CreateAccount/RecoveryPhraseNotice.tsx | 2 +- .../screens/CreateAccount/WelcomeScreen.tsx | 4 +- .../screens/CreateAccount/WordList.tsx | 2 +- .../screens/SendReceive/ReceiveEther.tsx | 2 +- .../screens/SendReceive/ReceivedEther.tsx | 2 +- .../Simulator/screens/SendReceive/Success.tsx | 2 +- src/components/ui/TabNav.tsx | 2 +- 29 files changed, 416 insertions(+), 407 deletions(-) diff --git a/.storybook/preview.tsx b/.storybook/preview.tsx index 9fe6f14429d..ed82699642f 100644 --- a/.storybook/preview.tsx +++ b/.storybook/preview.tsx @@ -1,5 +1,5 @@ import isChromatic from "chromatic/isChromatic" -import { MotionGlobalConfig } from "framer-motion" +import { MotionGlobalConfig } from "motion/react" import { IBM_Plex_Mono, Inter } from "next/font/google" import type { Preview } from "@storybook/react" diff --git a/package.json b/package.json index 8e01cb2c502..046f6d257b5 100644 --- a/package.json +++ b/package.json @@ -34,25 +34,25 @@ "@hookform/resolvers": "^3.8.0", "@netlify/blobs": "^10.4.1", "@next/bundle-analyzer": "^14.2.5", - "@radix-ui/react-accordion": "^1.2.0", - "@radix-ui/react-avatar": "^1.1.2", - "@radix-ui/react-checkbox": "^1.1.1", + "@radix-ui/react-accordion": "^1.2.12", + "@radix-ui/react-avatar": "^1.1.11", + "@radix-ui/react-checkbox": "^1.3.3", "@radix-ui/react-collapsible": "^1.1.12", - "@radix-ui/react-compose-refs": "^1.1.0", - "@radix-ui/react-dialog": "^1.1.1", - "@radix-ui/react-dropdown-menu": "^2.1.1", + "@radix-ui/react-compose-refs": "^1.1.2", + "@radix-ui/react-dialog": "^1.1.15", + "@radix-ui/react-dropdown-menu": "^2.1.16", "@radix-ui/react-focus-scope": "^1.1.8", - "@radix-ui/react-navigation-menu": "^1.2.0", - "@radix-ui/react-popover": "^1.1.1", - "@radix-ui/react-portal": "^1.1.1", - "@radix-ui/react-progress": "^1.1.0", - "@radix-ui/react-radio-group": "^1.2.0", - "@radix-ui/react-scroll-area": "^1.2.2", - "@radix-ui/react-select": "^2.1.1", - "@radix-ui/react-slot": "^1.2.0", - "@radix-ui/react-switch": "^1.1.0", - "@radix-ui/react-tabs": "^1.1.0", - "@radix-ui/react-tooltip": "^1.1.2", + "@radix-ui/react-navigation-menu": "^1.2.14", + "@radix-ui/react-popover": "^1.1.15", + "@radix-ui/react-portal": "^1.1.10", + "@radix-ui/react-progress": "^1.1.8", + "@radix-ui/react-radio-group": "^1.3.8", + "@radix-ui/react-scroll-area": "^1.2.10", + "@radix-ui/react-select": "^2.2.6", + "@radix-ui/react-slot": "^1.2.4", + "@radix-ui/react-switch": "^1.2.6", + "@radix-ui/react-tabs": "^1.1.13", + "@radix-ui/react-tooltip": "^1.2.8", "@rainbow-me/rainbowkit": "^2.2.3", "@sentry/nextjs": "^10.41.0", "@socialgouv/matomo-next": "^1.8.0", @@ -68,13 +68,13 @@ "cmdk": "^1.0.0", "embla-carousel-react": "^8.6.0", "ethereum-blockies-base64": "^1.0.2", - "framer-motion": "^10.13.0", "gray-matter": "^4.0.3", "howler": "^2.2.4", "htmr": "^1.0.2", "humanize-duration": "^3.33.1", "lodash": "^4.17.23", "lucide-react": "^0.516.0", + "motion": "^12.36.0", "next": "^14.2.35", "next-intl": "^3.26.3", "next-mdx-remote": "^5.0.0", @@ -167,7 +167,9 @@ "overrides": { "pbkdf2": ">=3.1.3", "form-data": ">=4.0.4", - "sha.js": ">=2.4.12" + "sha.js": ">=2.4.12", + "react": "$react", + "react-dom": "$react-dom" } } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d0cbdaa79ee..ec4f859507a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,6 +8,8 @@ overrides: pbkdf2: '>=3.1.3' form-data: '>=4.0.4' sha.js: '>=2.4.12' + react: ^18.2.0 + react-dom: ^18.2.0 importers: @@ -32,62 +34,62 @@ importers: specifier: ^14.2.5 version: 14.2.29(bufferutil@4.0.9)(utf-8-validate@5.0.10) '@radix-ui/react-accordion': - specifier: ^1.2.0 - version: 1.2.11(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^1.2.12 + version: 1.2.12(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-avatar': - specifier: ^1.1.2 - version: 1.1.10(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^1.1.11 + version: 1.1.11(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-checkbox': - specifier: ^1.1.1 - version: 1.3.2(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^1.3.3 + version: 1.3.3(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-collapsible': specifier: ^1.1.12 version: 1.1.12(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-compose-refs': - specifier: ^1.1.0 + specifier: ^1.1.2 version: 1.1.2(@types/react@18.2.57)(react@18.3.1) '@radix-ui/react-dialog': - specifier: ^1.1.1 - version: 1.1.14(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^1.1.15 + version: 1.1.15(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-dropdown-menu': - specifier: ^2.1.1 - version: 2.1.15(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^2.1.16 + version: 2.1.16(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-focus-scope': specifier: ^1.1.8 version: 1.1.8(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-navigation-menu': - specifier: ^1.2.0 - version: 1.2.13(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^1.2.14 + version: 1.2.14(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-popover': - specifier: ^1.1.1 - version: 1.1.14(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^1.1.15 + version: 1.1.15(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-portal': - specifier: ^1.1.1 - version: 1.1.9(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^1.1.10 + version: 1.1.10(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-progress': - specifier: ^1.1.0 - version: 1.1.7(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^1.1.8 + version: 1.1.8(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-radio-group': - specifier: ^1.2.0 - version: 1.3.7(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^1.3.8 + version: 1.3.8(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-scroll-area': - specifier: ^1.2.2 - version: 1.2.9(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^1.2.10 + version: 1.2.10(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-select': - specifier: ^2.1.1 - version: 2.2.5(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^2.2.6 + version: 2.2.6(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-slot': - specifier: ^1.2.0 - version: 1.2.3(@types/react@18.2.57)(react@18.3.1) + specifier: ^1.2.4 + version: 1.2.4(@types/react@18.2.57)(react@18.3.1) '@radix-ui/react-switch': - specifier: ^1.1.0 - version: 1.2.5(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^1.2.6 + version: 1.2.6(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-tabs': - specifier: ^1.1.0 - version: 1.1.12(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^1.1.13 + version: 1.1.13(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-tooltip': - specifier: ^1.1.2 - version: 1.2.7(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^1.2.8 + version: 1.2.8(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@rainbow-me/rainbowkit': specifier: ^2.2.3 version: 2.2.5(@tanstack/react-query@5.80.2(react@18.3.1))(@types/react@18.2.57)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(viem@2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76))(wagmi@2.15.4(@netlify/blobs@10.4.1)(@tanstack/query-core@5.80.2)(@tanstack/react-query@5.80.2(react@18.3.1))(@types/react@18.2.57)(bufferutil@4.0.9)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(viem@2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76))(zod@3.25.76)) @@ -133,9 +135,6 @@ importers: ethereum-blockies-base64: specifier: ^1.0.2 version: 1.0.2 - framer-motion: - specifier: ^10.13.0 - version: 10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) gray-matter: specifier: ^4.0.3 version: 4.0.3 @@ -154,6 +153,9 @@ importers: lucide-react: specifier: ^0.516.0 version: 0.516.0(react@18.3.1) + motion: + specifier: ^12.36.0 + version: 12.36.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) next: specifier: ^14.2.35 version: 14.2.35(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.1)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -1349,8 +1351,8 @@ packages: resolution: {integrity: sha512-mb5FOZYZIkRQ6s/NWnM98k879vu5pscWqTLubLFBO87igYYT4VzVazh4h5o/zCvTIZgEt3PvsCOMOswOUo9yHQ==} peerDependencies: '@types/react': '>= 16.8.0 < 20.0.0' - react: '>= 16.8.0 < 20.0.0' - react-dom: '>= 16.8.0 < 20.0.0' + react: ^18.2.0 + react-dom: ^18.2.0 search-insights: '>= 1 < 3' peerDependenciesMeta: '@types/react': @@ -1392,12 +1394,6 @@ packages: '@emotion/hash@0.9.2': resolution: {integrity: sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==} - '@emotion/is-prop-valid@0.8.8': - resolution: {integrity: sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==} - - '@emotion/memoize@0.7.4': - resolution: {integrity: sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==} - '@emotion/memoize@0.9.0': resolution: {integrity: sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==} @@ -1405,7 +1401,7 @@ packages: resolution: {integrity: sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==} peerDependencies: '@types/react': '*' - react: '>=16.8.0' + react: ^18.2.0 peerDependenciesMeta: '@types/react': optional: true @@ -1422,7 +1418,7 @@ packages: '@emotion/use-insertion-effect-with-fallbacks@1.2.0': resolution: {integrity: sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg==} peerDependencies: - react: '>=16.8.0' + react: ^18.2.0 '@emotion/utils@1.4.2': resolution: {integrity: sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA==} @@ -1791,8 +1787,8 @@ packages: '@floating-ui/react-dom@2.1.3': resolution: {integrity: sha512-huMBfiU9UnQ2oBwIhgzyIiSpVgvlDstU8CX0AF+wS+KzmYMs0J2a3GwuFHV1Lz+jlrQGeC1fF+Nv0QoumyV0bA==} peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' + react: ^18.2.0 + react-dom: ^18.2.0 '@floating-ui/utils@0.2.9': resolution: {integrity: sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==} @@ -2123,7 +2119,7 @@ packages: resolution: {integrity: sha512-QjHtSaoameoalGnKDT3FoIl4+9RwyTmo9ZJGBdLOks/YOiWHoRDI3PUwEzOE7kEmGcV3AFcp9K6dYu9rEuKLAQ==} peerDependencies: '@types/react': '>=16' - react: '>=16' + react: ^18.2.0 '@metamask/eth-json-rpc-provider@1.0.1': resolution: {integrity: sha512-whiUMPlAOrVGmX8aKYVPvlKyG4CpQXiNNyt74vE1xb5sPvmx5oA7B/kOi/JdBvhGQq97U1/AVdXEdk2zkP8qyA==} @@ -2757,19 +2753,16 @@ packages: '@radix-ui/number@1.1.1': resolution: {integrity: sha512-MkKCwxlXTgz6CFoJx3pCwn07GKp36+aZyu/u2Ln2VrA5DcdyCZkASEDBTd8x5whTQQL5CiYf4prXKLcgQdv29g==} - '@radix-ui/primitive@1.1.2': - resolution: {integrity: sha512-XnbHrrprsNqZKQhStrSwgRUQzoCI1glLzdw79xiZPoofhGICeZRSQ3dIxAKH1gb3OHfNf4d6f+vAv3kil2eggA==} - '@radix-ui/primitive@1.1.3': resolution: {integrity: sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==} - '@radix-ui/react-accordion@1.2.11': - resolution: {integrity: sha512-l3W5D54emV2ues7jjeG1xcyN7S3jnK3zE2zHqgn0CmMsy9lNJwmgcrmaxS+7ipw15FAivzKNzH3d5EcGoFKw0A==} + '@radix-ui/react-accordion@1.2.12': + resolution: {integrity: sha512-T4nygeh9YE9dLRPhAHSeOZi7HBXo+0kYIPJXayZfvWOWA0+n3dESrZbjfDPUABkUNym6Hd+f2IR113To8D2GPA==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: ^18.2.0 + react-dom: ^18.2.0 peerDependenciesMeta: '@types/react': optional: true @@ -2781,47 +2774,34 @@ packages: peerDependencies: '@types/react': '*' '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - - '@radix-ui/react-avatar@1.1.10': - resolution: {integrity: sha512-V8piFfWapM5OmNCXTzVQY+E1rDa53zY+MQ4Y7356v4fFz6vqCyUtIz2rUD44ZEdwg78/jKmMJHj07+C/Z/rcog==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: ^18.2.0 + react-dom: ^18.2.0 peerDependenciesMeta: '@types/react': optional: true '@types/react-dom': optional: true - '@radix-ui/react-checkbox@1.3.2': - resolution: {integrity: sha512-yd+dI56KZqawxKZrJ31eENUwqc1QSqg4OZ15rybGjF2ZNwMO+wCyHzAVLRp9qoYJf7kYy0YpZ2b0JCzJ42HZpA==} + '@radix-ui/react-avatar@1.1.11': + resolution: {integrity: sha512-0Qk603AHGV28BOBO34p7IgD5m+V5Sg/YovfayABkoDDBM5d3NCx0Mp4gGrjzLGes1jV5eNOE1r3itqOR33VC6Q==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: ^18.2.0 + react-dom: ^18.2.0 peerDependenciesMeta: '@types/react': optional: true '@types/react-dom': optional: true - '@radix-ui/react-collapsible@1.1.11': - resolution: {integrity: sha512-2qrRsVGSCYasSz1RFOorXwl0H7g7J1frQtgpQgYrt+MOidtPAINHn9CPovQXb83r8ahapdx3Tu0fa/pdFFSdPg==} + '@radix-ui/react-checkbox@1.3.3': + resolution: {integrity: sha512-wBbpv+NQftHDdG86Qc0pIyXk5IR3tM8Vd0nWLKDcX8nNn4nXFOFwsKuqw2okA/1D/mpaAkmuyndrPJTYDNZtFw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: ^18.2.0 + react-dom: ^18.2.0 peerDependenciesMeta: '@types/react': optional: true @@ -2833,8 +2813,8 @@ packages: peerDependencies: '@types/react': '*' '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: ^18.2.0 + react-dom: ^18.2.0 peerDependenciesMeta: '@types/react': optional: true @@ -2846,8 +2826,8 @@ packages: peerDependencies: '@types/react': '*' '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: ^18.2.0 + react-dom: ^18.2.0 peerDependenciesMeta: '@types/react': optional: true @@ -2858,7 +2838,7 @@ packages: resolution: {integrity: sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==} peerDependencies: '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: ^18.2.0 peerDependenciesMeta: '@types/react': optional: true @@ -2867,18 +2847,27 @@ packages: resolution: {integrity: sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==} peerDependencies: '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: ^18.2.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-context@1.1.3': + resolution: {integrity: sha512-ieIFACdMpYfMEjF0rEf5KLvfVyIkOz6PDGyNnP+u+4xQ6jny3VCgA4OgXOwNx2aUkxn8zx9fiVcM8CfFYv9Lxw==} + peerDependencies: + '@types/react': '*' + react: ^18.2.0 peerDependenciesMeta: '@types/react': optional: true - '@radix-ui/react-dialog@1.1.14': - resolution: {integrity: sha512-+CpweKjqpzTmwRwcYECQcNYbI8V9VSQt0SNFKeEBLgfucbsLssU6Ppq7wUdNXEGb573bMjFhVjKVll8rmV6zMw==} + '@radix-ui/react-dialog@1.1.15': + resolution: {integrity: sha512-TCglVRtzlffRNxRMEyR36DGBLJpeusFcgMVD9PZEzAKnUs1lKCgX5u9BmC2Yg+LL9MgZDugFFs1Vl+Jp4t/PGw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: ^18.2.0 + react-dom: ^18.2.0 peerDependenciesMeta: '@types/react': optional: true @@ -2889,42 +2878,42 @@ packages: resolution: {integrity: sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==} peerDependencies: '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: ^18.2.0 peerDependenciesMeta: '@types/react': optional: true - '@radix-ui/react-dismissable-layer@1.1.10': - resolution: {integrity: sha512-IM1zzRV4W3HtVgftdQiiOmA0AdJlCtMLe00FXaHwgt3rAnNsIyDqshvkIW3hj/iu5hu8ERP7KIYki6NkqDxAwQ==} + '@radix-ui/react-dismissable-layer@1.1.11': + resolution: {integrity: sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: ^18.2.0 + react-dom: ^18.2.0 peerDependenciesMeta: '@types/react': optional: true '@types/react-dom': optional: true - '@radix-ui/react-dropdown-menu@2.1.15': - resolution: {integrity: sha512-mIBnOjgwo9AH3FyKaSWoSu/dYj6VdhJ7frEPiGTeXCdUFHjl9h3mFh2wwhEtINOmYXWhdpf1rY2minFsmaNgVQ==} + '@radix-ui/react-dropdown-menu@2.1.16': + resolution: {integrity: sha512-1PLGQEynI/3OX/ftV54COn+3Sud/Mn8vALg2rWnBLnRaGtJDduNW/22XjlGgPdpcIbiQxjKtb7BkcjP00nqfJw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: ^18.2.0 + react-dom: ^18.2.0 peerDependenciesMeta: '@types/react': optional: true '@types/react-dom': optional: true - '@radix-ui/react-focus-guards@1.1.2': - resolution: {integrity: sha512-fyjAACV62oPV925xFCrH8DR5xWhg9KYtJT4s3u54jxp+L/hbpTY2kIeEFFbFe+a/HCE94zGQMZLIpVTPVZDhaA==} + '@radix-ui/react-focus-guards@1.1.3': + resolution: {integrity: sha512-0rFg/Rj2Q62NCm62jZw0QX7a3sz6QCQU0LpZdNrJX8byRGaGVTqbrW9jAoIAHyMQqsNpeZ81YgSizOt5WXq0Pw==} peerDependencies: '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: ^18.2.0 peerDependenciesMeta: '@types/react': optional: true @@ -2934,8 +2923,8 @@ packages: peerDependencies: '@types/react': '*' '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: ^18.2.0 + react-dom: ^18.2.0 peerDependenciesMeta: '@types/react': optional: true @@ -2947,8 +2936,8 @@ packages: peerDependencies: '@types/react': '*' '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: ^18.2.0 + react-dom: ^18.2.0 peerDependenciesMeta: '@types/react': optional: true @@ -2959,83 +2948,83 @@ packages: resolution: {integrity: sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==} peerDependencies: '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: ^18.2.0 peerDependenciesMeta: '@types/react': optional: true - '@radix-ui/react-menu@2.1.15': - resolution: {integrity: sha512-tVlmA3Vb9n8SZSd+YSbuFR66l87Wiy4du+YE+0hzKQEANA+7cWKH1WgqcEX4pXqxUFQKrWQGHdvEfw00TjFiew==} + '@radix-ui/react-menu@2.1.16': + resolution: {integrity: sha512-72F2T+PLlphrqLcAotYPp0uJMr5SjP5SL01wfEspJbru5Zs5vQaSHb4VB3ZMJPimgHHCHG7gMOeOB9H3Hdmtxg==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: ^18.2.0 + react-dom: ^18.2.0 peerDependenciesMeta: '@types/react': optional: true '@types/react-dom': optional: true - '@radix-ui/react-navigation-menu@1.2.13': - resolution: {integrity: sha512-WG8wWfDiJlSF5hELjwfjSGOXcBR/ZMhBFCGYe8vERpC39CQYZeq1PQ2kaYHdye3V95d06H89KGMsVCIE4LWo3g==} + '@radix-ui/react-navigation-menu@1.2.14': + resolution: {integrity: sha512-YB9mTFQvCOAQMHU+C/jVl96WmuWeltyUEpRJJky51huhds5W2FQr1J8D/16sQlf0ozxkPK8uF3niQMdUwZPv5w==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: ^18.2.0 + react-dom: ^18.2.0 peerDependenciesMeta: '@types/react': optional: true '@types/react-dom': optional: true - '@radix-ui/react-popover@1.1.14': - resolution: {integrity: sha512-ODz16+1iIbGUfFEfKx2HTPKizg2MN39uIOV8MXeHnmdd3i/N9Wt7vU46wbHsqA0xoaQyXVcs0KIlBdOA2Y95bw==} + '@radix-ui/react-popover@1.1.15': + resolution: {integrity: sha512-kr0X2+6Yy/vJzLYJUPCZEc8SfQcf+1COFoAqauJm74umQhta9M7lNJHP7QQS3vkvcGLQUbWpMzwrXYwrYztHKA==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: ^18.2.0 + react-dom: ^18.2.0 peerDependenciesMeta: '@types/react': optional: true '@types/react-dom': optional: true - '@radix-ui/react-popper@1.2.7': - resolution: {integrity: sha512-IUFAccz1JyKcf/RjB552PlWwxjeCJB8/4KxT7EhBHOJM+mN7LdW+B3kacJXILm32xawcMMjb2i0cIZpo+f9kiQ==} + '@radix-ui/react-popper@1.2.8': + resolution: {integrity: sha512-0NJQ4LFFUuWkE7Oxf0htBKS6zLkkjBH+hM1uk7Ng705ReR8m/uelduy1DBo0PyBXPKVnBA6YBlU94MBGXrSBCw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: ^18.2.0 + react-dom: ^18.2.0 peerDependenciesMeta: '@types/react': optional: true '@types/react-dom': optional: true - '@radix-ui/react-portal@1.1.9': - resolution: {integrity: sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==} + '@radix-ui/react-portal@1.1.10': + resolution: {integrity: sha512-4kY9IVa6+9nJPsYmngK5Uk2kUmZnv7ChhHAFeQ5oaj8jrR1bIi3xww8nH71pz1/Ve4d/cXO3YxT8eikt1B0a8w==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: ^18.2.0 + react-dom: ^18.2.0 peerDependenciesMeta: '@types/react': optional: true '@types/react-dom': optional: true - '@radix-ui/react-presence@1.1.4': - resolution: {integrity: sha512-ueDqRbdc4/bkaQT3GIpLQssRlFgWaL/U2z/S31qRwwLWoxHLgry3SIfCwhxeQNbirEUXFa+lq3RL3oBYXtcmIA==} + '@radix-ui/react-portal@1.1.9': + resolution: {integrity: sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: ^18.2.0 + react-dom: ^18.2.0 peerDependenciesMeta: '@types/react': optional: true @@ -3047,8 +3036,8 @@ packages: peerDependencies: '@types/react': '*' '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: ^18.2.0 + react-dom: ^18.2.0 peerDependenciesMeta: '@types/react': optional: true @@ -3060,8 +3049,8 @@ packages: peerDependencies: '@types/react': '*' '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: ^18.2.0 + react-dom: ^18.2.0 peerDependenciesMeta: '@types/react': optional: true @@ -3073,73 +3062,73 @@ packages: peerDependencies: '@types/react': '*' '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: ^18.2.0 + react-dom: ^18.2.0 peerDependenciesMeta: '@types/react': optional: true '@types/react-dom': optional: true - '@radix-ui/react-progress@1.1.7': - resolution: {integrity: sha512-vPdg/tF6YC/ynuBIJlk1mm7Le0VgW6ub6J2UWnTQ7/D23KXcPI1qy+0vBkgKgd38RCMJavBXpB83HPNFMTb0Fg==} + '@radix-ui/react-progress@1.1.8': + resolution: {integrity: sha512-+gISHcSPUJ7ktBy9RnTqbdKW78bcGke3t6taawyZ71pio1JewwGSJizycs7rLhGTvMJYCQB1DBK4KQsxs7U8dA==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: ^18.2.0 + react-dom: ^18.2.0 peerDependenciesMeta: '@types/react': optional: true '@types/react-dom': optional: true - '@radix-ui/react-radio-group@1.3.7': - resolution: {integrity: sha512-9w5XhD0KPOrm92OTTE0SysH3sYzHsSTHNvZgUBo/VZ80VdYyB5RneDbc0dKpURS24IxkoFRu/hI0i4XyfFwY6g==} + '@radix-ui/react-radio-group@1.3.8': + resolution: {integrity: sha512-VBKYIYImA5zsxACdisNQ3BjCBfmbGH3kQlnFVqlWU4tXwjy7cGX8ta80BcrO+WJXIn5iBylEH3K6ZTlee//lgQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: ^18.2.0 + react-dom: ^18.2.0 peerDependenciesMeta: '@types/react': optional: true '@types/react-dom': optional: true - '@radix-ui/react-roving-focus@1.1.10': - resolution: {integrity: sha512-dT9aOXUen9JSsxnMPv/0VqySQf5eDQ6LCk5Sw28kamz8wSOW2bJdlX2Bg5VUIIcV+6XlHpWTIuTPCf/UNIyq8Q==} + '@radix-ui/react-roving-focus@1.1.11': + resolution: {integrity: sha512-7A6S9jSgm/S+7MdtNDSb+IU859vQqJ/QAtcYQcfFC6W8RS4IxIZDldLR0xqCFZ6DCyrQLjLPsxtTNch5jVA4lA==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: ^18.2.0 + react-dom: ^18.2.0 peerDependenciesMeta: '@types/react': optional: true '@types/react-dom': optional: true - '@radix-ui/react-scroll-area@1.2.9': - resolution: {integrity: sha512-YSjEfBXnhUELsO2VzjdtYYD4CfQjvao+lhhrX5XsHD7/cyUNzljF1FHEbgTPN7LH2MClfwRMIsYlqTYpKTTe2A==} + '@radix-ui/react-scroll-area@1.2.10': + resolution: {integrity: sha512-tAXIa1g3sM5CGpVT0uIbUx/U3Gs5N8T52IICuCtObaos1S8fzsrPXG5WObkQN3S6NVl6wKgPhAIiBGbWnvc97A==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: ^18.2.0 + react-dom: ^18.2.0 peerDependenciesMeta: '@types/react': optional: true '@types/react-dom': optional: true - '@radix-ui/react-select@2.2.5': - resolution: {integrity: sha512-HnMTdXEVuuyzx63ME0ut4+sEMYW6oouHWNGUZc7ddvUWIcfCva/AMoqEW/3wnEllriMWBa0RHspCYnfCWJQYmA==} + '@radix-ui/react-select@2.2.6': + resolution: {integrity: sha512-I30RydO+bnn2PQztvo25tswPH+wFBjehVGtmagkU78yMdwTwVf12wnAOF+AeP8S2N8xD+5UPbGhkUfPyvT+mwQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: ^18.2.0 + react-dom: ^18.2.0 peerDependenciesMeta: '@types/react': optional: true @@ -3150,7 +3139,7 @@ packages: resolution: {integrity: sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==} peerDependencies: '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: ^18.2.0 peerDependenciesMeta: '@types/react': optional: true @@ -3159,44 +3148,44 @@ packages: resolution: {integrity: sha512-Jl+bCv8HxKnlTLVrcDE8zTMJ09R9/ukw4qBs/oZClOfoQk/cOTbDn+NceXfV7j09YPVQUryJPHurafcSg6EVKA==} peerDependencies: '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: ^18.2.0 peerDependenciesMeta: '@types/react': optional: true - '@radix-ui/react-switch@1.2.5': - resolution: {integrity: sha512-5ijLkak6ZMylXsaImpZ8u4Rlf5grRmoc0p0QeX9VJtlrM4f5m3nCTX8tWga/zOA8PZYIR/t0p2Mnvd7InrJ6yQ==} + '@radix-ui/react-switch@1.2.6': + resolution: {integrity: sha512-bByzr1+ep1zk4VubeEVViV592vu2lHE2BZY5OnzehZqOOgogN80+mNtCqPkhn2gklJqOpxWgPoYTSnhBCqpOXQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: ^18.2.0 + react-dom: ^18.2.0 peerDependenciesMeta: '@types/react': optional: true '@types/react-dom': optional: true - '@radix-ui/react-tabs@1.1.12': - resolution: {integrity: sha512-GTVAlRVrQrSw3cEARM0nAx73ixrWDPNZAruETn3oHCNP6SbZ/hNxdxp+u7VkIEv3/sFoLq1PfcHrl7Pnp0CDpw==} + '@radix-ui/react-tabs@1.1.13': + resolution: {integrity: sha512-7xdcatg7/U+7+Udyoj2zodtI9H/IIopqo+YOIcZOq1nJwXWBZ9p8xiu5llXlekDbZkca79a/fozEYQXIA4sW6A==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: ^18.2.0 + react-dom: ^18.2.0 peerDependenciesMeta: '@types/react': optional: true '@types/react-dom': optional: true - '@radix-ui/react-tooltip@1.2.7': - resolution: {integrity: sha512-Ap+fNYwKTYJ9pzqW+Xe2HtMRbQ/EeWkj2qykZ6SuEV4iS/o1bZI5ssJbk4D2r8XuDuOBVz/tIx2JObtuqU+5Zw==} + '@radix-ui/react-tooltip@1.2.8': + resolution: {integrity: sha512-tY7sVt1yL9ozIxvmbtN5qtmH2krXcBCfjEiCgKGLqunJHvgvZG2Pcl2oQ3kbcZARb1BGEHdkLzcYGO8ynVlieg==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: ^18.2.0 + react-dom: ^18.2.0 peerDependenciesMeta: '@types/react': optional: true @@ -3207,7 +3196,7 @@ packages: resolution: {integrity: sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==} peerDependencies: '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: ^18.2.0 peerDependenciesMeta: '@types/react': optional: true @@ -3216,7 +3205,7 @@ packages: resolution: {integrity: sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==} peerDependencies: '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: ^18.2.0 peerDependenciesMeta: '@types/react': optional: true @@ -3225,7 +3214,7 @@ packages: resolution: {integrity: sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==} peerDependencies: '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: ^18.2.0 peerDependenciesMeta: '@types/react': optional: true @@ -3234,7 +3223,7 @@ packages: resolution: {integrity: sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==} peerDependencies: '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: ^18.2.0 peerDependenciesMeta: '@types/react': optional: true @@ -3243,7 +3232,7 @@ packages: resolution: {integrity: sha512-U+UORVEq+cTnRIaostJv9AGdV3G6Y+zbVd+12e18jQ5A3c0xL03IhnHuiU4UV69wolOQp5GfR58NW/EgdQhwOA==} peerDependencies: '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: ^18.2.0 peerDependenciesMeta: '@types/react': optional: true @@ -3252,7 +3241,7 @@ packages: resolution: {integrity: sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==} peerDependencies: '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: ^18.2.0 peerDependenciesMeta: '@types/react': optional: true @@ -3261,7 +3250,7 @@ packages: resolution: {integrity: sha512-2dHfToCj/pzca2Ck724OZ5L0EVrr3eHRNsG/b3xQJLA2hZpVCS99bLAX+hm1IHXDEnzU6by5z/5MIY794/a8NQ==} peerDependencies: '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: ^18.2.0 peerDependenciesMeta: '@types/react': optional: true @@ -3270,7 +3259,7 @@ packages: resolution: {integrity: sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w==} peerDependencies: '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: ^18.2.0 peerDependenciesMeta: '@types/react': optional: true @@ -3279,7 +3268,7 @@ packages: resolution: {integrity: sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==} peerDependencies: '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: ^18.2.0 peerDependenciesMeta: '@types/react': optional: true @@ -3289,8 +3278,8 @@ packages: peerDependencies: '@types/react': '*' '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react: ^18.2.0 + react-dom: ^18.2.0 peerDependenciesMeta: '@types/react': optional: true @@ -3305,8 +3294,8 @@ packages: engines: {node: '>=12.4'} peerDependencies: '@tanstack/react-query': '>=5.0.0' - react: '>=18' - react-dom: '>=18' + react: ^18.2.0 + react-dom: ^18.2.0 viem: 2.x wagmi: ^2.9.0 @@ -3644,7 +3633,7 @@ packages: resolution: {integrity: sha512-8GIDEtAh3cA16jIv9ETIHyqcwpVOXjPv5K0plCmMILze+7kz+jBW1KXHIMfCCuMj1w0FiYweZbHyz6Ak2tv5+w==} engines: {node: '>=18'} peerDependencies: - react: ^16.14.0 || 17.x || 18.x || 19.x + react: ^18.2.0 '@sentry/vercel-edge@10.41.0': resolution: {integrity: sha512-fgr+RwQNX7dZGk+/UFPYmekvpTpF+0fBMDemxR608QWQugeoTyOE00dplRw84k2ZeT/LvxY+9MSLmAdM38QmKw==} @@ -4108,7 +4097,7 @@ packages: '@storybook/addon-links@8.6.14': resolution: {integrity: sha512-DRlXHIyZzOruAZkxmXfVgTF+4d6K27pFcH4cUsm3KT1AXuZbr23lb5iZHpUZoG6lmU85Sru4xCEgewSTXBIe1w==} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react: ^18.2.0 storybook: ^8.6.14 peerDependenciesMeta: react: @@ -4162,8 +4151,8 @@ packages: '@storybook/blocks@8.5.8': resolution: {integrity: sha512-O6tJDJM83fDm3ZP1+lTf24l7HOTzSRXkkMDD7zB/JHixzlj9p6wI4UQc2lplLadDCa5ya1IwyE7zUDN/0UfC5Q==} 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 + react: ^18.2.0 + react-dom: ^18.2.0 storybook: ^8.5.8 peerDependenciesMeta: react: @@ -4174,8 +4163,8 @@ packages: '@storybook/blocks@8.6.14': resolution: {integrity: sha512-rBMHAfA39AGHgkrDze4RmsnQTMw1ND5fGWobr9pDcJdnDKWQWNRD7Nrlxj0gFlN3n4D9lEZhWGdFrCbku7FVAQ==} 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 + react: ^18.2.0 + react-dom: ^18.2.0 storybook: ^8.6.14 peerDependenciesMeta: react: @@ -4263,8 +4252,8 @@ packages: resolution: {integrity: sha512-Td73IeJxOyalzvjQL+JXx72jlIYHgs+REaHiREOqfpo3A2AYYG71AUbcv+lg7mEDIweKVCxsMQ0UKo634c8XeA==} engines: {node: '>=14.0.0'} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react: ^18.2.0 + react-dom: ^18.2.0 '@storybook/instrumenter@8.6.14': resolution: {integrity: sha512-iG4MlWCcz1L7Yu8AwgsnfVAmMbvyRSk700Mfy2g4c8y5O+Cv1ejshE1LBBsCwHgkuqU0H4R0qu4g23+6UnUemQ==} @@ -4286,8 +4275,8 @@ packages: engines: {node: '>=18.0.0'} peerDependencies: next: ^13.5.0 || ^14.0.0 || ^15.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react: ^18.2.0 + react-dom: ^18.2.0 storybook: ^8.6.14 typescript: '*' webpack: ^5.0.0 @@ -4301,8 +4290,8 @@ packages: resolution: {integrity: sha512-M7Q6ErNx7N2hQorTz0OLa3YV8nc8OcvkDlCxqqnkHPGQNEIWEpeDvq3wn2OvZlrHDpchyuiquGXZ8aztVtBP2g==} engines: {node: '>=18.0.0'} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react: ^18.2.0 + react-dom: ^18.2.0 storybook: ^8.6.14 typescript: '*' peerDependenciesMeta: @@ -4334,15 +4323,15 @@ packages: '@storybook/react-dom-shim@8.5.8': resolution: {integrity: sha512-UT/kGJHPW+HLNCTmI1rV1to+dUZuXKUTaRv2wZ2BUq2/gjIuePyqQZYVQeb0LkZbuH2uviLrPfXpS5d3/RSUJw==} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react: ^18.2.0 + react-dom: ^18.2.0 storybook: ^8.5.8 '@storybook/react-dom-shim@8.6.14': resolution: {integrity: sha512-0hixr3dOy3f3M+HBofp3jtMQMS+sqzjKNgl7Arfuj3fvjmyXOks/yGjDImySR4imPtEllvPZfhiQNlejheaInw==} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react: ^18.2.0 + react-dom: ^18.2.0 storybook: ^8.6.14 '@storybook/react@8.6.14': @@ -4350,8 +4339,8 @@ packages: engines: {node: '>=18.0.0'} peerDependencies: '@storybook/test': 8.6.14 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react: ^18.2.0 + react-dom: ^18.2.0 storybook: ^8.6.14 typescript: '>= 4.2.x' peerDependenciesMeta: @@ -4482,20 +4471,20 @@ packages: '@tanstack/react-query@5.80.2': resolution: {integrity: sha512-LfA0SVheJBOqC8RfJw/JbOW3yh2zuONQeWU5Prjm7yjUGUONeOedky1Bj39Cfj8MRdXrZV+DxNT7/DN/M907lQ==} peerDependencies: - react: ^18 || ^19 + react: ^18.2.0 '@tanstack/react-table@8.21.3': resolution: {integrity: sha512-5nNMTSETP4ykGegmVkhjcS8tTLW6Vl4axfEGQN3v0zdHYbK4UfoqfPChclTrJ4EoK9QynqAu9oUf8VEmrpZ5Ww==} engines: {node: '>=12'} peerDependencies: - react: '>=16.8' - react-dom: '>=16.8' + react: ^18.2.0 + react-dom: ^18.2.0 '@tanstack/react-virtual@3.13.12': resolution: {integrity: sha512-Gd13QdxPSukP8ZrkbgS2RwoZseTTbQPLnQEn7HY/rqtM+8Zt95f7xKC7N0EsKs7aoz0WzZ+fditZux+F8EzYxA==} 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 + react: ^18.2.0 + react-dom: ^18.2.0 '@tanstack/table-core@8.21.3': resolution: {integrity: sha512-ldZXEhOBb8Is7xLs01fR3YEc3DERiz5silj8tnGkFZytt1abEvl/GhUmCE0PMLaMPTa3Jk4HbKmRlHmu+gCftg==} @@ -5738,8 +5727,8 @@ packages: cmdk@1.1.1: resolution: {integrity: sha512-Vsv7kFaXm+ptHDMZ7izaRsP70GgrW9NBNGswt9OZaVBLlE0SNpDq8eu/VGXyF9r7M0azK3Wy7OlYXsuyYLFzHg==} peerDependencies: - react: ^18 || ^19 || ^19.0.0-rc - react-dom: ^18 || ^19 || ^19.0.0-rc + react: ^18.2.0 + react-dom: ^18.2.0 collapse-white-space@2.1.0: resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==} @@ -6256,7 +6245,7 @@ packages: embla-carousel-react@8.6.0: resolution: {integrity: sha512-0/PjqU7geVmo6F734pmPqpyHqiM99olvyecY7zdweCw+6tKEXnrE90pBiBbMMU8s5tICemzpQ3hi5EpxzGW+JA==} peerDependencies: - react: ^16.8.0 || ^17.0.1 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + react: ^18.2.0 embla-carousel-reactive-utils@8.6.0: resolution: {integrity: sha512-fMVUDUEx0/uIEDM0Mz3dHznDhfX+znCCDCeIophYb1QGVM7YThSWX+wz11zlYwWFOr74b4QLGg0hrGPJeG2s4A==} @@ -6790,12 +6779,15 @@ packages: fraction.js@4.3.7: resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} - framer-motion@10.18.0: - resolution: {integrity: sha512-oGlDh1Q1XqYPksuTD/usb0I70hq95OUzmL9+6Zd+Hs4XV0oaISBa/UUMSjYiq6m8EUF32132mOJ8xVZS+I0S6w==} + framer-motion@12.36.0: + resolution: {integrity: sha512-4PqYHAT7gev0ke0wos+PyrcFxI0HScjm3asgU8nSYa8YzJFuwgIvdj3/s3ZaxLq0bUSboIn19A2WS/MHwLCvfw==} peerDependencies: - react: ^18.0.0 - react-dom: ^18.0.0 + '@emotion/is-prop-valid': '*' + react: ^18.2.0 + react-dom: ^18.2.0 peerDependenciesMeta: + '@emotion/is-prop-valid': + optional: true react: optional: true react-dom: @@ -7045,7 +7037,7 @@ packages: htmr@1.0.2: resolution: {integrity: sha512-7T9babEHZwECQ2/ouxNPow1uGcKbj/BcbslPGPRxBKIOLNiIrFKq6ELzor7mc4HiexZzdb3izQQLl16bhPR9jw==} peerDependencies: - react: '>=15.6.1' + react: ^18.2.0 https-browserify@1.0.0: resolution: {integrity: sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==} @@ -7576,7 +7568,7 @@ packages: lucide-react@0.516.0: resolution: {integrity: sha512-aybBJzLHcw1CIn3rUcRkztB37dsJATtpffLNX+0/w+ws2p21nYIlOwX/B5fqxq8F/BjqVemnJX8chKwRidvROg==} peerDependencies: - react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^18.2.0 lz-string@1.5.0: resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} @@ -7871,6 +7863,26 @@ packages: module-details-from-path@1.0.4: resolution: {integrity: sha512-EGWKgxALGMgzvxYF1UyGTy0HXX/2vHLkw6+NvDKW2jypWbHpjQuj4UMcqQWXHERJhVGKikolT06G3bcKe4fi7w==} + motion-dom@12.36.0: + resolution: {integrity: sha512-Ep1pq8P88rGJ75om8lTCA13zqd7ywPGwCqwuWwin6BKc0hMLkVfcS6qKlRqEo2+t0DwoUcgGJfXwaiFn4AOcQA==} + + motion-utils@12.36.0: + resolution: {integrity: sha512-eHWisygbiwVvf6PZ1vhaHCLamvkSbPIeAYxWUuL3a2PD/TROgE7FvfHWTIH4vMl798QLfMw15nRqIaRDXTlYRg==} + + motion@12.36.0: + resolution: {integrity: sha512-5BMQuktYUX8aEByKWYx5tR4X3G08H2OMgp46wTxZ4o7CDDstyy4A0fe9RLNMjZiwvntCWGDvs16sC87/emz4Yw==} + peerDependencies: + '@emotion/is-prop-valid': '*' + react: ^18.2.0 + react-dom: ^18.2.0 + peerDependenciesMeta: + '@emotion/is-prop-valid': + optional: true + react: + optional: true + react-dom: + optional: true + mrmime@2.0.1: resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==} engines: {node: '>=10'} @@ -7920,19 +7932,19 @@ packages: resolution: {integrity: sha512-EQlCIfY0jOhRldiFxwSXG+ImwkQtDEfQeSOEQp6ieAGSLWGlgjdb/Ck/O7wMfC430ZHGeUKVKax8KGusTPKCgg==} peerDependencies: next: ^10.0.0 || ^11.0.0 || ^12.0.0 || ^13.0.0 || ^14.0.0 || ^15.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || >=19.0.0-rc <19.0.0 || ^19.0.0 + react: ^18.2.0 next-mdx-remote@5.0.0: resolution: {integrity: sha512-RNNbqRpK9/dcIFZs/esQhuLA8jANqlH694yqoDBK8hkVdJUndzzGmnPHa2nyi90N4Z9VmzuSWNRpr5ItT3M7xQ==} engines: {node: '>=14', npm: '>=7'} peerDependencies: - react: '>=16' + react: ^18.2.0 next-themes@0.3.0: resolution: {integrity: sha512-/QHIrsYpd6Kfk7xakK4svpDI5mmXP0gfvCoJdGpZQ2TOrQZmsW0QxjaiLn8wbIKjtm4BTSqLoix4lxYYOnLJ/w==} peerDependencies: - react: ^16.8 || ^17 || ^18 - react-dom: ^16.8 || ^17 || ^18 + react: ^18.2.0 + react-dom: ^18.2.0 next@14.2.35: resolution: {integrity: sha512-KhYd2Hjt/O1/1aZVX3dCwGXM1QmOV4eNM2UTacK5gipDdPN/oHHK/4oVGy7X8GMfPMsUTUEmGlsy0EY1YGAkig==} @@ -8499,7 +8511,7 @@ packages: prism-react-renderer@1.1.0: resolution: {integrity: sha512-WZAw+mBoxk1qZDD1h1WOg0BVHgyk9zqbuIBFNgP+Z71i515jGL0WZIN1FIF8EgOyh06x8Rr7HAUXxsRsoUZKyg==} peerDependencies: - react: '>=0.14.9' + react: ^18.2.0 prismjs@1.30.0: resolution: {integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==} @@ -8606,13 +8618,13 @@ packages: resolution: {integrity: sha512-UfZZFnDsERI3c3CZGxzvNJd02SHjaSJ8kgW1djn65H1KK8rehwTjyrRKOG3VTMG8wtHZ5rgAO5oTHtHi9GCCmw==} peerDependencies: chart.js: ^4.1.1 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^18.2.0 react-confetti@6.4.0: resolution: {integrity: sha512-5MdGUcqxrTU26I2EU7ltkWPwxvucQTuqMm8dUz72z2YMqTD6s9vMcDUysk7n9jnC+lXuCPeJJ7Knf98VEYE9Rg==} engines: {node: '>=16'} peerDependencies: - react: ^16.3.0 || ^17.0.1 || ^18.0.0 || ^19.0.0 + react: ^18.2.0 react-docgen-typescript@2.2.2: resolution: {integrity: sha512-tvg2ZtOpOi6QDwsb3GZhOjDkkX0h8Z2gipvTg6OVMUyoYoURhEiRNePT8NZItTVCDh39JJHnLdfCOkzoLbFnTg==} @@ -8626,19 +8638,19 @@ packages: react-dom@18.3.1: resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} peerDependencies: - react: ^18.3.1 + react: ^18.2.0 react-emoji-render@2.0.1: resolution: {integrity: sha512-SKtsdwgEf2BFNiE9y4UBFZBWjkRcyWmhMprVly52+J77/zxThcfaQ3sCA0+2LtGJIRMpm4DGWSvyLg72fd1rXQ==} peerDependencies: - react: '>=0.14.0' - react-dom: '>=0.14.0' + react: ^18.2.0 + react-dom: ^18.2.0 react-hook-form@7.57.0: resolution: {integrity: sha512-RbEks3+cbvTP84l/VXGUZ+JMrKOS8ykQCRYdm5aYsxnDquL0vspsyNhGRO7pcH6hsZqWlPOjLye7rJqdtdAmlg==} engines: {node: '>=18.0.0'} peerDependencies: - react: ^16.8.0 || ^17 || ^18 || ^19 + react: ^18.2.0 react-is@16.13.1: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} @@ -8652,8 +8664,8 @@ packages: react-lite-youtube-embed@2.5.1: resolution: {integrity: sha512-qH/0RumywPtzSx5SmWX/cUGvB3mSB7zMx3VrDe1UwyCEQ0SX785xnjRAodEel1pu3A3EhZyzSjwmLpfcaUN6KQ==} peerDependencies: - react: '>=18.2.0' - react-dom: '>=18.2.0' + react: ^18.2.0 + react-dom: ^18.2.0 react-refresh@0.14.2: resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} @@ -8664,7 +8676,7 @@ packages: engines: {node: '>=10'} peerDependencies: '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^18.2.0 peerDependenciesMeta: '@types/react': optional: true @@ -8674,7 +8686,7 @@ packages: engines: {node: '>=10'} peerDependencies: '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + react: ^18.2.0 peerDependenciesMeta: '@types/react': optional: true @@ -8684,7 +8696,7 @@ packages: engines: {node: '>=10'} peerDependencies: '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + react: ^18.2.0 peerDependenciesMeta: '@types/react': optional: true @@ -8692,21 +8704,21 @@ packages: react-select@5.8.0: resolution: {integrity: sha512-TfjLDo58XrhP6VG5M/Mi56Us0Yt8X7xD6cDybC7yoRMUNm7BGO7qk8J0TLQOua/prb8vUOtsfnXZwfm30HGsAA==} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^18.2.0 + react-dom: ^18.2.0 react-smooth@4.0.4: resolution: {integrity: sha512-gnGKTpYwqL0Iii09gHobNolvX4Kiq4PKx6eWBCYYix+8cdw+cGo3do906l1NBPKkSWx1DghC1dlWG9L2uGd61Q==} 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 + react: ^18.2.0 + react-dom: ^18.2.0 react-style-singleton@2.2.3: resolution: {integrity: sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==} engines: {node: '>=10'} peerDependencies: '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + react: ^18.2.0 peerDependenciesMeta: '@types/react': optional: true @@ -8714,8 +8726,8 @@ packages: react-transition-group@4.4.5: resolution: {integrity: sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==} peerDependencies: - react: '>=16.6.0' - react-dom: '>=16.6.0' + react: ^18.2.0 + react-dom: ^18.2.0 react@18.3.1: resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} @@ -8761,8 +8773,8 @@ packages: resolution: {integrity: sha512-EdOPzTwcFSuqtvkDoaM5ws/Km1+WTAO2eizL7rqiG0V2UVhTnz0m7J2i0CjVPUCdEkZImaWvXLbZDS2H5t6GFQ==} engines: {node: '>=14'} peerDependencies: - react: ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - react-dom: ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^18.2.0 + react-dom: ^18.2.0 recma-build-jsx@1.0.0: resolution: {integrity: sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==} @@ -9317,7 +9329,7 @@ packages: peerDependencies: '@babel/core': '*' babel-plugin-macros: '*' - react: '>= 16.8.0 || 17.x.x || ^18.0.0-0' + react: ^18.2.0 peerDependenciesMeta: '@babel/core': optional: true @@ -9330,7 +9342,7 @@ packages: peerDependencies: '@babel/core': '*' babel-plugin-macros: '*' - react: '>= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0' + react: ^18.2.0 peerDependenciesMeta: '@babel/core': optional: true @@ -9794,7 +9806,7 @@ packages: engines: {node: '>=10'} peerDependencies: '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + react: ^18.2.0 peerDependenciesMeta: '@types/react': optional: true @@ -9802,13 +9814,13 @@ packages: use-intl@3.26.5: resolution: {integrity: sha512-OdsJnC/znPvHCHLQH/duvQNXnP1w0hPfS+tkSi3mAbfjYBGh4JnyfdwkQBfIVf7t8gs9eSX/CntxUMvtKdG2MQ==} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || >=19.0.0-rc <19.0.0 || ^19.0.0 + react: ^18.2.0 use-isomorphic-layout-effect@1.2.1: resolution: {integrity: sha512-tpZZ+EX0gaghDAiFR37hj5MgY6ZN55kLiPkJsKxBMZ6GZdOSPJXiOzPM984oPYZ5AnehYx5WQp1+ME8I/P/pRA==} peerDependencies: '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^18.2.0 peerDependenciesMeta: '@types/react': optional: true @@ -9818,7 +9830,7 @@ packages: engines: {node: '>=10'} peerDependencies: '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + react: ^18.2.0 peerDependenciesMeta: '@types/react': optional: true @@ -9826,23 +9838,23 @@ packages: use-sync-external-store@1.2.0: resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^18.2.0 use-sync-external-store@1.4.0: resolution: {integrity: sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw==} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^18.2.0 use-sync-external-store@1.5.0: resolution: {integrity: sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^18.2.0 usehooks-ts@3.1.1: resolution: {integrity: sha512-I4diPp9Cq6ieSUH2wu+fDAVQO43xwtulo+fKEidHUwZPnYImbtkTjzIJYcDcJqxgmX31GVqNFURodvcgHcW0pA==} engines: {node: '>=16.15.0'} peerDependencies: - react: ^16.8.0 || ^17 || ^18 || ^19 || ^19.0.0-rc + react: ^18.2.0 utf-8-validate@5.0.10: resolution: {integrity: sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==} @@ -9877,7 +9889,7 @@ packages: engines: {node: '>=12.20.0'} peerDependencies: '@types/react': '>=16.8' - react: '>=16.8' + react: ^18.2.0 peerDependenciesMeta: '@types/react': optional: true @@ -9891,8 +9903,8 @@ packages: vaul@1.1.2: resolution: {integrity: sha512-ZFkClGpWyI2WUQjdLJ/BaGuV6AVQiJ3uELGk3OYtP+B6yCO7Cmn9vPFXVJkRaGkOJu3m8bQMgtyzNHixULceQA==} peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc + react: ^18.2.0 + react-dom: ^18.2.0 vfile-matter@5.0.1: resolution: {integrity: sha512-o6roP82AiX0XfkyTHyRCMXgHfltUNlXSEqCIS80f+mbAyiQBE2fxtDVMtseyytGx75sihiJFo/zR6r/4LTs2Cw==} @@ -9935,7 +9947,7 @@ packages: resolution: {integrity: sha512-0m7uo6t/oSFS+4UCUTBnmIhDSP7PGJz1qx4VtALcsBnw81UPPIXMSM8oGVrUNV9CptryiDgBlh4iYmRldg9iaA==} peerDependencies: '@tanstack/react-query': '>=5.0.0' - react: '>=18' + react: ^18.2.0 typescript: '>=5.0.4' viem: 2.x peerDependenciesMeta: @@ -10195,7 +10207,7 @@ packages: peerDependencies: '@types/react': '>=18.0.0' immer: '>=9.0.6' - react: '>=18.0.0' + react: ^18.2.0 use-sync-external-store: '>=1.2.0' peerDependenciesMeta: '@types/react': @@ -12015,14 +12027,6 @@ snapshots: '@emotion/hash@0.9.2': {} - '@emotion/is-prop-valid@0.8.8': - dependencies: - '@emotion/memoize': 0.7.4 - optional: true - - '@emotion/memoize@0.7.4': - optional: true - '@emotion/memoize@0.9.0': {} '@emotion/react@11.14.0(@types/react@18.2.57)(react@18.3.1)': @@ -13341,14 +13345,12 @@ snapshots: '@radix-ui/number@1.1.1': {} - '@radix-ui/primitive@1.1.2': {} - '@radix-ui/primitive@1.1.3': {} - '@radix-ui/react-accordion@1.2.11(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-accordion@1.2.12(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-collapsible': 1.1.11(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-collapsible': 1.1.12(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-collection': 1.1.7(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.2.57)(react@18.3.1) '@radix-ui/react-context': 1.1.2(@types/react@18.2.57)(react@18.3.1) @@ -13371,10 +13373,10 @@ snapshots: '@types/react': 18.2.57 '@types/react-dom': 18.2.19 - '@radix-ui/react-avatar@1.1.10(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-avatar@1.1.11(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-context': 1.1.2(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-context': 1.1.3(@types/react@18.2.57)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.4(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.2.57)(react@18.3.1) '@radix-ui/react-use-is-hydrated': 0.1.0(@types/react@18.2.57)(react@18.3.1) '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.2.57)(react@18.3.1) @@ -13384,12 +13386,12 @@ snapshots: '@types/react': 18.2.57 '@types/react-dom': 18.2.19 - '@radix-ui/react-checkbox@1.3.2(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-checkbox@1.3.3(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/primitive': 1.1.2 + '@radix-ui/primitive': 1.1.3 '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.2.57)(react@18.3.1) '@radix-ui/react-context': 1.1.2(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.2.57)(react@18.3.1) '@radix-ui/react-use-previous': 1.1.1(@types/react@18.2.57)(react@18.3.1) @@ -13400,22 +13402,6 @@ snapshots: '@types/react': 18.2.57 '@types/react-dom': 18.2.19 - '@radix-ui/react-collapsible@1.1.11(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-id': 1.1.1(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.2.57)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.2.57 - '@types/react-dom': 18.2.19 - '@radix-ui/react-collapsible@1.1.12(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.3 @@ -13456,17 +13442,23 @@ snapshots: optionalDependencies: '@types/react': 18.2.57 - '@radix-ui/react-dialog@1.1.14(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-context@1.1.3(@types/react@18.2.57)(react@18.3.1)': dependencies: - '@radix-ui/primitive': 1.1.2 + react: 18.3.1 + optionalDependencies: + '@types/react': 18.2.57 + + '@radix-ui/react-dialog@1.1.15(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.3 '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.2.57)(react@18.3.1) '@radix-ui/react-context': 1.1.2(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-focus-guards': 1.1.2(@types/react@18.2.57)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@18.2.57)(react@18.3.1) '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-id': 1.1.1(@types/react@18.2.57)(react@18.3.1) '@radix-ui/react-portal': 1.1.9(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-slot': 1.2.3(@types/react@18.2.57)(react@18.3.1) '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.2.57)(react@18.3.1) @@ -13484,9 +13476,9 @@ snapshots: optionalDependencies: '@types/react': 18.2.57 - '@radix-ui/react-dismissable-layer@1.1.10(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/primitive': 1.1.2 + '@radix-ui/primitive': 1.1.3 '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.2.57)(react@18.3.1) '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.2.57)(react@18.3.1) @@ -13497,13 +13489,13 @@ snapshots: '@types/react': 18.2.57 '@types/react-dom': 18.2.19 - '@radix-ui/react-dropdown-menu@2.1.15(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-dropdown-menu@2.1.16(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/primitive': 1.1.2 + '@radix-ui/primitive': 1.1.3 '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.2.57)(react@18.3.1) '@radix-ui/react-context': 1.1.2(@types/react@18.2.57)(react@18.3.1) '@radix-ui/react-id': 1.1.1(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-menu': 2.1.15(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-menu': 2.1.16(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.2.57)(react@18.3.1) react: 18.3.1 @@ -13512,7 +13504,7 @@ snapshots: '@types/react': 18.2.57 '@types/react-dom': 18.2.19 - '@radix-ui/react-focus-guards@1.1.2(@types/react@18.2.57)(react@18.3.1)': + '@radix-ui/react-focus-guards@1.1.3(@types/react@18.2.57)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: @@ -13547,22 +13539,22 @@ snapshots: optionalDependencies: '@types/react': 18.2.57 - '@radix-ui/react-menu@2.1.15(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-menu@2.1.16(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/primitive': 1.1.2 + '@radix-ui/primitive': 1.1.3 '@radix-ui/react-collection': 1.1.7(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.2.57)(react@18.3.1) '@radix-ui/react-context': 1.1.2(@types/react@18.2.57)(react@18.3.1) '@radix-ui/react-direction': 1.1.1(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-focus-guards': 1.1.2(@types/react@18.2.57)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@18.2.57)(react@18.3.1) '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-id': 1.1.1(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-popper': 1.2.7(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-portal': 1.1.9(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-roving-focus': 1.1.10(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-slot': 1.2.3(@types/react@18.2.57)(react@18.3.1) '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.2.57)(react@18.3.1) aria-hidden: 1.2.6 @@ -13573,16 +13565,16 @@ snapshots: '@types/react': 18.2.57 '@types/react-dom': 18.2.19 - '@radix-ui/react-navigation-menu@1.2.13(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-navigation-menu@1.2.14(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/primitive': 1.1.2 + '@radix-ui/primitive': 1.1.3 '@radix-ui/react-collection': 1.1.7(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.2.57)(react@18.3.1) '@radix-ui/react-context': 1.1.2(@types/react@18.2.57)(react@18.3.1) '@radix-ui/react-direction': 1.1.1(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-id': 1.1.1(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.2.57)(react@18.3.1) '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.2.57)(react@18.3.1) @@ -13595,18 +13587,18 @@ snapshots: '@types/react': 18.2.57 '@types/react-dom': 18.2.19 - '@radix-ui/react-popover@1.1.14(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-popover@1.1.15(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/primitive': 1.1.2 + '@radix-ui/primitive': 1.1.3 '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.2.57)(react@18.3.1) '@radix-ui/react-context': 1.1.2(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-focus-guards': 1.1.2(@types/react@18.2.57)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@18.2.57)(react@18.3.1) '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-id': 1.1.1(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-popper': 1.2.7(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-portal': 1.1.9(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-slot': 1.2.3(@types/react@18.2.57)(react@18.3.1) '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.2.57)(react@18.3.1) @@ -13618,7 +13610,7 @@ snapshots: '@types/react': 18.2.57 '@types/react-dom': 18.2.19 - '@radix-ui/react-popper@1.2.7(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-popper@1.2.8(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@floating-ui/react-dom': 2.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-arrow': 1.1.7(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -13636,9 +13628,9 @@ snapshots: '@types/react': 18.2.57 '@types/react-dom': 18.2.19 - '@radix-ui/react-portal@1.1.9(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-portal@1.1.10(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.1.4(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.2.57)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -13646,9 +13638,9 @@ snapshots: '@types/react': 18.2.57 '@types/react-dom': 18.2.19 - '@radix-ui/react-presence@1.1.4(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-portal@1.1.9(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.2.57)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.2.57)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -13684,25 +13676,25 @@ snapshots: '@types/react': 18.2.57 '@types/react-dom': 18.2.19 - '@radix-ui/react-progress@1.1.7(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-progress@1.1.8(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-context': 1.1.2(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-context': 1.1.3(@types/react@18.2.57)(react@18.3.1) + '@radix-ui/react-primitive': 2.1.4(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: '@types/react': 18.2.57 '@types/react-dom': 18.2.19 - '@radix-ui/react-radio-group@1.3.7(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-radio-group@1.3.8(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/primitive': 1.1.2 + '@radix-ui/primitive': 1.1.3 '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.2.57)(react@18.3.1) '@radix-ui/react-context': 1.1.2(@types/react@18.2.57)(react@18.3.1) '@radix-ui/react-direction': 1.1.1(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-roving-focus': 1.1.10(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.2.57)(react@18.3.1) '@radix-ui/react-use-previous': 1.1.1(@types/react@18.2.57)(react@18.3.1) '@radix-ui/react-use-size': 1.1.1(@types/react@18.2.57)(react@18.3.1) @@ -13712,9 +13704,9 @@ snapshots: '@types/react': 18.2.57 '@types/react-dom': 18.2.19 - '@radix-ui/react-roving-focus@1.1.10(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-roving-focus@1.1.11(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/primitive': 1.1.2 + '@radix-ui/primitive': 1.1.3 '@radix-ui/react-collection': 1.1.7(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.2.57)(react@18.3.1) '@radix-ui/react-context': 1.1.2(@types/react@18.2.57)(react@18.3.1) @@ -13729,14 +13721,14 @@ snapshots: '@types/react': 18.2.57 '@types/react-dom': 18.2.19 - '@radix-ui/react-scroll-area@1.2.9(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-scroll-area@1.2.10(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/number': 1.1.1 - '@radix-ui/primitive': 1.1.2 + '@radix-ui/primitive': 1.1.3 '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.2.57)(react@18.3.1) '@radix-ui/react-context': 1.1.2(@types/react@18.2.57)(react@18.3.1) '@radix-ui/react-direction': 1.1.1(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.2.57)(react@18.3.1) '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.2.57)(react@18.3.1) @@ -13746,19 +13738,19 @@ snapshots: '@types/react': 18.2.57 '@types/react-dom': 18.2.19 - '@radix-ui/react-select@2.2.5(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-select@2.2.6(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/number': 1.1.1 - '@radix-ui/primitive': 1.1.2 + '@radix-ui/primitive': 1.1.3 '@radix-ui/react-collection': 1.1.7(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.2.57)(react@18.3.1) '@radix-ui/react-context': 1.1.2(@types/react@18.2.57)(react@18.3.1) '@radix-ui/react-direction': 1.1.1(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-focus-guards': 1.1.2(@types/react@18.2.57)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@18.2.57)(react@18.3.1) '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-id': 1.1.1(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-popper': 1.2.7(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-portal': 1.1.9(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-slot': 1.2.3(@types/react@18.2.57)(react@18.3.1) @@ -13789,9 +13781,9 @@ snapshots: optionalDependencies: '@types/react': 18.2.57 - '@radix-ui/react-switch@1.2.5(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-switch@1.2.6(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/primitive': 1.1.2 + '@radix-ui/primitive': 1.1.3 '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.2.57)(react@18.3.1) '@radix-ui/react-context': 1.1.2(@types/react@18.2.57)(react@18.3.1) '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -13804,15 +13796,15 @@ snapshots: '@types/react': 18.2.57 '@types/react-dom': 18.2.19 - '@radix-ui/react-tabs@1.1.12(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-tabs@1.1.13(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/primitive': 1.1.2 + '@radix-ui/primitive': 1.1.3 '@radix-ui/react-context': 1.1.2(@types/react@18.2.57)(react@18.3.1) '@radix-ui/react-direction': 1.1.1(@types/react@18.2.57)(react@18.3.1) '@radix-ui/react-id': 1.1.1(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-roving-focus': 1.1.10(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.2.57)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -13820,16 +13812,16 @@ snapshots: '@types/react': 18.2.57 '@types/react-dom': 18.2.19 - '@radix-ui/react-tooltip@1.2.7(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-tooltip@1.2.8(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/primitive': 1.1.2 + '@radix-ui/primitive': 1.1.3 '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.2.57)(react@18.3.1) '@radix-ui/react-context': 1.1.2(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-id': 1.1.1(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-popper': 1.2.7(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-portal': 1.1.9(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-slot': 1.2.3(@types/react@18.2.57)(react@18.3.1) '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.2.57)(react@18.3.1) @@ -17707,7 +17699,7 @@ snapshots: cmdk@1.1.1(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-dialog': 1.1.14(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-dialog': 1.1.15(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-id': 1.1.1(@types/react@18.2.57)(react@18.3.1) '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 @@ -19025,11 +19017,12 @@ snapshots: fraction.js@4.3.7: {} - framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + framer-motion@12.36.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: + motion-dom: 12.36.0 + motion-utils: 12.36.0 tslib: 2.8.1 optionalDependencies: - '@emotion/is-prop-valid': 0.8.8 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -20402,6 +20395,20 @@ snapshots: module-details-from-path@1.0.4: {} + motion-dom@12.36.0: + dependencies: + motion-utils: 12.36.0 + + motion-utils@12.36.0: {} + + motion@12.36.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + framer-motion: 12.36.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + tslib: 2.8.1 + optionalDependencies: + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + mrmime@2.0.1: {} ms@2.1.3: {} @@ -22641,7 +22648,7 @@ snapshots: vaul@1.1.2(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@radix-ui/react-dialog': 1.1.14(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-dialog': 1.1.15(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) transitivePeerDependencies: diff --git a/src/components/Homepage/SavingsCarousel.tsx b/src/components/Homepage/SavingsCarousel.tsx index c596f294837..1e0527f96f4 100644 --- a/src/components/Homepage/SavingsCarousel.tsx +++ b/src/components/Homepage/SavingsCarousel.tsx @@ -1,7 +1,7 @@ "use client" import { useEffect, useState } from "react" -import { AnimationControls, motion, useAnimationControls } from "framer-motion" +import { motion, useAnimationControls } from "motion/react" import type { Swiper as SwiperType } from "swiper" import { SwiperSlide } from "swiper/react" @@ -142,9 +142,9 @@ type SavingsCarouselProps = { type ComparisonCardProps = { item: ComparisonItem variant: "default" | "primary" - controls: AnimationControls + controls: ReturnType initial: { opacity: number; x?: number; y: number } - transition: { duration: number; delay: number; ease: string } + transition: { duration: number; delay: number; ease: "easeOut" } className?: string } diff --git a/src/components/Nav/Menu/MenuContent.tsx b/src/components/Nav/Menu/MenuContent.tsx index 0aebfd8c44c..ef955d28d72 100644 --- a/src/components/Nav/Menu/MenuContent.tsx +++ b/src/components/Nav/Menu/MenuContent.tsx @@ -1,4 +1,4 @@ -import { motion } from "framer-motion" +import { motion } from "motion/react" import { tv } from "tailwind-variants" import { Content } from "@radix-ui/react-navigation-menu" diff --git a/src/components/Nav/Menu/SubMenu.tsx b/src/components/Nav/Menu/SubMenu.tsx index eeaaacb9425..77b1e5b86e8 100644 --- a/src/components/Nav/Menu/SubMenu.tsx +++ b/src/components/Nav/Menu/SubMenu.tsx @@ -1,4 +1,4 @@ -import { AnimatePresence, motion } from "framer-motion" +import { AnimatePresence, motion } from "motion/react" import { Content, Item, diff --git a/src/components/Nav/Menu/index.tsx b/src/components/Nav/Menu/index.tsx index abfdb01b7b8..374c18f95a3 100644 --- a/src/components/Nav/Menu/index.tsx +++ b/src/components/Nav/Menu/index.tsx @@ -1,7 +1,7 @@ "use client" import { BaseHTMLAttributes } from "react" -import { motion } from "framer-motion" +import { motion } from "motion/react" import { Item, List, diff --git a/src/components/Nav/Menu/useNavMenu.ts b/src/components/Nav/Menu/useNavMenu.ts index cf2961a9bc9..3a7c6a872fd 100644 --- a/src/components/Nav/Menu/useNavMenu.ts +++ b/src/components/Nav/Menu/useNavMenu.ts @@ -1,5 +1,5 @@ import { useState } from "react" -import type { MotionProps } from "framer-motion" +import type { MotionProps } from "motion/react" import { isModified } from "@/lib/utils/keyboard" diff --git a/src/components/Nav/Menu/useSubMenu.ts b/src/components/Nav/Menu/useSubMenu.ts index 6d51aca23bc..6559bf53ee6 100644 --- a/src/components/Nav/Menu/useSubMenu.ts +++ b/src/components/Nav/Menu/useSubMenu.ts @@ -1,4 +1,4 @@ -import type { MotionProps } from "framer-motion" +import type { MotionProps } from "motion/react" import { useLocale } from "next-intl" import { useRtlFlip } from "@/hooks/useRtlFlip" diff --git a/src/components/Nav/MobileMenu/HamburgerButton.tsx b/src/components/Nav/MobileMenu/HamburgerButton.tsx index b0d5e695ccf..27ba3ba1000 100644 --- a/src/components/Nav/MobileMenu/HamburgerButton.tsx +++ b/src/components/Nav/MobileMenu/HamburgerButton.tsx @@ -1,7 +1,7 @@ "use client" import { forwardRef } from "react" -import { motion } from "framer-motion" +import { motion } from "motion/react" import { cn } from "@/lib/utils/cn" diff --git a/src/components/SideNav.tsx b/src/components/SideNav.tsx index 6f6bd0d0e26..4d0333971c1 100644 --- a/src/components/SideNav.tsx +++ b/src/components/SideNav.tsx @@ -1,8 +1,8 @@ "use client" import { useEffect, useState } from "react" -import { motion } from "framer-motion" import { ChevronRight } from "lucide-react" +import { motion } from "motion/react" import { ChildOnlyProp } from "@/lib/types" import { DeveloperDocsLink } from "@/lib/interfaces" diff --git a/src/components/SideNavMobile.tsx b/src/components/SideNavMobile.tsx index b9af310cda0..0b0b825d307 100644 --- a/src/components/SideNavMobile.tsx +++ b/src/components/SideNavMobile.tsx @@ -1,8 +1,8 @@ "use client" import { useState } from "react" -import { AnimatePresence, motion } from "framer-motion" import { ChevronRight } from "lucide-react" +import { AnimatePresence, motion } from "motion/react" import type { ChildOnlyProp, TranslationKey } from "@/lib/types" import { DeveloperDocsLink } from "@/lib/interfaces" diff --git a/src/components/Simulator/ClickAnimation.tsx b/src/components/Simulator/ClickAnimation.tsx index a7a6a0881dc..4be6fec3398 100644 --- a/src/components/Simulator/ClickAnimation.tsx +++ b/src/components/Simulator/ClickAnimation.tsx @@ -1,11 +1,11 @@ import { type ReactNode, useEffect, useState } from "react" -import { motion, type Transition } from "framer-motion" +import { motion, type Transition } from "motion/react" import { cn } from "@/lib/utils/cn" import { Flex } from "../ui/flex" -const MotionFlex = motion(Flex) +const MotionFlex = motion.create(Flex) type ClickAnimationProps = { children: ReactNode diff --git a/src/components/Simulator/Explanation.tsx b/src/components/Simulator/Explanation.tsx index e4bb59a1369..078752cfc72 100644 --- a/src/components/Simulator/Explanation.tsx +++ b/src/components/Simulator/Explanation.tsx @@ -1,6 +1,6 @@ import React from "react" -import { motion } from "framer-motion" import { ArrowLeft } from "lucide-react" +import { motion } from "motion/react" import type { SimulatorNavProps } from "@/lib/types" diff --git a/src/components/Simulator/MoreInfoPopover.tsx b/src/components/Simulator/MoreInfoPopover.tsx index cf2811223ff..705d94080ad 100644 --- a/src/components/Simulator/MoreInfoPopover.tsx +++ b/src/components/Simulator/MoreInfoPopover.tsx @@ -1,6 +1,6 @@ import { type ReactNode, useState } from "react" -import { motion } from "framer-motion" import { Info, X } from "lucide-react" +import { motion } from "motion/react" import { Button } from "../ui/buttons/Button" import { @@ -12,7 +12,7 @@ import { import { PulseAnimation } from "./PulseAnimation" -const MotionButton = motion(Button) +const MotionButton = motion.create(Button) type MoreInfoPopover = { isFirstStep: boolean diff --git a/src/components/Simulator/ProgressCta.tsx b/src/components/Simulator/ProgressCta.tsx index fb0579c03b1..9b0cd5f418c 100644 --- a/src/components/Simulator/ProgressCta.tsx +++ b/src/components/Simulator/ProgressCta.tsx @@ -1,5 +1,5 @@ import React, { type ComponentPropsWithoutRef } from "react" -import { motion } from "framer-motion" +import { motion } from "motion/react" import { cn } from "@/lib/utils/cn" @@ -9,7 +9,7 @@ import { Flex } from "../ui/flex" import { ClickAnimation } from "./ClickAnimation" import { PulseAnimation } from "./PulseAnimation" -const MotionFlex = motion(Flex) +const MotionFlex = motion.create(Flex) type ProgressCtaProps = ComponentPropsWithoutRef & Pick & { diff --git a/src/components/Simulator/PulseAnimation.tsx b/src/components/Simulator/PulseAnimation.tsx index 5e31bc5e84e..3745541f67d 100644 --- a/src/components/Simulator/PulseAnimation.tsx +++ b/src/components/Simulator/PulseAnimation.tsx @@ -1,5 +1,5 @@ import React from "react" -import { motion } from "framer-motion" +import { motion } from "motion/react" import { cn } from "@/lib/utils/cn" diff --git a/src/components/Simulator/screens/ConnectWeb3/Browser.tsx b/src/components/Simulator/screens/ConnectWeb3/Browser.tsx index 0995bbf3c78..406ab9140d2 100644 --- a/src/components/Simulator/screens/ConnectWeb3/Browser.tsx +++ b/src/components/Simulator/screens/ConnectWeb3/Browser.tsx @@ -1,6 +1,6 @@ import React, { type HTMLAttributes, useEffect, useState } from "react" -import { motion } from "framer-motion" import { MoreHorizontal, Search, Triangle } from "lucide-react" +import { motion } from "motion/react" import { Flex, HStack } from "@/components/ui/flex" diff --git a/src/components/Simulator/screens/ConnectWeb3/Slider.tsx b/src/components/Simulator/screens/ConnectWeb3/Slider.tsx index 1f4931d0ae1..f63e6eb8811 100644 --- a/src/components/Simulator/screens/ConnectWeb3/Slider.tsx +++ b/src/components/Simulator/screens/ConnectWeb3/Slider.tsx @@ -1,6 +1,6 @@ import { type ReactNode } from "react" -import { motion } from "framer-motion" import { Check } from "lucide-react" +import { motion } from "motion/react" import { HStack, VStack } from "@/components/ui/flex" diff --git a/src/components/Simulator/screens/ConnectWeb3/index.tsx b/src/components/Simulator/screens/ConnectWeb3/index.tsx index 740c1ed26d6..46ca2dc5c44 100644 --- a/src/components/Simulator/screens/ConnectWeb3/index.tsx +++ b/src/components/Simulator/screens/ConnectWeb3/index.tsx @@ -1,7 +1,7 @@ "use client" import { useEffect, useMemo, useState } from "react" -import { AnimatePresence, motion } from "framer-motion" +import { AnimatePresence, motion } from "motion/react" import type { PhoneScreenProps } from "@/lib/types" diff --git a/src/components/Simulator/screens/CreateAccount/GeneratingKeys.tsx b/src/components/Simulator/screens/CreateAccount/GeneratingKeys.tsx index c8e35096540..d359c6bfc33 100644 --- a/src/components/Simulator/screens/CreateAccount/GeneratingKeys.tsx +++ b/src/components/Simulator/screens/CreateAccount/GeneratingKeys.tsx @@ -1,6 +1,6 @@ import React, { useEffect, useState } from "react" -import { motion } from "framer-motion" import { Check } from "lucide-react" +import { motion } from "motion/react" import type { PhoneScreenProps } from "@/lib/types" diff --git a/src/components/Simulator/screens/CreateAccount/HomeScreen.tsx b/src/components/Simulator/screens/CreateAccount/HomeScreen.tsx index 03a4ec611d5..8212f3846fb 100644 --- a/src/components/Simulator/screens/CreateAccount/HomeScreen.tsx +++ b/src/components/Simulator/screens/CreateAccount/HomeScreen.tsx @@ -1,6 +1,6 @@ import { type HTMLAttributes } from "react" -import { AnimatePresence, motion } from "framer-motion" import { ArrowDown } from "lucide-react" +import { AnimatePresence, motion } from "motion/react" import type { SimulatorNavProps } from "@/lib/types" diff --git a/src/components/Simulator/screens/CreateAccount/RecoveryPhraseNotice.tsx b/src/components/Simulator/screens/CreateAccount/RecoveryPhraseNotice.tsx index 78aab92c35e..1c3fd4016a5 100644 --- a/src/components/Simulator/screens/CreateAccount/RecoveryPhraseNotice.tsx +++ b/src/components/Simulator/screens/CreateAccount/RecoveryPhraseNotice.tsx @@ -1,4 +1,4 @@ -import { motion } from "framer-motion" +import { motion } from "motion/react" export const RecoveryPhraseNotice = () => ( ( Date: Mon, 16 Mar 2026 11:35:57 +0100 Subject: [PATCH 02/14] phase 2: upgrade to next.js 15 + react 19, async params, caching fixes, config updates --- app/[locale]/10years/page.tsx | 10 +- app/[locale]/[...slug]/page.tsx | 10 +- app/[locale]/apps/[application]/page.tsx | 14 +- .../apps/categories/[catetgoryName]/page.tsx | 14 +- app/[locale]/apps/page.tsx | 10 +- app/[locale]/assets/page.tsx | 10 +- app/[locale]/bug-bounty/page.tsx | 7 +- app/[locale]/collectibles/page.tsx | 10 +- .../community/events/conferences/page.tsx | 10 +- .../community/events/meetups/page.tsx | 10 +- app/[locale]/community/events/page.tsx | 10 +- app/[locale]/community/events/search/page.tsx | 18 +- app/[locale]/community/page.tsx | 10 +- app/[locale]/community/support/page.tsx | 10 +- .../acknowledgements/page.tsx | 10 +- .../translation-program/contributors/page.tsx | 10 +- .../translatathon/leaderboard/page.tsx | 7 +- app/[locale]/developers/page.tsx | 10 +- .../developers/tools/[category]/page.tsx | 18 +- app/[locale]/developers/tools/page.tsx | 18 +- app/[locale]/developers/tutorials/page.tsx | 10 +- app/[locale]/founders/page.tsx | 10 +- app/[locale]/gas/page.tsx | 10 +- app/[locale]/get-eth/page.tsx | 10 +- app/[locale]/layer-2/learn/page.tsx | 10 +- app/[locale]/layer-2/networks/page.tsx | 10 +- app/[locale]/layer-2/page.tsx | 10 +- app/[locale]/layout.tsx | 13 +- app/[locale]/learn/page.tsx | 10 +- app/[locale]/page.tsx | 10 +- app/[locale]/quizzes/page.tsx | 10 +- app/[locale]/resources/page.tsx | 10 +- app/[locale]/roadmap/_vision/page.tsx | 10 +- app/[locale]/roadmap/page.tsx | 10 +- app/[locale]/run-a-node/page.tsx | 10 +- app/[locale]/stablecoins/page.tsx | 10 +- .../staking/deposit-contract/page.tsx | 10 +- app/[locale]/staking/page.tsx | 10 +- app/[locale]/start/page.tsx | 10 +- .../trillion-dollar-security/page.tsx | 10 +- app/[locale]/wallets/find-wallet/page.tsx | 10 +- app/[locale]/wallets/page.tsx | 10 +- app/[locale]/what-is-ether/page.tsx | 3 +- app/[locale]/what-is-ethereum/page.tsx | 10 +- app/api/ab-config/route.ts | 2 + app/not-found.tsx | 2 +- next.config.js | 81 +- package.json | 14 +- pnpm-lock.yaml | 2254 ++++++++--------- src/components/CodeModal.tsx | 6 +- src/components/Codeblock.tsx | 4 +- src/components/DataTable/index.tsx | 6 +- src/components/Hero/ContentHero/index.tsx | 2 +- src/components/Hero/HubHero/index.tsx | 2 +- src/components/Nav/types.ts | 2 +- .../FilterInputs/SwitchFilterInput.tsx | 2 +- src/components/Search/index.tsx | 2 +- src/components/Simulator/interfaces.ts | 4 +- .../screens/CreateAccount/WordList.tsx | 5 +- src/components/Staking/StakingComparison.tsx | 1 + .../Staking/WithdrawalCredentials.tsx | 2 +- src/components/Stat/index.tsx | 2 +- src/components/Translation.tsx | 3 +- src/components/ui/avatar.tsx | 2 +- src/components/ui/flex.tsx | 2 +- src/hooks/useEventListener.ts | 8 +- src/hooks/useOnClickOutside.ts | 2 +- src/hooks/useRefWidth.ts | 2 +- src/lib/ab-testing/server.ts | 4 +- src/lib/ab-testing/types.ts | 2 +- src/lib/types.ts | 9 +- src/lib/utils/gh.ts | 1 + 72 files changed, 1337 insertions(+), 1553 deletions(-) diff --git a/app/[locale]/10years/page.tsx b/app/[locale]/10years/page.tsx index cf7d587f8db..6f128e9d13d 100644 --- a/app/[locale]/10years/page.tsx +++ b/app/[locale]/10years/page.tsx @@ -44,7 +44,8 @@ import Curved10YearsText from "@/public/images/10-year-anniversary/10y-torch-hea const zIndexClasses = ["z-50", "z-40", "z-30", "z-20", "z-10", "z-0"] -const Page = async ({ params }: { params: PageParams }) => { +const Page = async (props: { params: Promise }) => { + const params = await props.params const { locale } = params setRequestLocale(locale) @@ -377,11 +378,10 @@ const Page = async ({ params }: { params: PageParams }) => { ) } -export async function generateMetadata({ - params, -}: { - params: { locale: string } +export async function generateMetadata(props: { + params: Promise<{ locale: string }> }) { + const params = await props.params const { locale } = params const t = await getTranslations({ diff --git a/app/[locale]/[...slug]/page.tsx b/app/[locale]/[...slug]/page.tsx index 5ce294ce805..99b01073018 100644 --- a/app/[locale]/[...slug]/page.tsx +++ b/app/[locale]/[...slug]/page.tsx @@ -24,7 +24,8 @@ import { componentsMapping, layoutMapping } from "@/layouts" import { getPageData } from "@/lib/md/data" import { getMdMetadata } from "@/lib/md/metadata" -export default async function Page({ params }: { params: SlugPageParams }) { +export default async function Page(props: { params: Promise }) { + const params = await props.params const { locale, slug: slugArray } = params // Check if this specific path is in our valid paths @@ -56,8 +57,6 @@ export default async function Page({ params }: { params: SlugPageParams }) { } = await getPageData({ locale, slug, - // TODO: Address component typing error here (flip `FC` types to prop object types) - // @ts-expect-error Incompatible component function signatures baseComponents: mdComponents, componentsMapping, scope: { @@ -122,7 +121,10 @@ export async function generateStaticParams() { } } -export async function generateMetadata({ params }: { params: SlugPageParams }) { +export async function generateMetadata(props: { + params: Promise +}) { + const params = await props.params const { locale, slug } = params try { diff --git a/app/[locale]/apps/[application]/page.tsx b/app/[locale]/apps/[application]/page.tsx index b99a7548800..5cf66cabb1a 100644 --- a/app/[locale]/apps/[application]/page.tsx +++ b/app/[locale]/apps/[application]/page.tsx @@ -47,11 +47,10 @@ import AppsAppJsonLD from "./page-jsonld" import { getAppsData } from "@/lib/data" -const Page = async ({ - params, -}: { - params: PageParams & { application: string } +const Page = async (props: { + params: Promise }) => { + const params = await props.params const { locale, application } = params setRequestLocale(locale) @@ -405,11 +404,10 @@ const Page = async ({ ) } -export async function generateMetadata({ - params, -}: { - params: { locale: string; application: string } +export async function generateMetadata(props: { + params: Promise<{ locale: string; application: string }> }) { + const params = await props.params const { locale, application } = params // Fetch apps data using the new data-layer function (already cached) diff --git a/app/[locale]/apps/categories/[catetgoryName]/page.tsx b/app/[locale]/apps/categories/[catetgoryName]/page.tsx index 9b67093d057..b28ea8b759f 100644 --- a/app/[locale]/apps/categories/[catetgoryName]/page.tsx +++ b/app/[locale]/apps/categories/[catetgoryName]/page.tsx @@ -47,11 +47,10 @@ const VALID_CATEGORIES = Object.values(AppCategoryEnum) const isValidCategory = (category: string): category is AppCategoryEnum => VALID_CATEGORIES.includes(category as AppCategoryEnum) -const Page = async ({ - params, -}: { - params: PageParams & { catetgoryName: string } +const Page = async (props: { + params: Promise }) => { + const params = await props.params const { locale, catetgoryName } = params setRequestLocale(locale) @@ -183,11 +182,10 @@ const Page = async ({ ) } -export async function generateMetadata({ - params, -}: { - params: { locale: string; catetgoryName: string } +export async function generateMetadata(props: { + params: Promise<{ locale: string; catetgoryName: string }> }) { + const params = await props.params const { locale, catetgoryName } = params const t = await getTranslations({ locale, namespace: "page-apps" }) diff --git a/app/[locale]/apps/page.tsx b/app/[locale]/apps/page.tsx index 44a07b8f30e..afcc823d147 100644 --- a/app/[locale]/apps/page.tsx +++ b/app/[locale]/apps/page.tsx @@ -34,7 +34,8 @@ import AppsJsonLD from "./page-jsonld" import { getAppsData, getCommunityPicks } from "@/lib/data" -const Page = async ({ params }: { params: PageParams }) => { +const Page = async (props: { params: Promise }) => { + const params = await props.params const { locale } = params setRequestLocale(locale) @@ -170,11 +171,10 @@ const Page = async ({ params }: { params: PageParams }) => { ) } -export async function generateMetadata({ - params, -}: { - params: { locale: string } +export async function generateMetadata(props: { + params: Promise<{ locale: string }> }) { + const params = await props.params const { locale } = params const t = await getTranslations({ locale, namespace: "page-apps" }) diff --git a/app/[locale]/assets/page.tsx b/app/[locale]/assets/page.tsx index e37966ae161..cac9bf7273d 100644 --- a/app/[locale]/assets/page.tsx +++ b/app/[locale]/assets/page.tsx @@ -16,7 +16,8 @@ import { getRequiredNamespacesForPage } from "@/lib/utils/translations" import AssetsPage from "./_components/assets" import AssetsJsonLD from "./page-jsonld" -export default async function Page({ params }: { params: PageParams }) { +export default async function Page(props: { params: Promise }) { + const params = await props.params const { locale } = params setRequestLocale(locale) @@ -43,11 +44,10 @@ export default async function Page({ params }: { params: PageParams }) { ) } -export async function generateMetadata({ - params, -}: { - params: { locale: string } +export async function generateMetadata(props: { + params: Promise<{ locale: string }> }) { + const params = await props.params const { locale } = params const t = await getTranslations({ locale, namespace: "page-assets" }) diff --git a/app/[locale]/bug-bounty/page.tsx b/app/[locale]/bug-bounty/page.tsx index 764cad904d4..f1a9c3f6881 100644 --- a/app/[locale]/bug-bounty/page.tsx +++ b/app/[locale]/bug-bounty/page.tsx @@ -838,11 +838,10 @@ export default async function Page({ params }: { params: Promise }) { ) } -export async function generateMetadata({ - params, -}: { - params: { locale: string } +export async function generateMetadata(props: { + params: Promise<{ locale: string }> }) { + const params = await props.params const { locale } = params const t = await getTranslations({ locale, namespace: "page-bug-bounty" }) diff --git a/app/[locale]/collectibles/page.tsx b/app/[locale]/collectibles/page.tsx index 0957f1f31d8..18309b58d05 100644 --- a/app/[locale]/collectibles/page.tsx +++ b/app/[locale]/collectibles/page.tsx @@ -40,7 +40,8 @@ async function fetchStats() { return res.json() } -export default async function Page({ params }: { params: PageParams }) { +export default async function Page(props: { params: Promise }) { + const params = await props.params const { locale } = params const t = await getTranslations({ locale, namespace: "page-collectibles" }) setRequestLocale(locale) @@ -148,11 +149,10 @@ export default async function Page({ params }: { params: PageParams }) { ) } -export async function generateMetadata({ - params, -}: { - params: { locale: string } +export async function generateMetadata(props: { + params: Promise<{ locale: string }> }) { + const params = await props.params const { locale } = params const t = await getTranslations({ locale, namespace: "page-collectibles" }) return await getMetadata({ diff --git a/app/[locale]/community/events/conferences/page.tsx b/app/[locale]/community/events/conferences/page.tsx index f56ac1cc7b5..45822d34e75 100644 --- a/app/[locale]/community/events/conferences/page.tsx +++ b/app/[locale]/community/events/conferences/page.tsx @@ -23,7 +23,8 @@ import { mapEventTranslations } from "../utils" import { getEventsData } from "@/lib/data" -const Page = async ({ params }: { params: PageParams }) => { +const Page = async (props: { params: Promise }) => { + const params = await props.params const { locale } = params const _events = (await getEventsData()) ?? [] @@ -134,11 +135,10 @@ const Page = async ({ params }: { params: PageParams }) => { ) } -export async function generateMetadata({ - params, -}: { - params: { locale: string } +export async function generateMetadata(props: { + params: Promise<{ locale: string }> }) { + const params = await props.params const { locale } = params const t = await getTranslations({ locale, diff --git a/app/[locale]/community/events/meetups/page.tsx b/app/[locale]/community/events/meetups/page.tsx index 46b563bab25..1a6a232751a 100644 --- a/app/[locale]/community/events/meetups/page.tsx +++ b/app/[locale]/community/events/meetups/page.tsx @@ -19,7 +19,8 @@ import FilterMeetups from "./_components/FilterMeetups" import { getEventsData } from "@/lib/data" -const Page = async ({ params }: { params: PageParams }) => { +const Page = async (props: { params: Promise }) => { + const params = await props.params const { locale } = params const _events = (await getEventsData()) ?? [] @@ -76,11 +77,10 @@ const Page = async ({ params }: { params: PageParams }) => { ) } -export async function generateMetadata({ - params, -}: { - params: { locale: string } +export async function generateMetadata(props: { + params: Promise<{ locale: string }> }) { + const params = await props.params const { locale } = params const t = await getTranslations({ locale, diff --git a/app/[locale]/community/events/page.tsx b/app/[locale]/community/events/page.tsx index ba60016670c..552ca527464 100644 --- a/app/[locale]/community/events/page.tsx +++ b/app/[locale]/community/events/page.tsx @@ -49,7 +49,8 @@ import geodeLabsLogo from "@/public/images/community/geode-labs-logo.png" import heroImage from "@/public/images/enterprise-eth.png" import organizerImage from "@/public/images/people-learning.png" -const Page = async ({ params }: { params: PageParams }) => { +const Page = async (props: { params: Promise }) => { + const params = await props.params const { locale } = params const _events = (await getEventsData()) ?? [] @@ -586,11 +587,10 @@ const Page = async ({ params }: { params: PageParams }) => { ) } -export async function generateMetadata({ - params, -}: { - params: { locale: string } +export async function generateMetadata(props: { + params: Promise<{ locale: string }> }) { + const params = await props.params const { locale } = params const t = await getTranslations({ locale, diff --git a/app/[locale]/community/events/search/page.tsx b/app/[locale]/community/events/search/page.tsx index f2aba138bbf..64cd7d7ed88 100644 --- a/app/[locale]/community/events/search/page.tsx +++ b/app/[locale]/community/events/search/page.tsx @@ -18,13 +18,12 @@ import { mapEventTranslations, sanitize } from "../utils" import { getEventsData } from "@/lib/data" -const Page = async ({ - params, - searchParams, -}: { - params: PageParams - searchParams: { q?: string } +const Page = async (props: { + params: Promise + searchParams: Promise<{ q?: string }> }) => { + const searchParams = await props.searchParams + const params = await props.params const { locale } = params const { q } = searchParams @@ -138,11 +137,10 @@ const Page = async ({ ) } -export async function generateMetadata({ - params, -}: { - params: { locale: string } +export async function generateMetadata(props: { + params: Promise<{ locale: string }> }) { + const params = await props.params const { locale } = params const t = await getTranslations({ locale, diff --git a/app/[locale]/community/page.tsx b/app/[locale]/community/page.tsx index 092e6cfa28b..5098781789b 100644 --- a/app/[locale]/community/page.tsx +++ b/app/[locale]/community/page.tsx @@ -16,7 +16,8 @@ import { getRequiredNamespacesForPage } from "@/lib/utils/translations" import CommunityPage from "./_components/community" import CommunityJsonLD from "./page-jsonld" -export default async function Page({ params }: { params: PageParams }) { +export default async function Page(props: { params: Promise }) { + const params = await props.params const { locale } = params setRequestLocale(locale) @@ -43,11 +44,10 @@ export default async function Page({ params }: { params: PageParams }) { ) } -export async function generateMetadata({ - params, -}: { - params: { locale: string } +export async function generateMetadata(props: { + params: Promise<{ locale: string }> }) { + const params = await props.params const { locale } = params const t = await getTranslations({ locale, namespace: "page-community" }) diff --git a/app/[locale]/community/support/page.tsx b/app/[locale]/community/support/page.tsx index 40951908dc7..42ffc820731 100644 --- a/app/[locale]/community/support/page.tsx +++ b/app/[locale]/community/support/page.tsx @@ -23,7 +23,8 @@ import { getMetadata } from "@/lib/utils/metadata" const EVENT_CATEGORY = "Support" -export default async function Page({ params }: { params: PageParams }) { +export default async function Page(props: { params: Promise }) { + const params = await props.params const { locale } = params setRequestLocale(locale) @@ -402,11 +403,10 @@ export default async function Page({ params }: { params: PageParams }) { ) } -export async function generateMetadata({ - params, -}: { - params: { locale: string } +export async function generateMetadata(props: { + params: Promise<{ locale: string }> }) { + const params = await props.params const { locale } = params const t = await getTranslations({ diff --git a/app/[locale]/contributing/translation-program/acknowledgements/page.tsx b/app/[locale]/contributing/translation-program/acknowledgements/page.tsx index abd537d06c0..282c532db2c 100644 --- a/app/[locale]/contributing/translation-program/acknowledgements/page.tsx +++ b/app/[locale]/contributing/translation-program/acknowledgements/page.tsx @@ -16,7 +16,8 @@ import { getRequiredNamespacesForPage } from "@/lib/utils/translations" import Acknowledgements from "./_components/acknowledgements" import AcknowledgementsJsonLD from "./page-jsonld" -const Page = async ({ params }: { params: PageParams }) => { +const Page = async (props: { params: Promise }) => { + const params = await props.params const { locale } = params setRequestLocale(locale) @@ -45,11 +46,10 @@ const Page = async ({ params }: { params: PageParams }) => { ) } -export async function generateMetadata({ - params, -}: { - params: { locale: string } +export async function generateMetadata(props: { + params: Promise<{ locale: string }> }) { + const params = await props.params const { locale } = params const t = await getTranslations({ diff --git a/app/[locale]/contributing/translation-program/contributors/page.tsx b/app/[locale]/contributing/translation-program/contributors/page.tsx index eea58f1515c..4872cea97e9 100644 --- a/app/[locale]/contributing/translation-program/contributors/page.tsx +++ b/app/[locale]/contributing/translation-program/contributors/page.tsx @@ -16,7 +16,8 @@ import { getRequiredNamespacesForPage } from "@/lib/utils/translations" import Contributors from "./_components/contributors" import ContributorsJsonLD from "./page-jsonld" -const Page = async ({ params }: { params: PageParams }) => { +const Page = async (props: { params: Promise }) => { + const params = await props.params const { locale } = params setRequestLocale(locale) @@ -45,11 +46,10 @@ const Page = async ({ params }: { params: PageParams }) => { ) } -export async function generateMetadata({ - params, -}: { - params: { locale: string } +export async function generateMetadata(props: { + params: Promise<{ locale: string }> }) { + const params = await props.params const { locale } = params const t = await getTranslations({ diff --git a/app/[locale]/contributing/translation-program/translatathon/leaderboard/page.tsx b/app/[locale]/contributing/translation-program/translatathon/leaderboard/page.tsx index 0c59ce6c02d..196592c5a85 100644 --- a/app/[locale]/contributing/translation-program/translatathon/leaderboard/page.tsx +++ b/app/[locale]/contributing/translation-program/translatathon/leaderboard/page.tsx @@ -155,11 +155,10 @@ const Page = async ({ params }: { params: Promise<{ locale: string }> }) => { ) } -export async function generateMetadata({ - params, -}: { - params: { locale: string } +export async function generateMetadata(props: { + params: Promise<{ locale: string }> }) { + const params = await props.params const { locale } = params return await getMetadata({ diff --git a/app/[locale]/developers/page.tsx b/app/[locale]/developers/page.tsx index 2f69b11e16e..72edd2c368f 100644 --- a/app/[locale]/developers/page.tsx +++ b/app/[locale]/developers/page.tsx @@ -119,7 +119,8 @@ const WhyGrid = () => { ) } -const DevelopersPage = async ({ params }: { params: PageParams }) => { +const DevelopersPage = async (props: { params: Promise }) => { + const params = await props.params const { locale } = params const t = await getTranslations({ locale, @@ -662,11 +663,10 @@ const DevelopersPage = async ({ params }: { params: PageParams }) => { ) } -export async function generateMetadata({ - params, -}: { - params: { locale: string } +export async function generateMetadata(props: { + params: Promise<{ locale: string }> }) { + const params = await props.params const { locale } = params const t = await getTranslations({ diff --git a/app/[locale]/developers/tools/[category]/page.tsx b/app/[locale]/developers/tools/[category]/page.tsx index 09538fbacdc..80c8286049f 100644 --- a/app/[locale]/developers/tools/[category]/page.tsx +++ b/app/[locale]/developers/tools/[category]/page.tsx @@ -26,13 +26,12 @@ import DevelopersToolsCategoryJsonLD from "./page-jsonld" import { getDeveloperToolsData } from "@/lib/data" -const Page = async ({ - params, - searchParams, -}: { - params: PageParams & { category: DeveloperToolCategorySlug } - searchParams: { toolId?: string } +const Page = async (props: { + params: Promise + searchParams: Promise<{ toolId?: string }> }) => { + const searchParams = await props.searchParams + const params = await props.params const { locale, category } = params const { toolId } = searchParams @@ -152,11 +151,10 @@ export async function generateStaticParams() { return DEV_TOOL_CATEGORIES.map(({ slug }) => ({ category: slug })) } -export async function generateMetadata({ - params, -}: { - params: { locale: string; category: string } +export async function generateMetadata(props: { + params: Promise<{ locale: string; category: string }> }) { + const params = await props.params const { locale, category } = params if (!VALID_CATEGORY_SLUGS.has(category as DeveloperToolCategorySlug)) { diff --git a/app/[locale]/developers/tools/page.tsx b/app/[locale]/developers/tools/page.tsx index 922555b4ed9..fce31bac303 100644 --- a/app/[locale]/developers/tools/page.tsx +++ b/app/[locale]/developers/tools/page.tsx @@ -28,13 +28,12 @@ import type { DeveloperToolsByCategory } from "./types" import { getDeveloperToolsData } from "@/lib/data" -const Page = async ({ - params, - searchParams, -}: { - params: PageParams - searchParams: { toolId?: string } +const Page = async (props: { + params: Promise + searchParams: Promise<{ toolId?: string }> }) => { + const searchParams = await props.searchParams + const params = await props.params const { locale } = params const { toolId } = searchParams @@ -170,11 +169,10 @@ const Page = async ({ ) } -export async function generateMetadata({ - params, -}: { - params: { locale: string } +export async function generateMetadata(props: { + params: Promise<{ locale: string }> }) { + const params = await props.params const { locale } = params const t = await getTranslations({ locale, diff --git a/app/[locale]/developers/tutorials/page.tsx b/app/[locale]/developers/tutorials/page.tsx index 4049c35358b..9225edeb2e7 100644 --- a/app/[locale]/developers/tutorials/page.tsx +++ b/app/[locale]/developers/tutorials/page.tsx @@ -56,7 +56,8 @@ const TutorialsList = dynamic(() => import("./_components/tutorials"), { ), }) -const Page = async ({ params }: { params: PageParams }) => { +const Page = async (props: { params: Promise }) => { + const params = await props.params const { locale } = params setRequestLocale(locale) @@ -119,11 +120,10 @@ const Page = async ({ params }: { params: PageParams }) => { ) } -export async function generateMetadata({ - params, -}: { - params: { locale: string } +export async function generateMetadata(props: { + params: Promise<{ locale: string }> }) { + const params = await props.params const { locale } = params const t = await getTranslations({ diff --git a/app/[locale]/founders/page.tsx b/app/[locale]/founders/page.tsx index aba82190610..5b6b5cca218 100644 --- a/app/[locale]/founders/page.tsx +++ b/app/[locale]/founders/page.tsx @@ -40,7 +40,8 @@ import FoundersPageJsonLD from "./page-jsonld" import heroImg from "@/public/images/upgrades/merge.png" -const Page = async ({ params }: { params: PageParams }) => { +const Page = async (props: { params: Promise }) => { + const params = await props.params const { locale } = params const t = await getTranslations({ locale, namespace: "page-founders" }) @@ -454,11 +455,10 @@ const Page = async ({ params }: { params: PageParams }) => { ) } -export async function generateMetadata({ - params, -}: { - params: { locale: string } +export async function generateMetadata(props: { + params: Promise<{ locale: string }> }) { + const params = await props.params const { locale } = params const t = await getTranslations({ diff --git a/app/[locale]/gas/page.tsx b/app/[locale]/gas/page.tsx index 4caca134ded..717da7eee68 100644 --- a/app/[locale]/gas/page.tsx +++ b/app/[locale]/gas/page.tsx @@ -16,7 +16,8 @@ import { getRequiredNamespacesForPage } from "@/lib/utils/translations" import GasPage from "./_components/gas" import GasPageJsonLD from "./page-jsonld" -const Page = async ({ params }: { params: PageParams }) => { +const Page = async (props: { params: Promise }) => { + const params = await props.params const { locale } = params setRequestLocale(locale) @@ -46,11 +47,10 @@ const Page = async ({ params }: { params: PageParams }) => { ) } -export async function generateMetadata({ - params, -}: { - params: { locale: string } +export async function generateMetadata(props: { + params: Promise<{ locale: string }> }) { + const params = await props.params const { locale } = params const t = await getTranslations({ locale, namespace: "page-gas" }) diff --git a/app/[locale]/get-eth/page.tsx b/app/[locale]/get-eth/page.tsx index 6bf5930aaf1..697feb3a610 100644 --- a/app/[locale]/get-eth/page.tsx +++ b/app/[locale]/get-eth/page.tsx @@ -98,7 +98,8 @@ const TwoColumnContent = (props: ChildOnlyProp) => (
) -export default async function Page({ params }: { params: PageParams }) { +export default async function Page(props: { params: Promise }) { + const params = await props.params const { locale } = params const t = await getTranslations({ locale, namespace: "page-get-eth" }) const tCommon = await getTranslations({ locale, namespace: "common" }) @@ -426,11 +427,10 @@ export default async function Page({ params }: { params: PageParams }) { ) } -export async function generateMetadata({ - params, -}: { - params: { locale: string } +export async function generateMetadata(props: { + params: Promise<{ locale: string }> }) { + const params = await props.params const { locale } = params const t = await getTranslations({ locale, namespace: "page-get-eth" }) diff --git a/app/[locale]/layer-2/learn/page.tsx b/app/[locale]/layer-2/learn/page.tsx index da8820dd8b2..9e8ad8ed6c9 100644 --- a/app/[locale]/layer-2/learn/page.tsx +++ b/app/[locale]/layer-2/learn/page.tsx @@ -16,7 +16,8 @@ import { getRequiredNamespacesForPage } from "@/lib/utils/translations" import LearnPage from "./_components/learn" import Layer2LearnPageJsonLD from "./page-jsonld" -const Page = async ({ params }: { params: PageParams }) => { +const Page = async (props: { params: Promise }) => { + const params = await props.params const { locale } = params setRequestLocale(locale) @@ -50,11 +51,10 @@ const Page = async ({ params }: { params: PageParams }) => { ) } -export async function generateMetadata({ - params, -}: { - params: { locale: string } +export async function generateMetadata(props: { + params: Promise<{ locale: string }> }) { + const params = await props.params const { locale } = params const t = await getTranslations({ locale, namespace: "page-layer-2-learn" }) diff --git a/app/[locale]/layer-2/networks/page.tsx b/app/[locale]/layer-2/networks/page.tsx index 7bbf47e17b6..9641daaf505 100644 --- a/app/[locale]/layer-2/networks/page.tsx +++ b/app/[locale]/layer-2/networks/page.tsx @@ -29,7 +29,8 @@ import { getL2beatData, } from "@/lib/data" -const Page = async ({ params }: { params: PageParams }) => { +const Page = async (props0: { params: Promise }) => { + const params = await props0.params const { locale } = params setRequestLocale(locale) @@ -152,11 +153,10 @@ const Page = async ({ params }: { params: PageParams }) => { ) } -export async function generateMetadata({ - params, -}: { - params: { locale: string } +export async function generateMetadata(props: { + params: Promise<{ locale: string }> }) { + const params = await props.params const { locale } = params const t = await getTranslations({ diff --git a/app/[locale]/layer-2/page.tsx b/app/[locale]/layer-2/page.tsx index 3d895be5e52..80b4eb12250 100644 --- a/app/[locale]/layer-2/page.tsx +++ b/app/[locale]/layer-2/page.tsx @@ -21,7 +21,8 @@ import Layer2PageJsonLD from "./page-jsonld" import { getGrowThePieData, getL2beatData } from "@/lib/data" -const Page = async ({ params }: { params: PageParams }) => { +const Page = async (props: { params: Promise }) => { + const params = await props.params const { locale } = params setRequestLocale(locale) @@ -86,11 +87,10 @@ const Page = async ({ params }: { params: PageParams }) => { ) } -export async function generateMetadata({ - params, -}: { - params: { locale: string } +export async function generateMetadata(props: { + params: Promise<{ locale: string }> }) { + const params = await props.params const { locale } = params const t = await getTranslations({ locale, namespace: "page-layer-2" }) diff --git a/app/[locale]/layout.tsx b/app/[locale]/layout.tsx index aa2da7224cb..b527249b3a5 100644 --- a/app/[locale]/layout.tsx +++ b/app/[locale]/layout.tsx @@ -37,13 +37,16 @@ const ibmPlexMono = IBM_Plex_Mono({ variable: "--font-mono", }) -export default async function LocaleLayout({ - children, - params: { locale }, -}: { +export default async function LocaleLayout(props: { children: React.ReactNode - params: { locale: string } + params: Promise<{ locale: string }> }) { + const params = await props.params + + const { locale } = params + + const { children } = props + if (!routing.locales.includes(locale)) { notFound() } diff --git a/app/[locale]/learn/page.tsx b/app/[locale]/learn/page.tsx index 445246f4a8d..b966efd9010 100644 --- a/app/[locale]/learn/page.tsx +++ b/app/[locale]/learn/page.tsx @@ -114,7 +114,8 @@ const ImageHeight200 = ({ src, alt }: ImageProps) => ( {alt} ) -export default async function Page({ params }: { params: PageParams }) { +export default async function Page(props: { params: Promise }) { + const params = await props.params const { locale } = params const t = await getTranslations({ locale, namespace: "page-learn" }) const tCommon = await getTranslations({ locale, namespace: "common" }) @@ -732,11 +733,10 @@ export default async function Page({ params }: { params: PageParams }) { ) } -export async function generateMetadata({ - params, -}: { - params: { locale: string } +export async function generateMetadata(props: { + params: Promise<{ locale: string }> }) { + const params = await props.params const { locale } = params const t = await getTranslations({ locale, namespace: "page-learn" }) diff --git a/app/[locale]/page.tsx b/app/[locale]/page.tsx index 5c0b6d622fd..7152833063b 100644 --- a/app/[locale]/page.tsx +++ b/app/[locale]/page.tsx @@ -134,7 +134,8 @@ const ValuesMarquee = nextDynamic( } ) -const Page = async ({ params }: { params: PageParams }) => { +const Page = async (props0: { params: Promise }) => { + const params = await props0.params const { locale } = params if (!LOCALES_CODES.includes(locale)) return notFound() @@ -1092,11 +1093,10 @@ const Page = async ({ params }: { params: PageParams }) => { ) } -export async function generateMetadata({ - params, -}: { - params: { locale: string } +export async function generateMetadata(props: { + params: Promise<{ locale: string }> }) { + const params = await props.params const { locale } = params try { diff --git a/app/[locale]/quizzes/page.tsx b/app/[locale]/quizzes/page.tsx index 62526a0fabe..75cf0c6b6ac 100644 --- a/app/[locale]/quizzes/page.tsx +++ b/app/[locale]/quizzes/page.tsx @@ -16,7 +16,8 @@ import { getRequiredNamespacesForPage } from "@/lib/utils/translations" import QuizzesPage from "./_components/quizzes" import QuizzesPageJsonLD from "./page-jsonld" -const Page = async ({ params }: { params: PageParams }) => { +const Page = async (props: { params: Promise }) => { + const params = await props.params const { locale } = params setRequestLocale(locale) @@ -41,11 +42,10 @@ const Page = async ({ params }: { params: PageParams }) => { ) } -export async function generateMetadata({ - params, -}: { - params: { locale: string } +export async function generateMetadata(props: { + params: Promise<{ locale: string }> }) { + const params = await props.params const { locale } = params const t = await getTranslations({ locale }) diff --git a/app/[locale]/resources/page.tsx b/app/[locale]/resources/page.tsx index d3341f4aedd..c9250f4493a 100644 --- a/app/[locale]/resources/page.tsx +++ b/app/[locale]/resources/page.tsx @@ -29,7 +29,8 @@ import heroImg from "@/public/images/heroes/guides-hub-hero.jpg" const EVENT_CATEGORY = "dashboard" -const Page = async ({ params }: { params: PageParams }) => { +const Page = async (props: { params: Promise }) => { + const params = await props.params const { locale } = params const t = await getTranslations({ locale, namespace: "page-resources" }) @@ -230,11 +231,10 @@ const Page = async ({ params }: { params: PageParams }) => { ) } -export async function generateMetadata({ - params, -}: { - params: { locale: string } +export async function generateMetadata(props: { + params: Promise<{ locale: string }> }) { + const params = await props.params const { locale } = params const t = await getTranslations({ locale, namespace: "page-resources" }) diff --git a/app/[locale]/roadmap/_vision/page.tsx b/app/[locale]/roadmap/_vision/page.tsx index a9a59085544..c56a28a91e6 100644 --- a/app/[locale]/roadmap/_vision/page.tsx +++ b/app/[locale]/roadmap/_vision/page.tsx @@ -16,7 +16,8 @@ import { getRequiredNamespacesForPage } from "@/lib/utils/translations" import VisionPage from "./_components/vision" import RoadmapVisionPageJsonLD from "./page-jsonld" -const Page = async ({ params }: { params: PageParams }) => { +const Page = async (props: { params: Promise }) => { + const params = await props.params const { locale } = params setRequestLocale(locale) @@ -50,11 +51,10 @@ const Page = async ({ params }: { params: PageParams }) => { ) } -export async function generateMetadata({ - params, -}: { - params: { locale: string } +export async function generateMetadata(props: { + params: Promise<{ locale: string }> }) { + const params = await props.params const { locale } = params const t = await getTranslations({ locale, namespace: "page-roadmap-vision" }) diff --git a/app/[locale]/roadmap/page.tsx b/app/[locale]/roadmap/page.tsx index 0ee5c9fe479..93c390ad56a 100644 --- a/app/[locale]/roadmap/page.tsx +++ b/app/[locale]/roadmap/page.tsx @@ -16,7 +16,8 @@ import { getRequiredNamespacesForPage } from "@/lib/utils/translations" import RoadmapPage from "./_components/roadmap" import RoadmapPageJsonLD from "./page-jsonld" -const Page = async ({ params }: { params: PageParams }) => { +const Page = async (props: { params: Promise }) => { + const params = await props.params const { locale } = params setRequestLocale(locale) @@ -41,11 +42,10 @@ const Page = async ({ params }: { params: PageParams }) => { ) } -export async function generateMetadata({ - params, -}: { - params: { locale: string } +export async function generateMetadata(props: { + params: Promise<{ locale: string }> }) { + const params = await props.params const { locale } = params const t = await getTranslations({ locale, namespace: "page-roadmap" }) diff --git a/app/[locale]/run-a-node/page.tsx b/app/[locale]/run-a-node/page.tsx index 1f78bc371d2..83c0f75a6a5 100644 --- a/app/[locale]/run-a-node/page.tsx +++ b/app/[locale]/run-a-node/page.tsx @@ -16,7 +16,8 @@ import { getRequiredNamespacesForPage } from "@/lib/utils/translations" import RunANodePage from "./_components/run-a-node" import RunANodePageJsonLD from "./page-jsonld" -const Page = async ({ params }: { params: PageParams }) => { +const Page = async (props: { params: Promise }) => { + const params = await props.params const { locale } = params setRequestLocale(locale) @@ -50,11 +51,10 @@ const Page = async ({ params }: { params: PageParams }) => { ) } -export async function generateMetadata({ - params, -}: { - params: { locale: string } +export async function generateMetadata(props: { + params: Promise<{ locale: string }> }) { + const params = await props.params const { locale } = params const t = await getTranslations({ locale, namespace: "page-run-a-node" }) diff --git a/app/[locale]/stablecoins/page.tsx b/app/[locale]/stablecoins/page.tsx index f7765d1c24d..2ecc0bbbe24 100644 --- a/app/[locale]/stablecoins/page.tsx +++ b/app/[locale]/stablecoins/page.tsx @@ -75,7 +75,8 @@ const Section = ({
) -async function Page({ params }: { params: PageParams }) { +async function Page(props: { params: Promise }) { + const params = await props.params const { locale } = params const t = await getTranslations({ locale, namespace: "page-stablecoins" }) const tCommon = await getTranslations({ locale, namespace: "common" }) @@ -756,11 +757,10 @@ async function Page({ params }: { params: PageParams }) { ) } -export async function generateMetadata({ - params, -}: { - params: { locale: string } +export async function generateMetadata(props: { + params: Promise<{ locale: string }> }) { + const params = await props.params const { locale } = params const t = await getTranslations({ locale, namespace: "page-stablecoins" }) diff --git a/app/[locale]/staking/deposit-contract/page.tsx b/app/[locale]/staking/deposit-contract/page.tsx index ab9b47971eb..de97a2665a6 100644 --- a/app/[locale]/staking/deposit-contract/page.tsx +++ b/app/[locale]/staking/deposit-contract/page.tsx @@ -14,7 +14,8 @@ import { getRequiredNamespacesForPage } from "@/lib/utils/translations" import DepositContractPage from "./_components/deposit-contract" -const Page = async ({ params }: { params: PageParams }) => { +const Page = async (props: { params: Promise }) => { + const params = await props.params const { locale } = params setRequestLocale(locale) @@ -33,11 +34,10 @@ const Page = async ({ params }: { params: PageParams }) => { ) } -export async function generateMetadata({ - params, -}: { - params: { locale: string } +export async function generateMetadata(props: { + params: Promise<{ locale: string }> }) { + const params = await props.params const { locale } = params const t = await getTranslations({ diff --git a/app/[locale]/staking/page.tsx b/app/[locale]/staking/page.tsx index ea1ecf93108..e12db1fa07d 100644 --- a/app/[locale]/staking/page.tsx +++ b/app/[locale]/staking/page.tsx @@ -18,7 +18,8 @@ import StakingPageJsonLD from "./page-jsonld" import { getBeaconchainData } from "@/lib/data" -const Page = async ({ params }: { params: PageParams }) => { +const Page = async (props: { params: Promise }) => { + const params = await props.params const { locale } = params setRequestLocale(locale) @@ -70,11 +71,10 @@ const Page = async ({ params }: { params: PageParams }) => { ) } -export async function generateMetadata({ - params, -}: { - params: { locale: string } +export async function generateMetadata(props: { + params: Promise<{ locale: string }> }) { + const params = await props.params const { locale } = params const t = await getTranslations({ locale, namespace: "page-staking" }) diff --git a/app/[locale]/start/page.tsx b/app/[locale]/start/page.tsx index d8f90d68420..ede10e1c397 100644 --- a/app/[locale]/start/page.tsx +++ b/app/[locale]/start/page.tsx @@ -23,7 +23,8 @@ import StartPageJsonLD from "./page-jsonld" import HeroImage from "@/public/images/heroes/developers-hub-hero.png" import ManDogeImage from "@/public/images/start-with-ethereum/man-doge-playing.png" -const Page = async ({ params }: { params: PageParams }) => { +const Page = async (props: { params: Promise }) => { + const params = await props.params const { locale } = params const t = await getTranslations({ locale, namespace: "page-start" }) @@ -91,11 +92,10 @@ const Page = async ({ params }: { params: PageParams }) => { ) } -export async function generateMetadata({ - params, -}: { - params: { locale: string } +export async function generateMetadata(props: { + params: Promise<{ locale: string }> }) { + const params = await props.params const { locale } = params const t = await getTranslations({ locale, namespace: "page-start" }) diff --git a/app/[locale]/trillion-dollar-security/page.tsx b/app/[locale]/trillion-dollar-security/page.tsx index 138789747d2..d4e14d209ef 100644 --- a/app/[locale]/trillion-dollar-security/page.tsx +++ b/app/[locale]/trillion-dollar-security/page.tsx @@ -43,7 +43,8 @@ const ReportCard = ({ cta, altText }: { cta: string; altText: string }) => { ) } -const TdsPage = async ({ params }: { params: PageParams }) => { +const TdsPage = async (props: { params: Promise }) => { + const params = await props.params const { locale } = params setRequestLocale(locale) @@ -1091,11 +1092,10 @@ const TdsPage = async ({ params }: { params: PageParams }) => { ) } -export async function generateMetadata({ - params, -}: { - params: { locale: string } +export async function generateMetadata(props: { + params: Promise<{ locale: string }> }) { + const params = await props.params const { locale } = params const t = await getTranslations({ diff --git a/app/[locale]/wallets/find-wallet/page.tsx b/app/[locale]/wallets/find-wallet/page.tsx index 4d911d30bc6..ebdada83c39 100644 --- a/app/[locale]/wallets/find-wallet/page.tsx +++ b/app/[locale]/wallets/find-wallet/page.tsx @@ -23,7 +23,8 @@ import { import FindWalletPageJsonLD from "./page-jsonld" -const Page = async ({ params }: { params: PageParams }) => { +const Page = async (props: { params: Promise }) => { + const params = await props.params const { locale } = params const t = await getTranslations({ locale, @@ -86,11 +87,10 @@ const Page = async ({ params }: { params: PageParams }) => { ) } -export async function generateMetadata({ - params, -}: { - params: { locale: string } +export async function generateMetadata(props: { + params: Promise<{ locale: string }> }) { + const params = await props.params const { locale } = params const t = await getTranslations({ diff --git a/app/[locale]/wallets/page.tsx b/app/[locale]/wallets/page.tsx index d7f490d828b..b936382fd14 100644 --- a/app/[locale]/wallets/page.tsx +++ b/app/[locale]/wallets/page.tsx @@ -46,7 +46,8 @@ const StyledCard = (props: ComponentPropsWithRef) => ( /> ) -const Page = async ({ params }: { params: PageParams }) => { +const Page = async (props: { params: Promise }) => { + const params = await props.params const { locale } = params const t = await getTranslations({ locale, namespace: "page-wallets" }) @@ -467,11 +468,10 @@ const Page = async ({ params }: { params: PageParams }) => { ) } -export async function generateMetadata({ - params, -}: { - params: { locale: string } +export async function generateMetadata(props: { + params: Promise<{ locale: string }> }) { + const params = await props.params const { locale } = params const t = await getTranslations({ locale, namespace: "page-wallets" }) diff --git a/app/[locale]/what-is-ether/page.tsx b/app/[locale]/what-is-ether/page.tsx index 0604f6237c4..034c7c752c9 100644 --- a/app/[locale]/what-is-ether/page.tsx +++ b/app/[locale]/what-is-ether/page.tsx @@ -33,7 +33,8 @@ import developersHubHero from "@/public/images/heroes/developers-hub-hero.png" import impactTransparent from "@/public/images/impact_transparent.png" import infrastructureTransparent from "@/public/images/infrastructure_transparent.png" -const Page = async ({ params }: { params: { locale: Lang } }) => { +const Page = async (props: { params: Promise<{ locale: Lang }> }) => { + const params = await props.params const { locale } = params const t = await getTranslations({ diff --git a/app/[locale]/what-is-ethereum/page.tsx b/app/[locale]/what-is-ethereum/page.tsx index e541351e4ca..1f506de62a2 100644 --- a/app/[locale]/what-is-ethereum/page.tsx +++ b/app/[locale]/what-is-ethereum/page.tsx @@ -48,7 +48,8 @@ import etherBanner from "@/public/images/impact_transparent.png" import whenWhoBanner from "@/public/images/translatathon/walking.png" import heroImg from "@/public/images/what-is-ethereum.png" -const Page = async ({ params }: { params: PageParams }) => { +const Page = async (props: { params: Promise }) => { + const params = await props.params const { locale } = params const t = await getTranslations({ locale, @@ -1094,11 +1095,10 @@ const Page = async ({ params }: { params: PageParams }) => { ) } -export async function generateMetadata({ - params, -}: { - params: { locale: string } +export async function generateMetadata(props: { + params: Promise<{ locale: string }> }) { + const params = await props.params const { locale } = params const t = await getTranslations({ diff --git a/app/api/ab-config/route.ts b/app/api/ab-config/route.ts index 04fbf6b327b..949d6aa1fdc 100644 --- a/app/api/ab-config/route.ts +++ b/app/api/ab-config/route.ts @@ -31,6 +31,8 @@ const getPreviewConfig = () => ({ }, }) +export const revalidate = 3600 + export async function GET() { // Preview mode: Show menu with original default if (!IS_PROD) { diff --git a/app/not-found.tsx b/app/not-found.tsx index 6b23c994a9d..5097e9691da 100644 --- a/app/not-found.tsx +++ b/app/not-found.tsx @@ -6,7 +6,7 @@ import LocaleLayout from "./[locale]/layout" export default async function GlobalNotFound() { return ( - + ) diff --git a/next.config.js b/next.config.js index 03f30957ffe..6896ee3605b 100644 --- a/next.config.js +++ b/next.config.js @@ -30,9 +30,8 @@ const experimental = LIMIT_CPUS : {} /** @type {import('next').NextConfig} */ -module.exports = (phase, { defaultConfig }) => { +module.exports = (phase) => { let nextConfig = { - ...defaultConfig, reactStrictMode: true, env: { // Netlify build-time vars inlined so they're available at SSR runtime. @@ -169,8 +168,10 @@ module.exports = (phase, { defaultConfig }) => { return [ // Whitepaper PDF redirect (no locale prefix) { - source: "/669c9e2e2027310b6b3cdce6e1c52962/Ethereum_Whitepaper_-_Buterin_2014.pdf", - destination: "/content/whitepaper/whitepaper-pdf/Ethereum_Whitepaper_-_Buterin_2014.pdf", + source: + "/669c9e2e2027310b6b3cdce6e1c52962/Ethereum_Whitepaper_-_Buterin_2014.pdf", + destination: + "/content/whitepaper/whitepaper-pdf/Ethereum_Whitepaper_-_Buterin_2014.pdf", permanent: true, }, // All primary redirects @@ -185,49 +186,47 @@ module.exports = (phase, { defaultConfig }) => { ...nextConfig, experimental: { ...experimental, - instrumentationHook: true, + clientTraceMetadata: ["sentry-trace", "baggage"], + staleTimes: { dynamic: 30, static: 180 }, }, } if (phase !== PHASE_DEVELOPMENT_SERVER) { nextConfig = { ...nextConfig, - experimental: { - ...nextConfig.experimental, - outputFileTracingExcludes: { - "*": [ - /** - * Exclude these paths from the trace output to avoid bloating the - * Netlify functions bundle. - * - * @see https://github.com/orgs/vercel/discussions/103#discussioncomment-5427097 - * @see https://nextjs.org/docs/app/api-reference/next-config-js/output#automatically-copying-traced-files - */ - "node_modules/@swc/core-linux-x64-gnu", - "node_modules/@swc/core-linux-x64-musl", - "node_modules/@esbuild/linux-x64", - "node_modules/@sentry/cli/**/*", - "node_modules/canvas/**/*", - "node_modules/@playwright/**/*", - "src/data", - "public/**/*.jpg", - "public/**/*.png", - "public/**/*.webp", - "public/**/*.svg", - "public/**/*.gif", - "public/**/*.json", - "public/**/*.txt", - "public/**/*.xml", - "public/**/*.pdf", - "public/**/*.mp3", - "public/audio/**", - "public/fonts", - "public/images", - "public/content", - // Exclude source maps generated by Sentry to reduce function bundle size - ".next/server/**/*.map", - ], - }, + outputFileTracingExcludes: { + "*": [ + /** + * Exclude these paths from the trace output to avoid bloating the + * Netlify functions bundle. + * + * @see https://github.com/orgs/vercel/discussions/103#discussioncomment-5427097 + * @see https://nextjs.org/docs/app/api-reference/next-config-js/output#automatically-copying-traced-files + */ + "node_modules/@swc/core-linux-x64-gnu", + "node_modules/@swc/core-linux-x64-musl", + "node_modules/@esbuild/linux-x64", + "node_modules/@sentry/cli/**/*", + "node_modules/canvas/**/*", + "node_modules/@playwright/**/*", + "src/data", + "public/**/*.jpg", + "public/**/*.png", + "public/**/*.webp", + "public/**/*.svg", + "public/**/*.gif", + "public/**/*.json", + "public/**/*.txt", + "public/**/*.xml", + "public/**/*.pdf", + "public/**/*.mp3", + "public/audio/**", + "public/fonts", + "public/images", + "public/content", + // Exclude source maps generated by Sentry to reduce function bundle size + ".next/server/**/*.map", + ], }, } } diff --git a/package.json b/package.json index 046f6d257b5..afc738feba2 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,6 @@ "@docsearch/react": "^3.5.2", "@hookform/resolvers": "^3.8.0", "@netlify/blobs": "^10.4.1", - "@next/bundle-analyzer": "^14.2.5", "@radix-ui/react-accordion": "^1.2.12", "@radix-ui/react-avatar": "^1.1.11", "@radix-ui/react-checkbox": "^1.3.3", @@ -75,15 +74,15 @@ "lodash": "^4.17.23", "lucide-react": "^0.516.0", "motion": "^12.36.0", - "next": "^14.2.35", + "next": "^15.5.12", "next-intl": "^3.26.3", "next-mdx-remote": "^5.0.0", "next-themes": "^0.3.0", "prism-react-renderer": "1.1.0", "prismjs": "^1.30.0", - "react": "^18.2.0", + "react": "^19.2.4", "react-chartjs-2": "^5.2.0", - "react-dom": "^18.2.0", + "react-dom": "^19.2.4", "react-emoji-render": "^2.0.1", "react-hook-form": "^7.52.1", "react-lite-youtube-embed": "^2.4.0", @@ -107,6 +106,7 @@ "@chromatic-com/storybook": "1.5.0", "@google/generative-ai": "^0.24.1", "@netlify/plugin-nextjs": "^5.15.5", + "@next/bundle-analyzer": "^15.5.12", "@playwright/test": "^1.52.0", "@storybook/addon-essentials": "8.6.14", "@storybook/addon-interactions": "8.6.14", @@ -123,8 +123,8 @@ "@types/lodash": "^4.17.17", "@types/mdast": "^4.0.4", "@types/node": "^20.4.2", - "@types/react": "18.2.57", - "@types/react-dom": "18.2.19", + "@types/react": "19.2.14", + "@types/react-dom": "19.2.3", "@types/xml2js": "^0.4.14", "@typescript-eslint/eslint-plugin": "^7.18.0", "@typescript-eslint/parser": "^7.18.0", @@ -133,7 +133,7 @@ "decompress": "^4.2.1", "dotenv": "^16.5.0", "eslint": "^8.57.1", - "eslint-config-next": "^14.2.2", + "eslint-config-next": "^15.5.12", "eslint-config-prettier": "^9", "eslint-plugin-simple-import-sort": "^10.0.0", "eslint-plugin-storybook": "0.8.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ec4f859507a..0f2ef3cdc88 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,8 +8,8 @@ overrides: pbkdf2: '>=3.1.3' form-data: '>=4.0.4' sha.js: '>=2.4.12' - react: ^18.2.0 - react-dom: ^18.2.0 + react: ^19.2.4 + react-dom: ^19.2.4 importers: @@ -23,97 +23,94 @@ importers: version: 3.859.0 '@docsearch/react': specifier: ^3.5.2 - version: 3.9.0(@algolia/client-search@5.25.0)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3) + version: 3.9.0(@algolia/client-search@5.25.0)(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(search-insights@2.17.3) '@hookform/resolvers': specifier: ^3.8.0 - version: 3.10.0(react-hook-form@7.57.0(react@18.3.1)) + version: 3.10.0(react-hook-form@7.57.0(react@19.2.4)) '@netlify/blobs': specifier: ^10.4.1 version: 10.4.1 - '@next/bundle-analyzer': - specifier: ^14.2.5 - version: 14.2.29(bufferutil@4.0.9)(utf-8-validate@5.0.10) '@radix-ui/react-accordion': specifier: ^1.2.12 - version: 1.2.12(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.2.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@radix-ui/react-avatar': specifier: ^1.1.11 - version: 1.1.11(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@radix-ui/react-checkbox': specifier: ^1.3.3 - version: 1.3.3(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.3.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@radix-ui/react-collapsible': specifier: ^1.1.12 - version: 1.1.12(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.1.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@radix-ui/react-compose-refs': specifier: ^1.1.2 - version: 1.1.2(@types/react@18.2.57)(react@18.3.1) + version: 1.1.2(@types/react@19.2.14)(react@19.2.4) '@radix-ui/react-dialog': specifier: ^1.1.15 - version: 1.1.15(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@radix-ui/react-dropdown-menu': specifier: ^2.1.16 - version: 2.1.16(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 2.1.16(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@radix-ui/react-focus-scope': specifier: ^1.1.8 - version: 1.1.8(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.1.8(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@radix-ui/react-navigation-menu': specifier: ^1.2.14 - version: 1.2.14(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.2.14(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@radix-ui/react-popover': specifier: ^1.1.15 - version: 1.1.15(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@radix-ui/react-portal': specifier: ^1.1.10 - version: 1.1.10(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.1.10(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@radix-ui/react-progress': specifier: ^1.1.8 - version: 1.1.8(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.1.8(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@radix-ui/react-radio-group': specifier: ^1.3.8 - version: 1.3.8(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.3.8(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@radix-ui/react-scroll-area': specifier: ^1.2.10 - version: 1.2.10(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.2.10(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@radix-ui/react-select': specifier: ^2.2.6 - version: 2.2.6(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 2.2.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@radix-ui/react-slot': specifier: ^1.2.4 - version: 1.2.4(@types/react@18.2.57)(react@18.3.1) + version: 1.2.4(@types/react@19.2.14)(react@19.2.4) '@radix-ui/react-switch': specifier: ^1.2.6 - version: 1.2.6(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.2.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@radix-ui/react-tabs': specifier: ^1.1.13 - version: 1.1.13(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.1.13(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@radix-ui/react-tooltip': specifier: ^1.2.8 - version: 1.2.8(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@rainbow-me/rainbowkit': specifier: ^2.2.3 - version: 2.2.5(@tanstack/react-query@5.80.2(react@18.3.1))(@types/react@18.2.57)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(viem@2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76))(wagmi@2.15.4(@netlify/blobs@10.4.1)(@tanstack/query-core@5.80.2)(@tanstack/react-query@5.80.2(react@18.3.1))(@types/react@18.2.57)(bufferutil@4.0.9)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(viem@2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76))(zod@3.25.76)) + version: 2.2.5(@tanstack/react-query@5.80.2(react@19.2.4))(@types/react@19.2.14)(babel-plugin-macros@3.1.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(viem@2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76))(wagmi@2.15.4(@netlify/blobs@10.4.1)(@tanstack/query-core@5.80.2)(@tanstack/react-query@5.80.2(react@19.2.4))(@types/react@19.2.14)(bufferutil@4.0.9)(react@19.2.4)(typescript@5.8.3)(utf-8-validate@5.0.10)(viem@2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76))(zod@3.25.76)) '@sentry/nextjs': specifier: ^10.41.0 - version: 10.41.0(@opentelemetry/context-async-hooks@2.5.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.5.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.5.1(@opentelemetry/api@1.9.0))(next@14.2.35(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.1)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(webpack@5.99.9(esbuild@0.25.12)) + version: 10.41.0(@opentelemetry/context-async-hooks@2.5.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.5.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.5.1(@opentelemetry/api@1.9.0))(next@15.5.12(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.1)(babel-plugin-macros@3.1.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4)(webpack@5.99.9(esbuild@0.25.12)) '@socialgouv/matomo-next': specifier: ^1.8.0 - version: 1.9.2(next@14.2.35(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.1)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + version: 1.9.2(next@15.5.12(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.1)(babel-plugin-macros@3.1.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)) '@tanstack/react-query': specifier: ^5.66.7 - version: 5.80.2(react@18.3.1) + version: 5.80.2(react@19.2.4) '@tanstack/react-table': specifier: ^8.19.3 - version: 8.21.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 8.21.3(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@tanstack/react-virtual': specifier: ^3.13.12 - version: 3.13.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 3.13.12(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@trigger.dev/sdk': specifier: 4.3.3 version: 4.3.3(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76) '@wagmi/core': specifier: ^2.17.3 - version: 2.17.3(@tanstack/query-core@5.80.2)(@types/react@18.2.57)(react@18.3.1)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76)) + version: 2.17.3(@tanstack/query-core@5.80.2)(@types/react@19.2.14)(react@19.2.4)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@19.2.4))(viem@2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76)) chart.js: specifier: ^4.4.2 version: 4.4.9 @@ -128,10 +125,10 @@ importers: version: 2.1.1 cmdk: specifier: ^1.0.0 - version: 1.1.1(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.1.1(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) embla-carousel-react: specifier: ^8.6.0 - version: 8.6.0(react@18.3.1) + version: 8.6.0(react@19.2.4) ethereum-blockies-base64: specifier: ^1.0.2 version: 1.0.2 @@ -143,7 +140,7 @@ importers: version: 2.2.4 htmr: specifier: ^1.0.2 - version: 1.0.2(react@18.3.1) + version: 1.0.2(react@19.2.4) humanize-duration: specifier: ^3.33.1 version: 3.33.1 @@ -152,55 +149,55 @@ importers: version: 4.17.23 lucide-react: specifier: ^0.516.0 - version: 0.516.0(react@18.3.1) + version: 0.516.0(react@19.2.4) motion: specifier: ^12.36.0 - version: 12.36.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 12.36.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) next: - specifier: ^14.2.35 - version: 14.2.35(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.1)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^15.5.12 + version: 15.5.12(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.1)(babel-plugin-macros@3.1.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) next-intl: specifier: ^3.26.3 - version: 3.26.5(next@14.2.35(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.1)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) + version: 3.26.5(next@15.5.12(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.1)(babel-plugin-macros@3.1.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4) next-mdx-remote: specifier: ^5.0.0 - version: 5.0.0(@types/react@18.2.57)(acorn@8.14.1)(react@18.3.1) + version: 5.0.0(@types/react@19.2.14)(acorn@8.16.0)(react@19.2.4) next-themes: specifier: ^0.3.0 - version: 0.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 0.3.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) prism-react-renderer: specifier: 1.1.0 - version: 1.1.0(react@18.3.1) + version: 1.1.0(react@19.2.4) prismjs: specifier: ^1.30.0 version: 1.30.0 react: - specifier: ^18.2.0 - version: 18.3.1 + specifier: ^19.2.4 + version: 19.2.4 react-chartjs-2: specifier: ^5.2.0 - version: 5.3.0(chart.js@4.4.9)(react@18.3.1) + version: 5.3.0(chart.js@4.4.9)(react@19.2.4) react-dom: - specifier: ^18.2.0 - version: 18.3.1(react@18.3.1) + specifier: ^19.2.4 + version: 19.2.4(react@19.2.4) react-emoji-render: specifier: ^2.0.1 - version: 2.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 2.0.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4) react-hook-form: specifier: ^7.52.1 - version: 7.57.0(react@18.3.1) + version: 7.57.0(react@19.2.4) react-lite-youtube-embed: specifier: ^2.4.0 - version: 2.5.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 2.5.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4) react-select: specifier: 5.8.0 - version: 5.8.0(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 5.8.0(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) reading-time: specifier: ^1.5.0 version: 1.5.0 recharts: specifier: ^2.13.3 - version: 2.15.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 2.15.3(react-dom@19.2.4(react@19.2.4))(react@19.2.4) remark-gfm: specifier: ^4.0.1 version: 4.0.1 @@ -221,44 +218,47 @@ importers: version: 1.0.7(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@20.17.57)(typescript@5.8.3))) usehooks-ts: specifier: ^3.1.0 - version: 3.1.1(react@18.3.1) + version: 3.1.1(react@19.2.4) vaul: specifier: ^1.0.0 - version: 1.1.2(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.1.2(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) viem: specifier: ^2.23.3 version: 2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76) wagmi: specifier: ^2.14.11 - version: 2.15.4(@netlify/blobs@10.4.1)(@tanstack/query-core@5.80.2)(@tanstack/react-query@5.80.2(react@18.3.1))(@types/react@18.2.57)(bufferutil@4.0.9)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(viem@2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76))(zod@3.25.76) + version: 2.15.4(@netlify/blobs@10.4.1)(@tanstack/query-core@5.80.2)(@tanstack/react-query@5.80.2(react@19.2.4))(@types/react@19.2.14)(bufferutil@4.0.9)(react@19.2.4)(typescript@5.8.3)(utf-8-validate@5.0.10)(viem@2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76))(zod@3.25.76) yaml-loader: specifier: ^0.8.0 version: 0.8.1 devDependencies: '@chromatic-com/playwright': specifier: ^0.12.4 - version: 0.12.5(@playwright/test@1.53.1)(@types/react@18.2.57)(bufferutil@4.0.9)(esbuild@0.25.12)(prettier@3.5.3)(typescript@5.8.3)(utf-8-validate@5.0.10) + version: 0.12.5(@playwright/test@1.53.1)(@types/react@19.2.14)(bufferutil@4.0.9)(esbuild@0.25.12)(prettier@3.5.3)(typescript@5.8.3)(utf-8-validate@5.0.10) '@chromatic-com/storybook': specifier: 1.5.0 - version: 1.5.0(@chromatic-com/playwright@0.12.5(@playwright/test@1.53.1)(@types/react@18.2.57)(bufferutil@4.0.9)(esbuild@0.25.12)(prettier@3.5.3)(typescript@5.8.3)(utf-8-validate@5.0.10))(react@18.3.1) + version: 1.5.0(@chromatic-com/playwright@0.12.5(@playwright/test@1.53.1)(@types/react@19.2.14)(bufferutil@4.0.9)(esbuild@0.25.12)(prettier@3.5.3)(typescript@5.8.3)(utf-8-validate@5.0.10))(react@19.2.4) '@google/generative-ai': specifier: ^0.24.1 version: 0.24.1 '@netlify/plugin-nextjs': specifier: ^5.15.5 version: 5.15.5 + '@next/bundle-analyzer': + specifier: ^15.5.12 + version: 15.5.12(bufferutil@4.0.9)(utf-8-validate@5.0.10) '@playwright/test': specifier: ^1.52.0 version: 1.53.1 '@storybook/addon-essentials': specifier: 8.6.14 - version: 8.6.14(@types/react@18.2.57)(storybook@8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10)) + version: 8.6.14(@types/react@19.2.14)(storybook@8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10)) '@storybook/addon-interactions': specifier: 8.6.14 version: 8.6.14(storybook@8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10)) '@storybook/addon-links': specifier: 8.6.14 - version: 8.6.14(react@18.3.1)(storybook@8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10)) + version: 8.6.14(react@19.2.4)(storybook@8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10)) '@storybook/addon-themes': specifier: 8.6.14 version: 8.6.14(storybook@8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10)) @@ -267,10 +267,10 @@ importers: version: 8.6.14(storybook@8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10)) '@storybook/nextjs': specifier: ^8.6.14 - version: 8.6.14(babel-plugin-macros@3.1.0)(esbuild@0.25.12)(next@14.2.35(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.1)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10))(type-fest@4.41.0)(typescript@5.8.3)(webpack-hot-middleware@2.26.1)(webpack@5.99.9(esbuild@0.25.12)) + version: 8.6.14(babel-plugin-macros@3.1.0)(esbuild@0.25.12)(next@15.5.12(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.1)(babel-plugin-macros@3.1.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(storybook@8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10))(type-fest@4.41.0)(typescript@5.8.3)(webpack-hot-middleware@2.26.1)(webpack@5.99.9(esbuild@0.25.12)) '@storybook/react': specifier: 8.6.14 - version: 8.6.14(@storybook/test@8.6.14(storybook@8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10))(typescript@5.8.3) + version: 8.6.14(@storybook/test@8.6.14(storybook@8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10)))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(storybook@8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10))(typescript@5.8.3) '@storybook/test': specifier: 8.6.14 version: 8.6.14(storybook@8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10)) @@ -296,11 +296,11 @@ importers: specifier: ^20.4.2 version: 20.17.57 '@types/react': - specifier: 18.2.57 - version: 18.2.57 + specifier: 19.2.14 + version: 19.2.14 '@types/react-dom': - specifier: 18.2.19 - version: 18.2.19 + specifier: 19.2.3 + version: 19.2.3(@types/react@19.2.14) '@types/xml2js': specifier: ^0.4.14 version: 0.4.14 @@ -315,7 +315,7 @@ importers: version: 10.4.21(postcss@8.5.4) chromatic: specifier: 12.0.0 - version: 12.0.0(@chromatic-com/playwright@0.12.5(@playwright/test@1.53.1)(@types/react@18.2.57)(bufferutil@4.0.9)(esbuild@0.25.12)(prettier@3.5.3)(typescript@5.8.3)(utf-8-validate@5.0.10)) + version: 12.0.0(@chromatic-com/playwright@0.12.5(@playwright/test@1.53.1)(@types/react@19.2.14)(bufferutil@4.0.9)(esbuild@0.25.12)(prettier@3.5.3)(typescript@5.8.3)(utf-8-validate@5.0.10)) decompress: specifier: ^4.2.1 version: 4.2.1 @@ -326,8 +326,8 @@ importers: specifier: ^8.57.1 version: 8.57.1 eslint-config-next: - specifier: ^14.2.2 - version: 14.2.29(eslint@8.57.1)(typescript@5.8.3) + specifier: ^15.5.12 + version: 15.5.12(eslint@8.57.1)(typescript@5.8.3) eslint-config-prettier: specifier: ^9 version: 9.1.0(eslint@8.57.1) @@ -387,7 +387,7 @@ importers: version: 8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10) storybook-next-intl: specifier: ^1.2.5 - version: 1.2.6(next-intl@3.26.5(next@14.2.35(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.1)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)) + version: 1.2.6(next-intl@3.26.5(next@15.5.12(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.1)(babel-plugin-macros@3.1.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4)) tailwindcss: specifier: ^3.4.4 version: 3.4.17(ts-node@10.9.2(@types/node@20.17.57)(typescript@5.8.3)) @@ -1351,8 +1351,8 @@ packages: resolution: {integrity: sha512-mb5FOZYZIkRQ6s/NWnM98k879vu5pscWqTLubLFBO87igYYT4VzVazh4h5o/zCvTIZgEt3PvsCOMOswOUo9yHQ==} peerDependencies: '@types/react': '>= 16.8.0 < 20.0.0' - react: ^18.2.0 - react-dom: ^18.2.0 + react: ^19.2.4 + react-dom: ^19.2.4 search-insights: '>= 1 < 3' peerDependenciesMeta: '@types/react': @@ -1401,7 +1401,7 @@ packages: resolution: {integrity: sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==} peerDependencies: '@types/react': '*' - react: ^18.2.0 + react: ^19.2.4 peerDependenciesMeta: '@types/react': optional: true @@ -1418,7 +1418,7 @@ packages: '@emotion/use-insertion-effect-with-fallbacks@1.2.0': resolution: {integrity: sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg==} peerDependencies: - react: ^18.2.0 + react: ^19.2.4 '@emotion/utils@1.4.2': resolution: {integrity: sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA==} @@ -1787,8 +1787,8 @@ packages: '@floating-ui/react-dom@2.1.3': resolution: {integrity: sha512-huMBfiU9UnQ2oBwIhgzyIiSpVgvlDstU8CX0AF+wS+KzmYMs0J2a3GwuFHV1Lz+jlrQGeC1fF+Nv0QoumyV0bA==} peerDependencies: - react: ^18.2.0 - react-dom: ^18.2.0 + react: ^19.2.4 + react-dom: ^19.2.4 '@floating-ui/utils@0.2.9': resolution: {integrity: sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==} @@ -2119,7 +2119,7 @@ packages: resolution: {integrity: sha512-QjHtSaoameoalGnKDT3FoIl4+9RwyTmo9ZJGBdLOks/YOiWHoRDI3PUwEzOE7kEmGcV3AFcp9K6dYu9rEuKLAQ==} peerDependencies: '@types/react': '>=16' - react: ^18.2.0 + react: ^19.2.4 '@metamask/eth-json-rpc-provider@1.0.1': resolution: {integrity: sha512-whiUMPlAOrVGmX8aKYVPvlKyG4CpQXiNNyt74vE1xb5sPvmx5oA7B/kOi/JdBvhGQq97U1/AVdXEdk2zkP8qyA==} @@ -2216,65 +2216,59 @@ packages: resolution: {integrity: sha512-dyJeuggzQM8+Dsi0T8Z9UjfLJ6vCmNC36W6WE2aqzfTdTw4wPkh2xlEu4LoD75+TGuYK7jIhEoU2QcCXOzfyAQ==} engines: {node: ^18.14.0 || >=20} - '@next/bundle-analyzer@14.2.29': - resolution: {integrity: sha512-5H2FPagh/K4g00MLHK0M70OnRfhN2rpb4Z6+jJZBNJ5VrFP7XkbUHlX4idhPwGNuwLAR2UbWZo4wEl6iPFukHw==} + '@next/bundle-analyzer@15.5.12': + resolution: {integrity: sha512-tDkdfvuKz9JlH+B/CEIY0+XqQ5gymVZZWvDer5HJI68rPI0EYfbSadbvIUvHTugYnMkyxSBf8u0P2yGOSQ4h+w==} - '@next/env@14.2.35': - resolution: {integrity: sha512-DuhvCtj4t9Gwrx80dmz2F4t/zKQ4ktN8WrMwOuVzkJfBilwAwGr6v16M5eI8yCuZ63H9TTuEU09Iu2HqkzFPVQ==} + '@next/env@15.5.12': + resolution: {integrity: sha512-pUvdJN1on574wQHjaBfNGDt9Mz5utDSZFsIIQkMzPgNS8ZvT4H2mwOrOIClwsQOb6EGx5M76/CZr6G8i6pSpLg==} - '@next/eslint-plugin-next@14.2.29': - resolution: {integrity: sha512-qpxSYiPNJTr9RzqjGi5yom8AIC8Kgdtw4oNIXAB/gDYMDctmfMEv452FRUhT06cWPgcmSsbZiEPYhbFiQtCWTg==} + '@next/eslint-plugin-next@15.5.12': + resolution: {integrity: sha512-+ZRSDFTv4aC96aMb5E41rMjysx8ApkryevnvEYZvPZO52KvkqP5rNExLUXJFr9P4s0f3oqNQR6vopCZsPWKDcQ==} - '@next/swc-darwin-arm64@14.2.33': - resolution: {integrity: sha512-HqYnb6pxlsshoSTubdXKu15g3iivcbsMXg4bYpjL2iS/V6aQot+iyF4BUc2qA/J/n55YtvE4PHMKWBKGCF/+wA==} + '@next/swc-darwin-arm64@15.5.12': + resolution: {integrity: sha512-RnRjBtH8S8eXCpUNkQ+543DUc7ys8y15VxmFU9HRqlo9BG3CcBUiwNtF8SNoi2xvGCVJq1vl2yYq+3oISBS0Zg==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@next/swc-darwin-x64@14.2.33': - resolution: {integrity: sha512-8HGBeAE5rX3jzKvF593XTTFg3gxeU4f+UWnswa6JPhzaR6+zblO5+fjltJWIZc4aUalqTclvN2QtTC37LxvZAA==} + '@next/swc-darwin-x64@15.5.12': + resolution: {integrity: sha512-nqa9/7iQlboF1EFtNhWxQA0rQstmYRSBGxSM6g3GxvxHxcoeqVXfGNr9stJOme674m2V7r4E3+jEhhGvSQhJRA==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@next/swc-linux-arm64-gnu@14.2.33': - resolution: {integrity: sha512-JXMBka6lNNmqbkvcTtaX8Gu5by9547bukHQvPoLe9VRBx1gHwzf5tdt4AaezW85HAB3pikcvyqBToRTDA4DeLw==} + '@next/swc-linux-arm64-gnu@15.5.12': + resolution: {integrity: sha512-dCzAjqhDHwmoB2M4eYfVKqXs99QdQxNQVpftvP1eGVppamXh/OkDAwV737Zr0KPXEqRUMN4uCjh6mjO+XtF3Mw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-arm64-musl@14.2.33': - resolution: {integrity: sha512-Bm+QulsAItD/x6Ih8wGIMfRJy4G73tu1HJsrccPW6AfqdZd0Sfm5Imhgkgq2+kly065rYMnCOxTBvmvFY1BKfg==} + '@next/swc-linux-arm64-musl@15.5.12': + resolution: {integrity: sha512-+fpGWvQiITgf7PUtbWY1H7qUSnBZsPPLyyq03QuAKpVoTy/QUx1JptEDTQMVvQhvizCEuNLEeghrQUyXQOekuw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-x64-gnu@14.2.33': - resolution: {integrity: sha512-FnFn+ZBgsVMbGDsTqo8zsnRzydvsGV8vfiWwUo1LD8FTmPTdV+otGSWKc4LJec0oSexFnCYVO4hX8P8qQKaSlg==} + '@next/swc-linux-x64-gnu@15.5.12': + resolution: {integrity: sha512-jSLvgdRRL/hrFAPqEjJf1fFguC719kmcptjNVDJl26BnJIpjL3KH5h6mzR4mAweociLQaqvt4UyzfbFjgAdDcw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-linux-x64-musl@14.2.33': - resolution: {integrity: sha512-345tsIWMzoXaQndUTDv1qypDRiebFxGYx9pYkhwY4hBRaOLt8UGfiWKr9FSSHs25dFIf8ZqIFaPdy5MljdoawA==} + '@next/swc-linux-x64-musl@15.5.12': + resolution: {integrity: sha512-/uaF0WfmYqQgLfPmN6BvULwxY0dufI2mlN2JbOKqqceZh1G4hjREyi7pg03zjfyS6eqNemHAZPSoP84x17vo6w==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-win32-arm64-msvc@14.2.33': - resolution: {integrity: sha512-nscpt0G6UCTkrT2ppnJnFsYbPDQwmum4GNXYTeoTIdsmMydSKFz9Iny2jpaRupTb+Wl298+Rh82WKzt9LCcqSQ==} + '@next/swc-win32-arm64-msvc@15.5.12': + resolution: {integrity: sha512-xhsL1OvQSfGmlL5RbOmU+FV120urrgFpYLq+6U8C6KIym32gZT6XF/SDE92jKzzlPWskkbjOKCpqk5m4i8PEfg==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@next/swc-win32-ia32-msvc@14.2.33': - resolution: {integrity: sha512-pc9LpGNKhJ0dXQhZ5QMmYxtARwwmWLpeocFmVG5Z0DzWq5Uf0izcI8tLc+qOpqxO1PWqZ5A7J1blrUIKrIFc7Q==} - engines: {node: '>= 10'} - cpu: [ia32] - os: [win32] - - '@next/swc-win32-x64-msvc@14.2.33': - resolution: {integrity: sha512-nOjfZMy8B94MdisuzZo9/57xuFVLHJaDj5e/xrduJp9CV2/HrfxTRH2fbyLe+K9QT41WBLUd4iXX3R7jBp0EUg==} + '@next/swc-win32-x64-msvc@15.5.12': + resolution: {integrity: sha512-Z1Dh6lhFkxvBDH1FoW6OU/L6prYwPSlwjLiZkExIAh8fbP6iI/M7iGTQAJPYJ9YFlWobCZ1PHbchFhFYb2ADkw==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -2761,8 +2755,8 @@ packages: peerDependencies: '@types/react': '*' '@types/react-dom': '*' - react: ^18.2.0 - react-dom: ^18.2.0 + react: ^19.2.4 + react-dom: ^19.2.4 peerDependenciesMeta: '@types/react': optional: true @@ -2774,8 +2768,8 @@ packages: peerDependencies: '@types/react': '*' '@types/react-dom': '*' - react: ^18.2.0 - react-dom: ^18.2.0 + react: ^19.2.4 + react-dom: ^19.2.4 peerDependenciesMeta: '@types/react': optional: true @@ -2787,8 +2781,8 @@ packages: peerDependencies: '@types/react': '*' '@types/react-dom': '*' - react: ^18.2.0 - react-dom: ^18.2.0 + react: ^19.2.4 + react-dom: ^19.2.4 peerDependenciesMeta: '@types/react': optional: true @@ -2800,8 +2794,8 @@ packages: peerDependencies: '@types/react': '*' '@types/react-dom': '*' - react: ^18.2.0 - react-dom: ^18.2.0 + react: ^19.2.4 + react-dom: ^19.2.4 peerDependenciesMeta: '@types/react': optional: true @@ -2813,8 +2807,8 @@ packages: peerDependencies: '@types/react': '*' '@types/react-dom': '*' - react: ^18.2.0 - react-dom: ^18.2.0 + react: ^19.2.4 + react-dom: ^19.2.4 peerDependenciesMeta: '@types/react': optional: true @@ -2826,8 +2820,8 @@ packages: peerDependencies: '@types/react': '*' '@types/react-dom': '*' - react: ^18.2.0 - react-dom: ^18.2.0 + react: ^19.2.4 + react-dom: ^19.2.4 peerDependenciesMeta: '@types/react': optional: true @@ -2838,7 +2832,7 @@ packages: resolution: {integrity: sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==} peerDependencies: '@types/react': '*' - react: ^18.2.0 + react: ^19.2.4 peerDependenciesMeta: '@types/react': optional: true @@ -2847,7 +2841,7 @@ packages: resolution: {integrity: sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==} peerDependencies: '@types/react': '*' - react: ^18.2.0 + react: ^19.2.4 peerDependenciesMeta: '@types/react': optional: true @@ -2856,7 +2850,7 @@ packages: resolution: {integrity: sha512-ieIFACdMpYfMEjF0rEf5KLvfVyIkOz6PDGyNnP+u+4xQ6jny3VCgA4OgXOwNx2aUkxn8zx9fiVcM8CfFYv9Lxw==} peerDependencies: '@types/react': '*' - react: ^18.2.0 + react: ^19.2.4 peerDependenciesMeta: '@types/react': optional: true @@ -2866,8 +2860,8 @@ packages: peerDependencies: '@types/react': '*' '@types/react-dom': '*' - react: ^18.2.0 - react-dom: ^18.2.0 + react: ^19.2.4 + react-dom: ^19.2.4 peerDependenciesMeta: '@types/react': optional: true @@ -2878,7 +2872,7 @@ packages: resolution: {integrity: sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==} peerDependencies: '@types/react': '*' - react: ^18.2.0 + react: ^19.2.4 peerDependenciesMeta: '@types/react': optional: true @@ -2888,8 +2882,8 @@ packages: peerDependencies: '@types/react': '*' '@types/react-dom': '*' - react: ^18.2.0 - react-dom: ^18.2.0 + react: ^19.2.4 + react-dom: ^19.2.4 peerDependenciesMeta: '@types/react': optional: true @@ -2901,8 +2895,8 @@ packages: peerDependencies: '@types/react': '*' '@types/react-dom': '*' - react: ^18.2.0 - react-dom: ^18.2.0 + react: ^19.2.4 + react-dom: ^19.2.4 peerDependenciesMeta: '@types/react': optional: true @@ -2913,7 +2907,7 @@ packages: resolution: {integrity: sha512-0rFg/Rj2Q62NCm62jZw0QX7a3sz6QCQU0LpZdNrJX8byRGaGVTqbrW9jAoIAHyMQqsNpeZ81YgSizOt5WXq0Pw==} peerDependencies: '@types/react': '*' - react: ^18.2.0 + react: ^19.2.4 peerDependenciesMeta: '@types/react': optional: true @@ -2923,8 +2917,8 @@ packages: peerDependencies: '@types/react': '*' '@types/react-dom': '*' - react: ^18.2.0 - react-dom: ^18.2.0 + react: ^19.2.4 + react-dom: ^19.2.4 peerDependenciesMeta: '@types/react': optional: true @@ -2936,8 +2930,8 @@ packages: peerDependencies: '@types/react': '*' '@types/react-dom': '*' - react: ^18.2.0 - react-dom: ^18.2.0 + react: ^19.2.4 + react-dom: ^19.2.4 peerDependenciesMeta: '@types/react': optional: true @@ -2948,7 +2942,7 @@ packages: resolution: {integrity: sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==} peerDependencies: '@types/react': '*' - react: ^18.2.0 + react: ^19.2.4 peerDependenciesMeta: '@types/react': optional: true @@ -2958,8 +2952,8 @@ packages: peerDependencies: '@types/react': '*' '@types/react-dom': '*' - react: ^18.2.0 - react-dom: ^18.2.0 + react: ^19.2.4 + react-dom: ^19.2.4 peerDependenciesMeta: '@types/react': optional: true @@ -2971,8 +2965,8 @@ packages: peerDependencies: '@types/react': '*' '@types/react-dom': '*' - react: ^18.2.0 - react-dom: ^18.2.0 + react: ^19.2.4 + react-dom: ^19.2.4 peerDependenciesMeta: '@types/react': optional: true @@ -2984,8 +2978,8 @@ packages: peerDependencies: '@types/react': '*' '@types/react-dom': '*' - react: ^18.2.0 - react-dom: ^18.2.0 + react: ^19.2.4 + react-dom: ^19.2.4 peerDependenciesMeta: '@types/react': optional: true @@ -2997,8 +2991,8 @@ packages: peerDependencies: '@types/react': '*' '@types/react-dom': '*' - react: ^18.2.0 - react-dom: ^18.2.0 + react: ^19.2.4 + react-dom: ^19.2.4 peerDependenciesMeta: '@types/react': optional: true @@ -3010,8 +3004,8 @@ packages: peerDependencies: '@types/react': '*' '@types/react-dom': '*' - react: ^18.2.0 - react-dom: ^18.2.0 + react: ^19.2.4 + react-dom: ^19.2.4 peerDependenciesMeta: '@types/react': optional: true @@ -3023,8 +3017,8 @@ packages: peerDependencies: '@types/react': '*' '@types/react-dom': '*' - react: ^18.2.0 - react-dom: ^18.2.0 + react: ^19.2.4 + react-dom: ^19.2.4 peerDependenciesMeta: '@types/react': optional: true @@ -3036,8 +3030,8 @@ packages: peerDependencies: '@types/react': '*' '@types/react-dom': '*' - react: ^18.2.0 - react-dom: ^18.2.0 + react: ^19.2.4 + react-dom: ^19.2.4 peerDependenciesMeta: '@types/react': optional: true @@ -3049,8 +3043,8 @@ packages: peerDependencies: '@types/react': '*' '@types/react-dom': '*' - react: ^18.2.0 - react-dom: ^18.2.0 + react: ^19.2.4 + react-dom: ^19.2.4 peerDependenciesMeta: '@types/react': optional: true @@ -3062,8 +3056,8 @@ packages: peerDependencies: '@types/react': '*' '@types/react-dom': '*' - react: ^18.2.0 - react-dom: ^18.2.0 + react: ^19.2.4 + react-dom: ^19.2.4 peerDependenciesMeta: '@types/react': optional: true @@ -3075,8 +3069,8 @@ packages: peerDependencies: '@types/react': '*' '@types/react-dom': '*' - react: ^18.2.0 - react-dom: ^18.2.0 + react: ^19.2.4 + react-dom: ^19.2.4 peerDependenciesMeta: '@types/react': optional: true @@ -3088,8 +3082,8 @@ packages: peerDependencies: '@types/react': '*' '@types/react-dom': '*' - react: ^18.2.0 - react-dom: ^18.2.0 + react: ^19.2.4 + react-dom: ^19.2.4 peerDependenciesMeta: '@types/react': optional: true @@ -3101,8 +3095,8 @@ packages: peerDependencies: '@types/react': '*' '@types/react-dom': '*' - react: ^18.2.0 - react-dom: ^18.2.0 + react: ^19.2.4 + react-dom: ^19.2.4 peerDependenciesMeta: '@types/react': optional: true @@ -3114,8 +3108,8 @@ packages: peerDependencies: '@types/react': '*' '@types/react-dom': '*' - react: ^18.2.0 - react-dom: ^18.2.0 + react: ^19.2.4 + react-dom: ^19.2.4 peerDependenciesMeta: '@types/react': optional: true @@ -3127,8 +3121,8 @@ packages: peerDependencies: '@types/react': '*' '@types/react-dom': '*' - react: ^18.2.0 - react-dom: ^18.2.0 + react: ^19.2.4 + react-dom: ^19.2.4 peerDependenciesMeta: '@types/react': optional: true @@ -3139,7 +3133,7 @@ packages: resolution: {integrity: sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==} peerDependencies: '@types/react': '*' - react: ^18.2.0 + react: ^19.2.4 peerDependenciesMeta: '@types/react': optional: true @@ -3148,7 +3142,7 @@ packages: resolution: {integrity: sha512-Jl+bCv8HxKnlTLVrcDE8zTMJ09R9/ukw4qBs/oZClOfoQk/cOTbDn+NceXfV7j09YPVQUryJPHurafcSg6EVKA==} peerDependencies: '@types/react': '*' - react: ^18.2.0 + react: ^19.2.4 peerDependenciesMeta: '@types/react': optional: true @@ -3158,8 +3152,8 @@ packages: peerDependencies: '@types/react': '*' '@types/react-dom': '*' - react: ^18.2.0 - react-dom: ^18.2.0 + react: ^19.2.4 + react-dom: ^19.2.4 peerDependenciesMeta: '@types/react': optional: true @@ -3171,8 +3165,8 @@ packages: peerDependencies: '@types/react': '*' '@types/react-dom': '*' - react: ^18.2.0 - react-dom: ^18.2.0 + react: ^19.2.4 + react-dom: ^19.2.4 peerDependenciesMeta: '@types/react': optional: true @@ -3184,8 +3178,8 @@ packages: peerDependencies: '@types/react': '*' '@types/react-dom': '*' - react: ^18.2.0 - react-dom: ^18.2.0 + react: ^19.2.4 + react-dom: ^19.2.4 peerDependenciesMeta: '@types/react': optional: true @@ -3196,7 +3190,7 @@ packages: resolution: {integrity: sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==} peerDependencies: '@types/react': '*' - react: ^18.2.0 + react: ^19.2.4 peerDependenciesMeta: '@types/react': optional: true @@ -3205,7 +3199,7 @@ packages: resolution: {integrity: sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==} peerDependencies: '@types/react': '*' - react: ^18.2.0 + react: ^19.2.4 peerDependenciesMeta: '@types/react': optional: true @@ -3214,7 +3208,7 @@ packages: resolution: {integrity: sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==} peerDependencies: '@types/react': '*' - react: ^18.2.0 + react: ^19.2.4 peerDependenciesMeta: '@types/react': optional: true @@ -3223,7 +3217,7 @@ packages: resolution: {integrity: sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==} peerDependencies: '@types/react': '*' - react: ^18.2.0 + react: ^19.2.4 peerDependenciesMeta: '@types/react': optional: true @@ -3232,7 +3226,7 @@ packages: resolution: {integrity: sha512-U+UORVEq+cTnRIaostJv9AGdV3G6Y+zbVd+12e18jQ5A3c0xL03IhnHuiU4UV69wolOQp5GfR58NW/EgdQhwOA==} peerDependencies: '@types/react': '*' - react: ^18.2.0 + react: ^19.2.4 peerDependenciesMeta: '@types/react': optional: true @@ -3241,7 +3235,7 @@ packages: resolution: {integrity: sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==} peerDependencies: '@types/react': '*' - react: ^18.2.0 + react: ^19.2.4 peerDependenciesMeta: '@types/react': optional: true @@ -3250,7 +3244,7 @@ packages: resolution: {integrity: sha512-2dHfToCj/pzca2Ck724OZ5L0EVrr3eHRNsG/b3xQJLA2hZpVCS99bLAX+hm1IHXDEnzU6by5z/5MIY794/a8NQ==} peerDependencies: '@types/react': '*' - react: ^18.2.0 + react: ^19.2.4 peerDependenciesMeta: '@types/react': optional: true @@ -3259,7 +3253,7 @@ packages: resolution: {integrity: sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w==} peerDependencies: '@types/react': '*' - react: ^18.2.0 + react: ^19.2.4 peerDependenciesMeta: '@types/react': optional: true @@ -3268,7 +3262,7 @@ packages: resolution: {integrity: sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==} peerDependencies: '@types/react': '*' - react: ^18.2.0 + react: ^19.2.4 peerDependenciesMeta: '@types/react': optional: true @@ -3278,8 +3272,8 @@ packages: peerDependencies: '@types/react': '*' '@types/react-dom': '*' - react: ^18.2.0 - react-dom: ^18.2.0 + react: ^19.2.4 + react-dom: ^19.2.4 peerDependenciesMeta: '@types/react': optional: true @@ -3294,8 +3288,8 @@ packages: engines: {node: '>=12.4'} peerDependencies: '@tanstack/react-query': '>=5.0.0' - react: ^18.2.0 - react-dom: ^18.2.0 + react: ^19.2.4 + react-dom: ^19.2.4 viem: 2.x wagmi: ^2.9.0 @@ -3633,7 +3627,7 @@ packages: resolution: {integrity: sha512-8GIDEtAh3cA16jIv9ETIHyqcwpVOXjPv5K0plCmMILze+7kz+jBW1KXHIMfCCuMj1w0FiYweZbHyz6Ak2tv5+w==} engines: {node: '>=18'} peerDependencies: - react: ^18.2.0 + react: ^19.2.4 '@sentry/vercel-edge@10.41.0': resolution: {integrity: sha512-fgr+RwQNX7dZGk+/UFPYmekvpTpF+0fBMDemxR608QWQugeoTyOE00dplRw84k2ZeT/LvxY+9MSLmAdM38QmKw==} @@ -4097,7 +4091,7 @@ packages: '@storybook/addon-links@8.6.14': resolution: {integrity: sha512-DRlXHIyZzOruAZkxmXfVgTF+4d6K27pFcH4cUsm3KT1AXuZbr23lb5iZHpUZoG6lmU85Sru4xCEgewSTXBIe1w==} peerDependencies: - react: ^18.2.0 + react: ^19.2.4 storybook: ^8.6.14 peerDependenciesMeta: react: @@ -4151,8 +4145,8 @@ packages: '@storybook/blocks@8.5.8': resolution: {integrity: sha512-O6tJDJM83fDm3ZP1+lTf24l7HOTzSRXkkMDD7zB/JHixzlj9p6wI4UQc2lplLadDCa5ya1IwyE7zUDN/0UfC5Q==} peerDependencies: - react: ^18.2.0 - react-dom: ^18.2.0 + react: ^19.2.4 + react-dom: ^19.2.4 storybook: ^8.5.8 peerDependenciesMeta: react: @@ -4163,8 +4157,8 @@ packages: '@storybook/blocks@8.6.14': resolution: {integrity: sha512-rBMHAfA39AGHgkrDze4RmsnQTMw1ND5fGWobr9pDcJdnDKWQWNRD7Nrlxj0gFlN3n4D9lEZhWGdFrCbku7FVAQ==} peerDependencies: - react: ^18.2.0 - react-dom: ^18.2.0 + react: ^19.2.4 + react-dom: ^19.2.4 storybook: ^8.6.14 peerDependenciesMeta: react: @@ -4252,8 +4246,8 @@ packages: resolution: {integrity: sha512-Td73IeJxOyalzvjQL+JXx72jlIYHgs+REaHiREOqfpo3A2AYYG71AUbcv+lg7mEDIweKVCxsMQ0UKo634c8XeA==} engines: {node: '>=14.0.0'} peerDependencies: - react: ^18.2.0 - react-dom: ^18.2.0 + react: ^19.2.4 + react-dom: ^19.2.4 '@storybook/instrumenter@8.6.14': resolution: {integrity: sha512-iG4MlWCcz1L7Yu8AwgsnfVAmMbvyRSk700Mfy2g4c8y5O+Cv1ejshE1LBBsCwHgkuqU0H4R0qu4g23+6UnUemQ==} @@ -4275,8 +4269,8 @@ packages: engines: {node: '>=18.0.0'} peerDependencies: next: ^13.5.0 || ^14.0.0 || ^15.0.0 - react: ^18.2.0 - react-dom: ^18.2.0 + react: ^19.2.4 + react-dom: ^19.2.4 storybook: ^8.6.14 typescript: '*' webpack: ^5.0.0 @@ -4290,8 +4284,8 @@ packages: resolution: {integrity: sha512-M7Q6ErNx7N2hQorTz0OLa3YV8nc8OcvkDlCxqqnkHPGQNEIWEpeDvq3wn2OvZlrHDpchyuiquGXZ8aztVtBP2g==} engines: {node: '>=18.0.0'} peerDependencies: - react: ^18.2.0 - react-dom: ^18.2.0 + react: ^19.2.4 + react-dom: ^19.2.4 storybook: ^8.6.14 typescript: '*' peerDependenciesMeta: @@ -4323,15 +4317,15 @@ packages: '@storybook/react-dom-shim@8.5.8': resolution: {integrity: sha512-UT/kGJHPW+HLNCTmI1rV1to+dUZuXKUTaRv2wZ2BUq2/gjIuePyqQZYVQeb0LkZbuH2uviLrPfXpS5d3/RSUJw==} peerDependencies: - react: ^18.2.0 - react-dom: ^18.2.0 + react: ^19.2.4 + react-dom: ^19.2.4 storybook: ^8.5.8 '@storybook/react-dom-shim@8.6.14': resolution: {integrity: sha512-0hixr3dOy3f3M+HBofp3jtMQMS+sqzjKNgl7Arfuj3fvjmyXOks/yGjDImySR4imPtEllvPZfhiQNlejheaInw==} peerDependencies: - react: ^18.2.0 - react-dom: ^18.2.0 + react: ^19.2.4 + react-dom: ^19.2.4 storybook: ^8.6.14 '@storybook/react@8.6.14': @@ -4339,8 +4333,8 @@ packages: engines: {node: '>=18.0.0'} peerDependencies: '@storybook/test': 8.6.14 - react: ^18.2.0 - react-dom: ^18.2.0 + react: ^19.2.4 + react-dom: ^19.2.4 storybook: ^8.6.14 typescript: '>= 4.2.x' peerDependenciesMeta: @@ -4459,11 +4453,8 @@ packages: resolution: {integrity: sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==} engines: {node: '>=14'} - '@swc/counter@0.1.3': - resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} - - '@swc/helpers@0.5.5': - resolution: {integrity: sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==} + '@swc/helpers@0.5.15': + resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} '@tanstack/query-core@5.80.2': resolution: {integrity: sha512-g2Es97uwFk7omkWiH9JmtLWSA8lTUFVseIyzqbjqJEEx7qN+Hg6jbBdDvelqtakamppaJtGORQ64hEJ5S6ojSg==} @@ -4471,20 +4462,20 @@ packages: '@tanstack/react-query@5.80.2': resolution: {integrity: sha512-LfA0SVheJBOqC8RfJw/JbOW3yh2zuONQeWU5Prjm7yjUGUONeOedky1Bj39Cfj8MRdXrZV+DxNT7/DN/M907lQ==} peerDependencies: - react: ^18.2.0 + react: ^19.2.4 '@tanstack/react-table@8.21.3': resolution: {integrity: sha512-5nNMTSETP4ykGegmVkhjcS8tTLW6Vl4axfEGQN3v0zdHYbK4UfoqfPChclTrJ4EoK9QynqAu9oUf8VEmrpZ5Ww==} engines: {node: '>=12'} peerDependencies: - react: ^18.2.0 - react-dom: ^18.2.0 + react: ^19.2.4 + react-dom: ^19.2.4 '@tanstack/react-virtual@3.13.12': resolution: {integrity: sha512-Gd13QdxPSukP8ZrkbgS2RwoZseTTbQPLnQEn7HY/rqtM+8Zt95f7xKC7N0EsKs7aoz0WzZ+fditZux+F8EzYxA==} peerDependencies: - react: ^18.2.0 - react-dom: ^18.2.0 + react: ^19.2.4 + react-dom: ^19.2.4 '@tanstack/table-core@8.21.3': resolution: {integrity: sha512-ldZXEhOBb8Is7xLs01fR3YEc3DERiz5silj8tnGkFZytt1abEvl/GhUmCE0PMLaMPTa3Jk4HbKmRlHmu+gCftg==} @@ -4654,26 +4645,22 @@ packages: '@types/pg@8.15.6': resolution: {integrity: sha512-NoaMtzhxOrubeL/7UZuNTrejB4MPAJ0RpxZqXQf2qXuVlTPuG6Y8p4u9dKRaue4yjmC7ZhzVO2/Yyyn25znrPQ==} - '@types/prop-types@15.7.14': - resolution: {integrity: sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==} - - '@types/react-dom@18.2.19': - resolution: {integrity: sha512-aZvQL6uUbIJpjZk4U8JZGbau9KDeAwMfmhyWorxgBkqDIEf6ROjRozcmPIicqsUwPUjbkDfHKgGee1Lq65APcA==} + '@types/react-dom@19.2.3': + resolution: {integrity: sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==} + peerDependencies: + '@types/react': ^19.2.0 '@types/react-transition-group@4.4.12': resolution: {integrity: sha512-8TV6R3h2j7a91c+1DXdJi3Syo69zzIZbz7Lg5tORM5LEJG7X/E6a1V3drRyBRZq7/utz7A+c4OgYLiLcYGHG6w==} peerDependencies: '@types/react': '*' - '@types/react@18.2.57': - resolution: {integrity: sha512-ZvQsktJgSYrQiMirAN60y4O/LRevIV8hUzSOSNB6gfR3/o3wCBFQx3sPwIYtuDMeiVgsSS3UzCV26tEzgnfvQw==} + '@types/react@19.2.14': + resolution: {integrity: sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==} '@types/resolve@1.20.6': resolution: {integrity: sha512-A4STmOXPhMUtHH+S6ymgE2GiBSMqf4oTvcQZMcHzokuTLVYzXTB8ttjcgxOVaAp2lGwEdzZ0J+cRbbeevQj1UQ==} - '@types/scheduler@0.26.0': - resolution: {integrity: sha512-WFHp9YUJQ6CKshqoC37iOlHnQSmxNc795UhB26CyBBttrN9svdIrUjl/NjnNmfcwtncN0h/0PPAFWv9ovP8mLA==} - '@types/semver@7.7.0': resolution: {integrity: sha512-k107IF4+Xr7UHjwDc7Cfd6PRQfbdkiRabXGRjo07b4WyPahFBZCZ1sE+BNxYIJPPg73UkfOsVOLwqVc/6ETrIA==} @@ -4709,14 +4696,6 @@ packages: typescript: optional: true - '@typescript-eslint/eslint-plugin@8.33.1': - resolution: {integrity: sha512-TDCXj+YxLgtvxvFlAvpoRv9MAncDLBV2oT9Bd7YBGC/b/sEURoOYuIwLI99rjWOfY3QtDzO+mk0n4AmdFExW8A==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - '@typescript-eslint/parser': ^8.33.1 - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/parser@7.18.0': resolution: {integrity: sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==} engines: {node: ^18.18.0 || >=20.0.0} @@ -4727,19 +4706,6 @@ packages: typescript: optional: true - '@typescript-eslint/parser@8.33.1': - resolution: {integrity: sha512-qwxv6dq682yVvgKKp2qWwLgRbscDAYktPptK4JPojCwwi3R9cwrvIxS4lvBpzmcqzR4bdn54Z0IG1uHFskW4dA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' - - '@typescript-eslint/project-service@8.33.1': - resolution: {integrity: sha512-DZR0efeNklDIHHGRpMpR5gJITQpu6tLr9lDJnKdONTC7vvzOlLAG/wcfxcdxEWrbiZApcoBCzXqU/Z458Za5Iw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/scope-manager@5.62.0': resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -4748,16 +4714,6 @@ packages: resolution: {integrity: sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/scope-manager@8.33.1': - resolution: {integrity: sha512-dM4UBtgmzHR9bS0Rv09JST0RcHYearoEoo3pG5B6GoTR9XcyeqX87FEhPo+5kTvVfKCvfHaHrcgeJQc6mrDKrA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/tsconfig-utils@8.33.1': - resolution: {integrity: sha512-STAQsGYbHCF0/e+ShUQ4EatXQ7ceh3fBCXkNU7/MZVKulrlq1usH7t2FhxvCpuCi5O5oi1vmVaAjrGeL71OK1g==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/type-utils@7.18.0': resolution: {integrity: sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==} engines: {node: ^18.18.0 || >=20.0.0} @@ -4768,13 +4724,6 @@ packages: typescript: optional: true - '@typescript-eslint/type-utils@8.33.1': - resolution: {integrity: sha512-1cG37d9xOkhlykom55WVwG2QRNC7YXlxMaMzqw2uPeJixBFfKWZgaP/hjAObqMN/u3fr5BrTwTnc31/L9jQ2ww==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/types@5.62.0': resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -4783,10 +4732,6 @@ packages: resolution: {integrity: sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/types@8.33.1': - resolution: {integrity: sha512-xid1WfizGhy/TKMTwhtVOgalHwPtV8T32MS9MaH50Cwvz6x6YqRIPdD2WvW0XaqOzTV9p5xdLY0h/ZusU5Lokg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@5.62.0': resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -4805,12 +4750,6 @@ packages: typescript: optional: true - '@typescript-eslint/typescript-estree@8.33.1': - resolution: {integrity: sha512-+s9LYcT8LWjdYWu7IWs7FvUxpQ/DGkdjZeE/GGulHvv8rvYwQvVaUZ6DE+j5x/prADUgSbbCWZ2nPI3usuVeOA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/utils@5.62.0': resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -4823,13 +4762,6 @@ packages: peerDependencies: eslint: ^8.56.0 - '@typescript-eslint/utils@8.33.1': - resolution: {integrity: sha512-52HaBiEQUaRYqAXpfzWSR2U3gxk92Kw006+xZpElaPMg3C4PgM+A5LqwoQI1f9E5aZ/qlxAZxzm42WX+vn92SQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/visitor-keys@5.62.0': resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -4838,10 +4770,6 @@ packages: resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/visitor-keys@8.33.1': - resolution: {integrity: sha512-3i8NrFcZeeDHJ+7ZUuDkGT+UHq+XoFGsymNK2jZCOHcfEzRQ0BdpRtdpSx/Iyf3MHLWIcLS0COuOPibKQboIiQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@ungap/structured-clone@1.3.0': resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} @@ -5557,10 +5485,6 @@ packages: builtin-status-codes@3.0.0: resolution: {integrity: sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==} - busboy@1.6.0: - resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} - engines: {node: '>=10.16.0'} - call-bind-apply-helpers@1.0.2: resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} engines: {node: '>= 0.4'} @@ -5727,8 +5651,8 @@ packages: cmdk@1.1.1: resolution: {integrity: sha512-Vsv7kFaXm+ptHDMZ7izaRsP70GgrW9NBNGswt9OZaVBLlE0SNpDq8eu/VGXyF9r7M0azK3Wy7OlYXsuyYLFzHg==} peerDependencies: - react: ^18.2.0 - react-dom: ^18.2.0 + react: ^19.2.4 + react-dom: ^19.2.4 collapse-white-space@2.1.0: resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==} @@ -5922,6 +5846,9 @@ packages: csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + csstype@3.2.3: + resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} + d3-array@3.2.4: resolution: {integrity: sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==} engines: {node: '>=12'} @@ -6245,7 +6172,7 @@ packages: embla-carousel-react@8.6.0: resolution: {integrity: sha512-0/PjqU7geVmo6F734pmPqpyHqiM99olvyecY7zdweCw+6tKEXnrE90pBiBbMMU8s5tICemzpQ3hi5EpxzGW+JA==} peerDependencies: - react: ^18.2.0 + react: ^19.2.4 embla-carousel-reactive-utils@8.6.0: resolution: {integrity: sha512-fMVUDUEx0/uIEDM0Mz3dHznDhfX+znCCDCeIophYb1QGVM7YThSWX+wz11zlYwWFOr74b4QLGg0hrGPJeG2s4A==} @@ -6395,10 +6322,10 @@ packages: resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} engines: {node: '>=12'} - eslint-config-next@14.2.29: - resolution: {integrity: sha512-KBbGfrcs4y+YxNb9y9IqEcZhQBbtIHyw5ICiCzL+x/0AzYCUwMHJ6IwGDswkQj/SDlzgexDAE258GSpQ8TH3MQ==} + eslint-config-next@15.5.12: + resolution: {integrity: sha512-ktW3XLfd+ztEltY5scJNjxjHwtKWk6vU2iwzZqSN09UsbBmMeE/cVlJ1yESg6Yx5LW7p/Z8WzUAgYXGLEmGIpg==} peerDependencies: - eslint: ^7.23.0 || ^8.0.0 + eslint: ^7.23.0 || ^8.0.0 || ^9.0.0 typescript: '>=3.3.1' peerDependenciesMeta: typescript: @@ -6463,11 +6390,11 @@ packages: peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9 - eslint-plugin-react-hooks@5.0.0-canary-7118f5dd7-20230705: - resolution: {integrity: sha512-AZYbMo/NW9chdL7vk6HQzQhT+PvTAEVqWk9ziruUoW2kAOcN5qNyelv70e0F1VNQAbvutOC9oc+xfWycI9FxDw==} + eslint-plugin-react-hooks@5.2.0: + resolution: {integrity: sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==} engines: {node: '>=10'} peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 eslint-plugin-react@7.37.5: resolution: {integrity: sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==} @@ -6512,10 +6439,6 @@ packages: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - eslint-visitor-keys@4.2.0: - resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@8.57.1: resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -6651,6 +6574,10 @@ packages: resolution: {integrity: sha512-V7/RktU11J3I36Nwq2JnZEM7tNm17eBJz+u25qdxBZeCKiX6BkVSZQjwWIr+IobgnZy+ag73tTZgZi7tr0LrBw==} engines: {node: '>=6.0.0'} + fast-glob@3.3.1: + resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} + engines: {node: '>=8.6.0'} + fast-glob@3.3.3: resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} engines: {node: '>=8.6.0'} @@ -6783,8 +6710,8 @@ packages: resolution: {integrity: sha512-4PqYHAT7gev0ke0wos+PyrcFxI0HScjm3asgU8nSYa8YzJFuwgIvdj3/s3ZaxLq0bUSboIn19A2WS/MHwLCvfw==} peerDependencies: '@emotion/is-prop-valid': '*' - react: ^18.2.0 - react-dom: ^18.2.0 + react: ^19.2.4 + react-dom: ^19.2.4 peerDependenciesMeta: '@emotion/is-prop-valid': optional: true @@ -6886,12 +6813,6 @@ packages: glob-to-regexp@0.4.1: resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} - glob@10.3.10: - resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} - engines: {node: '>=16 || 14 >=14.17'} - deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me - hasBin: true - glob@10.4.5: resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me @@ -7037,7 +6958,7 @@ packages: htmr@1.0.2: resolution: {integrity: sha512-7T9babEHZwECQ2/ouxNPow1uGcKbj/BcbslPGPRxBKIOLNiIrFKq6ELzor7mc4HiexZzdb3izQQLl16bhPR9jw==} peerDependencies: - react: ^18.2.0 + react: ^19.2.4 https-browserify@1.0.0: resolution: {integrity: sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==} @@ -7074,10 +6995,6 @@ packages: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} - ignore@7.0.5: - resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} - engines: {node: '>= 4'} - image-size@1.2.1: resolution: {integrity: sha512-rH+46sQJ2dlwfjfhCyNx5thzrv+dtmBIhPHk0zgRUukHzZ/kRueTJXoYYsclBaKcSMBWuGbOFXtioLpzTb5euw==} engines: {node: '>=16.x'} @@ -7352,10 +7269,6 @@ packages: resolution: {integrity: sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==} engines: {node: '>= 0.4'} - jackspeak@2.3.6: - resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} - engines: {node: '>=14'} - jackspeak@3.4.3: resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} @@ -7568,7 +7481,7 @@ packages: lucide-react@0.516.0: resolution: {integrity: sha512-aybBJzLHcw1CIn3rUcRkztB37dsJATtpffLNX+0/w+ws2p21nYIlOwX/B5fqxq8F/BjqVemnJX8chKwRidvROg==} peerDependencies: - react: ^18.2.0 + react: ^19.2.4 lz-string@1.5.0: resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} @@ -7873,8 +7786,8 @@ packages: resolution: {integrity: sha512-5BMQuktYUX8aEByKWYx5tR4X3G08H2OMgp46wTxZ4o7CDDstyy4A0fe9RLNMjZiwvntCWGDvs16sC87/emz4Yw==} peerDependencies: '@emotion/is-prop-valid': '*' - react: ^18.2.0 - react-dom: ^18.2.0 + react: ^19.2.4 + react-dom: ^19.2.4 peerDependenciesMeta: '@emotion/is-prop-valid': optional: true @@ -7932,35 +7845,38 @@ packages: resolution: {integrity: sha512-EQlCIfY0jOhRldiFxwSXG+ImwkQtDEfQeSOEQp6ieAGSLWGlgjdb/Ck/O7wMfC430ZHGeUKVKax8KGusTPKCgg==} peerDependencies: next: ^10.0.0 || ^11.0.0 || ^12.0.0 || ^13.0.0 || ^14.0.0 || ^15.0.0 - react: ^18.2.0 + react: ^19.2.4 next-mdx-remote@5.0.0: resolution: {integrity: sha512-RNNbqRpK9/dcIFZs/esQhuLA8jANqlH694yqoDBK8hkVdJUndzzGmnPHa2nyi90N4Z9VmzuSWNRpr5ItT3M7xQ==} engines: {node: '>=14', npm: '>=7'} peerDependencies: - react: ^18.2.0 + react: ^19.2.4 next-themes@0.3.0: resolution: {integrity: sha512-/QHIrsYpd6Kfk7xakK4svpDI5mmXP0gfvCoJdGpZQ2TOrQZmsW0QxjaiLn8wbIKjtm4BTSqLoix4lxYYOnLJ/w==} peerDependencies: - react: ^18.2.0 - react-dom: ^18.2.0 + react: ^19.2.4 + react-dom: ^19.2.4 - next@14.2.35: - resolution: {integrity: sha512-KhYd2Hjt/O1/1aZVX3dCwGXM1QmOV4eNM2UTacK5gipDdPN/oHHK/4oVGy7X8GMfPMsUTUEmGlsy0EY1YGAkig==} - engines: {node: '>=18.17.0'} + next@15.5.12: + resolution: {integrity: sha512-Fi/wQ4Etlrn60rz78bebG1i1SR20QxvV8tVp6iJspjLUSHcZoeUXCt+vmWoEcza85ElZzExK/jJ/F6SvtGktjA==} + engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0} hasBin: true peerDependencies: '@opentelemetry/api': ^1.1.0 - '@playwright/test': ^1.41.2 - react: ^18.2.0 - react-dom: ^18.2.0 + '@playwright/test': ^1.51.1 + babel-plugin-react-compiler: '*' + react: ^19.2.4 + react-dom: ^19.2.4 sass: ^1.3.0 peerDependenciesMeta: '@opentelemetry/api': optional: true '@playwright/test': optional: true + babel-plugin-react-compiler: + optional: true sass: optional: true @@ -8511,7 +8427,7 @@ packages: prism-react-renderer@1.1.0: resolution: {integrity: sha512-WZAw+mBoxk1qZDD1h1WOg0BVHgyk9zqbuIBFNgP+Z71i515jGL0WZIN1FIF8EgOyh06x8Rr7HAUXxsRsoUZKyg==} peerDependencies: - react: ^18.2.0 + react: ^19.2.4 prismjs@1.30.0: resolution: {integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==} @@ -8618,13 +8534,13 @@ packages: resolution: {integrity: sha512-UfZZFnDsERI3c3CZGxzvNJd02SHjaSJ8kgW1djn65H1KK8rehwTjyrRKOG3VTMG8wtHZ5rgAO5oTHtHi9GCCmw==} peerDependencies: chart.js: ^4.1.1 - react: ^18.2.0 + react: ^19.2.4 react-confetti@6.4.0: resolution: {integrity: sha512-5MdGUcqxrTU26I2EU7ltkWPwxvucQTuqMm8dUz72z2YMqTD6s9vMcDUysk7n9jnC+lXuCPeJJ7Knf98VEYE9Rg==} engines: {node: '>=16'} peerDependencies: - react: ^18.2.0 + react: ^19.2.4 react-docgen-typescript@2.2.2: resolution: {integrity: sha512-tvg2ZtOpOi6QDwsb3GZhOjDkkX0h8Z2gipvTg6OVMUyoYoURhEiRNePT8NZItTVCDh39JJHnLdfCOkzoLbFnTg==} @@ -8635,22 +8551,22 @@ packages: resolution: {integrity: sha512-hlSJDQ2synMPKFZOsKo9Hi8WWZTC7POR8EmWvTSjow+VDgKzkmjQvFm2fk0tmRw+f0vTOIYKlarR0iL4996pdg==} engines: {node: '>=16.14.0'} - react-dom@18.3.1: - resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} + react-dom@19.2.4: + resolution: {integrity: sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ==} peerDependencies: - react: ^18.2.0 + react: ^19.2.4 react-emoji-render@2.0.1: resolution: {integrity: sha512-SKtsdwgEf2BFNiE9y4UBFZBWjkRcyWmhMprVly52+J77/zxThcfaQ3sCA0+2LtGJIRMpm4DGWSvyLg72fd1rXQ==} peerDependencies: - react: ^18.2.0 - react-dom: ^18.2.0 + react: ^19.2.4 + react-dom: ^19.2.4 react-hook-form@7.57.0: resolution: {integrity: sha512-RbEks3+cbvTP84l/VXGUZ+JMrKOS8ykQCRYdm5aYsxnDquL0vspsyNhGRO7pcH6hsZqWlPOjLye7rJqdtdAmlg==} engines: {node: '>=18.0.0'} peerDependencies: - react: ^18.2.0 + react: ^19.2.4 react-is@16.13.1: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} @@ -8664,8 +8580,8 @@ packages: react-lite-youtube-embed@2.5.1: resolution: {integrity: sha512-qH/0RumywPtzSx5SmWX/cUGvB3mSB7zMx3VrDe1UwyCEQ0SX785xnjRAodEel1pu3A3EhZyzSjwmLpfcaUN6KQ==} peerDependencies: - react: ^18.2.0 - react-dom: ^18.2.0 + react: ^19.2.4 + react-dom: ^19.2.4 react-refresh@0.14.2: resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} @@ -8676,7 +8592,7 @@ packages: engines: {node: '>=10'} peerDependencies: '@types/react': '*' - react: ^18.2.0 + react: ^19.2.4 peerDependenciesMeta: '@types/react': optional: true @@ -8686,7 +8602,7 @@ packages: engines: {node: '>=10'} peerDependencies: '@types/react': '*' - react: ^18.2.0 + react: ^19.2.4 peerDependenciesMeta: '@types/react': optional: true @@ -8696,7 +8612,7 @@ packages: engines: {node: '>=10'} peerDependencies: '@types/react': '*' - react: ^18.2.0 + react: ^19.2.4 peerDependenciesMeta: '@types/react': optional: true @@ -8704,21 +8620,21 @@ packages: react-select@5.8.0: resolution: {integrity: sha512-TfjLDo58XrhP6VG5M/Mi56Us0Yt8X7xD6cDybC7yoRMUNm7BGO7qk8J0TLQOua/prb8vUOtsfnXZwfm30HGsAA==} peerDependencies: - react: ^18.2.0 - react-dom: ^18.2.0 + react: ^19.2.4 + react-dom: ^19.2.4 react-smooth@4.0.4: resolution: {integrity: sha512-gnGKTpYwqL0Iii09gHobNolvX4Kiq4PKx6eWBCYYix+8cdw+cGo3do906l1NBPKkSWx1DghC1dlWG9L2uGd61Q==} peerDependencies: - react: ^18.2.0 - react-dom: ^18.2.0 + react: ^19.2.4 + react-dom: ^19.2.4 react-style-singleton@2.2.3: resolution: {integrity: sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==} engines: {node: '>=10'} peerDependencies: '@types/react': '*' - react: ^18.2.0 + react: ^19.2.4 peerDependenciesMeta: '@types/react': optional: true @@ -8726,11 +8642,11 @@ packages: react-transition-group@4.4.5: resolution: {integrity: sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==} peerDependencies: - react: ^18.2.0 - react-dom: ^18.2.0 + react: ^19.2.4 + react-dom: ^19.2.4 - react@18.3.1: - resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} + react@19.2.4: + resolution: {integrity: sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==} engines: {node: '>=0.10.0'} read-cache@1.0.0: @@ -8773,8 +8689,8 @@ packages: resolution: {integrity: sha512-EdOPzTwcFSuqtvkDoaM5ws/Km1+WTAO2eizL7rqiG0V2UVhTnz0m7J2i0CjVPUCdEkZImaWvXLbZDS2H5t6GFQ==} engines: {node: '>=14'} peerDependencies: - react: ^18.2.0 - react-dom: ^18.2.0 + react: ^19.2.4 + react-dom: ^19.2.4 recma-build-jsx@1.0.0: resolution: {integrity: sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==} @@ -8979,8 +8895,8 @@ packages: sax@1.4.1: resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} - scheduler@0.23.2: - resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} + scheduler@0.27.0: + resolution: {integrity: sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==} schema-utils@3.3.0: resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} @@ -9214,10 +9130,6 @@ packages: stream-shift@1.0.3: resolution: {integrity: sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==} - streamsearch@1.1.0: - resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} - engines: {node: '>=10.0.0'} - strict-uri-encode@2.0.0: resolution: {integrity: sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==} engines: {node: '>=4'} @@ -9323,13 +9235,13 @@ packages: style-to-object@1.0.8: resolution: {integrity: sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==} - styled-jsx@5.1.1: - resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} + styled-jsx@5.1.6: + resolution: {integrity: sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==} engines: {node: '>= 12.0.0'} peerDependencies: '@babel/core': '*' babel-plugin-macros: '*' - react: ^18.2.0 + react: ^19.2.4 peerDependenciesMeta: '@babel/core': optional: true @@ -9342,7 +9254,7 @@ packages: peerDependencies: '@babel/core': '*' babel-plugin-macros: '*' - react: ^18.2.0 + react: ^19.2.4 peerDependenciesMeta: '@babel/core': optional: true @@ -9518,12 +9430,6 @@ packages: peerDependencies: typescript: '>=4.2.0' - ts-api-utils@2.1.0: - resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==} - engines: {node: '>=18.12'} - peerDependencies: - typescript: '>=4.8.4' - ts-dedent@2.2.0: resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==} engines: {node: '>=6.10'} @@ -9806,7 +9712,7 @@ packages: engines: {node: '>=10'} peerDependencies: '@types/react': '*' - react: ^18.2.0 + react: ^19.2.4 peerDependenciesMeta: '@types/react': optional: true @@ -9814,13 +9720,13 @@ packages: use-intl@3.26.5: resolution: {integrity: sha512-OdsJnC/znPvHCHLQH/duvQNXnP1w0hPfS+tkSi3mAbfjYBGh4JnyfdwkQBfIVf7t8gs9eSX/CntxUMvtKdG2MQ==} peerDependencies: - react: ^18.2.0 + react: ^19.2.4 use-isomorphic-layout-effect@1.2.1: resolution: {integrity: sha512-tpZZ+EX0gaghDAiFR37hj5MgY6ZN55kLiPkJsKxBMZ6GZdOSPJXiOzPM984oPYZ5AnehYx5WQp1+ME8I/P/pRA==} peerDependencies: '@types/react': '*' - react: ^18.2.0 + react: ^19.2.4 peerDependenciesMeta: '@types/react': optional: true @@ -9830,7 +9736,7 @@ packages: engines: {node: '>=10'} peerDependencies: '@types/react': '*' - react: ^18.2.0 + react: ^19.2.4 peerDependenciesMeta: '@types/react': optional: true @@ -9838,23 +9744,23 @@ packages: use-sync-external-store@1.2.0: resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==} peerDependencies: - react: ^18.2.0 + react: ^19.2.4 use-sync-external-store@1.4.0: resolution: {integrity: sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw==} peerDependencies: - react: ^18.2.0 + react: ^19.2.4 use-sync-external-store@1.5.0: resolution: {integrity: sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==} peerDependencies: - react: ^18.2.0 + react: ^19.2.4 usehooks-ts@3.1.1: resolution: {integrity: sha512-I4diPp9Cq6ieSUH2wu+fDAVQO43xwtulo+fKEidHUwZPnYImbtkTjzIJYcDcJqxgmX31GVqNFURodvcgHcW0pA==} engines: {node: '>=16.15.0'} peerDependencies: - react: ^18.2.0 + react: ^19.2.4 utf-8-validate@5.0.10: resolution: {integrity: sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==} @@ -9889,7 +9795,7 @@ packages: engines: {node: '>=12.20.0'} peerDependencies: '@types/react': '>=16.8' - react: ^18.2.0 + react: ^19.2.4 peerDependenciesMeta: '@types/react': optional: true @@ -9903,8 +9809,8 @@ packages: vaul@1.1.2: resolution: {integrity: sha512-ZFkClGpWyI2WUQjdLJ/BaGuV6AVQiJ3uELGk3OYtP+B6yCO7Cmn9vPFXVJkRaGkOJu3m8bQMgtyzNHixULceQA==} peerDependencies: - react: ^18.2.0 - react-dom: ^18.2.0 + react: ^19.2.4 + react-dom: ^19.2.4 vfile-matter@5.0.1: resolution: {integrity: sha512-o6roP82AiX0XfkyTHyRCMXgHfltUNlXSEqCIS80f+mbAyiQBE2fxtDVMtseyytGx75sihiJFo/zR6r/4LTs2Cw==} @@ -9947,7 +9853,7 @@ packages: resolution: {integrity: sha512-0m7uo6t/oSFS+4UCUTBnmIhDSP7PGJz1qx4VtALcsBnw81UPPIXMSM8oGVrUNV9CptryiDgBlh4iYmRldg9iaA==} peerDependencies: '@tanstack/react-query': '>=5.0.0' - react: ^18.2.0 + react: ^19.2.4 typescript: '>=5.0.4' viem: 2.x peerDependenciesMeta: @@ -10207,7 +10113,7 @@ packages: peerDependencies: '@types/react': '>=18.0.0' immer: '>=9.0.6' - react: ^18.2.0 + react: ^19.2.4 use-sync-external-store: '>=1.2.0' peerDependenciesMeta: '@types/react': @@ -11886,12 +11792,12 @@ snapshots: '@bugsnag/cuid@3.2.1': {} - '@chromatic-com/playwright@0.12.5(@playwright/test@1.53.1)(@types/react@18.2.57)(bufferutil@4.0.9)(esbuild@0.25.12)(prettier@3.5.3)(typescript@5.8.3)(utf-8-validate@5.0.10)': + '@chromatic-com/playwright@0.12.5(@playwright/test@1.53.1)(@types/react@19.2.14)(bufferutil@4.0.9)(esbuild@0.25.12)(prettier@3.5.3)(typescript@5.8.3)(utf-8-validate@5.0.10)': dependencies: '@chromaui/rrweb-snapshot': 2.0.0-alpha.18-noAbsolute '@playwright/test': 1.53.1 '@segment/analytics-node': 1.3.0 - '@storybook/addon-essentials': 8.5.8(@types/react@18.2.57)(storybook@8.5.8(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10)) + '@storybook/addon-essentials': 8.5.8(@types/react@19.2.14)(storybook@8.5.8(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10)) '@storybook/csf': 0.1.13 '@storybook/manager-api': 8.5.8(storybook@8.5.8(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10)) '@storybook/server-webpack5': 8.5.8(esbuild@0.25.12)(storybook@8.5.8(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10))(typescript@5.8.3) @@ -11911,12 +11817,12 @@ snapshots: - utf-8-validate - webpack-cli - '@chromatic-com/storybook@1.5.0(@chromatic-com/playwright@0.12.5(@playwright/test@1.53.1)(@types/react@18.2.57)(bufferutil@4.0.9)(esbuild@0.25.12)(prettier@3.5.3)(typescript@5.8.3)(utf-8-validate@5.0.10))(react@18.3.1)': + '@chromatic-com/storybook@1.5.0(@chromatic-com/playwright@0.12.5(@playwright/test@1.53.1)(@types/react@19.2.14)(bufferutil@4.0.9)(esbuild@0.25.12)(prettier@3.5.3)(typescript@5.8.3)(utf-8-validate@5.0.10))(react@19.2.4)': dependencies: - chromatic: 11.29.0(@chromatic-com/playwright@0.12.5(@playwright/test@1.53.1)(@types/react@18.2.57)(bufferutil@4.0.9)(esbuild@0.25.12)(prettier@3.5.3)(typescript@5.8.3)(utf-8-validate@5.0.10)) + chromatic: 11.29.0(@chromatic-com/playwright@0.12.5(@playwright/test@1.53.1)(@types/react@19.2.14)(bufferutil@4.0.9)(esbuild@0.25.12)(prettier@3.5.3)(typescript@5.8.3)(utf-8-validate@5.0.10)) filesize: 10.1.6 jsonfile: 6.1.0 - react-confetti: 6.4.0(react@18.3.1) + react-confetti: 6.4.0(react@19.2.4) strip-ansi: 7.1.0 transitivePeerDependencies: - '@chromatic-com/cypress' @@ -11956,16 +11862,16 @@ snapshots: '@docsearch/css@3.9.0': {} - '@docsearch/react@3.9.0(@algolia/client-search@5.25.0)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)': + '@docsearch/react@3.9.0(@algolia/client-search@5.25.0)(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(search-insights@2.17.3)': dependencies: '@algolia/autocomplete-core': 1.17.9(@algolia/client-search@5.25.0)(algoliasearch@5.25.0)(search-insights@2.17.3) '@algolia/autocomplete-preset-algolia': 1.17.9(@algolia/client-search@5.25.0)(algoliasearch@5.25.0) '@docsearch/css': 3.9.0 algoliasearch: 5.25.0 optionalDependencies: - '@types/react': 18.2.57 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@types/react': 19.2.14 + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) search-insights: 2.17.3 transitivePeerDependencies: - '@algolia/client-search' @@ -12029,19 +11935,19 @@ snapshots: '@emotion/memoize@0.9.0': {} - '@emotion/react@11.14.0(@types/react@18.2.57)(react@18.3.1)': + '@emotion/react@11.14.0(@types/react@19.2.14)(react@19.2.4)': dependencies: '@babel/runtime': 7.27.4 '@emotion/babel-plugin': 11.13.5 '@emotion/cache': 11.14.0 '@emotion/serialize': 1.3.3 - '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@18.3.1) + '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@19.2.4) '@emotion/utils': 1.4.2 '@emotion/weak-memoize': 0.4.0 hoist-non-react-statics: 3.3.2 - react: 18.3.1 + react: 19.2.4 optionalDependencies: - '@types/react': 18.2.57 + '@types/react': 19.2.14 transitivePeerDependencies: - supports-color @@ -12057,9 +11963,9 @@ snapshots: '@emotion/unitless@0.10.0': {} - '@emotion/use-insertion-effect-with-fallbacks@1.2.0(react@18.3.1)': + '@emotion/use-insertion-effect-with-fallbacks@1.2.0(react@19.2.4)': dependencies: - react: 18.3.1 + react: 19.2.4 '@emotion/utils@1.4.2': {} @@ -12287,11 +12193,11 @@ snapshots: '@floating-ui/core': 1.7.1 '@floating-ui/utils': 0.2.9 - '@floating-ui/react-dom@2.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@floating-ui/react-dom@2.1.3(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@floating-ui/dom': 1.7.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) '@floating-ui/utils@0.2.9': {} @@ -12329,9 +12235,9 @@ snapshots: '@google/generative-ai@0.24.1': {} - '@hookform/resolvers@3.10.0(react-hook-form@7.57.0(react@18.3.1))': + '@hookform/resolvers@3.10.0(react-hook-form@7.57.0(react@19.2.4))': dependencies: - react-hook-form: 7.57.0(react@18.3.1) + react-hook-form: 7.57.0(react@19.2.4) '@humanwhocodes/config-array@0.13.0': dependencies: @@ -12558,7 +12464,7 @@ snapshots: dependencies: '@lukeed/csprng': 1.1.0 - '@mdx-js/mdx@3.1.0(acorn@8.14.1)': + '@mdx-js/mdx@3.1.0(acorn@8.16.0)': dependencies: '@types/estree': 1.0.7 '@types/estree-jsx': 1.0.5 @@ -12572,7 +12478,7 @@ snapshots: hast-util-to-jsx-runtime: 2.3.6 markdown-extensions: 2.0.0 recma-build-jsx: 1.0.0 - recma-jsx: 1.0.0(acorn@8.14.1) + recma-jsx: 1.0.0(acorn@8.16.0) recma-stringify: 1.0.0 rehype-recma: 1.0.0 remark-mdx: 3.1.0 @@ -12588,11 +12494,11 @@ snapshots: - acorn - supports-color - '@mdx-js/react@3.1.0(@types/react@18.2.57)(react@18.3.1)': + '@mdx-js/react@3.1.0(@types/react@19.2.14)(react@19.2.4)': dependencies: '@types/mdx': 2.0.13 - '@types/react': 18.2.57 - react: 18.3.1 + '@types/react': 19.2.14 + react: 19.2.4 '@metamask/eth-json-rpc-provider@1.0.1': dependencies: @@ -12755,7 +12661,7 @@ snapshots: '@napi-rs/wasm-runtime@0.2.10': dependencies: '@emnapi/core': 1.4.3 - '@emnapi/runtime': 1.4.3 + '@emnapi/runtime': 1.4.5 '@tybys/wasm-util': 0.9.0 optional: true @@ -12799,44 +12705,41 @@ snapshots: '@netlify/runtime-utils@2.2.1': {} - '@next/bundle-analyzer@14.2.29(bufferutil@4.0.9)(utf-8-validate@5.0.10)': + '@next/bundle-analyzer@15.5.12(bufferutil@4.0.9)(utf-8-validate@5.0.10)': dependencies: webpack-bundle-analyzer: 4.10.1(bufferutil@4.0.9)(utf-8-validate@5.0.10) transitivePeerDependencies: - bufferutil - utf-8-validate - '@next/env@14.2.35': {} + '@next/env@15.5.12': {} - '@next/eslint-plugin-next@14.2.29': + '@next/eslint-plugin-next@15.5.12': dependencies: - glob: 10.3.10 + fast-glob: 3.3.1 - '@next/swc-darwin-arm64@14.2.33': + '@next/swc-darwin-arm64@15.5.12': optional: true - '@next/swc-darwin-x64@14.2.33': + '@next/swc-darwin-x64@15.5.12': optional: true - '@next/swc-linux-arm64-gnu@14.2.33': + '@next/swc-linux-arm64-gnu@15.5.12': optional: true - '@next/swc-linux-arm64-musl@14.2.33': + '@next/swc-linux-arm64-musl@15.5.12': optional: true - '@next/swc-linux-x64-gnu@14.2.33': + '@next/swc-linux-x64-gnu@15.5.12': optional: true - '@next/swc-linux-x64-musl@14.2.33': + '@next/swc-linux-x64-musl@15.5.12': optional: true - '@next/swc-win32-arm64-msvc@14.2.33': + '@next/swc-win32-arm64-msvc@15.5.12': optional: true - '@next/swc-win32-ia32-msvc@14.2.33': - optional: true - - '@next/swc-win32-x64-msvc@14.2.33': + '@next/swc-win32-x64-msvc@15.5.12': optional: true '@noble/ciphers@1.2.1': {} @@ -13347,577 +13250,577 @@ snapshots: '@radix-ui/primitive@1.1.3': {} - '@radix-ui/react-accordion@1.2.12(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-accordion@1.2.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collapsible': 1.1.12(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-collection': 1.1.7(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-direction': 1.1.1(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-id': 1.1.1(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.2.57)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@radix-ui/react-collapsible': 1.1.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: - '@types/react': 18.2.57 - '@types/react-dom': 18.2.19 + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) - '@radix-ui/react-arrow@1.1.7(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-arrow@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: - '@types/react': 18.2.57 - '@types/react-dom': 18.2.19 - - '@radix-ui/react-avatar@1.1.11(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/react-context': 1.1.3(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-primitive': 2.1.4(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-use-is-hydrated': 0.1.0(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.2.57)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-avatar@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@radix-ui/react-context': 1.1.3(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-primitive': 2.1.4(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-use-is-hydrated': 0.1.0(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: - '@types/react': 18.2.57 - '@types/react-dom': 18.2.19 + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) - '@radix-ui/react-checkbox@1.3.3(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-checkbox@1.3.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-use-previous': 1.1.1(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-use-size': 1.1.1(@types/react@18.2.57)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.14)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: - '@types/react': 18.2.57 - '@types/react-dom': 18.2.19 + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) - '@radix-ui/react-collapsible@1.1.12(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-collapsible@1.1.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-id': 1.1.1(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.2.57)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: - '@types/react': 18.2.57 - '@types/react-dom': 18.2.19 + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) - '@radix-ui/react-collection@1.1.7(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-collection@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.2.3(@types/react@18.2.57)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.14)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: - '@types/react': 18.2.57 - '@types/react-dom': 18.2.19 + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) - '@radix-ui/react-compose-refs@1.1.2(@types/react@18.2.57)(react@18.3.1)': + '@radix-ui/react-compose-refs@1.1.2(@types/react@19.2.14)(react@19.2.4)': dependencies: - react: 18.3.1 + react: 19.2.4 optionalDependencies: - '@types/react': 18.2.57 + '@types/react': 19.2.14 - '@radix-ui/react-context@1.1.2(@types/react@18.2.57)(react@18.3.1)': + '@radix-ui/react-context@1.1.2(@types/react@19.2.14)(react@19.2.4)': dependencies: - react: 18.3.1 + react: 19.2.4 optionalDependencies: - '@types/react': 18.2.57 + '@types/react': 19.2.14 - '@radix-ui/react-context@1.1.3(@types/react@18.2.57)(react@18.3.1)': + '@radix-ui/react-context@1.1.3(@types/react@19.2.14)(react@19.2.4)': dependencies: - react: 18.3.1 + react: 19.2.4 optionalDependencies: - '@types/react': 18.2.57 + '@types/react': 19.2.14 - '@radix-ui/react-dialog@1.1.15(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-dialog@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-focus-guards': 1.1.3(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-id': 1.1.1(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.2.3(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.2.57)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.4) aria-hidden: 1.2.6 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-remove-scroll: 2.7.1(@types/react@18.2.57)(react@18.3.1) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + react-remove-scroll: 2.7.1(@types/react@19.2.14)(react@19.2.4) optionalDependencies: - '@types/react': 18.2.57 - '@types/react-dom': 18.2.19 + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) - '@radix-ui/react-direction@1.1.1(@types/react@18.2.57)(react@18.3.1)': + '@radix-ui/react-direction@1.1.1(@types/react@19.2.14)(react@19.2.4)': dependencies: - react: 18.3.1 + react: 19.2.4 optionalDependencies: - '@types/react': 18.2.57 + '@types/react': 19.2.14 - '@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@18.2.57)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.2.14)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: - '@types/react': 18.2.57 - '@types/react-dom': 18.2.19 + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) - '@radix-ui/react-dropdown-menu@2.1.16(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-dropdown-menu@2.1.16(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-id': 1.1.1(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-menu': 2.1.16(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.2.57)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-menu': 2.1.16(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: - '@types/react': 18.2.57 - '@types/react-dom': 18.2.19 + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) - '@radix-ui/react-focus-guards@1.1.3(@types/react@18.2.57)(react@18.3.1)': + '@radix-ui/react-focus-guards@1.1.3(@types/react@19.2.14)(react@19.2.4)': dependencies: - react: 18.3.1 + react: 19.2.4 optionalDependencies: - '@types/react': 18.2.57 + '@types/react': 19.2.14 - '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.2.57)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.14)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: - '@types/react': 18.2.57 - '@types/react-dom': 18.2.19 + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) - '@radix-ui/react-focus-scope@1.1.8(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-focus-scope@1.1.8(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-primitive': 2.1.4(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.2.57)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-primitive': 2.1.4(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.14)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: - '@types/react': 18.2.57 - '@types/react-dom': 18.2.19 + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) - '@radix-ui/react-id@1.1.1(@types/react@18.2.57)(react@18.3.1)': + '@radix-ui/react-id@1.1.1(@types/react@19.2.14)(react@19.2.4)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.2.57)(react@18.3.1) - react: 18.3.1 + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.4) + react: 19.2.4 optionalDependencies: - '@types/react': 18.2.57 + '@types/react': 19.2.14 - '@radix-ui/react-menu@2.1.16(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-menu@2.1.16(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-direction': 1.1.1(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-focus-guards': 1.1.3(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-id': 1.1.1(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-popper': 1.2.8(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.2.3(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.2.57)(react@18.3.1) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.14)(react@19.2.4) aria-hidden: 1.2.6 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-remove-scroll: 2.7.1(@types/react@18.2.57)(react@18.3.1) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + react-remove-scroll: 2.7.1(@types/react@19.2.14)(react@19.2.4) optionalDependencies: - '@types/react': 18.2.57 - '@types/react-dom': 18.2.19 + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) - '@radix-ui/react-navigation-menu@1.2.14(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-navigation-menu@1.2.14(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-direction': 1.1.1(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-id': 1.1.1(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-use-previous': 1.1.1(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: - '@types/react': 18.2.57 - '@types/react-dom': 18.2.19 + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) - '@radix-ui/react-popover@1.1.15(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-focus-guards': 1.1.3(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-id': 1.1.1(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-popper': 1.2.8(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.2.3(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.2.57)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.4) aria-hidden: 1.2.6 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-remove-scroll: 2.7.1(@types/react@18.2.57)(react@18.3.1) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + react-remove-scroll: 2.7.1(@types/react@19.2.14)(react@19.2.4) optionalDependencies: - '@types/react': 18.2.57 - '@types/react-dom': 18.2.19 - - '@radix-ui/react-popper@1.2.8(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@floating-ui/react-dom': 2.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-arrow': 1.1.7(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-use-rect': 1.1.1(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-use-size': 1.1.1(@types/react@18.2.57)(react@18.3.1) + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-popper@1.2.8(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + dependencies: + '@floating-ui/react-dom': 2.1.3(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-arrow': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-use-rect': 1.1.1(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.14)(react@19.2.4) '@radix-ui/rect': 1.1.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: - '@types/react': 18.2.57 - '@types/react-dom': 18.2.19 + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) - '@radix-ui/react-portal@1.1.10(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-portal@1.1.10(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: - '@radix-ui/react-primitive': 2.1.4(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.2.57)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@radix-ui/react-primitive': 2.1.4(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: - '@types/react': 18.2.57 - '@types/react-dom': 18.2.19 + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) - '@radix-ui/react-portal@1.1.9(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-portal@1.1.9(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.2.57)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: - '@types/react': 18.2.57 - '@types/react-dom': 18.2.19 + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) - '@radix-ui/react-presence@1.1.5(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-presence@1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.2.57)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: - '@types/react': 18.2.57 - '@types/react-dom': 18.2.19 + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) - '@radix-ui/react-primitive@2.1.3(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: - '@radix-ui/react-slot': 1.2.3(@types/react@18.2.57)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.14)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: - '@types/react': 18.2.57 - '@types/react-dom': 18.2.19 + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) - '@radix-ui/react-primitive@2.1.4(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-primitive@2.1.4(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: - '@radix-ui/react-slot': 1.2.4(@types/react@18.2.57)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@radix-ui/react-slot': 1.2.4(@types/react@19.2.14)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: - '@types/react': 18.2.57 - '@types/react-dom': 18.2.19 + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) - '@radix-ui/react-progress@1.1.8(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-progress@1.1.8(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: - '@radix-ui/react-context': 1.1.3(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-primitive': 2.1.4(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@radix-ui/react-context': 1.1.3(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-primitive': 2.1.4(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: - '@types/react': 18.2.57 - '@types/react-dom': 18.2.19 + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) - '@radix-ui/react-radio-group@1.3.8(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-radio-group@1.3.8(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-direction': 1.1.1(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-use-previous': 1.1.1(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-use-size': 1.1.1(@types/react@18.2.57)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.14)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: - '@types/react': 18.2.57 - '@types/react-dom': 18.2.19 + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) - '@radix-ui/react-roving-focus@1.1.11(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-roving-focus@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-direction': 1.1.1(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-id': 1.1.1(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.2.57)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: - '@types/react': 18.2.57 - '@types/react-dom': 18.2.19 + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) - '@radix-ui/react-scroll-area@1.2.10(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-scroll-area@1.2.10(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@radix-ui/number': 1.1.1 '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-direction': 1.1.1(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.2.57)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: - '@types/react': 18.2.57 - '@types/react-dom': 18.2.19 + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) - '@radix-ui/react-select@2.2.6(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-select@2.2.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@radix-ui/number': 1.1.1 '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-direction': 1.1.1(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-focus-guards': 1.1.3(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-id': 1.1.1(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-popper': 1.2.8(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.2.3(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-use-previous': 1.1.1(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) aria-hidden: 1.2.6 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-remove-scroll: 2.7.1(@types/react@18.2.57)(react@18.3.1) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + react-remove-scroll: 2.7.1(@types/react@19.2.14)(react@19.2.4) optionalDependencies: - '@types/react': 18.2.57 - '@types/react-dom': 18.2.19 + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) - '@radix-ui/react-slot@1.2.3(@types/react@18.2.57)(react@18.3.1)': + '@radix-ui/react-slot@1.2.3(@types/react@19.2.14)(react@19.2.4)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.2.57)(react@18.3.1) - react: 18.3.1 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.4) + react: 19.2.4 optionalDependencies: - '@types/react': 18.2.57 + '@types/react': 19.2.14 - '@radix-ui/react-slot@1.2.4(@types/react@18.2.57)(react@18.3.1)': + '@radix-ui/react-slot@1.2.4(@types/react@19.2.14)(react@19.2.4)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.2.57)(react@18.3.1) - react: 18.3.1 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.4) + react: 19.2.4 optionalDependencies: - '@types/react': 18.2.57 + '@types/react': 19.2.14 - '@radix-ui/react-switch@1.2.6(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-switch@1.2.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-use-previous': 1.1.1(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-use-size': 1.1.1(@types/react@18.2.57)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.14)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: - '@types/react': 18.2.57 - '@types/react-dom': 18.2.19 + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) - '@radix-ui/react-tabs@1.1.13(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-tabs@1.1.13(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-context': 1.1.2(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-direction': 1.1.1(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-id': 1.1.1(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.2.57)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: - '@types/react': 18.2.57 - '@types/react-dom': 18.2.19 + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) - '@radix-ui/react-tooltip@1.2.8(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-tooltip@1.2.8(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-id': 1.1.1(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-popper': 1.2.8(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.2.3(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: - '@types/react': 18.2.57 - '@types/react-dom': 18.2.19 + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) - '@radix-ui/react-use-callback-ref@1.1.1(@types/react@18.2.57)(react@18.3.1)': + '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.2.14)(react@19.2.4)': dependencies: - react: 18.3.1 + react: 19.2.4 optionalDependencies: - '@types/react': 18.2.57 + '@types/react': 19.2.14 - '@radix-ui/react-use-controllable-state@1.2.2(@types/react@18.2.57)(react@18.3.1)': + '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.2.14)(react@19.2.4)': dependencies: - '@radix-ui/react-use-effect-event': 0.0.2(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.2.57)(react@18.3.1) - react: 18.3.1 + '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.4) + react: 19.2.4 optionalDependencies: - '@types/react': 18.2.57 + '@types/react': 19.2.14 - '@radix-ui/react-use-effect-event@0.0.2(@types/react@18.2.57)(react@18.3.1)': + '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.2.14)(react@19.2.4)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.2.57)(react@18.3.1) - react: 18.3.1 + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.4) + react: 19.2.4 optionalDependencies: - '@types/react': 18.2.57 + '@types/react': 19.2.14 - '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@18.2.57)(react@18.3.1)': + '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.2.14)(react@19.2.4)': dependencies: - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.2.57)(react@18.3.1) - react: 18.3.1 + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.14)(react@19.2.4) + react: 19.2.4 optionalDependencies: - '@types/react': 18.2.57 + '@types/react': 19.2.14 - '@radix-ui/react-use-is-hydrated@0.1.0(@types/react@18.2.57)(react@18.3.1)': + '@radix-ui/react-use-is-hydrated@0.1.0(@types/react@19.2.14)(react@19.2.4)': dependencies: - react: 18.3.1 - use-sync-external-store: 1.5.0(react@18.3.1) + react: 19.2.4 + use-sync-external-store: 1.5.0(react@19.2.4) optionalDependencies: - '@types/react': 18.2.57 + '@types/react': 19.2.14 - '@radix-ui/react-use-layout-effect@1.1.1(@types/react@18.2.57)(react@18.3.1)': + '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.2.14)(react@19.2.4)': dependencies: - react: 18.3.1 + react: 19.2.4 optionalDependencies: - '@types/react': 18.2.57 + '@types/react': 19.2.14 - '@radix-ui/react-use-previous@1.1.1(@types/react@18.2.57)(react@18.3.1)': + '@radix-ui/react-use-previous@1.1.1(@types/react@19.2.14)(react@19.2.4)': dependencies: - react: 18.3.1 + react: 19.2.4 optionalDependencies: - '@types/react': 18.2.57 + '@types/react': 19.2.14 - '@radix-ui/react-use-rect@1.1.1(@types/react@18.2.57)(react@18.3.1)': + '@radix-ui/react-use-rect@1.1.1(@types/react@19.2.14)(react@19.2.4)': dependencies: '@radix-ui/rect': 1.1.1 - react: 18.3.1 + react: 19.2.4 optionalDependencies: - '@types/react': 18.2.57 + '@types/react': 19.2.14 - '@radix-ui/react-use-size@1.1.1(@types/react@18.2.57)(react@18.3.1)': + '@radix-ui/react-use-size@1.1.1(@types/react@19.2.14)(react@19.2.4)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.2.57)(react@18.3.1) - react: 18.3.1 + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.4) + react: 19.2.4 optionalDependencies: - '@types/react': 18.2.57 + '@types/react': 19.2.14 - '@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) optionalDependencies: - '@types/react': 18.2.57 - '@types/react-dom': 18.2.19 + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) '@radix-ui/rect@1.1.1': {} - '@rainbow-me/rainbowkit@2.2.5(@tanstack/react-query@5.80.2(react@18.3.1))(@types/react@18.2.57)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(viem@2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76))(wagmi@2.15.4(@netlify/blobs@10.4.1)(@tanstack/query-core@5.80.2)(@tanstack/react-query@5.80.2(react@18.3.1))(@types/react@18.2.57)(bufferutil@4.0.9)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(viem@2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76))(zod@3.25.76))': + '@rainbow-me/rainbowkit@2.2.5(@tanstack/react-query@5.80.2(react@19.2.4))(@types/react@19.2.14)(babel-plugin-macros@3.1.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(viem@2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76))(wagmi@2.15.4(@netlify/blobs@10.4.1)(@tanstack/query-core@5.80.2)(@tanstack/react-query@5.80.2(react@19.2.4))(@types/react@19.2.14)(bufferutil@4.0.9)(react@19.2.4)(typescript@5.8.3)(utf-8-validate@5.0.10)(viem@2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76))(zod@3.25.76))': dependencies: - '@tanstack/react-query': 5.80.2(react@18.3.1) + '@tanstack/react-query': 5.80.2(react@19.2.4) '@vanilla-extract/css': 1.15.5(babel-plugin-macros@3.1.0) '@vanilla-extract/dynamic': 2.1.2 '@vanilla-extract/sprinkles': 1.6.3(@vanilla-extract/css@1.15.5(babel-plugin-macros@3.1.0)) clsx: 2.1.1 qrcode: 1.5.4 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-remove-scroll: 2.6.2(@types/react@18.2.57)(react@18.3.1) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + react-remove-scroll: 2.6.2(@types/react@19.2.14)(react@19.2.4) ua-parser-js: 1.0.40 viem: 2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76) - wagmi: 2.15.4(@netlify/blobs@10.4.1)(@tanstack/query-core@5.80.2)(@tanstack/react-query@5.80.2(react@18.3.1))(@types/react@18.2.57)(bufferutil@4.0.9)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(viem@2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76))(zod@3.25.76) + wagmi: 2.15.4(@netlify/blobs@10.4.1)(@tanstack/query-core@5.80.2)(@tanstack/react-query@5.80.2(react@19.2.4))(@types/react@19.2.14)(bufferutil@4.0.9)(react@19.2.4)(typescript@5.8.3)(utf-8-validate@5.0.10)(viem@2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76))(zod@3.25.76) transitivePeerDependencies: - '@types/react' - babel-plugin-macros @@ -13944,12 +13847,12 @@ snapshots: - utf-8-validate - zod - '@reown/appkit-controllers@1.7.3(@netlify/blobs@10.4.1)(@types/react@18.2.57)(bufferutil@4.0.9)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76)': + '@reown/appkit-controllers@1.7.3(@netlify/blobs@10.4.1)(@types/react@19.2.14)(bufferutil@4.0.9)(react@19.2.4)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76)': dependencies: '@reown/appkit-common': 1.7.3(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76) '@reown/appkit-wallet': 1.7.3(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10) '@walletconnect/universal-provider': 2.19.2(@netlify/blobs@10.4.1)(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76) - valtio: 1.13.2(@types/react@18.2.57)(react@18.3.1) + valtio: 1.13.2(@types/react@19.2.14)(react@19.2.4) viem: 2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76) transitivePeerDependencies: - '@azure/app-configuration' @@ -13982,12 +13885,12 @@ snapshots: dependencies: buffer: 6.0.3 - '@reown/appkit-scaffold-ui@1.7.3(@netlify/blobs@10.4.1)(@types/react@18.2.57)(bufferutil@4.0.9)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(valtio@1.13.2(@types/react@18.2.57)(react@18.3.1))(zod@3.25.76)': + '@reown/appkit-scaffold-ui@1.7.3(@netlify/blobs@10.4.1)(@types/react@19.2.14)(bufferutil@4.0.9)(react@19.2.4)(typescript@5.8.3)(utf-8-validate@5.0.10)(valtio@1.13.2(@types/react@19.2.14)(react@19.2.4))(zod@3.25.76)': dependencies: '@reown/appkit-common': 1.7.3(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76) - '@reown/appkit-controllers': 1.7.3(@netlify/blobs@10.4.1)(@types/react@18.2.57)(bufferutil@4.0.9)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76) - '@reown/appkit-ui': 1.7.3(@netlify/blobs@10.4.1)(@types/react@18.2.57)(bufferutil@4.0.9)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76) - '@reown/appkit-utils': 1.7.3(@netlify/blobs@10.4.1)(@types/react@18.2.57)(bufferutil@4.0.9)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(valtio@1.13.2(@types/react@18.2.57)(react@18.3.1))(zod@3.25.76) + '@reown/appkit-controllers': 1.7.3(@netlify/blobs@10.4.1)(@types/react@19.2.14)(bufferutil@4.0.9)(react@19.2.4)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76) + '@reown/appkit-ui': 1.7.3(@netlify/blobs@10.4.1)(@types/react@19.2.14)(bufferutil@4.0.9)(react@19.2.4)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76) + '@reown/appkit-utils': 1.7.3(@netlify/blobs@10.4.1)(@types/react@19.2.14)(bufferutil@4.0.9)(react@19.2.4)(typescript@5.8.3)(utf-8-validate@5.0.10)(valtio@1.13.2(@types/react@19.2.14)(react@19.2.4))(zod@3.25.76) '@reown/appkit-wallet': 1.7.3(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10) lit: 3.1.0 transitivePeerDependencies: @@ -14018,10 +13921,10 @@ snapshots: - valtio - zod - '@reown/appkit-ui@1.7.3(@netlify/blobs@10.4.1)(@types/react@18.2.57)(bufferutil@4.0.9)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76)': + '@reown/appkit-ui@1.7.3(@netlify/blobs@10.4.1)(@types/react@19.2.14)(bufferutil@4.0.9)(react@19.2.4)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76)': dependencies: '@reown/appkit-common': 1.7.3(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76) - '@reown/appkit-controllers': 1.7.3(@netlify/blobs@10.4.1)(@types/react@18.2.57)(bufferutil@4.0.9)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76) + '@reown/appkit-controllers': 1.7.3(@netlify/blobs@10.4.1)(@types/react@19.2.14)(bufferutil@4.0.9)(react@19.2.4)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76) '@reown/appkit-wallet': 1.7.3(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10) lit: 3.1.0 qrcode: 1.5.3 @@ -14052,15 +13955,15 @@ snapshots: - utf-8-validate - zod - '@reown/appkit-utils@1.7.3(@netlify/blobs@10.4.1)(@types/react@18.2.57)(bufferutil@4.0.9)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(valtio@1.13.2(@types/react@18.2.57)(react@18.3.1))(zod@3.25.76)': + '@reown/appkit-utils@1.7.3(@netlify/blobs@10.4.1)(@types/react@19.2.14)(bufferutil@4.0.9)(react@19.2.4)(typescript@5.8.3)(utf-8-validate@5.0.10)(valtio@1.13.2(@types/react@19.2.14)(react@19.2.4))(zod@3.25.76)': dependencies: '@reown/appkit-common': 1.7.3(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76) - '@reown/appkit-controllers': 1.7.3(@netlify/blobs@10.4.1)(@types/react@18.2.57)(bufferutil@4.0.9)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76) + '@reown/appkit-controllers': 1.7.3(@netlify/blobs@10.4.1)(@types/react@19.2.14)(bufferutil@4.0.9)(react@19.2.4)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76) '@reown/appkit-polyfills': 1.7.3 '@reown/appkit-wallet': 1.7.3(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10) '@walletconnect/logger': 2.1.2 '@walletconnect/universal-provider': 2.19.2(@netlify/blobs@10.4.1)(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76) - valtio: 1.13.2(@types/react@18.2.57)(react@18.3.1) + valtio: 1.13.2(@types/react@19.2.14)(react@19.2.4) viem: 2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76) transitivePeerDependencies: - '@azure/app-configuration' @@ -14100,19 +14003,19 @@ snapshots: - typescript - utf-8-validate - '@reown/appkit@1.7.3(@netlify/blobs@10.4.1)(@types/react@18.2.57)(bufferutil@4.0.9)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76)': + '@reown/appkit@1.7.3(@netlify/blobs@10.4.1)(@types/react@19.2.14)(bufferutil@4.0.9)(react@19.2.4)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76)': dependencies: '@reown/appkit-common': 1.7.3(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76) - '@reown/appkit-controllers': 1.7.3(@netlify/blobs@10.4.1)(@types/react@18.2.57)(bufferutil@4.0.9)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76) + '@reown/appkit-controllers': 1.7.3(@netlify/blobs@10.4.1)(@types/react@19.2.14)(bufferutil@4.0.9)(react@19.2.4)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76) '@reown/appkit-polyfills': 1.7.3 - '@reown/appkit-scaffold-ui': 1.7.3(@netlify/blobs@10.4.1)(@types/react@18.2.57)(bufferutil@4.0.9)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(valtio@1.13.2(@types/react@18.2.57)(react@18.3.1))(zod@3.25.76) - '@reown/appkit-ui': 1.7.3(@netlify/blobs@10.4.1)(@types/react@18.2.57)(bufferutil@4.0.9)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76) - '@reown/appkit-utils': 1.7.3(@netlify/blobs@10.4.1)(@types/react@18.2.57)(bufferutil@4.0.9)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(valtio@1.13.2(@types/react@18.2.57)(react@18.3.1))(zod@3.25.76) + '@reown/appkit-scaffold-ui': 1.7.3(@netlify/blobs@10.4.1)(@types/react@19.2.14)(bufferutil@4.0.9)(react@19.2.4)(typescript@5.8.3)(utf-8-validate@5.0.10)(valtio@1.13.2(@types/react@19.2.14)(react@19.2.4))(zod@3.25.76) + '@reown/appkit-ui': 1.7.3(@netlify/blobs@10.4.1)(@types/react@19.2.14)(bufferutil@4.0.9)(react@19.2.4)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76) + '@reown/appkit-utils': 1.7.3(@netlify/blobs@10.4.1)(@types/react@19.2.14)(bufferutil@4.0.9)(react@19.2.4)(typescript@5.8.3)(utf-8-validate@5.0.10)(valtio@1.13.2(@types/react@19.2.14)(react@19.2.4))(zod@3.25.76) '@reown/appkit-wallet': 1.7.3(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10) '@walletconnect/types': 2.19.2(@netlify/blobs@10.4.1) '@walletconnect/universal-provider': 2.19.2(@netlify/blobs@10.4.1)(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76) bs58: 6.0.0 - valtio: 1.13.2(@types/react@18.2.57)(react@18.3.1) + valtio: 1.13.2(@types/react@19.2.14)(react@19.2.4) viem: 2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76) transitivePeerDependencies: - '@azure/app-configuration' @@ -14398,7 +14301,7 @@ snapshots: '@sentry/core@10.41.0': {} - '@sentry/nextjs@10.41.0(@opentelemetry/context-async-hooks@2.5.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.5.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.5.1(@opentelemetry/api@1.9.0))(next@14.2.35(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.1)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(webpack@5.99.9(esbuild@0.25.12))': + '@sentry/nextjs@10.41.0(@opentelemetry/context-async-hooks@2.5.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.5.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.5.1(@opentelemetry/api@1.9.0))(next@15.5.12(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.1)(babel-plugin-macros@3.1.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4)(webpack@5.99.9(esbuild@0.25.12))': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/semantic-conventions': 1.40.0 @@ -14408,10 +14311,10 @@ snapshots: '@sentry/core': 10.41.0 '@sentry/node': 10.41.0 '@sentry/opentelemetry': 10.41.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.5.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.5.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.5.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.40.0) - '@sentry/react': 10.41.0(react@18.3.1) + '@sentry/react': 10.41.0(react@19.2.4) '@sentry/vercel-edge': 10.41.0 '@sentry/webpack-plugin': 5.1.1(webpack@5.99.9(esbuild@0.25.12)) - next: 14.2.35(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.1)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: 15.5.12(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.1)(babel-plugin-macros@3.1.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) rollup: 4.46.2 stacktrace-parser: 0.1.11 transitivePeerDependencies: @@ -14486,11 +14389,11 @@ snapshots: '@opentelemetry/semantic-conventions': 1.40.0 '@sentry/core': 10.41.0 - '@sentry/react@10.41.0(react@18.3.1)': + '@sentry/react@10.41.0(react@19.2.4)': dependencies: '@sentry/browser': 10.41.0 '@sentry/core': 10.41.0 - react: 18.3.1 + react: 19.2.4 '@sentry/vercel-edge@10.41.0': dependencies: @@ -15106,9 +15009,9 @@ snapshots: dependencies: tslib: 2.8.1 - '@socialgouv/matomo-next@1.9.2(next@14.2.35(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.1)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))': + '@socialgouv/matomo-next@1.9.2(next@15.5.12(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.1)(babel-plugin-macros@3.1.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))': dependencies: - next: 14.2.35(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.1)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: 15.5.12(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.1)(babel-plugin-macros@3.1.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@socket.io/component-emitter@3.1.2': {} @@ -15158,38 +15061,38 @@ snapshots: storybook: 8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10) ts-dedent: 2.2.0 - '@storybook/addon-docs@8.5.8(@types/react@18.2.57)(storybook@8.5.8(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10))': + '@storybook/addon-docs@8.5.8(@types/react@19.2.14)(storybook@8.5.8(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10))': dependencies: - '@mdx-js/react': 3.1.0(@types/react@18.2.57)(react@18.3.1) - '@storybook/blocks': 8.5.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.5.8(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10)) + '@mdx-js/react': 3.1.0(@types/react@19.2.14)(react@19.2.4) + '@storybook/blocks': 8.5.8(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(storybook@8.5.8(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10)) '@storybook/csf-plugin': 8.5.8(storybook@8.5.8(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10)) - '@storybook/react-dom-shim': 8.5.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.5.8(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10)) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@storybook/react-dom-shim': 8.5.8(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(storybook@8.5.8(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10)) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) storybook: 8.5.8(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10) ts-dedent: 2.2.0 transitivePeerDependencies: - '@types/react' - '@storybook/addon-docs@8.6.14(@types/react@18.2.57)(storybook@8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10))': + '@storybook/addon-docs@8.6.14(@types/react@19.2.14)(storybook@8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10))': dependencies: - '@mdx-js/react': 3.1.0(@types/react@18.2.57)(react@18.3.1) - '@storybook/blocks': 8.6.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10)) + '@mdx-js/react': 3.1.0(@types/react@19.2.14)(react@19.2.4) + '@storybook/blocks': 8.6.14(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(storybook@8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10)) '@storybook/csf-plugin': 8.6.14(storybook@8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10)) - '@storybook/react-dom-shim': 8.6.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10)) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@storybook/react-dom-shim': 8.6.14(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(storybook@8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10)) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) storybook: 8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10) ts-dedent: 2.2.0 transitivePeerDependencies: - '@types/react' - '@storybook/addon-essentials@8.5.8(@types/react@18.2.57)(storybook@8.5.8(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10))': + '@storybook/addon-essentials@8.5.8(@types/react@19.2.14)(storybook@8.5.8(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10))': dependencies: '@storybook/addon-actions': 8.5.8(storybook@8.5.8(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10)) '@storybook/addon-backgrounds': 8.5.8(storybook@8.5.8(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10)) '@storybook/addon-controls': 8.5.8(storybook@8.5.8(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10)) - '@storybook/addon-docs': 8.5.8(@types/react@18.2.57)(storybook@8.5.8(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10)) + '@storybook/addon-docs': 8.5.8(@types/react@19.2.14)(storybook@8.5.8(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10)) '@storybook/addon-highlight': 8.5.8(storybook@8.5.8(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10)) '@storybook/addon-measure': 8.5.8(storybook@8.5.8(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10)) '@storybook/addon-outline': 8.5.8(storybook@8.5.8(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10)) @@ -15200,12 +15103,12 @@ snapshots: transitivePeerDependencies: - '@types/react' - '@storybook/addon-essentials@8.6.14(@types/react@18.2.57)(storybook@8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10))': + '@storybook/addon-essentials@8.6.14(@types/react@19.2.14)(storybook@8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10))': dependencies: '@storybook/addon-actions': 8.6.14(storybook@8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10)) '@storybook/addon-backgrounds': 8.6.14(storybook@8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10)) '@storybook/addon-controls': 8.6.14(storybook@8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10)) - '@storybook/addon-docs': 8.6.14(@types/react@18.2.57)(storybook@8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10)) + '@storybook/addon-docs': 8.6.14(@types/react@19.2.14)(storybook@8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10)) '@storybook/addon-highlight': 8.6.14(storybook@8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10)) '@storybook/addon-measure': 8.6.14(storybook@8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10)) '@storybook/addon-outline': 8.6.14(storybook@8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10)) @@ -15235,13 +15138,13 @@ snapshots: storybook: 8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10) ts-dedent: 2.2.0 - '@storybook/addon-links@8.6.14(react@18.3.1)(storybook@8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10))': + '@storybook/addon-links@8.6.14(react@19.2.4)(storybook@8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10))': dependencies: '@storybook/global': 5.0.0 storybook: 8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10) ts-dedent: 2.2.0 optionalDependencies: - react: 18.3.1 + react: 19.2.4 '@storybook/addon-measure@8.5.8(storybook@8.5.8(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10))': dependencies: @@ -15290,24 +15193,24 @@ snapshots: memoizerific: 1.11.3 storybook: 8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10) - '@storybook/blocks@8.5.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.5.8(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10))': + '@storybook/blocks@8.5.8(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(storybook@8.5.8(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10))': dependencies: '@storybook/csf': 0.1.12 - '@storybook/icons': 1.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/icons': 1.4.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) storybook: 8.5.8(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10) ts-dedent: 2.2.0 optionalDependencies: - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) - '@storybook/blocks@8.6.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10))': + '@storybook/blocks@8.6.14(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(storybook@8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10))': dependencies: - '@storybook/icons': 1.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/icons': 1.4.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) storybook: 8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10) ts-dedent: 2.2.0 optionalDependencies: - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) '@storybook/builder-webpack5@8.5.8(esbuild@0.25.12)(storybook@8.5.8(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10))(typescript@5.8.3)': dependencies: @@ -15464,10 +15367,10 @@ snapshots: '@storybook/global@5.0.0': {} - '@storybook/icons@1.4.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@storybook/icons@1.4.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) '@storybook/instrumenter@8.6.14(storybook@8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10))': dependencies: @@ -15483,7 +15386,7 @@ snapshots: dependencies: storybook: 8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10) - '@storybook/nextjs@8.6.14(babel-plugin-macros@3.1.0)(esbuild@0.25.12)(next@14.2.35(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.1)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10))(type-fest@4.41.0)(typescript@5.8.3)(webpack-hot-middleware@2.26.1)(webpack@5.99.9(esbuild@0.25.12))': + '@storybook/nextjs@8.6.14(babel-plugin-macros@3.1.0)(esbuild@0.25.12)(next@15.5.12(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.1)(babel-plugin-macros@3.1.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(storybook@8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10))(type-fest@4.41.0)(typescript@5.8.3)(webpack-hot-middleware@2.26.1)(webpack@5.99.9(esbuild@0.25.12))': dependencies: '@babel/core': 7.27.4 '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.27.4) @@ -15500,8 +15403,8 @@ snapshots: '@babel/runtime': 7.27.4 '@pmmmwh/react-refresh-webpack-plugin': 0.5.16(react-refresh@0.14.2)(type-fest@4.41.0)(webpack-hot-middleware@2.26.1)(webpack@5.99.9(esbuild@0.25.12)) '@storybook/builder-webpack5': 8.6.14(esbuild@0.25.12)(storybook@8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10))(typescript@5.8.3) - '@storybook/preset-react-webpack': 8.6.14(@storybook/test@8.6.14(storybook@8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10)))(esbuild@0.25.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10))(typescript@5.8.3) - '@storybook/react': 8.6.14(@storybook/test@8.6.14(storybook@8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10))(typescript@5.8.3) + '@storybook/preset-react-webpack': 8.6.14(@storybook/test@8.6.14(storybook@8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10)))(esbuild@0.25.12)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(storybook@8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10))(typescript@5.8.3) + '@storybook/react': 8.6.14(@storybook/test@8.6.14(storybook@8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10)))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(storybook@8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10))(typescript@5.8.3) '@storybook/test': 8.6.14(storybook@8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10)) '@types/semver': 7.7.0 babel-loader: 9.2.1(@babel/core@7.27.4)(webpack@5.99.9(esbuild@0.25.12)) @@ -15509,20 +15412,20 @@ snapshots: find-up: 5.0.0 image-size: 1.2.1 loader-utils: 3.3.1 - next: 14.2.35(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.1)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: 15.5.12(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.1)(babel-plugin-macros@3.1.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) node-polyfill-webpack-plugin: 2.0.1(webpack@5.99.9(esbuild@0.25.12)) pnp-webpack-plugin: 1.7.0(typescript@5.8.3) postcss: 8.5.4 postcss-loader: 8.1.1(postcss@8.5.4)(typescript@5.8.3)(webpack@5.99.9(esbuild@0.25.12)) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) react-refresh: 0.14.2 resolve-url-loader: 5.0.0 sass-loader: 14.2.1(webpack@5.99.9(esbuild@0.25.12)) semver: 7.7.2 storybook: 8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10) style-loader: 3.3.4(webpack@5.99.9(esbuild@0.25.12)) - styled-jsx: 5.1.7(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react@18.3.1) + styled-jsx: 5.1.7(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react@19.2.4) ts-dedent: 2.2.0 tsconfig-paths: 4.2.0 tsconfig-paths-webpack-plugin: 4.1.0 @@ -15548,17 +15451,17 @@ snapshots: - webpack-hot-middleware - webpack-plugin-serve - '@storybook/preset-react-webpack@8.6.14(@storybook/test@8.6.14(storybook@8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10)))(esbuild@0.25.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10))(typescript@5.8.3)': + '@storybook/preset-react-webpack@8.6.14(@storybook/test@8.6.14(storybook@8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10)))(esbuild@0.25.12)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(storybook@8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10))(typescript@5.8.3)': dependencies: '@storybook/core-webpack': 8.6.14(storybook@8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10)) - '@storybook/react': 8.6.14(@storybook/test@8.6.14(storybook@8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10))(typescript@5.8.3) + '@storybook/react': 8.6.14(@storybook/test@8.6.14(storybook@8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10)))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(storybook@8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10))(typescript@5.8.3) '@storybook/react-docgen-typescript-plugin': 1.0.6--canary.9.0c3f3b7.0(typescript@5.8.3)(webpack@5.99.9(esbuild@0.25.12)) '@types/semver': 7.7.0 find-up: 5.0.0 magic-string: 0.30.17 - react: 18.3.1 + react: 19.2.4 react-docgen: 7.1.1 - react-dom: 18.3.1(react@18.3.1) + react-dom: 19.2.4(react@19.2.4) resolve: 1.22.10 semver: 7.7.2 storybook: 8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10) @@ -15606,28 +15509,28 @@ snapshots: transitivePeerDependencies: - supports-color - '@storybook/react-dom-shim@8.5.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.5.8(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10))': + '@storybook/react-dom-shim@8.5.8(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(storybook@8.5.8(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10))': dependencies: - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) storybook: 8.5.8(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10) - '@storybook/react-dom-shim@8.6.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10))': + '@storybook/react-dom-shim@8.6.14(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(storybook@8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10))': dependencies: - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) storybook: 8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10) - '@storybook/react@8.6.14(@storybook/test@8.6.14(storybook@8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10))(typescript@5.8.3)': + '@storybook/react@8.6.14(@storybook/test@8.6.14(storybook@8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10)))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(storybook@8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10))(typescript@5.8.3)': dependencies: '@storybook/components': 8.6.14(storybook@8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10)) '@storybook/global': 5.0.0 '@storybook/manager-api': 8.6.14(storybook@8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10)) '@storybook/preview-api': 8.6.14(storybook@8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10)) - '@storybook/react-dom-shim': 8.6.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10)) + '@storybook/react-dom-shim': 8.6.14(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(storybook@8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10)) '@storybook/theming': 8.6.14(storybook@8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10)) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) storybook: 8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10) optionalDependencies: '@storybook/test': 8.6.14(storybook@8.6.17(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10)) @@ -15775,31 +15678,28 @@ snapshots: - supports-color - typescript - '@swc/counter@0.1.3': {} - - '@swc/helpers@0.5.5': + '@swc/helpers@0.5.15': dependencies: - '@swc/counter': 0.1.3 tslib: 2.8.1 '@tanstack/query-core@5.80.2': {} - '@tanstack/react-query@5.80.2(react@18.3.1)': + '@tanstack/react-query@5.80.2(react@19.2.4)': dependencies: '@tanstack/query-core': 5.80.2 - react: 18.3.1 + react: 19.2.4 - '@tanstack/react-table@8.21.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@tanstack/react-table@8.21.3(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@tanstack/table-core': 8.21.3 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) - '@tanstack/react-virtual@3.13.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@tanstack/react-virtual@3.13.12(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@tanstack/virtual-core': 3.13.12 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) '@tanstack/table-core@8.21.3': {} @@ -16032,26 +15932,20 @@ snapshots: pg-protocol: 1.10.3 pg-types: 2.2.0 - '@types/prop-types@15.7.14': {} - - '@types/react-dom@18.2.19': + '@types/react-dom@19.2.3(@types/react@19.2.14)': dependencies: - '@types/react': 18.2.57 + '@types/react': 19.2.14 - '@types/react-transition-group@4.4.12(@types/react@18.2.57)': + '@types/react-transition-group@4.4.12(@types/react@19.2.14)': dependencies: - '@types/react': 18.2.57 + '@types/react': 19.2.14 - '@types/react@18.2.57': + '@types/react@19.2.14': dependencies: - '@types/prop-types': 15.7.14 - '@types/scheduler': 0.26.0 - csstype: 3.1.3 + csstype: 3.2.3 '@types/resolve@1.20.6': {} - '@types/scheduler@0.26.0': {} - '@types/semver@7.7.0': {} '@types/tedious@4.0.14': @@ -16090,23 +15984,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@8.33.1(@typescript-eslint/parser@8.33.1(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3)': - dependencies: - '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.33.1(eslint@8.57.1)(typescript@5.8.3) - '@typescript-eslint/scope-manager': 8.33.1 - '@typescript-eslint/type-utils': 8.33.1(eslint@8.57.1)(typescript@5.8.3) - '@typescript-eslint/utils': 8.33.1(eslint@8.57.1)(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.33.1 - eslint: 8.57.1 - graphemer: 1.4.0 - ignore: 7.0.5 - natural-compare: 1.4.0 - ts-api-utils: 2.1.0(typescript@5.8.3) - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3)': dependencies: '@typescript-eslint/scope-manager': 7.18.0 @@ -16120,27 +15997,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.33.1(eslint@8.57.1)(typescript@5.8.3)': - dependencies: - '@typescript-eslint/scope-manager': 8.33.1 - '@typescript-eslint/types': 8.33.1 - '@typescript-eslint/typescript-estree': 8.33.1(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.33.1 - debug: 4.4.1 - eslint: 8.57.1 - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/project-service@8.33.1(typescript@5.8.3)': - dependencies: - '@typescript-eslint/tsconfig-utils': 8.33.1(typescript@5.8.3) - '@typescript-eslint/types': 8.33.1 - debug: 4.4.3 - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/scope-manager@5.62.0': dependencies: '@typescript-eslint/types': 5.62.0 @@ -16151,15 +16007,6 @@ snapshots: '@typescript-eslint/types': 7.18.0 '@typescript-eslint/visitor-keys': 7.18.0 - '@typescript-eslint/scope-manager@8.33.1': - dependencies: - '@typescript-eslint/types': 8.33.1 - '@typescript-eslint/visitor-keys': 8.33.1 - - '@typescript-eslint/tsconfig-utils@8.33.1(typescript@5.8.3)': - dependencies: - typescript: 5.8.3 - '@typescript-eslint/type-utils@7.18.0(eslint@8.57.1)(typescript@5.8.3)': dependencies: '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.8.3) @@ -16172,23 +16019,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@8.33.1(eslint@8.57.1)(typescript@5.8.3)': - dependencies: - '@typescript-eslint/typescript-estree': 8.33.1(typescript@5.8.3) - '@typescript-eslint/utils': 8.33.1(eslint@8.57.1)(typescript@5.8.3) - debug: 4.4.3 - eslint: 8.57.1 - ts-api-utils: 2.1.0(typescript@5.8.3) - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/types@5.62.0': {} '@typescript-eslint/types@7.18.0': {} - '@typescript-eslint/types@8.33.1': {} - '@typescript-eslint/typescript-estree@5.62.0(typescript@5.8.3)': dependencies: '@typescript-eslint/types': 5.62.0 @@ -16218,22 +16052,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.33.1(typescript@5.8.3)': - dependencies: - '@typescript-eslint/project-service': 8.33.1(typescript@5.8.3) - '@typescript-eslint/tsconfig-utils': 8.33.1(typescript@5.8.3) - '@typescript-eslint/types': 8.33.1 - '@typescript-eslint/visitor-keys': 8.33.1 - debug: 4.4.3 - fast-glob: 3.3.3 - is-glob: 4.0.3 - minimatch: 9.0.5 - semver: 7.7.4 - ts-api-utils: 2.1.0(typescript@5.8.3) - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/utils@5.62.0(eslint@8.57.1)(typescript@5.8.3)': dependencies: '@eslint-community/eslint-utils': 4.7.0(eslint@8.57.1) @@ -16260,17 +16078,6 @@ snapshots: - supports-color - typescript - '@typescript-eslint/utils@8.33.1(eslint@8.57.1)(typescript@5.8.3)': - dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@8.57.1) - '@typescript-eslint/scope-manager': 8.33.1 - '@typescript-eslint/types': 8.33.1 - '@typescript-eslint/typescript-estree': 8.33.1(typescript@5.8.3) - eslint: 8.57.1 - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/visitor-keys@5.62.0': dependencies: '@typescript-eslint/types': 5.62.0 @@ -16281,11 +16088,6 @@ snapshots: '@typescript-eslint/types': 7.18.0 eslint-visitor-keys: 3.4.3 - '@typescript-eslint/visitor-keys@8.33.1': - dependencies: - '@typescript-eslint/types': 8.33.1 - eslint-visitor-keys: 4.2.0 - '@ungap/structured-clone@1.3.0': {} '@unrs/resolver-binding-darwin-arm64@1.7.9': @@ -16400,14 +16202,14 @@ snapshots: loupe: 3.1.3 tinyrainbow: 1.2.0 - '@wagmi/connectors@5.8.3(@netlify/blobs@10.4.1)(@types/react@18.2.57)(@wagmi/core@2.17.2(@tanstack/query-core@5.80.2)(@types/react@18.2.57)(react@18.3.1)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76)))(bufferutil@4.0.9)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(viem@2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76))(zod@3.25.76)': + '@wagmi/connectors@5.8.3(@netlify/blobs@10.4.1)(@types/react@19.2.14)(@wagmi/core@2.17.2(@tanstack/query-core@5.80.2)(@types/react@19.2.14)(react@19.2.4)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@19.2.4))(viem@2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76)))(bufferutil@4.0.9)(react@19.2.4)(typescript@5.8.3)(utf-8-validate@5.0.10)(viem@2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76))(zod@3.25.76)': dependencies: '@coinbase/wallet-sdk': 4.3.0 '@metamask/sdk': 0.32.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) '@safe-global/safe-apps-provider': 0.18.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76) '@safe-global/safe-apps-sdk': 9.1.0(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76) - '@wagmi/core': 2.17.2(@tanstack/query-core@5.80.2)(@types/react@18.2.57)(react@18.3.1)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76)) - '@walletconnect/ethereum-provider': 2.20.2(@netlify/blobs@10.4.1)(@types/react@18.2.57)(bufferutil@4.0.9)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76) + '@wagmi/core': 2.17.2(@tanstack/query-core@5.80.2)(@types/react@19.2.14)(react@19.2.4)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@19.2.4))(viem@2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76)) + '@walletconnect/ethereum-provider': 2.20.2(@netlify/blobs@10.4.1)(@types/react@19.2.14)(bufferutil@4.0.9)(react@19.2.4)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76) cbw-sdk: '@coinbase/wallet-sdk@3.9.3' viem: 2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76) optionalDependencies: @@ -16439,12 +16241,12 @@ snapshots: - utf-8-validate - zod - '@wagmi/core@2.17.2(@tanstack/query-core@5.80.2)(@types/react@18.2.57)(react@18.3.1)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76))': + '@wagmi/core@2.17.2(@tanstack/query-core@5.80.2)(@types/react@19.2.14)(react@19.2.4)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@19.2.4))(viem@2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76))': dependencies: eventemitter3: 5.0.1 mipd: 0.0.7(typescript@5.8.3) viem: 2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76) - zustand: 5.0.0(@types/react@18.2.57)(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)) + zustand: 5.0.0(@types/react@19.2.14)(react@19.2.4)(use-sync-external-store@1.4.0(react@19.2.4)) optionalDependencies: '@tanstack/query-core': 5.80.2 typescript: 5.8.3 @@ -16454,12 +16256,12 @@ snapshots: - react - use-sync-external-store - '@wagmi/core@2.17.3(@tanstack/query-core@5.80.2)(@types/react@18.2.57)(react@18.3.1)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76))': + '@wagmi/core@2.17.3(@tanstack/query-core@5.80.2)(@types/react@19.2.14)(react@19.2.4)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@19.2.4))(viem@2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76))': dependencies: eventemitter3: 5.0.1 mipd: 0.0.7(typescript@5.8.3) viem: 2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76) - zustand: 5.0.0(@types/react@18.2.57)(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)) + zustand: 5.0.0(@types/react@19.2.14)(react@19.2.4)(use-sync-external-store@1.4.0(react@19.2.4)) optionalDependencies: '@tanstack/query-core': 5.80.2 typescript: 5.8.3 @@ -16559,9 +16361,9 @@ snapshots: dependencies: tslib: 1.14.1 - '@walletconnect/ethereum-provider@2.20.2(@netlify/blobs@10.4.1)(@types/react@18.2.57)(bufferutil@4.0.9)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76)': + '@walletconnect/ethereum-provider@2.20.2(@netlify/blobs@10.4.1)(@types/react@19.2.14)(bufferutil@4.0.9)(react@19.2.4)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76)': dependencies: - '@reown/appkit': 1.7.3(@netlify/blobs@10.4.1)(@types/react@18.2.57)(bufferutil@4.0.9)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76) + '@reown/appkit': 1.7.3(@netlify/blobs@10.4.1)(@types/react@19.2.14)(bufferutil@4.0.9)(react@19.2.4)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76) '@walletconnect/jsonrpc-http-connection': 1.0.8 '@walletconnect/jsonrpc-provider': 1.0.14 '@walletconnect/jsonrpc-types': 1.0.4 @@ -17122,10 +16924,6 @@ snapshots: mime-types: 2.1.35 negotiator: 0.6.3 - acorn-import-attributes@1.9.5(acorn@8.14.1): - dependencies: - acorn: 8.14.1 - acorn-import-attributes@1.9.5(acorn@8.16.0): dependencies: acorn: 8.16.0 @@ -17134,6 +16932,10 @@ snapshots: dependencies: acorn: 8.14.1 + acorn-jsx@5.3.2(acorn@8.16.0): + dependencies: + acorn: 8.16.0 + acorn-walk@8.3.4: dependencies: acorn: 8.14.1 @@ -17550,10 +17352,6 @@ snapshots: builtin-status-codes@3.0.0: {} - busboy@1.6.0: - dependencies: - streamsearch: 1.1.0 - call-bind-apply-helpers@1.0.2: dependencies: es-errors: 1.3.0 @@ -17646,13 +17444,13 @@ snapshots: dependencies: readdirp: 4.1.2 - chromatic@11.29.0(@chromatic-com/playwright@0.12.5(@playwright/test@1.53.1)(@types/react@18.2.57)(bufferutil@4.0.9)(esbuild@0.25.12)(prettier@3.5.3)(typescript@5.8.3)(utf-8-validate@5.0.10)): + chromatic@11.29.0(@chromatic-com/playwright@0.12.5(@playwright/test@1.53.1)(@types/react@19.2.14)(bufferutil@4.0.9)(esbuild@0.25.12)(prettier@3.5.3)(typescript@5.8.3)(utf-8-validate@5.0.10)): optionalDependencies: - '@chromatic-com/playwright': 0.12.5(@playwright/test@1.53.1)(@types/react@18.2.57)(bufferutil@4.0.9)(esbuild@0.25.12)(prettier@3.5.3)(typescript@5.8.3)(utf-8-validate@5.0.10) + '@chromatic-com/playwright': 0.12.5(@playwright/test@1.53.1)(@types/react@19.2.14)(bufferutil@4.0.9)(esbuild@0.25.12)(prettier@3.5.3)(typescript@5.8.3)(utf-8-validate@5.0.10) - chromatic@12.0.0(@chromatic-com/playwright@0.12.5(@playwright/test@1.53.1)(@types/react@18.2.57)(bufferutil@4.0.9)(esbuild@0.25.12)(prettier@3.5.3)(typescript@5.8.3)(utf-8-validate@5.0.10)): + chromatic@12.0.0(@chromatic-com/playwright@0.12.5(@playwright/test@1.53.1)(@types/react@19.2.14)(bufferutil@4.0.9)(esbuild@0.25.12)(prettier@3.5.3)(typescript@5.8.3)(utf-8-validate@5.0.10)): optionalDependencies: - '@chromatic-com/playwright': 0.12.5(@playwright/test@1.53.1)(@types/react@18.2.57)(bufferutil@4.0.9)(esbuild@0.25.12)(prettier@3.5.3)(typescript@5.8.3)(utf-8-validate@5.0.10) + '@chromatic-com/playwright': 0.12.5(@playwright/test@1.53.1)(@types/react@19.2.14)(bufferutil@4.0.9)(esbuild@0.25.12)(prettier@3.5.3)(typescript@5.8.3)(utf-8-validate@5.0.10) chrome-trace-event@1.0.4: {} @@ -17696,14 +17494,14 @@ snapshots: clsx@2.1.1: {} - cmdk@1.1.1(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + cmdk@1.1.1(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4): dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-dialog': 1.1.15(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-id': 1.1.1(@types/react@18.2.57)(react@18.3.1) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.4) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) transitivePeerDependencies: - '@types/react' - '@types/react-dom' @@ -17917,6 +17715,8 @@ snapshots: csstype@3.1.3: {} + csstype@3.2.3: {} + d3-array@3.2.4: dependencies: internmap: 2.0.3 @@ -18085,9 +17885,9 @@ snapshots: dequal@2.0.3: {} - derive-valtio@0.1.0(valtio@1.13.2(@types/react@18.2.57)(react@18.3.1)): + derive-valtio@0.1.0(valtio@1.13.2(@types/react@19.2.14)(react@19.2.4)): dependencies: - valtio: 1.13.2(@types/react@18.2.57)(react@18.3.1) + valtio: 1.13.2(@types/react@19.2.14)(react@19.2.4) des.js@1.1.0: dependencies: @@ -18232,11 +18032,11 @@ snapshots: minimalistic-assert: 1.0.1 minimalistic-crypto-utils: 1.0.1 - embla-carousel-react@8.6.0(react@18.3.1): + embla-carousel-react@8.6.0(react@19.2.4): dependencies: embla-carousel: 8.6.0 embla-carousel-reactive-utils: 8.6.0(embla-carousel@8.6.0) - react: 18.3.1 + react: 19.2.4 embla-carousel-reactive-utils@8.6.0(embla-carousel@8.6.0): dependencies: @@ -18447,7 +18247,7 @@ snapshots: esast-util-from-js@2.0.1: dependencies: '@types/estree-jsx': 1.0.5 - acorn: 8.14.1 + acorn: 8.16.0 esast-util-from-estree: 2.0.0 vfile-message: 4.0.2 @@ -18528,19 +18328,19 @@ snapshots: escape-string-regexp@5.0.0: {} - eslint-config-next@14.2.29(eslint@8.57.1)(typescript@5.8.3): + eslint-config-next@15.5.12(eslint@8.57.1)(typescript@5.8.3): dependencies: - '@next/eslint-plugin-next': 14.2.29 + '@next/eslint-plugin-next': 15.5.12 '@rushstack/eslint-patch': 1.11.0 - '@typescript-eslint/eslint-plugin': 8.33.1(@typescript-eslint/parser@8.33.1(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3) - '@typescript-eslint/parser': 8.33.1(eslint@8.57.1)(typescript@5.8.3) + '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3) + '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.8.3) eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.31.0)(eslint@8.57.1) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1) eslint-plugin-jsx-a11y: 6.10.2(eslint@8.57.1) eslint-plugin-react: 7.37.5(eslint@8.57.1) - eslint-plugin-react-hooks: 5.0.0-canary-7118f5dd7-20230705(eslint@8.57.1) + eslint-plugin-react-hooks: 5.2.0(eslint@8.57.1) optionalDependencies: typescript: 5.8.3 transitivePeerDependencies: @@ -18563,7 +18363,7 @@ snapshots: eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.31.0)(eslint@8.57.1): dependencies: '@nolyfill/is-core-module': 1.0.39 - debug: 4.4.1 + debug: 4.4.3 eslint: 8.57.1 get-tsconfig: 4.10.1 is-bun-module: 2.0.0 @@ -18571,21 +18371,22 @@ snapshots: tinyglobby: 0.2.14 unrs-resolver: 1.7.9 optionalDependencies: - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@8.57.1): + eslint-module-utils@2.12.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1): dependencies: debug: 3.2.7 optionalDependencies: '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.8.3) eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.31.0)(eslint@8.57.1) transitivePeerDependencies: - supports-color - eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1): + eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 @@ -18596,7 +18397,7 @@ snapshots: doctrine: 2.1.0 eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@8.57.1) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@8.57.1) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -18633,7 +18434,7 @@ snapshots: safe-regex-test: 1.1.0 string.prototype.includes: 2.0.1 - eslint-plugin-react-hooks@5.0.0-canary-7118f5dd7-20230705(eslint@8.57.1): + eslint-plugin-react-hooks@5.2.0(eslint@8.57.1): dependencies: eslint: 8.57.1 @@ -18695,8 +18496,6 @@ snapshots: eslint-visitor-keys@3.4.3: {} - eslint-visitor-keys@4.2.0: {} - eslint@8.57.1: dependencies: '@eslint-community/eslint-utils': 4.7.0(eslint@8.57.1) @@ -18891,6 +18690,14 @@ snapshots: fast-equals@5.2.2: {} + fast-glob@3.3.1: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + fast-glob@3.3.3: dependencies: '@nodelib/fs.stat': 2.0.5 @@ -19017,14 +18824,14 @@ snapshots: fraction.js@4.3.7: {} - framer-motion@12.36.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + framer-motion@12.36.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4): dependencies: motion-dom: 12.36.0 motion-utils: 12.36.0 tslib: 2.8.1 optionalDependencies: - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) franc-min@6.2.0: dependencies: @@ -19118,14 +18925,6 @@ snapshots: glob-to-regexp@0.4.1: {} - glob@10.3.10: - dependencies: - foreground-child: 3.3.1 - jackspeak: 2.3.6 - minimatch: 9.0.5 - minipass: 7.1.2 - path-scurry: 1.11.1 - glob@10.4.5: dependencies: foreground-child: 3.3.1 @@ -19336,11 +19135,11 @@ snapshots: domutils: 2.8.0 entities: 2.2.0 - htmr@1.0.2(react@18.3.1): + htmr@1.0.2(react@19.2.4): dependencies: html-entities: 2.6.0 htmlparser2: 6.1.0 - react: 18.3.1 + react: 19.2.4 https-browserify@1.0.0: {} @@ -19367,8 +19166,6 @@ snapshots: ignore@5.3.2: {} - ignore@7.0.5: {} - image-size@1.2.1: dependencies: queue: 6.0.2 @@ -19382,8 +19179,8 @@ snapshots: import-in-the-middle@1.14.2: dependencies: - acorn: 8.14.1 - acorn-import-attributes: 1.9.5(acorn@8.14.1) + acorn: 8.16.0 + acorn-import-attributes: 1.9.5(acorn@8.16.0) cjs-module-lexer: 1.4.3 module-details-from-path: 1.0.4 @@ -19630,12 +19427,6 @@ snapshots: has-symbols: 1.1.0 set-function-name: 2.0.2 - jackspeak@2.3.6: - dependencies: - '@isaacs/cliui': 8.0.2 - optionalDependencies: - '@pkgjs/parseargs': 0.11.0 - jackspeak@3.4.3: dependencies: '@isaacs/cliui': 8.0.2 @@ -19846,9 +19637,9 @@ snapshots: dependencies: yallist: 3.1.1 - lucide-react@0.516.0(react@18.3.1): + lucide-react@0.516.0(react@19.2.4): dependencies: - react: 18.3.1 + react: 19.2.4 lz-string@1.5.0: {} @@ -20196,8 +19987,8 @@ snapshots: micromark-extension-mdxjs@3.0.0: dependencies: - acorn: 8.14.1 - acorn-jsx: 5.3.2(acorn@8.14.1) + acorn: 8.16.0 + acorn-jsx: 5.3.2(acorn@8.16.0) micromark-extension-mdx-expression: 3.0.1 micromark-extension-mdx-jsx: 3.0.2 micromark-extension-mdx-md: 2.0.0 @@ -20401,13 +20192,13 @@ snapshots: motion-utils@12.36.0: {} - motion@12.36.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + motion@12.36.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4): dependencies: - framer-motion: 12.36.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + framer-motion: 12.36.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4) tslib: 2.8.1 optionalDependencies: - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) mrmime@2.0.1: {} @@ -20437,20 +20228,20 @@ snapshots: neo-async@2.6.2: {} - next-intl@3.26.5(next@14.2.35(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.1)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1): + next-intl@3.26.5(next@15.5.12(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.1)(babel-plugin-macros@3.1.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4): dependencies: '@formatjs/intl-localematcher': 0.5.10 negotiator: 1.0.0 - next: 14.2.35(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.1)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - use-intl: 3.26.5(react@18.3.1) + next: 15.5.12(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.1)(babel-plugin-macros@3.1.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + react: 19.2.4 + use-intl: 3.26.5(react@19.2.4) - next-mdx-remote@5.0.0(@types/react@18.2.57)(acorn@8.14.1)(react@18.3.1): + next-mdx-remote@5.0.0(@types/react@19.2.14)(acorn@8.16.0)(react@19.2.4): dependencies: '@babel/code-frame': 7.27.1 - '@mdx-js/mdx': 3.1.0(acorn@8.14.1) - '@mdx-js/react': 3.1.0(@types/react@18.2.57)(react@18.3.1) - react: 18.3.1 + '@mdx-js/mdx': 3.1.0(acorn@8.16.0) + '@mdx-js/react': 3.1.0(@types/react@19.2.14)(react@19.2.4) + react: 19.2.4 unist-util-remove: 3.1.1 vfile: 6.0.3 vfile-matter: 5.0.1 @@ -20459,34 +20250,32 @@ snapshots: - acorn - supports-color - next-themes@0.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + next-themes@0.3.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4): dependencies: - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) - next@14.2.35(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.1)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + next@15.5.12(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.1)(babel-plugin-macros@3.1.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4): dependencies: - '@next/env': 14.2.35 - '@swc/helpers': 0.5.5 - busboy: 1.6.0 + '@next/env': 15.5.12 + '@swc/helpers': 0.5.15 caniuse-lite: 1.0.30001763 - graceful-fs: 4.2.11 postcss: 8.4.31 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - styled-jsx: 5.1.1(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react@18.3.1) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + styled-jsx: 5.1.6(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react@19.2.4) optionalDependencies: - '@next/swc-darwin-arm64': 14.2.33 - '@next/swc-darwin-x64': 14.2.33 - '@next/swc-linux-arm64-gnu': 14.2.33 - '@next/swc-linux-arm64-musl': 14.2.33 - '@next/swc-linux-x64-gnu': 14.2.33 - '@next/swc-linux-x64-musl': 14.2.33 - '@next/swc-win32-arm64-msvc': 14.2.33 - '@next/swc-win32-ia32-msvc': 14.2.33 - '@next/swc-win32-x64-msvc': 14.2.33 + '@next/swc-darwin-arm64': 15.5.12 + '@next/swc-darwin-x64': 15.5.12 + '@next/swc-linux-arm64-gnu': 15.5.12 + '@next/swc-linux-arm64-musl': 15.5.12 + '@next/swc-linux-x64-gnu': 15.5.12 + '@next/swc-linux-x64-musl': 15.5.12 + '@next/swc-win32-arm64-msvc': 15.5.12 + '@next/swc-win32-x64-msvc': 15.5.12 '@opentelemetry/api': 1.9.0 '@playwright/test': 1.53.1 + sharp: 0.34.3 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros @@ -21017,9 +20806,9 @@ snapshots: ansi-styles: 5.2.0 react-is: 17.0.2 - prism-react-renderer@1.1.0(react@18.3.1): + prism-react-renderer@1.1.0(react@19.2.4): dependencies: - react: 18.3.1 + react: 19.2.4 prismjs@1.30.0: {} @@ -21134,14 +20923,14 @@ snapshots: schema-utils: 3.3.0 webpack: 5.99.9(esbuild@0.25.12) - react-chartjs-2@5.3.0(chart.js@4.4.9)(react@18.3.1): + react-chartjs-2@5.3.0(chart.js@4.4.9)(react@19.2.4): dependencies: chart.js: 4.4.9 - react: 18.3.1 + react: 19.2.4 - react-confetti@6.4.0(react@18.3.1): + react-confetti@6.4.0(react@19.2.4): dependencies: - react: 18.3.1 + react: 19.2.4 tween-functions: 1.2.0 react-docgen-typescript@2.2.2(typescript@5.8.3): @@ -21163,25 +20952,24 @@ snapshots: transitivePeerDependencies: - supports-color - react-dom@18.3.1(react@18.3.1): + react-dom@19.2.4(react@19.2.4): dependencies: - loose-envify: 1.4.0 - react: 18.3.1 - scheduler: 0.23.2 + react: 19.2.4 + scheduler: 0.27.0 - react-emoji-render@2.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + react-emoji-render@2.0.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4): dependencies: classnames: 2.5.1 emoji-regex: 8.0.0 lodash.flatten: 4.4.0 prop-types: 15.8.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) string-replace-to-array: 1.0.3 - react-hook-form@7.57.0(react@18.3.1): + react-hook-form@7.57.0(react@19.2.4): dependencies: - react: 18.3.1 + react: 19.2.4 react-is@16.13.1: {} @@ -21189,88 +20977,86 @@ snapshots: react-is@18.3.1: {} - react-lite-youtube-embed@2.5.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + react-lite-youtube-embed@2.5.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4): dependencies: - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) react-refresh@0.14.2: {} - react-remove-scroll-bar@2.3.8(@types/react@18.2.57)(react@18.3.1): + react-remove-scroll-bar@2.3.8(@types/react@19.2.14)(react@19.2.4): dependencies: - react: 18.3.1 - react-style-singleton: 2.2.3(@types/react@18.2.57)(react@18.3.1) + react: 19.2.4 + react-style-singleton: 2.2.3(@types/react@19.2.14)(react@19.2.4) tslib: 2.8.1 optionalDependencies: - '@types/react': 18.2.57 + '@types/react': 19.2.14 - react-remove-scroll@2.6.2(@types/react@18.2.57)(react@18.3.1): + react-remove-scroll@2.6.2(@types/react@19.2.14)(react@19.2.4): dependencies: - react: 18.3.1 - react-remove-scroll-bar: 2.3.8(@types/react@18.2.57)(react@18.3.1) - react-style-singleton: 2.2.3(@types/react@18.2.57)(react@18.3.1) + react: 19.2.4 + react-remove-scroll-bar: 2.3.8(@types/react@19.2.14)(react@19.2.4) + react-style-singleton: 2.2.3(@types/react@19.2.14)(react@19.2.4) tslib: 2.8.1 - use-callback-ref: 1.3.3(@types/react@18.2.57)(react@18.3.1) - use-sidecar: 1.1.3(@types/react@18.2.57)(react@18.3.1) + use-callback-ref: 1.3.3(@types/react@19.2.14)(react@19.2.4) + use-sidecar: 1.1.3(@types/react@19.2.14)(react@19.2.4) optionalDependencies: - '@types/react': 18.2.57 + '@types/react': 19.2.14 - react-remove-scroll@2.7.1(@types/react@18.2.57)(react@18.3.1): + react-remove-scroll@2.7.1(@types/react@19.2.14)(react@19.2.4): dependencies: - react: 18.3.1 - react-remove-scroll-bar: 2.3.8(@types/react@18.2.57)(react@18.3.1) - react-style-singleton: 2.2.3(@types/react@18.2.57)(react@18.3.1) + react: 19.2.4 + react-remove-scroll-bar: 2.3.8(@types/react@19.2.14)(react@19.2.4) + react-style-singleton: 2.2.3(@types/react@19.2.14)(react@19.2.4) tslib: 2.8.1 - use-callback-ref: 1.3.3(@types/react@18.2.57)(react@18.3.1) - use-sidecar: 1.1.3(@types/react@18.2.57)(react@18.3.1) + use-callback-ref: 1.3.3(@types/react@19.2.14)(react@19.2.4) + use-sidecar: 1.1.3(@types/react@19.2.14)(react@19.2.4) optionalDependencies: - '@types/react': 18.2.57 + '@types/react': 19.2.14 - react-select@5.8.0(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + react-select@5.8.0(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4): dependencies: '@babel/runtime': 7.27.4 '@emotion/cache': 11.14.0 - '@emotion/react': 11.14.0(@types/react@18.2.57)(react@18.3.1) + '@emotion/react': 11.14.0(@types/react@19.2.14)(react@19.2.4) '@floating-ui/dom': 1.7.1 - '@types/react-transition-group': 4.4.12(@types/react@18.2.57) + '@types/react-transition-group': 4.4.12(@types/react@19.2.14) memoize-one: 6.0.0 prop-types: 15.8.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-transition-group: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - use-isomorphic-layout-effect: 1.2.1(@types/react@18.2.57)(react@18.3.1) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + react-transition-group: 4.4.5(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + use-isomorphic-layout-effect: 1.2.1(@types/react@19.2.14)(react@19.2.4) transitivePeerDependencies: - '@types/react' - supports-color - react-smooth@4.0.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + react-smooth@4.0.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4): dependencies: fast-equals: 5.2.2 prop-types: 15.8.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-transition-group: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) + react-transition-group: 4.4.5(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - react-style-singleton@2.2.3(@types/react@18.2.57)(react@18.3.1): + react-style-singleton@2.2.3(@types/react@19.2.14)(react@19.2.4): dependencies: get-nonce: 1.0.1 - react: 18.3.1 + react: 19.2.4 tslib: 2.8.1 optionalDependencies: - '@types/react': 18.2.57 + '@types/react': 19.2.14 - react-transition-group@4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + react-transition-group@4.4.5(react-dom@19.2.4(react@19.2.4))(react@19.2.4): dependencies: '@babel/runtime': 7.27.4 dom-helpers: 5.2.1 loose-envify: 1.4.0 prop-types: 15.8.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) - react@18.3.1: - dependencies: - loose-envify: 1.4.0 + react@19.2.4: {} read-cache@1.0.0: dependencies: @@ -21322,15 +21108,15 @@ snapshots: dependencies: decimal.js-light: 2.5.1 - recharts@2.15.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + recharts@2.15.3(react-dom@19.2.4(react@19.2.4))(react@19.2.4): dependencies: clsx: 2.1.1 eventemitter3: 4.0.7 lodash: 4.17.23 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) react-is: 18.3.1 - react-smooth: 4.0.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react-smooth: 4.0.4(react-dom@19.2.4(react@19.2.4))(react@19.2.4) recharts-scale: 0.4.5 tiny-invariant: 1.3.3 victory-vendor: 36.9.2 @@ -21341,9 +21127,9 @@ snapshots: estree-util-build-jsx: 3.0.1 vfile: 6.0.3 - recma-jsx@1.0.0(acorn@8.14.1): + recma-jsx@1.0.0(acorn@8.16.0): dependencies: - acorn-jsx: 5.3.2(acorn@8.14.1) + acorn-jsx: 5.3.2(acorn@8.16.0) estree-util-to-js: 2.0.0 recma-parse: 1.0.0 recma-stringify: 1.0.0 @@ -21624,9 +21410,7 @@ snapshots: sax@1.4.1: {} - scheduler@0.23.2: - dependencies: - loose-envify: 1.4.0 + scheduler@0.27.0: {} schema-utils@3.3.0: dependencies: @@ -21911,9 +21695,9 @@ snapshots: storybook-i18n@3.1.1: {} - storybook-next-intl@1.2.6(next-intl@3.26.5(next@14.2.35(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.1)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)): + storybook-next-intl@1.2.6(next-intl@3.26.5(next@15.5.12(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.1)(babel-plugin-macros@3.1.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4)): dependencies: - next-intl: 3.26.5(next@14.2.35(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.1)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) + next-intl: 3.26.5(next@15.5.12(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.1)(babel-plugin-macros@3.1.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4))(react@19.2.4) storybook-i18n: 3.1.1 storybook@8.5.8(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10): @@ -21950,8 +21734,6 @@ snapshots: stream-shift@1.0.3: {} - streamsearch@1.1.0: {} - strict-uri-encode@2.0.0: {} string-argv@0.3.2: {} @@ -22085,18 +21867,18 @@ snapshots: dependencies: inline-style-parser: 0.2.4 - styled-jsx@5.1.1(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react@18.3.1): + styled-jsx@5.1.6(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react@19.2.4): dependencies: client-only: 0.0.1 - react: 18.3.1 + react: 19.2.4 optionalDependencies: '@babel/core': 7.27.4 babel-plugin-macros: 3.1.0 - styled-jsx@5.1.7(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react@18.3.1): + styled-jsx@5.1.7(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react@19.2.4): dependencies: client-only: 0.0.1 - react: 18.3.1 + react: 19.2.4 optionalDependencies: '@babel/core': 7.27.4 babel-plugin-macros: 3.1.0 @@ -22283,10 +22065,6 @@ snapshots: dependencies: typescript: 5.8.3 - ts-api-utils@2.1.0(typescript@5.8.3): - dependencies: - typescript: 5.8.3 - ts-dedent@2.2.0: {} ts-interface-checker@0.1.13: {} @@ -22511,7 +22289,7 @@ snapshots: unplugin@1.16.1: dependencies: - acorn: 8.14.1 + acorn: 8.16.0 webpack-virtual-modules: 0.6.2 unrs-resolver@1.7.9: @@ -22567,49 +22345,49 @@ snapshots: urlpattern-polyfill@10.1.0: {} - use-callback-ref@1.3.3(@types/react@18.2.57)(react@18.3.1): + use-callback-ref@1.3.3(@types/react@19.2.14)(react@19.2.4): dependencies: - react: 18.3.1 + react: 19.2.4 tslib: 2.8.1 optionalDependencies: - '@types/react': 18.2.57 + '@types/react': 19.2.14 - use-intl@3.26.5(react@18.3.1): + use-intl@3.26.5(react@19.2.4): dependencies: '@formatjs/fast-memoize': 2.2.7 intl-messageformat: 10.7.16 - react: 18.3.1 + react: 19.2.4 - use-isomorphic-layout-effect@1.2.1(@types/react@18.2.57)(react@18.3.1): + use-isomorphic-layout-effect@1.2.1(@types/react@19.2.14)(react@19.2.4): dependencies: - react: 18.3.1 + react: 19.2.4 optionalDependencies: - '@types/react': 18.2.57 + '@types/react': 19.2.14 - use-sidecar@1.1.3(@types/react@18.2.57)(react@18.3.1): + use-sidecar@1.1.3(@types/react@19.2.14)(react@19.2.4): dependencies: detect-node-es: 1.1.0 - react: 18.3.1 + react: 19.2.4 tslib: 2.8.1 optionalDependencies: - '@types/react': 18.2.57 + '@types/react': 19.2.14 - use-sync-external-store@1.2.0(react@18.3.1): + use-sync-external-store@1.2.0(react@19.2.4): dependencies: - react: 18.3.1 + react: 19.2.4 - use-sync-external-store@1.4.0(react@18.3.1): + use-sync-external-store@1.4.0(react@19.2.4): dependencies: - react: 18.3.1 + react: 19.2.4 - use-sync-external-store@1.5.0(react@18.3.1): + use-sync-external-store@1.5.0(react@19.2.4): dependencies: - react: 18.3.1 + react: 19.2.4 - usehooks-ts@3.1.1(react@18.3.1): + usehooks-ts@3.1.1(react@19.2.4): dependencies: lodash.debounce: 4.0.8 - react: 18.3.1 + react: 19.2.4 utf-8-validate@5.0.10: dependencies: @@ -22635,22 +22413,22 @@ snapshots: v8-compile-cache-lib@3.0.1: {} - valtio@1.13.2(@types/react@18.2.57)(react@18.3.1): + valtio@1.13.2(@types/react@19.2.14)(react@19.2.4): dependencies: - derive-valtio: 0.1.0(valtio@1.13.2(@types/react@18.2.57)(react@18.3.1)) + derive-valtio: 0.1.0(valtio@1.13.2(@types/react@19.2.14)(react@19.2.4)) proxy-compare: 2.6.0 - use-sync-external-store: 1.2.0(react@18.3.1) + use-sync-external-store: 1.2.0(react@19.2.4) optionalDependencies: - '@types/react': 18.2.57 - react: 18.3.1 + '@types/react': 19.2.14 + react: 19.2.4 vary@1.1.2: {} - vaul@1.1.2(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + vaul@1.1.2(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4): dependencies: - '@radix-ui/react-dialog': 1.1.15(@types/react-dom@18.2.19)(@types/react@18.2.57)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + react: 19.2.4 + react-dom: 19.2.4(react@19.2.4) transitivePeerDependencies: - '@types/react' - '@types/react-dom' @@ -22752,13 +22530,13 @@ snapshots: vm-browserify@1.1.2: {} - wagmi@2.15.4(@netlify/blobs@10.4.1)(@tanstack/query-core@5.80.2)(@tanstack/react-query@5.80.2(react@18.3.1))(@types/react@18.2.57)(bufferutil@4.0.9)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(viem@2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76))(zod@3.25.76): + wagmi@2.15.4(@netlify/blobs@10.4.1)(@tanstack/query-core@5.80.2)(@tanstack/react-query@5.80.2(react@19.2.4))(@types/react@19.2.14)(bufferutil@4.0.9)(react@19.2.4)(typescript@5.8.3)(utf-8-validate@5.0.10)(viem@2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76))(zod@3.25.76): dependencies: - '@tanstack/react-query': 5.80.2(react@18.3.1) - '@wagmi/connectors': 5.8.3(@netlify/blobs@10.4.1)(@types/react@18.2.57)(@wagmi/core@2.17.2(@tanstack/query-core@5.80.2)(@types/react@18.2.57)(react@18.3.1)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76)))(bufferutil@4.0.9)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(viem@2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76))(zod@3.25.76) - '@wagmi/core': 2.17.2(@tanstack/query-core@5.80.2)(@types/react@18.2.57)(react@18.3.1)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76)) - react: 18.3.1 - use-sync-external-store: 1.4.0(react@18.3.1) + '@tanstack/react-query': 5.80.2(react@19.2.4) + '@wagmi/connectors': 5.8.3(@netlify/blobs@10.4.1)(@types/react@19.2.14)(@wagmi/core@2.17.2(@tanstack/query-core@5.80.2)(@types/react@19.2.14)(react@19.2.4)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@19.2.4))(viem@2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76)))(bufferutil@4.0.9)(react@19.2.4)(typescript@5.8.3)(utf-8-validate@5.0.10)(viem@2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76))(zod@3.25.76) + '@wagmi/core': 2.17.2(@tanstack/query-core@5.80.2)(@types/react@19.2.14)(react@19.2.4)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@19.2.4))(viem@2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76)) + react: 19.2.4 + use-sync-external-store: 1.4.0(react@19.2.4) viem: 2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.76) optionalDependencies: typescript: 5.8.3 @@ -22802,7 +22580,7 @@ snapshots: webpack-bundle-analyzer@4.10.1(bufferutil@4.0.9)(utf-8-validate@5.0.10): dependencies: '@discoveryjs/json-ext': 0.5.7 - acorn: 8.14.1 + acorn: 8.16.0 acorn-walk: 8.3.4 commander: 7.2.0 debounce: 1.2.1 @@ -23053,10 +22831,10 @@ snapshots: zod@3.25.76: {} - zustand@5.0.0(@types/react@18.2.57)(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)): + zustand@5.0.0(@types/react@19.2.14)(react@19.2.4)(use-sync-external-store@1.4.0(react@19.2.4)): optionalDependencies: - '@types/react': 18.2.57 - react: 18.3.1 - use-sync-external-store: 1.4.0(react@18.3.1) + '@types/react': 19.2.14 + react: 19.2.4 + use-sync-external-store: 1.4.0(react@19.2.4) zwitch@2.0.4: {} diff --git a/src/components/CodeModal.tsx b/src/components/CodeModal.tsx index 52dee9cd5da..18309529486 100644 --- a/src/components/CodeModal.tsx +++ b/src/components/CodeModal.tsx @@ -16,15 +16,15 @@ import { useTranslation } from "@/hooks/useTranslation" type CodeModalProps = { title: string - children?: ReactElement + children?: ReactElement isOpen: boolean setIsOpen: (isOpen: boolean) => void } const CodeModal = ({ children, isOpen, setIsOpen, title }: CodeModalProps) => { const { t } = useTranslation() - const codeSnippet = (Children.toArray(children)[0] as ReactElement).props - .children + const codeSnippet = (Children.toArray(children)[0] as ReactElement) + .props.children const { onCopy, hasCopied } = useClipboard() diff --git a/src/components/Codeblock.tsx b/src/components/Codeblock.tsx index 5a07c70e7c9..461c99adf91 100644 --- a/src/components/Codeblock.tsx +++ b/src/components/Codeblock.tsx @@ -221,8 +221,8 @@ const Codeblock = ({ const [isCollapsed, setIsCollapsed] = useState(allowCollapse) let langClass: string - if (React.isValidElement(children)) { - langClass = children?.props?.className + if (React.isValidElement<{ className?: string }>(children)) { + langClass = children?.props?.className || "" } else { langClass = codeLanguage || "" } diff --git a/src/components/DataTable/index.tsx b/src/components/DataTable/index.tsx index 1b6d973d7a2..6966e1a92da 100644 --- a/src/components/DataTable/index.tsx +++ b/src/components/DataTable/index.tsx @@ -1,4 +1,4 @@ -import { FC, Fragment, useEffect, useRef, useState } from "react" +import React, { Fragment, useEffect, useRef, useState } from "react" import { ColumnDef, flexRender, @@ -21,8 +21,8 @@ import { trackCustomEvent } from "@/lib/utils/matomo" type DataTableProps = TableProps & { columns: ColumnDef[] data: TData[] - subComponent?: FC - noResultsComponent?: FC + subComponent?: (props: TData, idx: number) => React.ReactNode + noResultsComponent?: (props: Record) => React.ReactNode allDataLength: number setMobileFiltersOpen?: (open: boolean) => void activeFiltersCount: number diff --git a/src/components/Hero/ContentHero/index.tsx b/src/components/Hero/ContentHero/index.tsx index 479753904ba..a0b13929a4e 100644 --- a/src/components/Hero/ContentHero/index.tsx +++ b/src/components/Hero/ContentHero/index.tsx @@ -68,7 +68,7 @@ const ContentHero = (props: ContentHeroProps) => { if (!button) return // If it's a React element, render it directly if (typeof button === "object" && "type" in button) { - return
{button as ReactElement}
+ return
{button as ReactElement}
} // Otherwise, render as button props return diff --git a/src/components/Hero/HubHero/index.tsx b/src/components/Hero/HubHero/index.tsx index dba117735d7..e1c6309fc89 100644 --- a/src/components/Hero/HubHero/index.tsx +++ b/src/components/Hero/HubHero/index.tsx @@ -79,7 +79,7 @@ const HubHero = ({ // If it's a React element, render it directly if (typeof button === "object" && "type" in button) { - return
{button as ReactElement}
+ return
{button as ReactElement}
} // Otherwise, render as button props diff --git a/src/components/Nav/types.ts b/src/components/Nav/types.ts index 94fc1014ca6..bbda8e22df9 100644 --- a/src/components/Nav/types.ts +++ b/src/components/Nav/types.ts @@ -31,5 +31,5 @@ export type Level = 1 | 2 | 3 | 4 export type LvlRefs = Record< "lvl1" | "lvl2" | "lvl3", - RefObject + RefObject > diff --git a/src/components/ProductTable/FilterInputs/SwitchFilterInput.tsx b/src/components/ProductTable/FilterInputs/SwitchFilterInput.tsx index 5782ee5894c..009eddecc55 100644 --- a/src/components/ProductTable/FilterInputs/SwitchFilterInput.tsx +++ b/src/components/ProductTable/FilterInputs/SwitchFilterInput.tsx @@ -7,7 +7,7 @@ import Switch from "@/components/ui/switch" interface SwitchFilterInputProps { Icon?: React.FC> label: string - description?: string | ReactElement + description?: string | ReactElement filterIndex: number itemIndex: number inputState: FilterInputState diff --git a/src/components/Search/index.tsx b/src/components/Search/index.tsx index 503169a40ee..f3f593eaa14 100644 --- a/src/components/Search/index.tsx +++ b/src/components/Search/index.tsx @@ -21,7 +21,7 @@ const SearchModal = dynamic(() => import("./SearchModal")) interface SearchProps { asChild?: boolean - children?: React.ReactElement + children?: React.ReactElement } const Search = ({ asChild = false, children }: SearchProps) => { diff --git a/src/components/Simulator/interfaces.ts b/src/components/Simulator/interfaces.ts index 05fa1cd9cc5..58ff22cf7d5 100644 --- a/src/components/Simulator/interfaces.ts +++ b/src/components/Simulator/interfaces.ts @@ -1,5 +1,5 @@ import { LucideIcon } from "lucide-react" -import type { ReactElement } from "react" +import type { JSX, ReactElement } from "react" import { PhoneScreenProps } from "@/lib/types" @@ -13,7 +13,7 @@ export interface SimulatorPathSummary { export interface SimulatorExplanation { header: string - description: ReactElement | null + description: ReactElement | null } export interface SimulatorNav { diff --git a/src/components/Simulator/screens/CreateAccount/WordList.tsx b/src/components/Simulator/screens/CreateAccount/WordList.tsx index 2f2304bd410..de177954a22 100644 --- a/src/components/Simulator/screens/CreateAccount/WordList.tsx +++ b/src/components/Simulator/screens/CreateAccount/WordList.tsx @@ -33,7 +33,10 @@ export const WordList = ({ words, wordsSelected }: WordListProps) => { const splitIndex = Math.floor(words.length / 2) - const wordMapping = (word: string, index: number): React.ReactElement => { + const wordMapping = ( + word: string, + index: number + ): React.ReactElement => { const initialWordDisplay = typeof wordsSelected === "undefined" const variant: WordStyleVariantProps["variant"] = initialWordDisplay ? "initial" diff --git a/src/components/Staking/StakingComparison.tsx b/src/components/Staking/StakingComparison.tsx index 45e5addb63a..114c86ad742 100644 --- a/src/components/Staking/StakingComparison.tsx +++ b/src/components/Staking/StakingComparison.tsx @@ -1,4 +1,5 @@ "use client" +import type { JSX } from "react" import type { MatomoEventOptions, diff --git a/src/components/Staking/WithdrawalCredentials.tsx b/src/components/Staking/WithdrawalCredentials.tsx index 094eee4525a..d3c3070da89 100644 --- a/src/components/Staking/WithdrawalCredentials.tsx +++ b/src/components/Staking/WithdrawalCredentials.tsx @@ -1,6 +1,6 @@ "use client" -import { ChangeEvent, FC, useMemo, useState } from "react" +import { ChangeEvent, FC, type JSX, useMemo, useState } from "react" import CopyToClipboard from "@/components/CopyToClipboard" import Emoji from "@/components/Emoji" diff --git a/src/components/Stat/index.tsx b/src/components/Stat/index.tsx index bd06cd8bff8..1730b622cee 100644 --- a/src/components/Stat/index.tsx +++ b/src/components/Stat/index.tsx @@ -1,4 +1,4 @@ -import { useEffect, useState } from "react" +import { type JSX, useEffect, useState } from "react" import { AlertTriangle, Info, type LucideIcon } from "lucide-react" import { Flex } from "@/components/ui/flex" diff --git a/src/components/Translation.tsx b/src/components/Translation.tsx index dd90cd5d20b..49715a2b66e 100644 --- a/src/components/Translation.tsx +++ b/src/components/Translation.tsx @@ -26,7 +26,8 @@ const Translation = ({ id, ns, values, transform = {} }: TranslationProps) => { // Use `htmr` to parse html content in the translation text return htmr(translatedText, { - transform: { ...defaultTransform, ...transform }, + // eslint-disable-next-line @typescript-eslint/no-explicit-any + transform: { ...defaultTransform, ...transform } as any, }) } diff --git a/src/components/ui/avatar.tsx b/src/components/ui/avatar.tsx index fa2fb3494ab..8384996a666 100644 --- a/src/components/ui/avatar.tsx +++ b/src/components/ui/avatar.tsx @@ -221,7 +221,7 @@ const AvatarGroup = React.forwardRef( const validChildren = React.Children.toArray(children).filter((child) => React.isValidElement(child) - ) as React.ReactElement[] + ) as React.ReactElement[] /** * The visible avatars from max diff --git a/src/components/ui/flex.tsx b/src/components/ui/flex.tsx index 40d26451908..1be2c2201ce 100644 --- a/src/components/ui/flex.tsx +++ b/src/components/ui/flex.tsx @@ -41,7 +41,7 @@ const Center = forwardRef( Center.displayName = "Center" -type StackProps = FlexProps & { separator?: ReactElement } +type StackProps = FlexProps & { separator?: ReactElement } const Stack = forwardRef( ({ className, separator, children, asChild, ...props }, ref) => { diff --git a/src/hooks/useEventListener.ts b/src/hooks/useEventListener.ts index 459912830ab..1324d7b59a8 100644 --- a/src/hooks/useEventListener.ts +++ b/src/hooks/useEventListener.ts @@ -6,7 +6,7 @@ import { useIsomorphicLayoutEffect } from "./useIsomorphicLayoutEffect" function useEventListener( eventName: K, handler: (event: MediaQueryListEventMap[K]) => void, - element: RefObject, + element: RefObject, options?: boolean | AddEventListenerOptions ): void @@ -25,7 +25,7 @@ function useEventListener< >( eventName: K, handler: (event: HTMLElementEventMap[K]) => void, - element: RefObject, + element: RefObject, options?: boolean | AddEventListenerOptions ): void @@ -33,7 +33,7 @@ function useEventListener< function useEventListener( eventName: K, handler: (event: DocumentEventMap[K]) => void, - element: RefObject, + element: RefObject, options?: boolean | AddEventListenerOptions ): void @@ -56,7 +56,7 @@ function useEventListener< | MediaQueryListEventMap[KM] | Event ) => void, - element?: RefObject, + element?: RefObject, options?: boolean | AddEventListenerOptions ) { // Create a ref that stores handler diff --git a/src/hooks/useOnClickOutside.ts b/src/hooks/useOnClickOutside.ts index d885228ca34..9386e6ff19a 100644 --- a/src/hooks/useOnClickOutside.ts +++ b/src/hooks/useOnClickOutside.ts @@ -3,7 +3,7 @@ import { RefObject, useEffect } from "react" // Use with `ref` on a component to handle clicks outside of ref element // e.g., to hide the component (see Search or NavDropdown) export const useOnClickOutside = ( - ref: RefObject, + ref: RefObject, handler: () => void, events: Array = ["mousedown", "touchstart"] ) => { diff --git a/src/hooks/useRefWidth.ts b/src/hooks/useRefWidth.ts index 4ec7f469340..9d84cac80b1 100644 --- a/src/hooks/useRefWidth.ts +++ b/src/hooks/useRefWidth.ts @@ -5,7 +5,7 @@ import { type RefObject, useCallback, useEffect, useState } from "react" import { useEventListener } from "./useEventListener" export const useRefWidth = ( - ref: RefObject, + ref: RefObject, padding: number = 0 ): number => { const [width, setWidth] = useState(0) diff --git a/src/lib/ab-testing/server.ts b/src/lib/ab-testing/server.ts index 51577136a63..4bf73098392 100644 --- a/src/lib/ab-testing/server.ts +++ b/src/lib/ab-testing/server.ts @@ -25,7 +25,9 @@ export const getABTestAssignment = async ( if (!testConfig || !testConfig.enabled) return null // Create deterministic assignment using enhanced fingerprint - const headers = await import("next/headers").then((m) => m.headers()) + const headers = + await /* @next-codemod-error The APIs under 'next/headers' are async now, need to be manually awaited. */ + import("next/headers").then((m) => m.headers()) // Get IP and user agent (primary identifier) // x-forwarded-for contains: "client_ip, proxy1, proxy2, ..." - extract only client IP diff --git a/src/lib/ab-testing/types.ts b/src/lib/ab-testing/types.ts index af499dda16b..da32ef9a2d0 100644 --- a/src/lib/ab-testing/types.ts +++ b/src/lib/ab-testing/types.ts @@ -1,4 +1,4 @@ -import type { ReactNode } from "react" +import type { JSX, ReactNode } from "react" export type MatomoExperiment = { idexperiment: string diff --git a/src/lib/types.ts b/src/lib/types.ts index bc35853c6f4..19555872193 100644 --- a/src/lib/types.ts +++ b/src/lib/types.ts @@ -493,7 +493,10 @@ export type CommonHeroProps< * The hero can render no buttons or up to and no more than two. * Can accept either button prop objects or React elements directly. */ - buttons?: [HeroButtonProps | ReactElement, (HeroButtonProps | ReactElement)?] + buttons?: [ + HeroButtonProps | ReactElement, + (HeroButtonProps | ReactElement)?, + ] /** * The primary title of the page */ @@ -865,7 +868,7 @@ type FilterInput = ( itemIndex: number, state: FilterInputState, updateFilterState: UpdateFilterState -) => ReactElement +) => ReactElement type FilterOptionItem = { filterKey: string @@ -882,7 +885,7 @@ type FilterOptionInput = ( optionIndex: number, state: FilterInputState, updateFilterState: UpdateFilterState -) => ReactElement +) => ReactElement type UpdateFilterState = ( filterIndex: number, diff --git a/src/lib/utils/gh.ts b/src/lib/utils/gh.ts index 50a90d5d5b5..3784afccbe6 100644 --- a/src/lib/utils/gh.ts +++ b/src/lib/utils/gh.ts @@ -124,6 +124,7 @@ async function fetchWithRateLimit(filepath: string): Promise { const response = await fetch(url.href, { headers: { Authorization: `token ${gitHubToken}` }, + next: { revalidate: 3600 }, }) if ( From 0c4db82e0b4aecf9786eade1f95712914ebb4deb Mon Sep 17 00:00:00 2001 From: Pablo Pettinari Date: Mon, 16 Mar 2026 12:11:57 +0100 Subject: [PATCH 03/14] fix next 15 build: add use client to ssr:false dynamic imports, split i18n routing for edge, htmr type workaround --- .../_components/AdoptionSwiper/lazy.tsx | 2 + .../_components/InnovationSwiper/lazy.tsx | 2 + .../_components/TorchHistorySwiper/lazy.tsx | 2 + .../10years/_components/UserStories/lazy.tsx | 2 + .../_components/HomepageLazyImports.tsx | 40 ++++++++++++++++++ .../_components/Collectibles/lazy.tsx | 2 + .../CollectiblesConnectButton/lazy.tsx | 2 + .../_components/CollectiblesContent/lazy.tsx | 2 + .../_components/CollectiblesProgress/lazy.tsx | 2 + .../_components/BuilderSwiper/lazy.tsx | 2 + .../_components/VideoCourseSwiper/lazy.tsx | 2 + .../tutorials/_components/tutorials-lazy.tsx | 38 +++++++++++++++++ app/[locale]/developers/tutorials/page.tsx | 34 +-------------- .../_components/CentralizedExchangesLazy.tsx | 27 ++++++++++++ app/[locale]/get-eth/page.tsx | 23 +--------- app/[locale]/page.tsx | 42 +++---------------- .../resources/_components/LazyImports.tsx | 26 ++++++++++++ app/[locale]/resources/utils.tsx | 30 ++----------- .../_components/WhatTabs/lazy.tsx | 2 + .../_components/WhySwiper/lazy.tsx | 2 + middleware.ts | 2 +- next.config.js | 6 +++ src/components/AdoptionChart/server.tsx | 2 + src/components/CodeModal.tsx | 5 ++- src/components/Emoji.tsx | 2 + .../EnergyConsumptionChart/server.tsx | 2 + src/components/FeedbackWidget/lazy.tsx | 7 ++++ .../FindWalletProductTable/lazy.tsx | 2 + src/components/Image/ParallaxImage/lazy.tsx | 2 + src/components/ListenToPlayer/server.tsx | 2 + src/components/Morpher/lazy.tsx | 2 + src/components/Translation.tsx | 3 +- src/components/ui/avatar.tsx | 11 +++-- src/components/ui/flex.tsx | 15 ++++--- src/i18n/routing.config.ts | 11 +++++ src/i18n/routing.ts | 12 ++---- src/layouts/BaseLayout.tsx | 7 +--- src/lib/ab-testing/server.ts | 4 +- src/types/htmr.d.ts | 38 +++++++++++++++++ 39 files changed, 268 insertions(+), 151 deletions(-) create mode 100644 app/[locale]/_components/HomepageLazyImports.tsx create mode 100644 app/[locale]/developers/tutorials/_components/tutorials-lazy.tsx create mode 100644 app/[locale]/get-eth/_components/CentralizedExchangesLazy.tsx create mode 100644 app/[locale]/resources/_components/LazyImports.tsx create mode 100644 src/components/FeedbackWidget/lazy.tsx create mode 100644 src/i18n/routing.config.ts create mode 100644 src/types/htmr.d.ts diff --git a/app/[locale]/10years/_components/AdoptionSwiper/lazy.tsx b/app/[locale]/10years/_components/AdoptionSwiper/lazy.tsx index c960f08e647..e6750d95cf8 100644 --- a/app/[locale]/10years/_components/AdoptionSwiper/lazy.tsx +++ b/app/[locale]/10years/_components/AdoptionSwiper/lazy.tsx @@ -1,3 +1,5 @@ +"use client" + import dynamic from "next/dynamic" import Loading from "./loading" diff --git a/app/[locale]/10years/_components/InnovationSwiper/lazy.tsx b/app/[locale]/10years/_components/InnovationSwiper/lazy.tsx index c960f08e647..e6750d95cf8 100644 --- a/app/[locale]/10years/_components/InnovationSwiper/lazy.tsx +++ b/app/[locale]/10years/_components/InnovationSwiper/lazy.tsx @@ -1,3 +1,5 @@ +"use client" + import dynamic from "next/dynamic" import Loading from "./loading" diff --git a/app/[locale]/10years/_components/TorchHistorySwiper/lazy.tsx b/app/[locale]/10years/_components/TorchHistorySwiper/lazy.tsx index c960f08e647..e6750d95cf8 100644 --- a/app/[locale]/10years/_components/TorchHistorySwiper/lazy.tsx +++ b/app/[locale]/10years/_components/TorchHistorySwiper/lazy.tsx @@ -1,3 +1,5 @@ +"use client" + import dynamic from "next/dynamic" import Loading from "./loading" diff --git a/app/[locale]/10years/_components/UserStories/lazy.tsx b/app/[locale]/10years/_components/UserStories/lazy.tsx index c960f08e647..e6750d95cf8 100644 --- a/app/[locale]/10years/_components/UserStories/lazy.tsx +++ b/app/[locale]/10years/_components/UserStories/lazy.tsx @@ -1,3 +1,5 @@ +"use client" + import dynamic from "next/dynamic" import Loading from "./loading" diff --git a/app/[locale]/_components/HomepageLazyImports.tsx b/app/[locale]/_components/HomepageLazyImports.tsx new file mode 100644 index 00000000000..f1fbfe9c77a --- /dev/null +++ b/app/[locale]/_components/HomepageLazyImports.tsx @@ -0,0 +1,40 @@ +"use client" + +import nextDynamic from "next/dynamic" + +import ValuesMarqueeFallback from "@/components/Homepage/ValuesMarquee/Fallback" +import { Skeleton, SkeletonCardGrid } from "@/components/ui/skeleton" + +export const BentoCardSwiper = nextDynamic( + () => import("@/components/Homepage/BentoCardSwiper"), + { + ssr: false, + loading: () => ( +
+ + +
+ ), + } +) + +export const RecentPostsSwiper = nextDynamic( + () => import("@/components/Homepage/RecentPostsSwiper"), + { + ssr: false, + loading: () => ( +
+ + +
+ ), + } +) + +export const ValuesMarquee = nextDynamic( + () => import("@/components/Homepage/ValuesMarquee"), + { + ssr: false, + loading: () => , + } +) diff --git a/app/[locale]/collectibles/_components/Collectibles/lazy.tsx b/app/[locale]/collectibles/_components/Collectibles/lazy.tsx index c960f08e647..e6750d95cf8 100644 --- a/app/[locale]/collectibles/_components/Collectibles/lazy.tsx +++ b/app/[locale]/collectibles/_components/Collectibles/lazy.tsx @@ -1,3 +1,5 @@ +"use client" + import dynamic from "next/dynamic" import Loading from "./loading" diff --git a/app/[locale]/collectibles/_components/CollectiblesConnectButton/lazy.tsx b/app/[locale]/collectibles/_components/CollectiblesConnectButton/lazy.tsx index c960f08e647..e6750d95cf8 100644 --- a/app/[locale]/collectibles/_components/CollectiblesConnectButton/lazy.tsx +++ b/app/[locale]/collectibles/_components/CollectiblesConnectButton/lazy.tsx @@ -1,3 +1,5 @@ +"use client" + import dynamic from "next/dynamic" import Loading from "./loading" diff --git a/app/[locale]/collectibles/_components/CollectiblesContent/lazy.tsx b/app/[locale]/collectibles/_components/CollectiblesContent/lazy.tsx index 83168693259..35fddd9be48 100644 --- a/app/[locale]/collectibles/_components/CollectiblesContent/lazy.tsx +++ b/app/[locale]/collectibles/_components/CollectiblesContent/lazy.tsx @@ -1,3 +1,5 @@ +"use client" + import dynamic from "next/dynamic" import Loading from "../Collectibles/loading" diff --git a/app/[locale]/collectibles/_components/CollectiblesProgress/lazy.tsx b/app/[locale]/collectibles/_components/CollectiblesProgress/lazy.tsx index c960f08e647..e6750d95cf8 100644 --- a/app/[locale]/collectibles/_components/CollectiblesProgress/lazy.tsx +++ b/app/[locale]/collectibles/_components/CollectiblesProgress/lazy.tsx @@ -1,3 +1,5 @@ +"use client" + import dynamic from "next/dynamic" import Loading from "./loading" diff --git a/app/[locale]/developers/_components/BuilderSwiper/lazy.tsx b/app/[locale]/developers/_components/BuilderSwiper/lazy.tsx index c960f08e647..e6750d95cf8 100644 --- a/app/[locale]/developers/_components/BuilderSwiper/lazy.tsx +++ b/app/[locale]/developers/_components/BuilderSwiper/lazy.tsx @@ -1,3 +1,5 @@ +"use client" + import dynamic from "next/dynamic" import Loading from "./loading" diff --git a/app/[locale]/developers/_components/VideoCourseSwiper/lazy.tsx b/app/[locale]/developers/_components/VideoCourseSwiper/lazy.tsx index c960f08e647..e6750d95cf8 100644 --- a/app/[locale]/developers/_components/VideoCourseSwiper/lazy.tsx +++ b/app/[locale]/developers/_components/VideoCourseSwiper/lazy.tsx @@ -1,3 +1,5 @@ +"use client" + import dynamic from "next/dynamic" import Loading from "./loading" diff --git a/app/[locale]/developers/tutorials/_components/tutorials-lazy.tsx b/app/[locale]/developers/tutorials/_components/tutorials-lazy.tsx new file mode 100644 index 00000000000..be8b31df649 --- /dev/null +++ b/app/[locale]/developers/tutorials/_components/tutorials-lazy.tsx @@ -0,0 +1,38 @@ +"use client" + +import dynamic from "next/dynamic" + +import { Skeleton, SkeletonCardContent } from "@/components/ui/skeleton" + +const TutorialsList = dynamic(() => import("./tutorials"), { + ssr: false, + loading: () => ( +
+
+ {/* Skill tabs + search skeleton */} +
+
+ {Array.from({ length: 4 }).map((_, index) => ( + + ))} +
+ +
+ {/* Tag pills skeleton */} +
+ {Array.from({ length: 8 }).map((_, index) => ( + + ))} +
+
+ {Array.from({ length: 5 }).map((_, index) => ( + + ))} +
+ ), +}) + +export default TutorialsList diff --git a/app/[locale]/developers/tutorials/page.tsx b/app/[locale]/developers/tutorials/page.tsx index 9225edeb2e7..ddee90f6cb4 100644 --- a/app/[locale]/developers/tutorials/page.tsx +++ b/app/[locale]/developers/tutorials/page.tsx @@ -1,5 +1,4 @@ import { pick } from "lodash" -import dynamic from "next/dynamic" import { getMessages, getTranslations, @@ -12,7 +11,6 @@ import FeedbackCard from "@/components/FeedbackCard" import ContentHero, { ContentHeroProps } from "@/components/Hero/ContentHero" import I18nProvider from "@/components/I18nProvider" import MainArticle from "@/components/MainArticle" -import { Skeleton, SkeletonCardContent } from "@/components/ui/skeleton" import { getAppPageContributorInfo } from "@/lib/utils/contributors" import { existsNamespace } from "@/lib/utils/existsNamespace" @@ -21,41 +19,11 @@ import { getMetadata } from "@/lib/utils/metadata" import { getRequiredNamespacesForPage } from "@/lib/utils/translations" import TutorialSubmitModal from "./_components/modal" +import TutorialsList from "./_components/tutorials-lazy" import TutorialsPageJsonLD from "./page-jsonld" import heroImg from "@/public/images/doge-computer.png" -const TutorialsList = dynamic(() => import("./_components/tutorials"), { - ssr: false, - loading: () => ( -
-
- {/* Skill tabs + search skeleton */} -
-
- {Array.from({ length: 4 }).map((_, index) => ( - - ))} -
- -
- {/* Tag pills skeleton */} -
- {Array.from({ length: 8 }).map((_, index) => ( - - ))} -
-
- {Array.from({ length: 5 }).map((_, index) => ( - - ))} -
- ), -}) - const Page = async (props: { params: Promise }) => { const params = await props.params const { locale } = params diff --git a/app/[locale]/get-eth/_components/CentralizedExchangesLazy.tsx b/app/[locale]/get-eth/_components/CentralizedExchangesLazy.tsx new file mode 100644 index 00000000000..c5f1fe49211 --- /dev/null +++ b/app/[locale]/get-eth/_components/CentralizedExchangesLazy.tsx @@ -0,0 +1,27 @@ +"use client" + +import dynamic from "next/dynamic" + +import { Skeleton } from "@/components/ui/skeleton" + +const CentralizedExchanges = dynamic( + () => import("@/components/CentralizedExchanges").then((mod) => mod.default), + { + ssr: false, + loading: () => ( +
+
+ + +
+ +
+ + +
+
+ ), + } +) + +export default CentralizedExchanges diff --git a/app/[locale]/get-eth/page.tsx b/app/[locale]/get-eth/page.tsx index 697feb3a610..7d8a2d83dbf 100644 --- a/app/[locale]/get-eth/page.tsx +++ b/app/[locale]/get-eth/page.tsx @@ -1,5 +1,4 @@ import { pick } from "lodash" -import dynamic from "next/dynamic" import { getMessages, getTranslations, @@ -38,7 +37,6 @@ import { import { Divider } from "@/components/ui/divider" import { Stack } from "@/components/ui/flex" import InlineLink from "@/components/ui/Link" -import { Skeleton } from "@/components/ui/skeleton" import { cn } from "@/lib/utils/cn" import { getAppPageContributorInfo } from "@/lib/utils/contributors" @@ -47,6 +45,7 @@ import { getMetadata } from "@/lib/utils/metadata" import { screens } from "@/lib/utils/screen" import { getRequiredNamespacesForPage } from "@/lib/utils/translations" +import CentralizedExchanges from "./_components/CentralizedExchangesLazy" import GetEthPageJsonLD from "./page-jsonld" import uniswap from "@/public/images/dapps/uni.png" @@ -55,26 +54,6 @@ import bancor from "@/public/images/exchanges/bancor.png" import hero from "@/public/images/get-eth.png" import wallet from "@/public/images/wallet.png" -const CentralizedExchanges = dynamic( - () => import("@/components/CentralizedExchanges").then((mod) => mod.default), - { - ssr: false, - loading: () => ( -
-
- - -
- -
- - -
-
- ), - } -) - type CardProps = { children: ReactNode emoji: string diff --git a/app/[locale]/page.tsx b/app/[locale]/page.tsx index 7152833063b..3572592167c 100644 --- a/app/[locale]/page.tsx +++ b/app/[locale]/page.tsx @@ -1,6 +1,5 @@ import { Fragment } from "react" import { Info } from "lucide-react" -import nextDynamic from "next/dynamic" import { notFound } from "next/navigation" import { getTranslations, setRequestLocale } from "next-intl/server" @@ -22,7 +21,6 @@ import CodeExamples from "@/components/Homepage/CodeExamples" import Homepage2026 from "@/components/Homepage/Homepage2026" import HomepageSectionImage from "@/components/Homepage/HomepageSectionImage" import { getBentoBoxItems } from "@/components/Homepage/utils" -import ValuesMarqueeFallback from "@/components/Homepage/ValuesMarquee/Fallback" import BlockHeap from "@/components/icons/block-heap.svg" import BuildAppsIcon from "@/components/icons/build-apps.svg" import Discord from "@/components/icons/discord.svg" @@ -61,7 +59,6 @@ import { SectionHeader, SectionTag, } from "@/components/ui/section" -import { Skeleton, SkeletonCardGrid } from "@/components/ui/skeleton" import { parseAppsOfTheWeek } from "@/lib/utils/apps" import { cn } from "@/lib/utils/cn" @@ -80,6 +77,11 @@ import { RSS_DISPLAY_COUNT, } from "@/lib/constants" +import { + BentoCardSwiper, + RecentPostsSwiper, + ValuesMarquee, +} from "./_components/HomepageLazyImports" import AppsHighlight from "./apps/_components/AppsHighlight" import IndexPageJsonLD from "./page-jsonld" import { getActivity } from "./utils" @@ -100,40 +102,6 @@ import EventFallback from "@/public/images/events/event-placeholder.png" // Force dynamic rendering to read headers for A/B testing export const dynamic = "force-dynamic" -const BentoCardSwiper = nextDynamic( - () => import("@/components/Homepage/BentoCardSwiper"), - { - ssr: false, - loading: () => ( -
- - -
- ), - } -) - -const RecentPostsSwiper = nextDynamic( - () => import("@/components/Homepage/RecentPostsSwiper"), - { - ssr: false, - loading: () => ( -
- - -
- ), - } -) - -const ValuesMarquee = nextDynamic( - () => import("@/components/Homepage/ValuesMarquee"), - { - ssr: false, - loading: () => , - } -) - const Page = async (props0: { params: Promise }) => { const params = await props0.params const { locale } = params diff --git a/app/[locale]/resources/_components/LazyImports.tsx b/app/[locale]/resources/_components/LazyImports.tsx new file mode 100644 index 00000000000..5ea188f68d5 --- /dev/null +++ b/app/[locale]/resources/_components/LazyImports.tsx @@ -0,0 +1,26 @@ +"use client" + +import dynamic from "next/dynamic" + +import { Spinner } from "@/components/ui/spinner" + +export const SlotCountdownChart = dynamic(() => import("./SlotCountdown"), { + ssr: false, + loading: () => ( +
+ +
+ ), +}) + +export const UpgradeCountdownFigure = dynamic( + () => import("./UpgradeCountdown"), + { + ssr: false, + loading: () => ( +
+ +
+ ), + } +) diff --git a/app/[locale]/resources/utils.tsx b/app/[locale]/resources/utils.tsx index 5d83d0236d3..dad5d19be0e 100644 --- a/app/[locale]/resources/utils.tsx +++ b/app/[locale]/resources/utils.tsx @@ -1,4 +1,3 @@ -import dynamic from "next/dynamic" import { getLocale, getTranslations } from "next-intl/server" import { Lang } from "@/lib/types" @@ -9,11 +8,14 @@ import SectionIconEthGlyph from "@/components/icons/eth-glyph.svg" import SectionIconEthWallet from "@/components/icons/eth-wallet.svg" import SectionIconHeartPulse from "@/components/icons/heart-pulse.svg" import SectionIconPrivacy from "@/components/icons/privacy.svg" -import { Spinner } from "@/components/ui/spinner" import { formatSmallUSD } from "@/lib/utils/numbers" import { getLocaleForNumberFormat } from "@/lib/utils/translations" +import { + SlotCountdownChart, + UpgradeCountdownFigure, +} from "./_components/LazyImports" import type { DashboardBox, DashboardSection } from "./types" import { getEthPrice } from "@/lib/data" @@ -55,30 +57,6 @@ import IconUltrasoundMoney from "@/public/images/resources/ultrasound-money.png" import IconVisaOnchainAnalytics from "@/public/images/resources/visa-onchain-analytcs.png" import IconWalletBeat from "@/public/images/resources/walletbeat.png" -const SlotCountdownChart = dynamic( - () => import("./_components/SlotCountdown"), - { - ssr: false, - loading: () => ( -
- -
- ), - } -) - -const UpgradeCountdownFigure = dynamic( - () => import("./_components/UpgradeCountdown"), - { - ssr: false, - loading: () => ( -
- -
- ), - } -) - export const getResources = async ({ txCostsMedianUsd, totalBlobs, diff --git a/app/[locale]/what-is-ethereum/_components/WhatTabs/lazy.tsx b/app/[locale]/what-is-ethereum/_components/WhatTabs/lazy.tsx index c960f08e647..e6750d95cf8 100644 --- a/app/[locale]/what-is-ethereum/_components/WhatTabs/lazy.tsx +++ b/app/[locale]/what-is-ethereum/_components/WhatTabs/lazy.tsx @@ -1,3 +1,5 @@ +"use client" + import dynamic from "next/dynamic" import Loading from "./loading" diff --git a/app/[locale]/what-is-ethereum/_components/WhySwiper/lazy.tsx b/app/[locale]/what-is-ethereum/_components/WhySwiper/lazy.tsx index c960f08e647..e6750d95cf8 100644 --- a/app/[locale]/what-is-ethereum/_components/WhySwiper/lazy.tsx +++ b/app/[locale]/what-is-ethereum/_components/WhySwiper/lazy.tsx @@ -1,3 +1,5 @@ +"use client" + import dynamic from "next/dynamic" import Loading from "./loading" diff --git a/middleware.ts b/middleware.ts index a2ca9b31c07..e39e4b291d8 100644 --- a/middleware.ts +++ b/middleware.ts @@ -1,7 +1,7 @@ import { NextRequest, NextResponse } from "next/server" import createMiddleware from "next-intl/middleware" -import { routing } from "./src/i18n/routing" +import { routing } from "./src/i18n/routing.config" import { DEFAULT_LOCALE } from "./src/lib/constants" import { getFirstSegment } from "./src/lib/utils/url" diff --git a/next.config.js b/next.config.js index 6896ee3605b..bbedb2b04e7 100644 --- a/next.config.js +++ b/next.config.js @@ -33,6 +33,12 @@ const experimental = LIMIT_CPUS module.exports = (phase) => { let nextConfig = { reactStrictMode: true, + typescript: { + // htmr ships raw .ts files with React 18 types (ReactHTML/ReactSVG) + // that break under @types/react 19. Our own code is checked via + // `tsc --noEmit` which passes cleanly. Remove once htmr is replaced. + ignoreBuildErrors: true, + }, env: { // Netlify build-time vars inlined so they're available at SSR runtime. // ref. https://docs.netlify.com/configure-builds/environment-variables/#build-metadata diff --git a/src/components/AdoptionChart/server.tsx b/src/components/AdoptionChart/server.tsx index e74ae58690a..5733a36989e 100644 --- a/src/components/AdoptionChart/server.tsx +++ b/src/components/AdoptionChart/server.tsx @@ -1,3 +1,5 @@ +"use client" + import dynamic from "next/dynamic" import Loading from "./loading" diff --git a/src/components/CodeModal.tsx b/src/components/CodeModal.tsx index 18309529486..74ef95195b6 100644 --- a/src/components/CodeModal.tsx +++ b/src/components/CodeModal.tsx @@ -23,8 +23,9 @@ type CodeModalProps = { const CodeModal = ({ children, isOpen, setIsOpen, title }: CodeModalProps) => { const { t } = useTranslation() - const codeSnippet = (Children.toArray(children)[0] as ReactElement) - .props.children + const codeSnippet = ( + Children.toArray(children)[0] as ReactElement<{ children: string }> + ).props.children const { onCopy, hasCopied } = useClipboard() diff --git a/src/components/Emoji.tsx b/src/components/Emoji.tsx index 6cbc294b37a..506c1bdd26c 100644 --- a/src/components/Emoji.tsx +++ b/src/components/Emoji.tsx @@ -1,3 +1,5 @@ +"use client" + import { ComponentProps } from "react" import dynamic from "next/dynamic" diff --git a/src/components/EnergyConsumptionChart/server.tsx b/src/components/EnergyConsumptionChart/server.tsx index e74ae58690a..5733a36989e 100644 --- a/src/components/EnergyConsumptionChart/server.tsx +++ b/src/components/EnergyConsumptionChart/server.tsx @@ -1,3 +1,5 @@ +"use client" + import dynamic from "next/dynamic" import Loading from "./loading" diff --git a/src/components/FeedbackWidget/lazy.tsx b/src/components/FeedbackWidget/lazy.tsx new file mode 100644 index 00000000000..e4c826729d7 --- /dev/null +++ b/src/components/FeedbackWidget/lazy.tsx @@ -0,0 +1,7 @@ +"use client" + +import dynamic from "next/dynamic" + +export default dynamic(() => import("@/components/FeedbackWidget"), { + ssr: false, +}) diff --git a/src/components/FindWalletProductTable/lazy.tsx b/src/components/FindWalletProductTable/lazy.tsx index c960f08e647..e6750d95cf8 100644 --- a/src/components/FindWalletProductTable/lazy.tsx +++ b/src/components/FindWalletProductTable/lazy.tsx @@ -1,3 +1,5 @@ +"use client" + import dynamic from "next/dynamic" import Loading from "./loading" diff --git a/src/components/Image/ParallaxImage/lazy.tsx b/src/components/Image/ParallaxImage/lazy.tsx index c960f08e647..e6750d95cf8 100644 --- a/src/components/Image/ParallaxImage/lazy.tsx +++ b/src/components/Image/ParallaxImage/lazy.tsx @@ -1,3 +1,5 @@ +"use client" + import dynamic from "next/dynamic" import Loading from "./loading" diff --git a/src/components/ListenToPlayer/server.tsx b/src/components/ListenToPlayer/server.tsx index e74ae58690a..5733a36989e 100644 --- a/src/components/ListenToPlayer/server.tsx +++ b/src/components/ListenToPlayer/server.tsx @@ -1,3 +1,5 @@ +"use client" + import dynamic from "next/dynamic" import Loading from "./loading" diff --git a/src/components/Morpher/lazy.tsx b/src/components/Morpher/lazy.tsx index c960f08e647..e6750d95cf8 100644 --- a/src/components/Morpher/lazy.tsx +++ b/src/components/Morpher/lazy.tsx @@ -1,3 +1,5 @@ +"use client" + import dynamic from "next/dynamic" import Loading from "./loading" diff --git a/src/components/Translation.tsx b/src/components/Translation.tsx index 49715a2b66e..dd90cd5d20b 100644 --- a/src/components/Translation.tsx +++ b/src/components/Translation.tsx @@ -26,8 +26,7 @@ const Translation = ({ id, ns, values, transform = {} }: TranslationProps) => { // Use `htmr` to parse html content in the translation text return htmr(translatedText, { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - transform: { ...defaultTransform, ...transform } as any, + transform: { ...defaultTransform, ...transform }, }) } diff --git a/src/components/ui/avatar.tsx b/src/components/ui/avatar.tsx index 8384996a666..d582baa1cc1 100644 --- a/src/components/ui/avatar.tsx +++ b/src/components/ui/avatar.tsx @@ -240,10 +240,13 @@ const AvatarGroup = React.forwardRef( const clonedChildren = reversedChildren.map((child, idx) => { const isFirst = idx === 0 - return React.cloneElement(child, { - className: cn(isFirst ? "me-0" : "-me-2"), - size, - }) + return React.cloneElement( + child as React.ReactElement<{ className?: string; size?: string }>, + { + className: cn(isFirst ? "me-0" : "-me-2"), + size, + } + ) }) const { container, fallback } = avatarStyles({ size }) diff --git a/src/components/ui/flex.tsx b/src/components/ui/flex.tsx index 1be2c2201ce..6c0e55053d2 100644 --- a/src/components/ui/flex.tsx +++ b/src/components/ui/flex.tsx @@ -52,12 +52,15 @@ const Stack = forwardRef( isValidElement(child) ) - const sep = cloneElement(separator, { - className: cn( - separator.props.className, - "size-auto border self-stretch" - ), - }) + const sep = cloneElement( + separator as ReactElement<{ className?: string }>, + { + className: cn( + (separator as ReactElement<{ className?: string }>).props.className, + "size-auto border self-stretch" + ), + } + ) return validChildren.map((child, index) => { const key = typeof child.key !== "undefined" ? child.key : index diff --git a/src/i18n/routing.config.ts b/src/i18n/routing.config.ts new file mode 100644 index 00000000000..3e52eae796f --- /dev/null +++ b/src/i18n/routing.config.ts @@ -0,0 +1,11 @@ +import { defineRouting } from "next-intl/routing" + +import { DEFAULT_LOCALE, LOCALES_CODES } from "@/lib/constants" + +export const routing = defineRouting({ + locales: LOCALES_CODES, + defaultLocale: DEFAULT_LOCALE, + localePrefix: "as-needed", + alternateLinks: false, + localeDetection: false, +}) diff --git a/src/i18n/routing.ts b/src/i18n/routing.ts index a4e182d6380..c2ff9bcf377 100644 --- a/src/i18n/routing.ts +++ b/src/i18n/routing.ts @@ -1,15 +1,9 @@ import { createNavigation } from "next-intl/navigation" -import { defineRouting } from "next-intl/routing" -import { DEFAULT_LOCALE, LOCALES_CODES } from "@/lib/constants" +import { routing } from "./routing.config" -export const routing = defineRouting({ - locales: LOCALES_CODES, - defaultLocale: DEFAULT_LOCALE, - localePrefix: "as-needed", - alternateLinks: false, - localeDetection: false, -}) +// Re-export routing config for convenience +export { routing } // Lightweight wrappers around Next.js' navigation APIs // that will consider the routing configuration diff --git a/src/layouts/BaseLayout.tsx b/src/layouts/BaseLayout.tsx index cd984372b02..f3a5891d028 100644 --- a/src/layouts/BaseLayout.tsx +++ b/src/layouts/BaseLayout.tsx @@ -1,8 +1,7 @@ // import { join } from "path" -import dynamic from "next/dynamic" - import type { Root } from "@/lib/types" +import FeedbackWidget from "@/components/FeedbackWidget/lazy" import Footer from "@/components/Footer" import Nav from "@/components/Nav" import { SkipLink } from "@/components/SkipLink" @@ -12,10 +11,6 @@ import { SkipLink } from "@/components/SkipLink" // import { toPosixPath } from "@/lib/utils/relativePath" // import { DEFAULT_LOCALE } from "@/lib/constants" -const FeedbackWidget = dynamic(() => import("@/components/FeedbackWidget"), { - ssr: false, -}) - export const BaseLayout = async ({ children, // contentIsOutdated, diff --git a/src/lib/ab-testing/server.ts b/src/lib/ab-testing/server.ts index 4bf73098392..51577136a63 100644 --- a/src/lib/ab-testing/server.ts +++ b/src/lib/ab-testing/server.ts @@ -25,9 +25,7 @@ export const getABTestAssignment = async ( if (!testConfig || !testConfig.enabled) return null // Create deterministic assignment using enhanced fingerprint - const headers = - await /* @next-codemod-error The APIs under 'next/headers' are async now, need to be manually awaited. */ - import("next/headers").then((m) => m.headers()) + const headers = await import("next/headers").then((m) => m.headers()) // Get IP and user agent (primary identifier) // x-forwarded-for contains: "client_ip, proxy1, proxy2, ..." - extract only client IP diff --git a/src/types/htmr.d.ts b/src/types/htmr.d.ts new file mode 100644 index 00000000000..f46390089e3 --- /dev/null +++ b/src/types/htmr.d.ts @@ -0,0 +1,38 @@ +// Patch htmr types for React 19 compatibility +// ReactHTML and ReactSVG were removed in @types/react 19 +// TODO: Remove when htmr is replaced (see deferred follow-up PRs) +declare module "htmr" { + import { ReactNode } from "react" + + type HtmrOptions = { + transform?: Record + preserveAttributes?: string[] + dangerouslySetChildren?: string[] + } + + export default function htmr(html: string, options?: HtmrOptions): ReactNode + + export type { HtmrOptions } +} + +// Also override htmr's internal types module to prevent build errors +declare module "htmr/src/types" { + import { ReactNode, ComponentType, JSX } from "react" + + export type HTMLTags = keyof JSX.IntrinsicElements + export type SVGTags = keyof JSX.IntrinsicElements + + export type AllTags = HTMLTags | SVGTags + + export type HTMLTransform = { + [tag in AllTags]?: ComponentType + } + + export type DefaultTransform = { + _?: ( + element: string | AllTags, + props?: unknown, + children?: ReactNode + ) => ReactNode + } +} From b4c2bad0b924b6654a0266cd4ff870546ea4f4fc Mon Sep 17 00:00:00 2001 From: Pablo Pettinari Date: Mon, 16 Mar 2026 12:31:31 +0100 Subject: [PATCH 04/14] split i18n into routing.ts and navigation.ts per next-intl official setup --- .../_components/acknowledgements.tsx | 2 +- .../contributors/_components/contributors.tsx | 2 +- .../layer-2/learn/_components/learn.tsx | 2 +- .../layer-2/networks/_components/networks.tsx | 2 +- .../roadmap/_vision/_components/vision.tsx | 2 +- .../_components/deposit-contract.tsx | 2 +- middleware.ts | 2 +- src/components/DocsNav/index.tsx | 2 +- src/components/FeedbackCard.tsx | 2 +- .../FeedbackWidget/useFeedbackWidget.ts | 2 +- .../Glossary/GlossaryTooltip/index.tsx | 2 +- src/components/LanguagePicker/index.tsx | 2 +- src/components/Nav/Menu/useSubMenu.ts | 2 +- src/components/Simulator/index.tsx | 2 +- src/components/TableOfContents/index.tsx | 2 +- src/components/ui/Link.tsx | 4 ++-- src/components/ui/breadcrumb.tsx | 2 +- src/hooks/useSurvey.ts | 2 +- src/i18n/navigation.ts | 6 ++++++ src/i18n/routing.config.ts | 11 ----------- src/i18n/routing.ts | 18 +++++++++--------- 21 files changed, 34 insertions(+), 39 deletions(-) create mode 100644 src/i18n/navigation.ts delete mode 100644 src/i18n/routing.config.ts diff --git a/app/[locale]/contributing/translation-program/acknowledgements/_components/acknowledgements.tsx b/app/[locale]/contributing/translation-program/acknowledgements/_components/acknowledgements.tsx index ad7c5cbb0c7..5fe387a4371 100644 --- a/app/[locale]/contributing/translation-program/acknowledgements/_components/acknowledgements.tsx +++ b/app/[locale]/contributing/translation-program/acknowledgements/_components/acknowledgements.tsx @@ -20,7 +20,7 @@ import quarterData from "@/data/translation-reports/quarter/quarter-data.json" import useColorModeValue from "@/hooks/useColorModeValue" import { useTranslation } from "@/hooks/useTranslation" -import { usePathname } from "@/i18n/routing" +import { usePathname } from "@/i18n/navigation" import darkThemeCertificateImg from "@/public/images/certificates/dark-certificate.png" import lightThemeCertificateImg from "@/public/images/certificates/light-certificate.png" import dogeComputerImg from "@/public/images/doge-computer.png" diff --git a/app/[locale]/contributing/translation-program/contributors/_components/contributors.tsx b/app/[locale]/contributing/translation-program/contributors/_components/contributors.tsx index 2ef3a9b022e..1d379bf2c9d 100644 --- a/app/[locale]/contributing/translation-program/contributors/_components/contributors.tsx +++ b/app/[locale]/contributing/translation-program/contributors/_components/contributors.tsx @@ -16,7 +16,7 @@ import { cn } from "@/lib/utils/cn" import allTimeData from "@/data/translation-reports/alltime/alltime-data.json" import { useTranslation } from "@/hooks/useTranslation" -import { usePathname } from "@/i18n/routing" +import { usePathname } from "@/i18n/navigation" const Content = ({ ...props }: BaseHTMLAttributes) => ( diff --git a/app/[locale]/layer-2/learn/_components/learn.tsx b/app/[locale]/layer-2/learn/_components/learn.tsx index 2751930fb07..f97400e20ce 100644 --- a/app/[locale]/layer-2/learn/_components/learn.tsx +++ b/app/[locale]/layer-2/learn/_components/learn.tsx @@ -13,7 +13,7 @@ import Translation from "@/components/Translation" import { ButtonLink } from "@/components/ui/buttons/Button" import useTranslation from "@/hooks/useTranslation" -import { usePathname } from "@/i18n/routing" +import { usePathname } from "@/i18n/navigation" import Callout2Image from "@/public/images/layer-2/learn-hero.png" import heroImg from "@/public/images/layer-2/learn-hero.png" import OptimisticRollupImage from "@/public/images/layer-2/optimistic_rollup.png" diff --git a/app/[locale]/layer-2/networks/_components/networks.tsx b/app/[locale]/layer-2/networks/_components/networks.tsx index 9d957d900e3..0c3b96bb7b2 100644 --- a/app/[locale]/layer-2/networks/_components/networks.tsx +++ b/app/[locale]/layer-2/networks/_components/networks.tsx @@ -8,7 +8,7 @@ import NetworkMaturity from "@/components/NetworkMaturity" import { ButtonLink } from "@/components/ui/buttons/Button" import useTranslation from "@/hooks/useTranslation" -import { usePathname } from "@/i18n/routing" +import { usePathname } from "@/i18n/navigation" import heroImg from "@/public/images/heroes/layer-2-hub-hero.png" import Callout2Image from "@/public/images/layer-2/layer-2-walking.png" import Callout1Image from "@/public/images/man-and-dog-playing.png" diff --git a/app/[locale]/roadmap/_vision/_components/vision.tsx b/app/[locale]/roadmap/_vision/_components/vision.tsx index bed4a2aefbc..1c0053fb3bb 100644 --- a/app/[locale]/roadmap/_vision/_components/vision.tsx +++ b/app/[locale]/roadmap/_vision/_components/vision.tsx @@ -24,7 +24,7 @@ import { List, ListItem } from "@/components/ui/list" import { cn } from "@/lib/utils/cn" import useTranslation from "@/hooks/useTranslation" -import { usePathname } from "@/i18n/routing" +import { usePathname } from "@/i18n/navigation" import oldship from "@/public/images/upgrades/oldship.png" /** diff --git a/app/[locale]/staking/deposit-contract/_components/deposit-contract.tsx b/app/[locale]/staking/deposit-contract/_components/deposit-contract.tsx index ec20c039fff..e563c346647 100644 --- a/app/[locale]/staking/deposit-contract/_components/deposit-contract.tsx +++ b/app/[locale]/staking/deposit-contract/_components/deposit-contract.tsx @@ -33,7 +33,7 @@ import InlineLink from "@/components/ui/Link" import { DEPOSIT_CONTRACT_ADDRESS } from "@/data/addresses" import useTranslation from "@/hooks/useTranslation" -import { usePathname } from "@/i18n/routing" +import { usePathname } from "@/i18n/navigation" import consensys from "@/public/images/projects/consensys.png" import blockscout from "@/public/images/resources/blockscout.webp" import ef from "@/public/images/staking/ef-blog-logo.png" diff --git a/middleware.ts b/middleware.ts index e39e4b291d8..a2ca9b31c07 100644 --- a/middleware.ts +++ b/middleware.ts @@ -1,7 +1,7 @@ import { NextRequest, NextResponse } from "next/server" import createMiddleware from "next-intl/middleware" -import { routing } from "./src/i18n/routing.config" +import { routing } from "./src/i18n/routing" import { DEFAULT_LOCALE } from "./src/lib/constants" import { getFirstSegment } from "./src/lib/utils/url" diff --git a/src/components/DocsNav/index.tsx b/src/components/DocsNav/index.tsx index 68e2b710053..bc0b2536418 100644 --- a/src/components/DocsNav/index.tsx +++ b/src/components/DocsNav/index.tsx @@ -14,7 +14,7 @@ import docLinks from "@/data/developer-docs-links.yaml" import { useRtlFlip } from "@/hooks/useRtlFlip" import { useTranslation } from "@/hooks/useTranslation" -import { usePathname } from "@/i18n/routing" +import { usePathname } from "@/i18n/navigation" const TextDiv = ({ children, className, ...props }) => (
{ const pathname = usePathname() diff --git a/src/components/Glossary/GlossaryTooltip/index.tsx b/src/components/Glossary/GlossaryTooltip/index.tsx index b6aecde81d0..4c84f18ba38 100644 --- a/src/components/Glossary/GlossaryTooltip/index.tsx +++ b/src/components/Glossary/GlossaryTooltip/index.tsx @@ -9,7 +9,7 @@ import InlineLink from "@/components/ui/Link" import { trackCustomEvent } from "@/lib/utils/matomo" import { cleanPath } from "@/lib/utils/url" -import { usePathname } from "@/i18n/routing" +import { usePathname } from "@/i18n/navigation" type GlossaryTooltipProps = Omit & { children: ReactNode diff --git a/src/components/LanguagePicker/index.tsx b/src/components/LanguagePicker/index.tsx index df7bd80dad1..d4f30f06cf0 100644 --- a/src/components/LanguagePicker/index.tsx +++ b/src/components/LanguagePicker/index.tsx @@ -12,7 +12,7 @@ import LanguagePickerFooter from "./LanguagePickerFooter" import LanguagePickerMenu from "./LanguagePickerMenu" import { useLanguagePicker } from "./useLanguagePicker" -import { usePathname, useRouter } from "@/i18n/routing" +import { usePathname, useRouter } from "@/i18n/navigation" type LanguagePickerProps = { className?: string diff --git a/src/components/Nav/Menu/useSubMenu.ts b/src/components/Nav/Menu/useSubMenu.ts index 6559bf53ee6..e775701841d 100644 --- a/src/components/Nav/Menu/useSubMenu.ts +++ b/src/components/Nav/Menu/useSubMenu.ts @@ -2,7 +2,7 @@ import type { MotionProps } from "motion/react" import { useLocale } from "next-intl" import { useRtlFlip } from "@/hooks/useRtlFlip" -import { usePathname } from "@/i18n/routing" +import { usePathname } from "@/i18n/navigation" export const useSubMenu = () => { const pathname = usePathname() diff --git a/src/components/Simulator/index.tsx b/src/components/Simulator/index.tsx index 1e7202ce7b1..dd57c09fe41 100644 --- a/src/components/Simulator/index.tsx +++ b/src/components/Simulator/index.tsx @@ -22,7 +22,7 @@ import { Template } from "./Template" import type { PathId, SimulatorData } from "./types" import { getValidPathId, isValidPathId } from "./utils" -import { usePathname, useRouter } from "@/i18n/routing" +import { usePathname, useRouter } from "@/i18n/navigation" type SimulatorProps = { children: ReactNode diff --git a/src/components/TableOfContents/index.tsx b/src/components/TableOfContents/index.tsx index 696863c8420..c9f503b6aa7 100644 --- a/src/components/TableOfContents/index.tsx +++ b/src/components/TableOfContents/index.tsx @@ -17,7 +17,7 @@ import { ButtonLink } from "../ui/buttons/Button" import { useActiveHash } from "@/hooks/useActiveHash" import { useTranslation } from "@/hooks/useTranslation" -import { usePathname } from "@/i18n/routing" +import { usePathname } from "@/i18n/navigation" const variants = cva( "sticky flex h-fit max-lg:hidden flex-col items-start overflow-y-auto", diff --git a/src/components/ui/Link.tsx b/src/components/ui/Link.tsx index 9e46839fc19..c1f79353904 100644 --- a/src/components/ui/Link.tsx +++ b/src/components/ui/Link.tsx @@ -14,8 +14,8 @@ import * as url from "@/lib/utils/url" import { DISCORD_PATH, SITE_URL } from "@/lib/constants" import { useRtlFlip } from "@/hooks/useRtlFlip" -import { Link as I18nLink } from "@/i18n/routing" -import { usePathname } from "@/i18n/routing" +import { Link as I18nLink } from "@/i18n/navigation" +import { usePathname } from "@/i18n/navigation" export const ExternalLinkIcon = () => { const { twFlipForRtl } = useRtlFlip() diff --git a/src/components/ui/breadcrumb.tsx b/src/components/ui/breadcrumb.tsx index 410bff3b34a..4fb9056b933 100644 --- a/src/components/ui/breadcrumb.tsx +++ b/src/components/ui/breadcrumb.tsx @@ -4,7 +4,7 @@ import { Slot } from "@radix-ui/react-slot" import { cn } from "@/lib/utils/cn" -import { Link } from "@/i18n/routing" +import { Link } from "@/i18n/navigation" interface BreadcrumbProps extends React.ComponentPropsWithoutRef<"nav"> { separator?: React.ReactNode diff --git a/src/hooks/useSurvey.ts b/src/hooks/useSurvey.ts index a9762ca738b..129d3952c42 100644 --- a/src/hooks/useSurvey.ts +++ b/src/hooks/useSurvey.ts @@ -7,7 +7,7 @@ import type { Lang } from "@/lib/types" import { SITE_URL } from "@/lib/constants" -import { usePathname } from "@/i18n/routing" +import { usePathname } from "@/i18n/navigation" export const useSurvey = (feedbackSubmitted: boolean) => { const locale = useLocale() diff --git a/src/i18n/navigation.ts b/src/i18n/navigation.ts new file mode 100644 index 00000000000..8508efd9f39 --- /dev/null +++ b/src/i18n/navigation.ts @@ -0,0 +1,6 @@ +import { createNavigation } from "next-intl/navigation" + +import { routing } from "./routing" + +export const { Link, redirect, usePathname, useRouter, getPathname } = + createNavigation(routing) diff --git a/src/i18n/routing.config.ts b/src/i18n/routing.config.ts deleted file mode 100644 index 3e52eae796f..00000000000 --- a/src/i18n/routing.config.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { defineRouting } from "next-intl/routing" - -import { DEFAULT_LOCALE, LOCALES_CODES } from "@/lib/constants" - -export const routing = defineRouting({ - locales: LOCALES_CODES, - defaultLocale: DEFAULT_LOCALE, - localePrefix: "as-needed", - alternateLinks: false, - localeDetection: false, -}) diff --git a/src/i18n/routing.ts b/src/i18n/routing.ts index c2ff9bcf377..3e52eae796f 100644 --- a/src/i18n/routing.ts +++ b/src/i18n/routing.ts @@ -1,11 +1,11 @@ -import { createNavigation } from "next-intl/navigation" +import { defineRouting } from "next-intl/routing" -import { routing } from "./routing.config" +import { DEFAULT_LOCALE, LOCALES_CODES } from "@/lib/constants" -// Re-export routing config for convenience -export { routing } - -// Lightweight wrappers around Next.js' navigation APIs -// that will consider the routing configuration -export const { Link, redirect, usePathname, useRouter, getPathname } = - createNavigation(routing) +export const routing = defineRouting({ + locales: LOCALES_CODES, + defaultLocale: DEFAULT_LOCALE, + localePrefix: "as-needed", + alternateLinks: false, + localeDetection: false, +}) From 743ebefa5efee00193e21544f7c591b0d0a04f27 Mon Sep 17 00:00:00 2001 From: Pablo Pettinari Date: Mon, 16 Mar 2026 15:17:17 +0100 Subject: [PATCH 05/14] bump @netlify/plugin-nextjs to latest --- package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 4b1eb38eed9..874884fddfa 100644 --- a/package.json +++ b/package.json @@ -105,7 +105,7 @@ "@chromatic-com/playwright": "^0.12.4", "@chromatic-com/storybook": "1.5.0", "@google/generative-ai": "^0.24.1", - "@netlify/plugin-nextjs": "^5.15.5", + "@netlify/plugin-nextjs": "^5.15.9", "@next/bundle-analyzer": "^15.5.12", "@playwright/test": "^1.52.0", "@storybook/addon-essentials": "8.6.14", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0f2ef3cdc88..c2cc1687c23 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -242,8 +242,8 @@ importers: specifier: ^0.24.1 version: 0.24.1 '@netlify/plugin-nextjs': - specifier: ^5.15.5 - version: 5.15.5 + specifier: ^5.15.9 + version: 5.15.9 '@next/bundle-analyzer': specifier: ^15.5.12 version: 15.5.12(bufferutil@4.0.9)(utf-8-validate@5.0.10) @@ -2208,8 +2208,8 @@ packages: resolution: {integrity: sha512-7EWbS+puDub800IQ9MUVcLrWwCNPyK/u1Rs08f0Y+O4dBGVkuTm/RyaLoU58PPLuNCfPHXebfIYFZxN+/CtZeA==} engines: {node: ^18.14.0 || >=20.6.1} - '@netlify/plugin-nextjs@5.15.5': - resolution: {integrity: sha512-Lvix59vHCEfvopILvdfIK2EPe/CrLH5qrIdwYnJbxpp/SSVgklsHpBrfNM9ADTr310r+WJRDz11NcDyHu3iT9w==} + '@netlify/plugin-nextjs@5.15.9': + resolution: {integrity: sha512-4kJvV+wrt4/ncehfaOXfhv1FYKCv9EFjq6/tgXXYSlqPDcbsuTXR0DTz9IvyZ/CpPRadRD/zzIqD9wXgCmA2lg==} engines: {node: '>=18.0.0'} '@netlify/runtime-utils@2.2.1': @@ -12701,7 +12701,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@netlify/plugin-nextjs@5.15.5': {} + '@netlify/plugin-nextjs@5.15.9': {} '@netlify/runtime-utils@2.2.1': {} From 6b36298b07f9037bc46b10ad8255452f78b28512 Mon Sep 17 00:00:00 2001 From: Pablo Pettinari Date: Mon, 16 Mar 2026 17:20:23 +0100 Subject: [PATCH 06/14] fix language picker not rendering: move button inside client component to avoid rsc lazy element issue with radix slot --- src/components/LanguagePicker/Desktop.tsx | 28 +++++++++++++++++------ src/components/Nav/DesktopNav.tsx | 22 +++++------------- 2 files changed, 27 insertions(+), 23 deletions(-) diff --git a/src/components/LanguagePicker/Desktop.tsx b/src/components/LanguagePicker/Desktop.tsx index 1bd783d2499..bd0cde90113 100644 --- a/src/components/LanguagePicker/Desktop.tsx +++ b/src/components/LanguagePicker/Desktop.tsx @@ -1,9 +1,14 @@ "use client" +import { Languages } from "lucide-react" + import type { LocaleDisplayInfo } from "@/lib/types" import { cn } from "@/lib/utils/cn" +import { DESKTOP_LANGUAGE_BUTTON_NAME } from "@/lib/constants" + +import { Button } from "../ui/buttons/Button" import { Popover, PopoverContent, PopoverTrigger } from "../ui/popover" import LanguagePicker from "." @@ -12,22 +17,20 @@ import { useDisclosure } from "@/hooks/useDisclosure" import { useEventListener } from "@/hooks/useEventListener" type DesktopLanguagePickerProps = { - children: React.ReactNode languages: LocaleDisplayInfo[] + locale: string + languageLabel: string className?: string } const DesktopLanguagePicker = ({ - children, languages, + locale, + languageLabel, className, }: DesktopLanguagePickerProps) => { const { isOpen, setValue, onClose, onOpen } = useDisclosure() - /** - * Adds a keydown event listener to focus filter input (\). - * @param {string} event - The keydown event. - */ useEventListener("keydown", (e) => { if (e.key !== "\\" || e.metaKey || e.ctrlKey) return e.preventDefault() @@ -36,7 +39,18 @@ const DesktopLanguagePicker = ({ return ( - {children} + + + { - - - +
) From a5d25f3e17d00532f5264eff1c1278a4494fd544 Mon Sep 17 00:00:00 2001 From: Pablo Pettinari Date: Mon, 16 Mar 2026 19:57:00 +0100 Subject: [PATCH 07/14] replace htmr with html-react-parser to restore build-time type checking --- next.config.js | 6 --- package.json | 2 +- pnpm-lock.yaml | 84 ++++++++++++++++++++++++++++------ src/components/Translation.tsx | 37 +++++++++++---- src/types/htmr.d.ts | 38 --------------- 5 files changed, 99 insertions(+), 68 deletions(-) delete mode 100644 src/types/htmr.d.ts diff --git a/next.config.js b/next.config.js index bbedb2b04e7..6896ee3605b 100644 --- a/next.config.js +++ b/next.config.js @@ -33,12 +33,6 @@ const experimental = LIMIT_CPUS module.exports = (phase) => { let nextConfig = { reactStrictMode: true, - typescript: { - // htmr ships raw .ts files with React 18 types (ReactHTML/ReactSVG) - // that break under @types/react 19. Our own code is checked via - // `tsc --noEmit` which passes cleanly. Remove once htmr is replaced. - ignoreBuildErrors: true, - }, env: { // Netlify build-time vars inlined so they're available at SSR runtime. // ref. https://docs.netlify.com/configure-builds/environment-variables/#build-metadata diff --git a/package.json b/package.json index 874884fddfa..2ce7deee6ae 100644 --- a/package.json +++ b/package.json @@ -69,7 +69,7 @@ "ethereum-blockies-base64": "^1.0.2", "gray-matter": "^4.0.3", "howler": "^2.2.4", - "htmr": "^1.0.2", + "html-react-parser": "^5.2.17", "humanize-duration": "^3.33.1", "lodash": "^4.17.23", "lucide-react": "^0.516.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c2cc1687c23..63e7d439c20 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -138,9 +138,9 @@ importers: howler: specifier: ^2.2.4 version: 2.2.4 - htmr: - specifier: ^1.0.2 - version: 1.0.2(react@19.2.4) + html-react-parser: + specifier: ^5.2.17 + version: 5.2.17(@types/react@19.2.14)(react@19.2.4) humanize-duration: specifier: ^3.33.1 version: 3.33.1 @@ -6233,6 +6233,10 @@ packages: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} + entities@7.0.1: + resolution: {integrity: sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==} + engines: {node: '>=0.12'} + env-paths@2.2.1: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} @@ -6929,6 +6933,9 @@ packages: howler@2.2.4: resolution: {integrity: sha512-iARIBPgcQrwtEr+tALF+rapJ8qSc+Set2GJQl7xT1MQzWaVkFebdJhR3alVlSiUf5U7nAANKuj3aWpwerocD5w==} + html-dom-parser@5.1.8: + resolution: {integrity: sha512-MCIUng//mF2qTtGHXJWr6OLfHWmg3Pm8ezpfiltF83tizPWY17JxT4dRLE8lykJ5bChJELoY3onQKPbufJHxYA==} + html-entities@2.6.0: resolution: {integrity: sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ==} @@ -6940,6 +6947,15 @@ packages: engines: {node: '>=12'} hasBin: true + html-react-parser@5.2.17: + resolution: {integrity: sha512-m+K/7Moq1jodAB4VL0RXSOmtwLUYoAsikZhwd+hGQe5Vtw2dbWfpFd60poxojMU0Tsh9w59mN1QLEcoHz0Dx9w==} + peerDependencies: + '@types/react': 0.14 || 15 || 16 || 17 || 18 || 19 + react: ^19.2.4 + peerDependenciesMeta: + '@types/react': + optional: true + html-webpack-plugin@5.6.3: resolution: {integrity: sha512-QSf1yjtSAsmf7rYBV7XX86uua4W/vkhIt0xNXKbsi2foEeW7vjJQz4bhnpL3xH+l1ryl1680uNv968Z+X6jSYg==} engines: {node: '>=10.13.0'} @@ -6952,14 +6968,12 @@ packages: webpack: optional: true + htmlparser2@10.1.0: + resolution: {integrity: sha512-VTZkM9GWRAtEpveh7MSF6SjjrpNVNNVJfFup7xTY3UpFtm67foy9HDVXneLtFVt4pMz5kZtgNcvCniNFb1hlEQ==} + htmlparser2@6.1.0: resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==} - htmr@1.0.2: - resolution: {integrity: sha512-7T9babEHZwECQ2/ouxNPow1uGcKbj/BcbslPGPRxBKIOLNiIrFKq6ELzor7mc4HiexZzdb3izQQLl16bhPR9jw==} - peerDependencies: - react: ^19.2.4 - https-browserify@1.0.0: resolution: {integrity: sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==} @@ -7033,6 +7047,9 @@ packages: inline-style-parser@0.2.4: resolution: {integrity: sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==} + inline-style-parser@0.2.7: + resolution: {integrity: sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA==} + internal-slot@1.1.0: resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} engines: {node: '>= 0.4'} @@ -8583,6 +8600,9 @@ packages: react: ^19.2.4 react-dom: ^19.2.4 + react-property@2.0.2: + resolution: {integrity: sha512-+PbtI3VuDV0l6CleQMsx2gtK0JZbZKbpdu5ynr+lbsuvtmgbNcS3VM0tuY2QjFNOcWxvXeHjDpy42RO+4U2rug==} + react-refresh@0.14.2: resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} engines: {node: '>=0.10.0'} @@ -9232,6 +9252,12 @@ packages: style-to-js@1.1.16: resolution: {integrity: sha512-/Q6ld50hKYPH3d/r6nr117TZkHR0w0kGGIVfpG9N6D8NymRPM9RqCUv4pRpJ62E5DqOYx2AFpbZMyCPnjQCnOw==} + style-to-js@1.1.21: + resolution: {integrity: sha512-RjQetxJrrUJLQPHbLku6U/ocGtzyjbJMP9lCNK7Ag0CNh690nSH8woqWH9u16nMjYBAok+i7JO1NP2pOy8IsPQ==} + + style-to-object@1.0.14: + resolution: {integrity: sha512-LIN7rULI0jBscWQYaSswptyderlarFkjQ+t79nzty8tcIAceVomEVlLzH5VP4Cmsv6MtKhs7qaAiwlcp+Mgaxw==} + style-to-object@1.0.8: resolution: {integrity: sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==} @@ -18118,6 +18144,8 @@ snapshots: entities@4.5.0: {} + entities@7.0.1: {} + env-paths@2.2.1: {} env-paths@3.0.0: {} @@ -19104,6 +19132,11 @@ snapshots: howler@2.2.4: {} + html-dom-parser@5.1.8: + dependencies: + domhandler: 5.0.3 + htmlparser2: 10.1.0 + html-entities@2.6.0: {} html-escaper@2.0.2: {} @@ -19118,6 +19151,16 @@ snapshots: relateurl: 0.2.7 terser: 5.40.0 + html-react-parser@5.2.17(@types/react@19.2.14)(react@19.2.4): + dependencies: + domhandler: 5.0.3 + html-dom-parser: 5.1.8 + react: 19.2.4 + react-property: 2.0.2 + style-to-js: 1.1.21 + optionalDependencies: + '@types/react': 19.2.14 + html-webpack-plugin@5.6.3(webpack@5.99.9(esbuild@0.25.12)): dependencies: '@types/html-minifier-terser': 6.1.0 @@ -19128,6 +19171,13 @@ snapshots: optionalDependencies: webpack: 5.99.9(esbuild@0.25.12) + htmlparser2@10.1.0: + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.2.2 + entities: 7.0.1 + htmlparser2@6.1.0: dependencies: domelementtype: 2.3.0 @@ -19135,12 +19185,6 @@ snapshots: domutils: 2.8.0 entities: 2.2.0 - htmr@1.0.2(react@19.2.4): - dependencies: - html-entities: 2.6.0 - htmlparser2: 6.1.0 - react: 19.2.4 - https-browserify@1.0.0: {} https-proxy-agent@5.0.1: @@ -19204,6 +19248,8 @@ snapshots: inline-style-parser@0.2.4: {} + inline-style-parser@0.2.7: {} + internal-slot@1.1.0: dependencies: es-errors: 1.3.0 @@ -20982,6 +21028,8 @@ snapshots: react: 19.2.4 react-dom: 19.2.4(react@19.2.4) + react-property@2.0.2: {} + react-refresh@0.14.2: {} react-remove-scroll-bar@2.3.8(@types/react@19.2.14)(react@19.2.4): @@ -21863,6 +21911,14 @@ snapshots: dependencies: style-to-object: 1.0.8 + style-to-js@1.1.21: + dependencies: + style-to-object: 1.0.14 + + style-to-object@1.0.14: + dependencies: + inline-style-parser: 0.2.7 + style-to-object@1.0.8: dependencies: inline-style-parser: 0.2.4 diff --git a/src/components/Translation.tsx b/src/components/Translation.tsx index dd90cd5d20b..603d29ba8ee 100644 --- a/src/components/Translation.tsx +++ b/src/components/Translation.tsx @@ -1,15 +1,23 @@ -import htmr, { type HtmrOptions } from "htmr" +import parse, { + type DOMNode, + domToReact, + Element, + type HTMLReactParserOptions, +} from "html-react-parser" import type { TranslationValues } from "next-intl" +import type { ComponentType } from "react" import TooltipLink from "./TooltipLink" import useTranslation from "@/hooks/useTranslation" +type TransformMap = Record>> + type TranslationProps = { id: string ns?: string values?: TranslationValues - transform?: HtmrOptions["transform"] + transform?: TransformMap } // Renders the translation string for the given translation key `id`. It @@ -18,16 +26,27 @@ const Translation = ({ id, ns, values, transform = {} }: TranslationProps) => { const { t } = useTranslation(ns) const translatedText = t(id, values) - // Custom components mapping to be used by `htmr` when parsing the translation - // text - const defaultTransform = { + // Custom components mapping used when parsing the translation text + const defaultTransform: TransformMap = { a: TooltipLink, } - // Use `htmr` to parse html content in the translation text - return htmr(translatedText, { - transform: { ...defaultTransform, ...transform }, - }) + const allTransforms: TransformMap = { ...defaultTransform, ...transform } + + const options: HTMLReactParserOptions = { + replace: (domNode: DOMNode) => { + if (domNode instanceof Element && domNode.name in allTransforms) { + const Component = allTransforms[domNode.name] + return ( + + {domToReact(domNode.children as DOMNode[], options)} + + ) + } + }, + } + + return <>{parse(translatedText, options)} } export default Translation diff --git a/src/types/htmr.d.ts b/src/types/htmr.d.ts deleted file mode 100644 index f46390089e3..00000000000 --- a/src/types/htmr.d.ts +++ /dev/null @@ -1,38 +0,0 @@ -// Patch htmr types for React 19 compatibility -// ReactHTML and ReactSVG were removed in @types/react 19 -// TODO: Remove when htmr is replaced (see deferred follow-up PRs) -declare module "htmr" { - import { ReactNode } from "react" - - type HtmrOptions = { - transform?: Record - preserveAttributes?: string[] - dangerouslySetChildren?: string[] - } - - export default function htmr(html: string, options?: HtmrOptions): ReactNode - - export type { HtmrOptions } -} - -// Also override htmr's internal types module to prevent build errors -declare module "htmr/src/types" { - import { ReactNode, ComponentType, JSX } from "react" - - export type HTMLTags = keyof JSX.IntrinsicElements - export type SVGTags = keyof JSX.IntrinsicElements - - export type AllTags = HTMLTags | SVGTags - - export type HTMLTransform = { - [tag in AllTags]?: ComponentType - } - - export type DefaultTransform = { - _?: ( - element: string | AllTags, - props?: unknown, - children?: ReactNode - ) => ReactNode - } -} From 7ddf01e0558bbfb751fca5225f2fe117fedbd71f Mon Sep 17 00:00:00 2001 From: Pablo Pettinari Date: Mon, 16 Mar 2026 20:02:54 +0100 Subject: [PATCH 08/14] rename server.tsx to lazy.tsx for client-side dynamic import wrappers --- app/[locale]/what-is-ethereum/page.tsx | 2 +- src/components/AdoptionChart/{server.tsx => lazy.tsx} | 0 src/components/EnergyConsumptionChart/{server.tsx => lazy.tsx} | 0 src/components/ListenToPlayer/{server.tsx => lazy.tsx} | 0 4 files changed, 1 insertion(+), 1 deletion(-) rename src/components/AdoptionChart/{server.tsx => lazy.tsx} (100%) rename src/components/EnergyConsumptionChart/{server.tsx => lazy.tsx} (100%) rename src/components/ListenToPlayer/{server.tsx => lazy.tsx} (100%) diff --git a/app/[locale]/what-is-ethereum/page.tsx b/app/[locale]/what-is-ethereum/page.tsx index d67e5488bc7..be1c21f0b0f 100644 --- a/app/[locale]/what-is-ethereum/page.tsx +++ b/app/[locale]/what-is-ethereum/page.tsx @@ -22,7 +22,7 @@ import { } from "@/components/HighlightCard" import { Image } from "@/components/Image" import { Emphasis, Strong } from "@/components/IntlStringElements" -import ListenToPlayer from "@/components/ListenToPlayer/server" +import ListenToPlayer from "@/components/ListenToPlayer/lazy" import MainArticle from "@/components/MainArticle" import TableOfContents from "@/components/TableOfContents" import { ButtonLink } from "@/components/ui/buttons/Button" diff --git a/src/components/AdoptionChart/server.tsx b/src/components/AdoptionChart/lazy.tsx similarity index 100% rename from src/components/AdoptionChart/server.tsx rename to src/components/AdoptionChart/lazy.tsx diff --git a/src/components/EnergyConsumptionChart/server.tsx b/src/components/EnergyConsumptionChart/lazy.tsx similarity index 100% rename from src/components/EnergyConsumptionChart/server.tsx rename to src/components/EnergyConsumptionChart/lazy.tsx diff --git a/src/components/ListenToPlayer/server.tsx b/src/components/ListenToPlayer/lazy.tsx similarity index 100% rename from src/components/ListenToPlayer/server.tsx rename to src/components/ListenToPlayer/lazy.tsx From e61afdbe28fe5848240440b46cc5938580546085 Mon Sep 17 00:00:00 2001 From: Pablo Pettinari Date: Mon, 16 Mar 2026 20:19:10 +0100 Subject: [PATCH 09/14] add explicit force-cache to bare fetch calls for next.js 15 compatibility --- app/[locale]/collectibles/page.tsx | 4 ++-- app/[locale]/what-is-ether/_components/GasTable.tsx | 6 ++++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/app/[locale]/collectibles/page.tsx b/app/[locale]/collectibles/page.tsx index 45cabef61e7..ba582b15753 100644 --- a/app/[locale]/collectibles/page.tsx +++ b/app/[locale]/collectibles/page.tsx @@ -30,12 +30,12 @@ const STATS_API = `${COLLECTIBLES_BASE_URL}/api/stats` // Data fetching async function fetchBadges() { - const res = await fetch(BADGES_API) + const res = await fetch(BADGES_API, { cache: "force-cache" }) if (!res.ok) throw new Error("Failed to fetch badges") return res.json() } async function fetchStats() { - const res = await fetch(STATS_API) + const res = await fetch(STATS_API, { cache: "force-cache" }) if (!res.ok) throw new Error("Failed to fetch stats") return res.json() } diff --git a/app/[locale]/what-is-ether/_components/GasTable.tsx b/app/[locale]/what-is-ether/_components/GasTable.tsx index 870ee78d85d..27f08b45c6d 100644 --- a/app/[locale]/what-is-ether/_components/GasTable.tsx +++ b/app/[locale]/what-is-ether/_components/GasTable.tsx @@ -20,10 +20,12 @@ const GasTable = async () => { const etherscanApiKey = process.env.ETHERSCAN_API_KEY const gwei = await fetch( - `https://api.etherscan.io/v2/api?chainid=1&module=gastracker&action=gasoracle&apikey=${etherscanApiKey}` + `https://api.etherscan.io/v2/api?chainid=1&module=gastracker&action=gasoracle&apikey=${etherscanApiKey}`, + { cache: "force-cache" } ).then((res) => res.json()) const ethPrice = await fetch( - `https://api.etherscan.io/v2/api?chainid=1&module=stats&action=ethprice&apikey=${etherscanApiKey}` + `https://api.etherscan.io/v2/api?chainid=1&module=stats&action=ethprice&apikey=${etherscanApiKey}`, + { cache: "force-cache" } ).then((res) => res.json()) // Calculate transaction costs in USD From 877aeabb1cee599726b1f1b8d24dbe7d9ab2d38e Mon Sep 17 00:00:00 2001 From: Pablo Pettinari Date: Mon, 16 Mar 2026 20:24:48 +0100 Subject: [PATCH 10/14] fix naming and pattern inconsistencies across next 15 migration --- app/[locale]/_components/HomepageLazyImports.tsx | 8 ++++---- app/[locale]/bug-bounty/page.tsx | 5 +++-- app/[locale]/community/events/search/page.tsx | 3 ++- .../translatathon/leaderboard/page.tsx | 5 +++-- .../_components/{tutorials-lazy.tsx => TutorialsLazy.tsx} | 0 app/[locale]/developers/tutorials/page.tsx | 2 +- app/[locale]/layer-2/networks/page.tsx | 8 ++++---- app/[locale]/page.tsx | 4 ++-- app/[locale]/what-is-ether/page.tsx | 3 ++- 9 files changed, 21 insertions(+), 17 deletions(-) rename app/[locale]/developers/tutorials/_components/{tutorials-lazy.tsx => TutorialsLazy.tsx} (100%) diff --git a/app/[locale]/_components/HomepageLazyImports.tsx b/app/[locale]/_components/HomepageLazyImports.tsx index f1fbfe9c77a..b0fbb4920c7 100644 --- a/app/[locale]/_components/HomepageLazyImports.tsx +++ b/app/[locale]/_components/HomepageLazyImports.tsx @@ -1,11 +1,11 @@ "use client" -import nextDynamic from "next/dynamic" +import dynamic from "next/dynamic" import ValuesMarqueeFallback from "@/components/Homepage/ValuesMarquee/Fallback" import { Skeleton, SkeletonCardGrid } from "@/components/ui/skeleton" -export const BentoCardSwiper = nextDynamic( +export const BentoCardSwiper = dynamic( () => import("@/components/Homepage/BentoCardSwiper"), { ssr: false, @@ -18,7 +18,7 @@ export const BentoCardSwiper = nextDynamic( } ) -export const RecentPostsSwiper = nextDynamic( +export const RecentPostsSwiper = dynamic( () => import("@/components/Homepage/RecentPostsSwiper"), { ssr: false, @@ -31,7 +31,7 @@ export const RecentPostsSwiper = nextDynamic( } ) -export const ValuesMarquee = nextDynamic( +export const ValuesMarquee = dynamic( () => import("@/components/Homepage/ValuesMarquee"), { ssr: false, diff --git a/app/[locale]/bug-bounty/page.tsx b/app/[locale]/bug-bounty/page.tsx index 6bd9e310152..fafa72d60c0 100644 --- a/app/[locale]/bug-bounty/page.tsx +++ b/app/[locale]/bug-bounty/page.tsx @@ -109,8 +109,9 @@ const sortBountyHuntersFn = (a: BountyHuntersArg, b: BountyHuntersArg) => { return b.score - a.score } -export default async function Page({ params }: { params: Promise }) { - const { locale } = await params +export default async function Page(props: { params: Promise }) { + const params = await props.params + const { locale } = params const t = await getTranslations({ namespace: "page-bug-bounty" }) const tCommon = await getTranslations({ namespace: "common" }) diff --git a/app/[locale]/community/events/search/page.tsx b/app/[locale]/community/events/search/page.tsx index 64cd7d7ed88..8747e42e0f8 100644 --- a/app/[locale]/community/events/search/page.tsx +++ b/app/[locale]/community/events/search/page.tsx @@ -1,5 +1,5 @@ import { Info } from "lucide-react" -import { getTranslations } from "next-intl/server" +import { getTranslations, setRequestLocale } from "next-intl/server" import type { EventItem, PageParams } from "@/lib/types" @@ -25,6 +25,7 @@ const Page = async (props: { const searchParams = await props.searchParams const params = await props.params const { locale } = params + setRequestLocale(locale) const { q } = searchParams const _events = (await getEventsData()) ?? [] diff --git a/app/[locale]/contributing/translation-program/translatathon/leaderboard/page.tsx b/app/[locale]/contributing/translation-program/translatathon/leaderboard/page.tsx index d4401c05787..a24c135093e 100644 --- a/app/[locale]/contributing/translation-program/translatathon/leaderboard/page.tsx +++ b/app/[locale]/contributing/translation-program/translatathon/leaderboard/page.tsx @@ -19,8 +19,9 @@ import TranslatathonLeaderboardJsonLD from "./page-jsonld" import heroImg from "@/public/images/heroes/translatathon-hero.png" -const Page = async ({ params }: { params: Promise<{ locale: string }> }) => { - const { locale } = await params +const Page = async (props: { params: Promise<{ locale: string }> }) => { + const params = await props.params + const { locale } = params setRequestLocale(locale) diff --git a/app/[locale]/developers/tutorials/_components/tutorials-lazy.tsx b/app/[locale]/developers/tutorials/_components/TutorialsLazy.tsx similarity index 100% rename from app/[locale]/developers/tutorials/_components/tutorials-lazy.tsx rename to app/[locale]/developers/tutorials/_components/TutorialsLazy.tsx diff --git a/app/[locale]/developers/tutorials/page.tsx b/app/[locale]/developers/tutorials/page.tsx index 412158e64d0..72e0a516258 100644 --- a/app/[locale]/developers/tutorials/page.tsx +++ b/app/[locale]/developers/tutorials/page.tsx @@ -19,7 +19,7 @@ import { getMetadata } from "@/lib/utils/metadata" import { getRequiredNamespacesForPage } from "@/lib/utils/translations" import TutorialSubmitModal from "./_components/modal" -import TutorialsList from "./_components/tutorials-lazy" +import TutorialsList from "./_components/TutorialsLazy" import TutorialsPageJsonLD from "./page-jsonld" import heroImg from "@/public/images/doge-computer.png" diff --git a/app/[locale]/layer-2/networks/page.tsx b/app/[locale]/layer-2/networks/page.tsx index afee38d8890..01a5fa79cda 100644 --- a/app/[locale]/layer-2/networks/page.tsx +++ b/app/[locale]/layer-2/networks/page.tsx @@ -29,8 +29,8 @@ import { getL2beatData, } from "@/lib/data" -const Page = async (props0: { params: Promise }) => { - const params = await props0.params +const Page = async (props: { params: Promise }) => { + const params = await props.params const { locale } = params setRequestLocale(locale) @@ -117,7 +117,7 @@ const Page = async (props0: { params: Promise }) => { const requiredNamespaces = getRequiredNamespacesForPage("/layer-2/networks") const messages = pick(allMessages, requiredNamespaces) - const props = { + const layer2NetworksProps = { locale, layer2Data: layer2DataCompiled, mainnetData: { @@ -145,7 +145,7 @@ const Page = async (props0: { params: Promise }) => { contributors={contributors} /> - + ) diff --git a/app/[locale]/page.tsx b/app/[locale]/page.tsx index b3e3f66abd1..60a24349af6 100644 --- a/app/[locale]/page.tsx +++ b/app/[locale]/page.tsx @@ -96,8 +96,8 @@ import EventFallback from "@/public/images/events/event-placeholder.png" // Force dynamic rendering to read headers for A/B testing export const dynamic = "force-dynamic" -const Page = async (props0: { params: Promise }) => { - const params = await props0.params +const Page = async (props: { params: Promise }) => { + const params = await props.params const { locale } = params if (!LOCALES_CODES.includes(locale)) return notFound() diff --git a/app/[locale]/what-is-ether/page.tsx b/app/[locale]/what-is-ether/page.tsx index 2c63c8226df..372180ab00e 100644 --- a/app/[locale]/what-is-ether/page.tsx +++ b/app/[locale]/what-is-ether/page.tsx @@ -1,5 +1,5 @@ import { Landmark, SquareCode, User } from "lucide-react" -import { getTranslations } from "next-intl/server" +import { getTranslations, setRequestLocale } from "next-intl/server" import type { Lang, ToCItem } from "@/lib/types" @@ -36,6 +36,7 @@ import infrastructureTransparent from "@/public/images/infrastructure_transparen const Page = async (props: { params: Promise<{ locale: Lang }> }) => { const params = await props.params const { locale } = params + setRequestLocale(locale) const t = await getTranslations({ namespace: "page-what-is-ether", From 0a829ba471517d7e26e522dd0e9733c8cd092b3d Mon Sep 17 00:00:00 2001 From: Pablo Pettinari Date: Mon, 16 Mar 2026 20:27:47 +0100 Subject: [PATCH 11/14] remove force-dynamic from homepage, ab testing no longer used --- app/[locale]/page.tsx | 3 --- 1 file changed, 3 deletions(-) diff --git a/app/[locale]/page.tsx b/app/[locale]/page.tsx index 60a24349af6..e5957f20dc6 100644 --- a/app/[locale]/page.tsx +++ b/app/[locale]/page.tsx @@ -93,9 +93,6 @@ import { } from "@/lib/data" import EventFallback from "@/public/images/events/event-placeholder.png" -// Force dynamic rendering to read headers for A/B testing -export const dynamic = "force-dynamic" - const Page = async (props: { params: Promise }) => { const params = await props.params const { locale } = params From 28dfdfa6484dc8fd9bb548ab0b61753dffb1b997 Mon Sep 17 00:00:00 2001 From: Pablo Pettinari Date: Tue, 17 Mar 2026 10:22:01 +0100 Subject: [PATCH 12/14] remove redundant clientTraceMetadata, already set by @sentry/nextjs withSentryConfig --- next.config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/next.config.js b/next.config.js index 6896ee3605b..0ea38a70232 100644 --- a/next.config.js +++ b/next.config.js @@ -186,7 +186,7 @@ module.exports = (phase) => { ...nextConfig, experimental: { ...experimental, - clientTraceMetadata: ["sentry-trace", "baggage"], + // Restore client-side Router Cache (Next 15 defaults to 0s for dynamic pages) staleTimes: { dynamic: 30, static: 180 }, }, } From efc48e082a40a8ba5b5e7c4fc4eaa0b2d76fad0c Mon Sep 17 00:00:00 2001 From: Pablo Pettinari Date: Thu, 19 Mar 2026 13:46:32 +0100 Subject: [PATCH 13/14] restore staleTimes.static to next 14 default (300s) --- next.config.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/next.config.js b/next.config.js index 0ea38a70232..701a6d38dbb 100644 --- a/next.config.js +++ b/next.config.js @@ -186,8 +186,8 @@ module.exports = (phase) => { ...nextConfig, experimental: { ...experimental, - // Restore client-side Router Cache (Next 15 defaults to 0s for dynamic pages) - staleTimes: { dynamic: 30, static: 180 }, + // Restore client-side Router Cache durations to Next 14 defaults + staleTimes: { dynamic: 30, static: 300 }, }, } From 5f655552d113811e359d6348beadb26ef6b94c9f Mon Sep 17 00:00:00 2001 From: Pablo Pettinari Date: Thu, 19 Mar 2026 19:09:15 +0100 Subject: [PATCH 14/14] fix: restore async params pattern in events search page for next 15 + sentry compatibility --- app/[locale]/community/events/search/page.tsx | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/app/[locale]/community/events/search/page.tsx b/app/[locale]/community/events/search/page.tsx index 0f31b9e6169..3fd85249836 100644 --- a/app/[locale]/community/events/search/page.tsx +++ b/app/[locale]/community/events/search/page.tsx @@ -26,12 +26,9 @@ const safeDecodeURIComponent = (str: string) => { } } -const Page = async ({ - params, - searchParams, -}: { - params: PageParams - searchParams: { q?: string } +const Page = async (props: { + params: Promise + searchParams: Promise<{ q?: string }> }) => { const searchParams = await props.searchParams const params = await props.params