diff --git a/apps/dashboard/framer-rewrites.js b/apps/dashboard/framer-rewrites.js index cf11cb2ca7e..28d128377b5 100644 --- a/apps/dashboard/framer-rewrites.js +++ b/apps/dashboard/framer-rewrites.js @@ -11,6 +11,8 @@ module.exports = [ "/connect/sign-in", "/connect/account-abstraction", "/connect/universal-bridge", + "/connect/auth", + "/connect/in-app-wallets", // -- nebula "/nebula", // --insight diff --git a/apps/dashboard/package.json b/apps/dashboard/package.json index a8d0854c7f5..da0977abbe1 100644 --- a/apps/dashboard/package.json +++ b/apps/dashboard/package.json @@ -29,7 +29,6 @@ "@emotion/styled": "11.14.0", "@hookform/resolvers": "^3.9.1", "@marsidev/react-turnstile": "^1.1.0", - "@n8tb1t/use-scroll-position": "^2.0.3", "@radix-ui/react-accordion": "^1.2.3", "@radix-ui/react-alert-dialog": "^1.1.6", "@radix-ui/react-avatar": "^1.1.3", diff --git a/apps/dashboard/public/assets/dashboard/features/analytics.png b/apps/dashboard/public/assets/dashboard/features/analytics.png deleted file mode 100644 index dfec42ebcb1..00000000000 Binary files a/apps/dashboard/public/assets/dashboard/features/analytics.png and /dev/null differ diff --git a/apps/dashboard/public/assets/landingpage/analytics.png b/apps/dashboard/public/assets/landingpage/analytics.png deleted file mode 100644 index 8d8641ce266..00000000000 Binary files a/apps/dashboard/public/assets/landingpage/analytics.png and /dev/null differ diff --git a/apps/dashboard/public/assets/landingpage/connect-icon.png b/apps/dashboard/public/assets/landingpage/connect-icon.png deleted file mode 100644 index b9738457f4e..00000000000 Binary files a/apps/dashboard/public/assets/landingpage/connect-icon.png and /dev/null differ diff --git a/apps/dashboard/public/assets/landingpage/contracts-icon.png b/apps/dashboard/public/assets/landingpage/contracts-icon.png deleted file mode 100644 index be595d9b583..00000000000 Binary files a/apps/dashboard/public/assets/landingpage/contracts-icon.png and /dev/null differ diff --git a/apps/dashboard/public/assets/landingpage/desktop/analytics.png b/apps/dashboard/public/assets/landingpage/desktop/analytics.png deleted file mode 100644 index 16502b64c61..00000000000 Binary files a/apps/dashboard/public/assets/landingpage/desktop/analytics.png and /dev/null differ diff --git a/apps/dashboard/public/assets/landingpage/desktop/cross-platform.png b/apps/dashboard/public/assets/landingpage/desktop/cross-platform.png deleted file mode 100644 index 4b1b9080dcf..00000000000 Binary files a/apps/dashboard/public/assets/landingpage/desktop/cross-platform.png and /dev/null differ diff --git a/apps/dashboard/public/assets/landingpage/desktop/enterprise-security.png b/apps/dashboard/public/assets/landingpage/desktop/enterprise-security.png deleted file mode 100644 index 3f719f13995..00000000000 Binary files a/apps/dashboard/public/assets/landingpage/desktop/enterprise-security.png and /dev/null differ diff --git a/apps/dashboard/public/assets/landingpage/desktop/magic.png b/apps/dashboard/public/assets/landingpage/desktop/magic.png deleted file mode 100644 index 42fae280795..00000000000 Binary files a/apps/dashboard/public/assets/landingpage/desktop/magic.png and /dev/null differ diff --git a/apps/dashboard/public/assets/landingpage/desktop/onboard.png b/apps/dashboard/public/assets/landingpage/desktop/onboard.png deleted file mode 100644 index 0fa55bf6167..00000000000 Binary files a/apps/dashboard/public/assets/landingpage/desktop/onboard.png and /dev/null differ diff --git a/apps/dashboard/public/assets/landingpage/desktop/powerful.png b/apps/dashboard/public/assets/landingpage/desktop/powerful.png deleted file mode 100644 index 5c1bd1e8515..00000000000 Binary files a/apps/dashboard/public/assets/landingpage/desktop/powerful.png and /dev/null differ diff --git a/apps/dashboard/public/assets/landingpage/desktop/siwe.png b/apps/dashboard/public/assets/landingpage/desktop/siwe.png deleted file mode 100644 index 66f75c43780..00000000000 Binary files a/apps/dashboard/public/assets/landingpage/desktop/siwe.png and /dev/null differ diff --git a/apps/dashboard/public/assets/landingpage/engine-icon.png b/apps/dashboard/public/assets/landingpage/engine-icon.png deleted file mode 100644 index bb83199f0a6..00000000000 Binary files a/apps/dashboard/public/assets/landingpage/engine-icon.png and /dev/null differ diff --git a/apps/dashboard/public/assets/landingpage/mobile/analytics.png b/apps/dashboard/public/assets/landingpage/mobile/analytics.png deleted file mode 100644 index ae364c98864..00000000000 Binary files a/apps/dashboard/public/assets/landingpage/mobile/analytics.png and /dev/null differ diff --git a/apps/dashboard/public/assets/landingpage/mobile/backend.png b/apps/dashboard/public/assets/landingpage/mobile/backend.png deleted file mode 100644 index 1801db186d9..00000000000 Binary files a/apps/dashboard/public/assets/landingpage/mobile/backend.png and /dev/null differ diff --git a/apps/dashboard/public/assets/landingpage/mobile/cross-platform.png b/apps/dashboard/public/assets/landingpage/mobile/cross-platform.png deleted file mode 100644 index e8e0a5c771d..00000000000 Binary files a/apps/dashboard/public/assets/landingpage/mobile/cross-platform.png and /dev/null differ diff --git a/apps/dashboard/public/assets/landingpage/mobile/enterprise-security.png b/apps/dashboard/public/assets/landingpage/mobile/enterprise-security.png deleted file mode 100644 index fd8bb363301..00000000000 Binary files a/apps/dashboard/public/assets/landingpage/mobile/enterprise-security.png and /dev/null differ diff --git a/apps/dashboard/public/assets/landingpage/mobile/magic.png b/apps/dashboard/public/assets/landingpage/mobile/magic.png deleted file mode 100644 index d9affbab7ba..00000000000 Binary files a/apps/dashboard/public/assets/landingpage/mobile/magic.png and /dev/null differ diff --git a/apps/dashboard/public/assets/landingpage/mobile/onboard.png b/apps/dashboard/public/assets/landingpage/mobile/onboard.png deleted file mode 100644 index 0019e14852a..00000000000 Binary files a/apps/dashboard/public/assets/landingpage/mobile/onboard.png and /dev/null differ diff --git a/apps/dashboard/public/assets/landingpage/mobile/powerful.png b/apps/dashboard/public/assets/landingpage/mobile/powerful.png deleted file mode 100644 index 1acf27c90c4..00000000000 Binary files a/apps/dashboard/public/assets/landingpage/mobile/powerful.png and /dev/null differ diff --git a/apps/dashboard/public/assets/landingpage/mobile/siwe.png b/apps/dashboard/public/assets/landingpage/mobile/siwe.png deleted file mode 100644 index 31534c87a0d..00000000000 Binary files a/apps/dashboard/public/assets/landingpage/mobile/siwe.png and /dev/null differ diff --git a/apps/dashboard/public/assets/landingpage/verified.svg b/apps/dashboard/public/assets/landingpage/verified.svg deleted file mode 100644 index 35cbada67db..00000000000 --- a/apps/dashboard/public/assets/landingpage/verified.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/apps/dashboard/public/assets/og-image/embedded-wallets.png b/apps/dashboard/public/assets/og-image/embedded-wallets.png deleted file mode 100644 index f5fadd93b41..00000000000 Binary files a/apps/dashboard/public/assets/og-image/embedded-wallets.png and /dev/null differ diff --git a/apps/dashboard/public/assets/partners/paper.png b/apps/dashboard/public/assets/partners/paper.png deleted file mode 100644 index 2bb0f408dc3..00000000000 Binary files a/apps/dashboard/public/assets/partners/paper.png and /dev/null differ diff --git a/apps/dashboard/public/assets/product-icons/cli.svg b/apps/dashboard/public/assets/product-icons/cli.svg deleted file mode 100644 index 4a380c2dca2..00000000000 --- a/apps/dashboard/public/assets/product-icons/cli.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/apps/dashboard/public/assets/product-icons/dashboard.svg b/apps/dashboard/public/assets/product-icons/dashboard.svg deleted file mode 100644 index c4cae3cf0dc..00000000000 --- a/apps/dashboard/public/assets/product-icons/dashboard.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/apps/dashboard/public/assets/product-icons/net.svg b/apps/dashboard/public/assets/product-icons/net.svg deleted file mode 100644 index d204a090424..00000000000 --- a/apps/dashboard/public/assets/product-icons/net.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/apps/dashboard/public/assets/product-icons/react.svg b/apps/dashboard/public/assets/product-icons/react.svg deleted file mode 100644 index 21e3e4033f5..00000000000 --- a/apps/dashboard/public/assets/product-icons/react.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/apps/dashboard/public/assets/product-icons/solidity.svg b/apps/dashboard/public/assets/product-icons/solidity.svg deleted file mode 100644 index cc6494df80b..00000000000 --- a/apps/dashboard/public/assets/product-icons/solidity.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/apps/dashboard/public/assets/product-icons/typescript.svg b/apps/dashboard/public/assets/product-icons/typescript.svg deleted file mode 100644 index 78843d600e2..00000000000 --- a/apps/dashboard/public/assets/product-icons/typescript.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/dashboard/public/assets/product-icons/unity.svg b/apps/dashboard/public/assets/product-icons/unity.svg deleted file mode 100644 index 07b65e93fb7..00000000000 --- a/apps/dashboard/public/assets/product-icons/unity.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/dashboard/public/assets/product-pages-icons/contracts/icon-build.svg b/apps/dashboard/public/assets/product-pages-icons/contracts/icon-build.svg deleted file mode 100644 index fcae9f3b4df..00000000000 --- a/apps/dashboard/public/assets/product-pages-icons/contracts/icon-build.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/dashboard/public/assets/product-pages-icons/contracts/icon-secure.svg b/apps/dashboard/public/assets/product-pages-icons/contracts/icon-secure.svg deleted file mode 100644 index 9ccba2a1147..00000000000 --- a/apps/dashboard/public/assets/product-pages-icons/contracts/icon-secure.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/dashboard/public/assets/product-pages-icons/contracts/icon-simple-click.svg b/apps/dashboard/public/assets/product-pages-icons/contracts/icon-simple-click.svg deleted file mode 100644 index 4b94d719292..00000000000 --- a/apps/dashboard/public/assets/product-pages-icons/contracts/icon-simple-click.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/dashboard/public/assets/product-pages-icons/contracts/icon-verified.svg b/apps/dashboard/public/assets/product-pages-icons/contracts/icon-verified.svg deleted file mode 100644 index 957dc80c3e5..00000000000 --- a/apps/dashboard/public/assets/product-pages-icons/contracts/icon-verified.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/dashboard/public/assets/product-pages-icons/infra/icon-efficient.svg b/apps/dashboard/public/assets/product-pages-icons/infra/icon-efficient.svg deleted file mode 100644 index 06d1bba2be7..00000000000 --- a/apps/dashboard/public/assets/product-pages-icons/infra/icon-efficient.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/dashboard/public/assets/product-pages-icons/infra/icon-verified.svg b/apps/dashboard/public/assets/product-pages-icons/infra/icon-verified.svg deleted file mode 100644 index 921be140f75..00000000000 --- a/apps/dashboard/public/assets/product-pages-icons/infra/icon-verified.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/dashboard/public/assets/product-pages-icons/payments/icon-efficient.svg b/apps/dashboard/public/assets/product-pages-icons/payments/icon-efficient.svg deleted file mode 100644 index 373820f82fd..00000000000 --- a/apps/dashboard/public/assets/product-pages-icons/payments/icon-efficient.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/dashboard/public/assets/product-pages-icons/payments/icon-private.svg b/apps/dashboard/public/assets/product-pages-icons/payments/icon-private.svg deleted file mode 100644 index b149180cc3a..00000000000 --- a/apps/dashboard/public/assets/product-pages-icons/payments/icon-private.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/dashboard/public/assets/product-pages-icons/payments/icon-secure.svg b/apps/dashboard/public/assets/product-pages-icons/payments/icon-secure.svg deleted file mode 100644 index b5d790946b0..00000000000 --- a/apps/dashboard/public/assets/product-pages-icons/payments/icon-secure.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/dashboard/public/assets/product-pages-icons/payments/icon-simple-click.svg b/apps/dashboard/public/assets/product-pages-icons/payments/icon-simple-click.svg deleted file mode 100644 index 6117b708a0a..00000000000 --- a/apps/dashboard/public/assets/product-pages-icons/payments/icon-simple-click.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/dashboard/public/assets/product-pages-icons/wallets/icon-build.svg b/apps/dashboard/public/assets/product-pages-icons/wallets/icon-build.svg deleted file mode 100644 index 66c54aca38f..00000000000 --- a/apps/dashboard/public/assets/product-pages-icons/wallets/icon-build.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/dashboard/public/assets/product-pages-icons/wallets/icon-data-check.svg b/apps/dashboard/public/assets/product-pages-icons/wallets/icon-data-check.svg deleted file mode 100644 index 0874f623be5..00000000000 --- a/apps/dashboard/public/assets/product-pages-icons/wallets/icon-data-check.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/dashboard/public/assets/product-pages-icons/wallets/icon-efficient.svg b/apps/dashboard/public/assets/product-pages-icons/wallets/icon-efficient.svg deleted file mode 100644 index 9c34541ef37..00000000000 --- a/apps/dashboard/public/assets/product-pages-icons/wallets/icon-efficient.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/dashboard/public/assets/product-pages-icons/wallets/icon-private.svg b/apps/dashboard/public/assets/product-pages-icons/wallets/icon-private.svg deleted file mode 100644 index 1544c86ac4f..00000000000 --- a/apps/dashboard/public/assets/product-pages-icons/wallets/icon-private.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/dashboard/public/assets/product-pages-icons/wallets/icon-secure.svg b/apps/dashboard/public/assets/product-pages-icons/wallets/icon-secure.svg deleted file mode 100644 index c29920f8fad..00000000000 --- a/apps/dashboard/public/assets/product-pages-icons/wallets/icon-secure.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/dashboard/public/assets/product-pages-icons/wallets/icon-simple-click.svg b/apps/dashboard/public/assets/product-pages-icons/wallets/icon-simple-click.svg deleted file mode 100644 index 6fec34fbb77..00000000000 --- a/apps/dashboard/public/assets/product-pages-icons/wallets/icon-simple-click.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/dashboard/public/assets/product-pages-icons/wallets/icon-verified.svg b/apps/dashboard/public/assets/product-pages-icons/wallets/icon-verified.svg deleted file mode 100644 index 35dc3a1efed..00000000000 --- a/apps/dashboard/public/assets/product-pages-icons/wallets/icon-verified.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/dashboard/public/assets/product-pages-icons/wallets/icon-wallet-management.svg b/apps/dashboard/public/assets/product-pages-icons/wallets/icon-wallet-management.svg deleted file mode 100644 index a4d51648952..00000000000 --- a/apps/dashboard/public/assets/product-pages-icons/wallets/icon-wallet-management.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/dashboard/public/assets/product-pages/connect/get-started.png b/apps/dashboard/public/assets/product-pages/connect/get-started.png deleted file mode 100644 index 64ed7ee80d4..00000000000 Binary files a/apps/dashboard/public/assets/product-pages/connect/get-started.png and /dev/null differ diff --git a/apps/dashboard/public/assets/product-pages/embedded-wallets/cross-platform.png b/apps/dashboard/public/assets/product-pages/embedded-wallets/cross-platform.png deleted file mode 100644 index ba5f2d78600..00000000000 Binary files a/apps/dashboard/public/assets/product-pages/embedded-wallets/cross-platform.png and /dev/null differ diff --git a/apps/dashboard/public/assets/product-pages/embedded-wallets/paper.png b/apps/dashboard/public/assets/product-pages/embedded-wallets/paper.png deleted file mode 100644 index a9da6a8437c..00000000000 Binary files a/apps/dashboard/public/assets/product-pages/embedded-wallets/paper.png and /dev/null differ diff --git a/apps/dashboard/public/assets/product-pages/embedded-wallets/seamless.png b/apps/dashboard/public/assets/product-pages/embedded-wallets/seamless.png deleted file mode 100644 index 44056bc7533..00000000000 Binary files a/apps/dashboard/public/assets/product-pages/embedded-wallets/seamless.png and /dev/null differ diff --git a/apps/dashboard/public/assets/product-pages/hero/desktop-hero-auth.png b/apps/dashboard/public/assets/product-pages/hero/desktop-hero-auth.png deleted file mode 100644 index 38887c5192e..00000000000 Binary files a/apps/dashboard/public/assets/product-pages/hero/desktop-hero-auth.png and /dev/null differ diff --git a/apps/dashboard/public/assets/product-pages/hero/desktop-hero-embedded-wallets.png b/apps/dashboard/public/assets/product-pages/hero/desktop-hero-embedded-wallets.png deleted file mode 100644 index 15cd6299577..00000000000 Binary files a/apps/dashboard/public/assets/product-pages/hero/desktop-hero-embedded-wallets.png and /dev/null differ diff --git a/apps/dashboard/public/assets/product-pages/hero/mobile-hero-auth.png b/apps/dashboard/public/assets/product-pages/hero/mobile-hero-auth.png deleted file mode 100644 index 7590338852e..00000000000 Binary files a/apps/dashboard/public/assets/product-pages/hero/mobile-hero-auth.png and /dev/null differ diff --git a/apps/dashboard/public/assets/product-pages/hero/mobile-hero-embedded-wallets.png b/apps/dashboard/public/assets/product-pages/hero/mobile-hero-embedded-wallets.png deleted file mode 100644 index 12890f40938..00000000000 Binary files a/apps/dashboard/public/assets/product-pages/hero/mobile-hero-embedded-wallets.png and /dev/null differ diff --git a/apps/dashboard/public/assets/product-pages/mission/icon-simple-click.svg b/apps/dashboard/public/assets/product-pages/mission/icon-simple-click.svg deleted file mode 100644 index 5741eee7182..00000000000 --- a/apps/dashboard/public/assets/product-pages/mission/icon-simple-click.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/dashboard/public/assets/product-pages/smart-wallet/get-started.png b/apps/dashboard/public/assets/product-pages/smart-wallet/get-started.png deleted file mode 100644 index bd8e13a8dd4..00000000000 Binary files a/apps/dashboard/public/assets/product-pages/smart-wallet/get-started.png and /dev/null differ diff --git a/apps/dashboard/public/assets/solutions-icons/chains.svg b/apps/dashboard/public/assets/solutions-icons/chains.svg deleted file mode 100644 index 7eb0632b377..00000000000 --- a/apps/dashboard/public/assets/solutions-icons/chains.svg +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/apps/dashboard/public/assets/solutions-icons/gaming.svg b/apps/dashboard/public/assets/solutions-icons/gaming.svg deleted file mode 100644 index d1084004b22..00000000000 --- a/apps/dashboard/public/assets/solutions-icons/gaming.svg +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - diff --git a/apps/dashboard/public/assets/solutions-pages/icons/icon-build.svg b/apps/dashboard/public/assets/solutions-pages/icons/icon-build.svg deleted file mode 100644 index 3b3bd492f2e..00000000000 --- a/apps/dashboard/public/assets/solutions-pages/icons/icon-build.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/dashboard/public/assets/solutions-pages/icons/icon-efficient.svg b/apps/dashboard/public/assets/solutions-pages/icons/icon-efficient.svg deleted file mode 100644 index 8598dd51be5..00000000000 --- a/apps/dashboard/public/assets/solutions-pages/icons/icon-efficient.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/dashboard/public/assets/solutions-pages/icons/icon-simple-click.svg b/apps/dashboard/public/assets/solutions-pages/icons/icon-simple-click.svg deleted file mode 100644 index 72e4a731055..00000000000 --- a/apps/dashboard/public/assets/solutions-pages/icons/icon-simple-click.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/dashboard/public/assets/solutions-pages/icons/icon-verified.svg b/apps/dashboard/public/assets/solutions-pages/icons/icon-verified.svg deleted file mode 100644 index fdc67dcb7f1..00000000000 --- a/apps/dashboard/public/assets/solutions-pages/icons/icon-verified.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/apps/dashboard/public/assets/support/discord-illustration.png b/apps/dashboard/public/assets/support/discord-illustration.png deleted file mode 100644 index bf9f4090729..00000000000 Binary files a/apps/dashboard/public/assets/support/discord-illustration.png and /dev/null differ diff --git a/apps/dashboard/public/assets/tw-icons/analytics.png b/apps/dashboard/public/assets/tw-icons/analytics.png deleted file mode 100644 index 2fa8d2ba62f..00000000000 Binary files a/apps/dashboard/public/assets/tw-icons/analytics.png and /dev/null differ diff --git a/apps/dashboard/public/assets/tw-icons/datastore.png b/apps/dashboard/public/assets/tw-icons/datastore.png deleted file mode 100644 index 7b2a4bcd11c..00000000000 Binary files a/apps/dashboard/public/assets/tw-icons/datastore.png and /dev/null differ diff --git a/apps/dashboard/public/assets/tw-icons/docs.svg b/apps/dashboard/public/assets/tw-icons/docs.svg deleted file mode 100644 index cd487e0228d..00000000000 --- a/apps/dashboard/public/assets/tw-icons/docs.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/apps/dashboard/public/assets/tw-icons/guides.svg b/apps/dashboard/public/assets/tw-icons/guides.svg deleted file mode 100644 index ee525070b13..00000000000 --- a/apps/dashboard/public/assets/tw-icons/guides.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/apps/dashboard/public/assets/tw-icons/mission.svg b/apps/dashboard/public/assets/tw-icons/mission.svg deleted file mode 100644 index c8697f4a74f..00000000000 --- a/apps/dashboard/public/assets/tw-icons/mission.svg +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/apps/dashboard/public/assets/tw-icons/opensource.svg b/apps/dashboard/public/assets/tw-icons/opensource.svg deleted file mode 100644 index a9c46afca49..00000000000 --- a/apps/dashboard/public/assets/tw-icons/opensource.svg +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/apps/dashboard/public/assets/tw-icons/templates.svg b/apps/dashboard/public/assets/tw-icons/templates.svg deleted file mode 100644 index 1a4e7cda68b..00000000000 --- a/apps/dashboard/public/assets/tw-icons/templates.svg +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - diff --git a/apps/dashboard/redirects.js b/apps/dashboard/redirects.js index d8d6b6bf612..f8d57d0c928 100644 --- a/apps/dashboard/redirects.js +++ b/apps/dashboard/redirects.js @@ -343,6 +343,18 @@ async function redirects() { destination: "/connect/universal-bridge", permanent: false, }, + // redirect /auth to /connect/auth + { + source: "/auth", + destination: "/connect/auth", + permanent: false, + }, + // redirect /in-app-wallets to /connect/in-app-wallets + { + source: "/in-app-wallets", + destination: "/connect/in-app-wallets", + permanent: false, + }, // PREVIOUS CAMPAIGNS { source: "/unlimited-wallets", diff --git a/apps/dashboard/src/@/actions/emailSignup.ts b/apps/dashboard/src/@/actions/emailSignup.ts deleted file mode 100644 index fdd03cf3a7b..00000000000 --- a/apps/dashboard/src/@/actions/emailSignup.ts +++ /dev/null @@ -1,28 +0,0 @@ -"use server"; - -type EmailSignupParams = { - email: string; - send_welcome_email?: boolean; -}; - -export async function emailSignup(payLoad: EmailSignupParams) { - const response = await fetch( - "https://api.beehiiv.com/v2/publications/pub_9f54090a-6d14-406b-adfd-dbb30574f664/subscriptions", - { - headers: { - "Content-Type": "application/json", - Authorization: `Bearer ${process.env.BEEHIIV_API_KEY}`, - }, - method: "POST", - body: JSON.stringify({ - email: payLoad.email, - send_welcome_email: payLoad.send_welcome_email || false, - utm_source: "thirdweb.com", - }), - }, - ); - - return { - status: response.status, - }; -} diff --git a/apps/dashboard/src/@/components/theme-provider.tsx b/apps/dashboard/src/@/components/theme-provider.tsx deleted file mode 100644 index ff51fff87de..00000000000 --- a/apps/dashboard/src/@/components/theme-provider.tsx +++ /dev/null @@ -1,18 +0,0 @@ -"use client"; - -import { ThemeProvider as NextThemesProvider, useTheme } from "next-themes"; -import type { ThemeProviderProps } from "next-themes"; -import { useEffect } from "react"; - -export function ThemeProvider({ children, ...props }: ThemeProviderProps) { - return {children}; -} - -export function useForceDarkTheme() { - const { setTheme } = useTheme(); - - // eslint-disable-next-line no-restricted-syntax - useEffect(() => { - setTheme("dark"); - }, [setTheme]); -} diff --git a/apps/dashboard/src/app/(landing)/ThemeProvider.tsx b/apps/dashboard/src/app/(landing)/ThemeProvider.tsx deleted file mode 100644 index 89bac3ab6e7..00000000000 --- a/apps/dashboard/src/app/(landing)/ThemeProvider.tsx +++ /dev/null @@ -1,119 +0,0 @@ -"use client"; - -import { ThemeProvider } from "@/components/theme-provider"; -import { useForceDarkTheme } from "@/components/theme-provider"; -import { ChakraProvider, useColorMode } from "@chakra-ui/react"; -import { Global, css } from "@emotion/react"; -import { useTheme } from "next-themes"; -import { - IBM_Plex_Mono as ibmPlexMonoConstructor, - Inter as interConstructor, -} from "next/font/google"; -import { useEffect } from "react"; -import { generateBreakpointTypographyCssVars } from "tw-components/utils/typography"; -import chakraTheme from "../../theme"; - -const inter = interConstructor({ - subsets: ["latin"], - display: "swap", - fallback: ["system-ui", "Helvetica Neue", "Arial", "sans-serif"], - adjustFontFallback: true, -}); - -const ibmPlexMono = ibmPlexMonoConstructor({ - weight: ["400", "500", "600", "700"], - subsets: ["latin"], - display: "swap", - fallback: ["Consolas", "Courier New", "monospace"], -}); - -const fontSizeCssVars = generateBreakpointTypographyCssVars(); - -const chakraThemeWithFonts = { - ...chakraTheme, - fonts: { - ...chakraTheme.fonts, - heading: inter.style.fontFamily, - body: inter.style.fontFamily, - mono: ibmPlexMono.style.fontFamily, - }, -}; - -export function LandingPageThemeProvider(props: { - children: React.ReactNode; -}) { - return ( - - div > svg { - font-size: 10px !important; - } - `} - /> - - {props.children} - - - - - ); -} - -function TailwindTheme(props: { children: React.ReactNode }) { - return ( - - {props.children} - - ); -} - -const SyncTheme: React.FC = () => { - const { theme, setTheme } = useTheme(); - const { setColorMode } = useColorMode(); - // eslint-disable-next-line no-restricted-syntax - useEffect(() => { - setColorMode(theme === "light" ? "light" : "dark"); - }, [setColorMode, theme]); - - // handle dashboard with now old "system" set - // eslint-disable-next-line no-restricted-syntax - useEffect(() => { - if (theme === "system") { - setTheme("dark"); - setColorMode("dark"); - } - }, [theme, setTheme, setColorMode]); - - return null; -}; - -function ForceDarkTheme() { - useForceDarkTheme(); - return null; -} diff --git a/apps/dashboard/src/app/(landing)/auth/page.tsx b/apps/dashboard/src/app/(landing)/auth/page.tsx deleted file mode 100644 index 27038fdb2b6..00000000000 --- a/apps/dashboard/src/app/(landing)/auth/page.tsx +++ /dev/null @@ -1,210 +0,0 @@ -import { Container, Flex } from "@chakra-ui/react"; -import { LandingEndCTA } from "components/landing-pages/end-cta"; -import { LandingGridSection } from "components/landing-pages/grid-section"; -import { LandingGuidesShowcase } from "components/landing-pages/guide-showcase"; -import { LandingHeroWithSideImage } from "components/landing-pages/hero-with-side-image"; -import { LandingIconSectionItem } from "components/landing-pages/icon-section-item"; -import { LandingSectionHeading } from "components/landing-pages/section-heading"; -import type { Metadata } from "next"; -import { Card, TrackedLink } from "tw-components"; -// images -import authIcon from "../../../../public/assets/product-icons/auth.png"; -import iconBuild from "../../../../public/assets/product-pages-icons/wallets/icon-build.svg"; -import iconDataCheck from "../../../../public/assets/product-pages-icons/wallets/icon-data-check.svg"; -import iconEfficient from "../../../../public/assets/product-pages-icons/wallets/icon-efficient.svg"; -import iconPrivate from "../../../../public/assets/product-pages-icons/wallets/icon-private.svg"; -import iconSecure from "../../../../public/assets/product-pages-icons/wallets/icon-secure.svg"; -import iconSimpleClick from "../../../../public/assets/product-pages-icons/wallets/icon-simple-click.svg"; -import iconVerified from "../../../../public/assets/product-pages-icons/wallets/icon-verified.svg"; -import iconWalletManagement from "../../../../public/assets/product-pages-icons/wallets/icon-wallet-management.svg"; -// images -import desktopHeroAuthImage from "../../../../public/assets/product-pages/hero/desktop-hero-auth.png"; -import mobileHeroAuthImage from "../../../../public/assets/product-pages/hero/mobile-hero-auth.png"; -import { getAbsoluteUrl } from "../../../lib/vercel-utils"; - -const TRACKING_CATEGORY = "auth-landing"; - -const GUIDES = [ - { - title: "How to Build a Web3 Creator Platform with a Web2 Backend", - image: - "https://blog.thirdweb.com/content/images/size/w2000/2023/03/How-to-create-a-web3-creator----platform-with-a-web2-backend.png", - link: "https://blog.thirdweb.com/guides/how-to-create-a-web3-creator-platform/", - }, - { - title: "Create An NFT Gated Website", - image: - "https://blog.thirdweb.com/content/images/size/w2000/2022/08/thumbnail-31.png", - link: "https://blog.thirdweb.com/guides/nft-gated-website/", - }, - { - title: "Accept Stripe Subscription Payments For Your Web3 App", - image: - "https://blog.thirdweb.com/content/images/size/w2000/2023/03/Add-stripe-subscriptions--with-web3-auth-2.png", - link: "https://blog.thirdweb.com/guides/add-stripe-subscriptions-with-web3-auth/", - }, -]; - -const title = "The Complete Toolkit for Web3 Authentication"; -const description = - "Auth for the most popular web3 wallets & web2 login flows. Verify your users' identities & prove wallet ownership to off-chain systems."; - -export const metadata: Metadata = { - title, - description, - openGraph: { - title, - description, - images: [ - { - url: `${getAbsoluteUrl()}/assets/og-image/auth.png`, - width: 1200, - height: 630, - }, - ], - }, -}; - -export default function Page() { - return ( - - - - - - - - - - - - Built on the SIWE ( - - Sign-in with Ethereum - - ) standard. Securely verify a user's on-chain identity, - without relying on a centralized database to verify their - identity. - - } - /> - - - - - - - Secure your backend with a web3-compatible authentication system - compliant with the widely used{" "} - - JSON Web Token - {" "} - standard. - - } - /> - - - - - } - > - - - - - - - - - - - - - - - - ); -} diff --git a/apps/dashboard/src/app/(landing)/in-app-wallets/page.tsx b/apps/dashboard/src/app/(landing)/in-app-wallets/page.tsx deleted file mode 100644 index 125aa9fa0be..00000000000 --- a/apps/dashboard/src/app/(landing)/in-app-wallets/page.tsx +++ /dev/null @@ -1,260 +0,0 @@ -import { Container, Flex } from "@chakra-ui/react"; -import { ChakraNextImage } from "components/Image"; -import { LandingCardWithImage } from "components/landing-pages/card-with-image"; -import { LandingDynamicSelector } from "components/landing-pages/dynamic-selector"; -import { LandingEndCTA } from "components/landing-pages/end-cta"; -import { LandingGridSection } from "components/landing-pages/grid-section"; -import { LandingGuidesShowcase } from "components/landing-pages/guide-showcase"; -import { LandingHeroWithSideImage } from "components/landing-pages/hero-with-side-image"; -import { getAbsoluteUrl } from "lib/vercel-utils"; -import type { Metadata } from "next"; -import { Heading } from "tw-components"; -// images -import analyticsImage from "../../../../public/assets/landingpage/desktop/analytics.png"; -import authDesktopImage from "../../../../public/assets/landingpage/desktop/auth.png"; -import crossPlatformDesktopImage from "../../../../public/assets/landingpage/desktop/cross-platform.png"; -import enterpriseSecurityImage from "../../../../public/assets/landingpage/desktop/enterprise-security.png"; -import magicImage from "../../../../public/assets/landingpage/desktop/magic.png"; -import onboardImage from "../../../../public/assets/landingpage/desktop/onboard.png"; -import powerfulImage from "../../../../public/assets/landingpage/desktop/powerful.png"; -import siweImage from "../../../../public/assets/landingpage/desktop/siwe.png"; -import walletImage from "../../../../public/assets/landingpage/desktop/wallet.png"; -import analyticsMobileImage from "../../../../public/assets/landingpage/mobile/analytics.png"; -import authMobileImage from "../../../../public/assets/landingpage/mobile/auth.png"; -import crossPlatformMobileImage from "../../../../public/assets/landingpage/mobile/cross-platform.png"; -import enterpriseSecurityMobileImage from "../../../../public/assets/landingpage/mobile/enterprise-security.png"; -import magicMobileImage from "../../../../public/assets/landingpage/mobile/magic.png"; -import mobileOnboardImage from "../../../../public/assets/landingpage/mobile/onboard.png"; -import powerfulMobileImage from "../../../../public/assets/landingpage/mobile/powerful.png"; -import siweMobileImage from "../../../../public/assets/landingpage/mobile/siwe.png"; -import walletMobileImage from "../../../../public/assets/landingpage/mobile/wallet.png"; -import embeddedWalletIcon from "../../../../public/assets/product-icons/embedded-wallet.png"; -import authImage from "../../../../public/assets/product-pages/embedded-wallets/auth.png"; -import crossPlatformImage from "../../../../public/assets/product-pages/embedded-wallets/cross-platform.png"; -import embeddedWalletImage from "../../../../public/assets/product-pages/embedded-wallets/embedded-wallet.png"; -import paperImage from "../../../../public/assets/product-pages/embedded-wallets/paper.png"; -import seamlessImage from "../../../../public/assets/product-pages/embedded-wallets/seamless.png"; -import desktopHeroEmbeddedWalletsImage from "../../../../public/assets/product-pages/hero/desktop-hero-embedded-wallets.png"; -import mobileHeroEmbeddedWalletsImage from "../../../../public/assets/product-pages/hero/mobile-hero-embedded-wallets.png"; -import getStartedImage from "../../../../public/assets/product-pages/smart-wallet/get-started.png"; - -const TRACKING_CATEGORY = "embedded-wallets-landing"; - -const GUIDES = [ - { - title: "Docs: In-App Wallets Overview", - image: embeddedWalletImage, - link: "https://portal.thirdweb.com/connect/in-app-wallet/overview", - }, - { - title: "Live Demo: In-App Wallets", - image: paperImage, - link: "https://catattack.thirdweb.com", - }, - { - title: "Quick-Start Template: In-App Wallet + Account Abstraction", - image: getStartedImage, - link: "https://github.com/thirdweb-example/embedded-smart-wallet", - }, -]; - -const title = "In-App Wallets: Onboard Everyone to your App"; -const description = - "Onboard anyone with an email or Google account—with 1-click login flows, flexible auth options, & secure account recovery. Learn more."; - -export const metadata: Metadata = { - title, - description, - openGraph: { - title, - description, - images: [ - { - url: `${getAbsoluteUrl()}/assets/og-image/embedded-wallets.png`, - width: 1200, - height: 630, - }, - ], - }, -}; - -export default function Page() { - return ( - - - - - ), - }, - { - title: "Integrate with your own custom auth", - description: - "Spin up in-app wallets for your users with your app or game's existing auth system.", - Component: ( - - ), - }, - { - title: "Cross-platform support", - description: - "Enable users to log into their accounts (and access their wallets) from any device, in one click. Support for web, mobile, & Unity.", - Component: ( - - ), - }, - ]} - /> - - - - Abstract away complexity for your users - - - } - > - - - - - - - - - - - - - - - - - - - - - - - - ); -} diff --git a/apps/dashboard/src/app/(landing)/layout.tsx b/apps/dashboard/src/app/(landing)/layout.tsx deleted file mode 100644 index c43a80acff7..00000000000 --- a/apps/dashboard/src/app/(landing)/layout.tsx +++ /dev/null @@ -1,13 +0,0 @@ -import type React from "react"; -import { LandingLayout } from "../../components/landing-pages/layout"; -import { LandingPageThemeProvider } from "./ThemeProvider"; - -export default function Layout(props: { - children: React.ReactNode; -}) { - return ( - - {props.children} - - ); -} diff --git a/apps/dashboard/src/components/Image/index.tsx b/apps/dashboard/src/components/Image/index.tsx index b8ddfd026db..726d5f60691 100644 --- a/apps/dashboard/src/components/Image/index.tsx +++ b/apps/dashboard/src/components/Image/index.tsx @@ -23,5 +23,3 @@ export const ChakraNextImage = chakra(NextImage, { "sizes", ].includes(prop), }); - -export type ChakraNextImageProps = React.ComponentProps; diff --git a/apps/dashboard/src/components/footer/Footer.tsx b/apps/dashboard/src/components/footer/Footer.tsx deleted file mode 100644 index 55908cb288c..00000000000 --- a/apps/dashboard/src/components/footer/Footer.tsx +++ /dev/null @@ -1,130 +0,0 @@ -import { - Box, - ButtonGroup, - Container, - Flex, - SimpleGrid, -} from "@chakra-ui/react"; -import { Logo } from "components/logo"; -import { - DEVELOPER_RESOURCES, - PRODUCTS, - SOLUTIONS, -} from "components/product-pages/common/nav/data"; -import { - Heading, - LinkButton, - TrackedIconButton, - TrackedLink, -} from "tw-components"; -import { - COMMUNITY, - COMPANY, - type FooterLinkInfo, - NETWORKS, - SDKs, -} from "./footerLinks"; -import { SOCIALS } from "./socialLinks"; - -interface FooterLinkGroupProps { - heading: string; - links: FooterLinkInfo[]; -} - -const FooterLinkGroup: React.FC = (props) => { - return ( - - - {props.heading} - - - {props.links.map((linkData) => ( - - {linkData.name} - - ))} - - - ); -}; - -const FooterLinksGrid: React.FC = () => { - return ( - - - -
- - - -
-
- - -
-
- ); -}; - -const SocialIcons: React.FC = () => { - return ( - - {SOCIALS.map((data) => ( - - ))} - - ); -}; - -export const HomepageFooter: React.FC = () => { - return ( - - - - {/* logo + social icons */} - - - - - - - - - - ); -}; diff --git a/apps/dashboard/src/components/footer/footerLinks.tsx b/apps/dashboard/src/components/footer/footerLinks.tsx deleted file mode 100644 index d187f256572..00000000000 --- a/apps/dashboard/src/components/footer/footerLinks.tsx +++ /dev/null @@ -1,92 +0,0 @@ -export interface FooterLinkInfo { - label: string; - name: string; - link: string; -} - -export const COMMUNITY: FooterLinkInfo[] = [ - { - label: "events", - name: "Events", - link: "/events", - }, - { - link: "/community/ambassadors", - name: "Ambassadors", - label: "ambassadors", - }, - { - link: "/community/startup-program", - name: "Startup Program", - label: "startup-program", - }, - { - name: "Report Abuse", - label: "abuse", - link: "mailto:abuse@thirdweb.com", - }, -]; - -export const SDKs: FooterLinkInfo[] = [ - { - label: "javascript", - name: "JavaScript", - link: "https://portal.thirdweb.com/typescript/v5", - }, - { - label: "react", - name: "React", - link: "https://portal.thirdweb.com/typescript/v5/react", - }, - { - label: "contracts", - name: "Contracts", - link: "https://portal.thirdweb.com/contracts/build/overview", - }, -]; - -export const NETWORKS: FooterLinkInfo[] = [ - { - name: "Chainlist", - label: "chains", - link: "/chains", - }, -]; - -export const COMPANY: FooterLinkInfo[] = [ - { - name: "Mission", - label: "mission", - link: "/mission", - }, - { - label: "blog", - name: "Blog", - link: "https://blog.thirdweb.com", - }, - { - label: "pricing", - name: "Pricing", - link: "/pricing", - }, - { - name: "Careers", - label: "careers", - link: "https://careers.thirdweb.com/", - }, - { - name: "Brand Assets", - label: "press-kit", - link: "https://thirdweb.notion.site/00605c7c37a74141967cfe68262baefa?v=18a8db229e094fc2884e75be86825e7d&pvs=4", - }, - { - name: "Privacy Policy", - label: "privacy", - link: "/privacy-policy", - }, - { - name: "Terms of Service", - label: "terms", - link: "/terms", - }, -]; diff --git a/apps/dashboard/src/components/footer/socialLinks.tsx b/apps/dashboard/src/components/footer/socialLinks.tsx deleted file mode 100644 index 63935cebd24..00000000000 --- a/apps/dashboard/src/components/footer/socialLinks.tsx +++ /dev/null @@ -1,53 +0,0 @@ -import { GithubIcon } from "components/icons/brand-icons/GithubIcon"; -import { InstagramIcon } from "components/icons/brand-icons/InstagramIcon"; -import { LinkedInIcon } from "components/icons/brand-icons/LinkedinIcon"; -import { TiktokIcon } from "components/icons/brand-icons/TiktokIcon"; -import { XIcon } from "components/icons/brand-icons/XIcon"; -import { YoutubeIcon } from "components/icons/brand-icons/YoutubeIcon"; - -import type { JSX } from "react"; - -interface socialLinkInfo { - link: string; - icon: JSX.Element; - ariaLabel: string; - label?: string; -} - -export const SOCIALS: socialLinkInfo[] = [ - { - link: "https://twitter.com/thirdweb", - icon: , - ariaLabel: "Twitter", - }, - { - link: "https://www.youtube.com/channel/UCdzMx7Zhy5va5End1-XJFbA", - ariaLabel: "YouTube", - label: "youtube", - icon: , - }, - { - link: "https://www.linkedin.com/company/third-web/", - ariaLabel: "LinkedIn", - label: "linkedin", - icon: , - }, - { - link: "https://www.instagram.com/thirdweb/", - ariaLabel: "Instagram", - label: "instagram", - icon: , - }, - { - link: "https://www.tiktok.com/@thirdweb", - ariaLabel: "TikTok", - label: "tiktok", - icon: , - }, - { - link: "https://github.com/thirdweb-dev", - ariaLabel: "GitHub", - label: "gitHub", - icon: , - }, -]; diff --git a/apps/dashboard/src/components/homepage/sections/NewsletterSection.tsx b/apps/dashboard/src/components/homepage/sections/NewsletterSection.tsx deleted file mode 100644 index 28342633097..00000000000 --- a/apps/dashboard/src/components/homepage/sections/NewsletterSection.tsx +++ /dev/null @@ -1,99 +0,0 @@ -"use client"; - -import { emailSignup } from "@/actions/emailSignup"; -import { Box, Container, Flex, FormControl, Input } from "@chakra-ui/react"; -import { MailCheckIcon } from "lucide-react"; -import { useState } from "react"; -import { toast } from "sonner"; -import { Button, Text } from "tw-components"; - -export const NewsletterSection = () => { - const [email, setEmail] = useState(""); - const [isValidEmail, setIsValidEmail] = useState(false); - const [isSubmitting, setIsSubmitting] = useState(false); - - async function handleSubmit() { - // ignore invalid email - if (!isValidEmail) { - return; - } - - setIsSubmitting(true); - - try { - const res = await emailSignup({ - email, - }); - - if (res.status.toString().startsWith("2")) { - toast.success("Successfully signed up for our newsletter!"); - } - - setEmail(""); - } catch (err) { - toast.error("Failed to sign up for our newsletter"); - console.error(err); - } - - setIsSubmitting(false); - } - - return ( - - -
-
- -
- - Sign up for our newsletter - - - Join 70,000+ builders and stay up to date with our latest - updates and news. - -
-
- -
e.preventDefault()}> - - - { - if (e.key === "Enter") { - handleSubmit(); - } - }} - onChange={(e) => { - setEmail(e.target.value); - setIsValidEmail(e.target.validity.valid); - }} - autoComplete="email" - /> - - - -
-
-
-
- ); -}; diff --git a/apps/dashboard/src/components/landing-pages/card-with-image.tsx b/apps/dashboard/src/components/landing-pages/card-with-image.tsx deleted file mode 100644 index dba6a920d66..00000000000 --- a/apps/dashboard/src/components/landing-pages/card-with-image.tsx +++ /dev/null @@ -1,89 +0,0 @@ -import { Flex, GridItem, LinkBox, LinkOverlay } from "@chakra-ui/react"; -import type { StaticImageData } from "next/image"; -import type { ReactNode } from "react"; -import { Card, type CardProps, Text, TrackedLink } from "tw-components"; -import { LandingDesktopMobileImage } from "./desktop-mobile-image"; - -interface LandingCardWithImageProps { - title: string; - description?: ReactNode; - image: StaticImageData; - mobileImage?: StaticImageData; - direction?: "vertical" | "horizontal"; - cardBg?: CardProps["bg"]; - colSpan?: number; - href: string; - TRACKING_CATEGORY: string; -} - -export const LandingCardWithImage: React.FC = ({ - title, - description, - image, - mobileImage, - direction = "vertical", - cardBg, - colSpan = 2, - href, - TRACKING_CATEGORY, -}) => { - return ( - - - - - - - {title} - - - {description && {description}} - - - - - - ); -}; diff --git a/apps/dashboard/src/components/landing-pages/cta-buttons.tsx b/apps/dashboard/src/components/landing-pages/cta-buttons.tsx deleted file mode 100644 index 370fcc70d7a..00000000000 --- a/apps/dashboard/src/components/landing-pages/cta-buttons.tsx +++ /dev/null @@ -1,71 +0,0 @@ -import { Flex } from "@chakra-ui/react"; -import { ZapIcon } from "lucide-react"; -import { TrackedLinkButton, type TrackedLinkProps } from "tw-components"; - -interface LandingCTAButtonsProps { - ctaLink?: string; - ctaText?: string; - contactUsTitle?: string; - noCta?: boolean; - noContactUs?: boolean; - contactUsLink?: string; - trackingCategory: string; - alignLeft?: boolean; - contactUsBg?: TrackedLinkProps["bg"]; - contactUsHover?: TrackedLinkProps["_hover"]; - contactUsBorder?: TrackedLinkProps["border"]; -} - -export const LandingCTAButtons: React.FC = ({ - ctaLink = "/team", - ctaText = "Get Started", - contactUsTitle = "Contact Us", - contactUsBg, - contactUsHover, - contactUsBorder, - noCta, - noContactUs, - contactUsLink, - trackingCategory, - alignLeft, -}) => { - return ( - - {!noCta && ( - } - py={6} - px={8} - bgColor="white" - _hover={{ - bgColor: "white", - opacity: 0.8, - }} - color="black" - href={ctaLink} - category={trackingCategory} - label={ctaText.replaceAll(" ", "-").toLowerCase()} - fontWeight="bo - ld" - > - {ctaText} - - )} - {!noContactUs && ( - - {contactUsTitle} - - )} - - ); -}; diff --git a/apps/dashboard/src/components/landing-pages/desktop-mobile-image.tsx b/apps/dashboard/src/components/landing-pages/desktop-mobile-image.tsx deleted file mode 100644 index bf896534854..00000000000 --- a/apps/dashboard/src/components/landing-pages/desktop-mobile-image.tsx +++ /dev/null @@ -1,27 +0,0 @@ -import { ChakraNextImage } from "components/Image"; -import type { LandingDesktopMobileImageProps } from "./types"; - -export const LandingDesktopMobileImage: React.FC< - LandingDesktopMobileImageProps -> = ({ image, mobileImage, ...props }) => { - return ( - <> - {mobileImage && ( - - )} - {image && ( - - )} - - ); -}; diff --git a/apps/dashboard/src/components/landing-pages/dynamic-selector.tsx b/apps/dashboard/src/components/landing-pages/dynamic-selector.tsx deleted file mode 100644 index 4bd100f1afb..00000000000 --- a/apps/dashboard/src/components/landing-pages/dynamic-selector.tsx +++ /dev/null @@ -1,128 +0,0 @@ -"use client"; - -import { Box, Flex, GridItem, SimpleGrid } from "@chakra-ui/react"; -import { useTrack } from "hooks/analytics/useTrack"; -import { type ReactElement, useState } from "react"; -import type { HeadingSizes } from "theme/typography"; -import { Text } from "tw-components"; -import { LandingSectionHeading } from "./section-heading"; -import type { LandingSectionHeadingProps } from "./types"; - -interface SelectorItem { - title: string; - description: string; - Component: ReactElement; -} - -interface LandingDynamicSelectorProps extends LandingSectionHeadingProps { - items: SelectorItem[]; - gradient?: string; - titleSize?: HeadingSizes; - titleWithGradient?: string; - titleGradient?: string; - margin?: string; - lineHeight?: string; - TRACKING_CATEGORY: string; -} - -export const LandingDynamicSelector: React.FC = ({ - items, - title, - titleWithGradient, - gradient = "linear(to-r, #BFA3DA, #84309C, #C735B0)", - TRACKING_CATEGORY, - titleSize, - blackToWhiteTitle, - titleGradient, - lineHeight, - margin = "", -}) => { - const firstItem = items[0]; - const [selectedItemTitle, setSelectedItemTitle] = useState(firstItem?.title); - const trackEvent = useTrack(); - - if (!firstItem) { - return null; - } - - const selectedItem = - items.find((item) => item.title === selectedItemTitle) || firstItem; - - return ( - - - - - {items.map((item) => ( - { - trackEvent({ - category: TRACKING_CATEGORY, - action: "select", - label: item.title, - }); - setSelectedItemTitle(item.title); - }} - cursor={{ base: "default", md: "pointer" }} - pointerEvents={{ base: "none", md: "all" }} - flexDir="column" - w="full" - > - - {item.title} - - {item.description} - - ))} - - - {selectedItem.Component} - - - - ); -}; diff --git a/apps/dashboard/src/components/landing-pages/end-cta.tsx b/apps/dashboard/src/components/landing-pages/end-cta.tsx deleted file mode 100644 index 3da68f134a7..00000000000 --- a/apps/dashboard/src/components/landing-pages/end-cta.tsx +++ /dev/null @@ -1,87 +0,0 @@ -import { Box, Container, type ContainerProps, Flex } from "@chakra-ui/react"; -import type { ReactNode } from "react"; -import { Heading, Text, type TrackedLinkProps } from "tw-components"; -import { LandingCTAButtons } from "./cta-buttons"; - -interface LandingEndCTAProps { - title: string; - description?: string; - colorDescription?: string; - containerMaxW?: ContainerProps["maxW"]; - titleWithGradient?: string; - customEndCta?: ReactNode; - gradient: string; - ctaText?: string; - ctaLink?: string; - noCta?: boolean; - contactUsLink?: string; - noContactUs?: boolean; - contactUsTitle?: string; - trackingCategory: string; - contactUsBg?: TrackedLinkProps["bg"]; - contactUsHover?: TrackedLinkProps["_hover"]; - contactUsBorder?: TrackedLinkProps["border"]; -} - -export const LandingEndCTA: React.FC = ({ - title, - description, - containerMaxW, - colorDescription, - titleWithGradient, - customEndCta, - gradient, - ctaText, - ctaLink, - noCta, - contactUsLink, - noContactUs, - contactUsTitle, - trackingCategory, - contactUsBg, - contactUsHover, - contactUsBorder, -}) => { - return ( - - - - {title}{" "} - {titleWithGradient && ( - - {titleWithGradient} - - )} - - {description && ( - - {description} - - )} - - {customEndCta ? ( - customEndCta - ) : ( - - - - )} - - - ); -}; diff --git a/apps/dashboard/src/components/landing-pages/grid-section.tsx b/apps/dashboard/src/components/landing-pages/grid-section.tsx deleted file mode 100644 index 494ec912405..00000000000 --- a/apps/dashboard/src/components/landing-pages/grid-section.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import { Flex, SimpleGrid } from "@chakra-ui/react"; -import type { ReactNode } from "react"; -import type { ComponentWithChildren } from "types/component-with-children"; - -interface LandingGridSectionProps { - title?: ReactNode; - desktopColumns?: number; -} - -export const LandingGridSection: ComponentWithChildren< - LandingGridSectionProps -> = ({ title, desktopColumns = 3, children }) => { - return ( - - {title && title} - - {children} - - - ); -}; diff --git a/apps/dashboard/src/components/landing-pages/guide-showcase.tsx b/apps/dashboard/src/components/landing-pages/guide-showcase.tsx deleted file mode 100644 index 5cc76be0336..00000000000 --- a/apps/dashboard/src/components/landing-pages/guide-showcase.tsx +++ /dev/null @@ -1,132 +0,0 @@ -import { Flex, SimpleGrid } from "@chakra-ui/react"; -import { GuideCard } from "components/product-pages/common/GuideCard"; -import { MoveRightIcon } from "lucide-react"; -import type { StaticImageData } from "next/image"; -import { Heading, TrackedLink, type TrackedLinkProps } from "tw-components"; - -type BlogPost = { - title: string; - description?: string; - image: string | StaticImageData; - link: string; -}; - -interface LandingGuidesShowcaseProps { - title: string; - description: string; - solution?: string; - category: TrackedLinkProps["category"]; - guides: BlogPost[]; - caseStudies?: true; - py?: number; - customSolution?: string; - customSolutionHref?: string; -} - -export const LandingGuidesShowcase: React.FC = ({ - title, - description, - solution, - guides, - caseStudies, - category, - customSolution, - customSolutionHref, - py = 16, -}) => { - return ( - - - - {title} - - - {description} - - - - - {guides.map( - ({ - title: guideTitle, - description: guideDescription, - image, - link, - }) => ( - - ), - )} - - - {customSolution && customSolutionHref && ( - - - - {customSolution} - - - - - )} - - {solution && ( - - - - See all of our {solution.replace("-", " ")}{" "} - {caseStudies ? "case studies" : "guides"} - - - - - )} - - ); -}; diff --git a/apps/dashboard/src/components/landing-pages/hero-with-side-image.tsx b/apps/dashboard/src/components/landing-pages/hero-with-side-image.tsx deleted file mode 100644 index a08252d7e12..00000000000 --- a/apps/dashboard/src/components/landing-pages/hero-with-side-image.tsx +++ /dev/null @@ -1,98 +0,0 @@ -import { Box, type BoxProps, Flex, SimpleGrid } from "@chakra-ui/react"; -import { ChakraNextImage } from "components/Image"; -import type { StaticImageData } from "next/image"; -import { Heading, Text, type TrackedLinkProps } from "tw-components"; -import { LandingCTAButtons } from "./cta-buttons"; -import { LandingDesktopMobileImage } from "./desktop-mobile-image"; - -import type { JSX } from "react"; - -interface LandingHeroWithSideImageProps { - title: string | JSX.Element; - titleWithGradient: string; - subtitle: string; - miniTitle?: string; - trackingCategory: string; - ctaText?: string; - ctaLink: string; - contactUsTitle?: string; - noContactUs?: boolean; - gradient: string; - image?: StaticImageData; - mobileImage?: StaticImageData; - miniImage?: StaticImageData; - mt?: BoxProps["mt"]; - contactUsBg?: TrackedLinkProps["bg"]; - contactUsHover?: TrackedLinkProps["_hover"]; - contactUsBorder?: TrackedLinkProps["border"]; -} - -export const LandingHeroWithSideImage: React.FC< - LandingHeroWithSideImageProps -> = ({ - title, - titleWithGradient, - subtitle, - miniTitle, - trackingCategory, - ctaText, - ctaLink, - contactUsTitle, - noContactUs, - gradient, - image, - mobileImage, - - miniImage, - mt, - contactUsBg, - contactUsHover, - contactUsBorder, -}) => { - return ( - - - - - {miniImage ? ( - - ) : null} - - {miniTitle && ( - - {miniTitle} - - )} - - - {title}{" "} - - {titleWithGradient} - - - - - {subtitle} - - - - - - - - ); -}; diff --git a/apps/dashboard/src/components/landing-pages/icon-section-item.tsx b/apps/dashboard/src/components/landing-pages/icon-section-item.tsx deleted file mode 100644 index 8bc85ebc42b..00000000000 --- a/apps/dashboard/src/components/landing-pages/icon-section-item.tsx +++ /dev/null @@ -1,57 +0,0 @@ -import { Flex, type FlexProps } from "@chakra-ui/react"; -import { ChakraNextImage } from "components/Image"; -import type { StaticImageData } from "next/image"; -import type { ReactNode } from "react"; -import { Text } from "tw-components"; - -interface LandingIconSectionItemProps { - icon: StaticImageData; - title: string; - bg?: FlexProps["bg"]; - description?: ReactNode; - descriptionColor?: string; - customDescription?: ReactNode; - shouldShowNoBorder?: boolean; - iconWidth?: string; -} - -export const LandingIconSectionItem: React.FC = ({ - icon, - title, - bg, - description, - descriptionColor, - customDescription, - shouldShowNoBorder, - iconWidth, -}) => { - return ( - - - - - - - {title} - - {customDescription && customDescription} - {description && ( - - {description} - - )} - - - ); -}; diff --git a/apps/dashboard/src/components/landing-pages/layout.tsx b/apps/dashboard/src/components/landing-pages/layout.tsx deleted file mode 100644 index ebd204bc250..00000000000 --- a/apps/dashboard/src/components/landing-pages/layout.tsx +++ /dev/null @@ -1,45 +0,0 @@ -import { Box, type BoxProps, Flex } from "@chakra-ui/react"; -import { HomepageFooter } from "components/footer/Footer"; -import { NewsletterSection } from "components/homepage/sections/NewsletterSection"; -import { HomepageTopNav } from "components/product-pages/common/Topnav"; -import type { ComponentWithChildren } from "types/component-with-children"; - -interface LandingLayoutProps { - bgColor?: string; - py?: BoxProps["py"]; -} - -export const LandingLayout: ComponentWithChildren = ({ - bgColor = "#000", - children, - py, -}) => { - return ( - <> - - - {/* pull it up by as much as the topnav is tall */} - - {children} - - - - - - ); -}; diff --git a/apps/dashboard/src/components/landing-pages/section-heading.tsx b/apps/dashboard/src/components/landing-pages/section-heading.tsx deleted file mode 100644 index 5774d9c1ddd..00000000000 --- a/apps/dashboard/src/components/landing-pages/section-heading.tsx +++ /dev/null @@ -1,33 +0,0 @@ -import { Box, Flex } from "@chakra-ui/react"; -import { Heading, Text } from "tw-components"; -import type { LandingSectionHeadingProps } from "./types"; - -export const LandingSectionHeading: React.FC = ({ - blackToWhiteTitle, - title, - gradient, - titleWithGradient, - titleSize = "display.sm", - lineHeight = "100%", -}) => ( - - {blackToWhiteTitle && ( - - {blackToWhiteTitle} - - )} - - - {title}{" "} - {titleWithGradient && ( - - {titleWithGradient} - - )} - - -); diff --git a/apps/dashboard/src/components/landing-pages/types.tsx b/apps/dashboard/src/components/landing-pages/types.tsx deleted file mode 100644 index b6e2317f294..00000000000 --- a/apps/dashboard/src/components/landing-pages/types.tsx +++ /dev/null @@ -1,17 +0,0 @@ -import type { ChakraNextImageProps } from "components/Image"; -import type { StaticImageData } from "next/image"; -import type { HeadingSizes } from "theme/typography"; - -export type LandingDesktopMobileImageProps = ChakraNextImageProps & { - image?: StaticImageData; - mobileImage?: StaticImageData; -}; - -export interface LandingSectionHeadingProps { - blackToWhiteTitle?: string; - title: string; - titleWithGradient?: string; - gradient?: string; - titleSize?: HeadingSizes; - lineHeight?: string; -} diff --git a/apps/dashboard/src/components/logo/index.tsx b/apps/dashboard/src/components/logo/index.tsx deleted file mode 100644 index db39f35eefe..00000000000 --- a/apps/dashboard/src/components/logo/index.tsx +++ /dev/null @@ -1,120 +0,0 @@ -import { cn } from "@/lib/utils"; - -const IconLogo: React.FC<{ extraClass?: string; color?: string }> = ({ - color, - extraClass, -}) => { - return ( -
- - thirdweb - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ); -}; - -interface ILogoProps { - hideIcon?: boolean; - hideWordmark?: boolean; - forceShowWordMark?: boolean; - color?: string; -} - -export const Logo: React.FC = ({ - hideIcon, - hideWordmark, - forceShowWordMark, - color = "var(--chakra-colors-wordmark)", -}) => { - return ( -

- {hideIcon ?? } - {(hideWordmark && !forceShowWordMark) ?? ( -
- - thirdweb - - -
- )} -

- ); -}; diff --git a/apps/dashboard/src/components/product-pages/common/GuideCard.tsx b/apps/dashboard/src/components/product-pages/common/GuideCard.tsx deleted file mode 100644 index 6c61eb2835c..00000000000 --- a/apps/dashboard/src/components/product-pages/common/GuideCard.tsx +++ /dev/null @@ -1,75 +0,0 @@ -import { Box, Flex } from "@chakra-ui/react"; -import NextImage, { type StaticImageData } from "next/image"; -import { - Heading, - Text, - TrackedLink, - type TrackedLinkProps, -} from "tw-components"; - -interface GuideCardProps - extends Pick { - image: string | StaticImageData; - title: string; - description?: string; - link: string; -} - -export const GuideCard: React.FC = ({ - image, - title, - description, - link, - category, - label, - trackingProps, -}) => { - return ( - - -
- - - -
- - {title} - {description && {description}} - -
-
- ); -}; diff --git a/apps/dashboard/src/components/product-pages/common/Topnav.tsx b/apps/dashboard/src/components/product-pages/common/Topnav.tsx deleted file mode 100644 index 6c53c8bd982..00000000000 --- a/apps/dashboard/src/components/product-pages/common/Topnav.tsx +++ /dev/null @@ -1,60 +0,0 @@ -"use client"; - -import { Box, Container, Flex, useBreakpointValue } from "@chakra-ui/react"; -import { useScrollPosition } from "@n8tb1t/use-scroll-position"; -import { Logo } from "components/logo"; -import { useState } from "react"; -import { TrackedLink } from "tw-components"; -import { DesktopMenu } from "./nav/DesktopMenu"; -import { MobileMenu } from "./nav/MobileMenu"; - -export const HomepageTopNav: React.FC = () => { - const isMobile = useBreakpointValue({ base: true, md: false }); - const [isScrolled, setIsScrolled] = useState(false); - - useScrollPosition( - ({ currPos }) => { - if (currPos.y < -5) { - setIsScrolled(true); - } else if (currPos.y >= -5) { - setIsScrolled(false); - } - }, - [isMobile], - undefined, - false, - 16, - ); - - return ( - - - - - - - - - - ); -}; diff --git a/apps/dashboard/src/components/product-pages/common/nav/DesktopMenu.tsx b/apps/dashboard/src/components/product-pages/common/nav/DesktopMenu.tsx deleted file mode 100644 index 96aadf092f9..00000000000 --- a/apps/dashboard/src/components/product-pages/common/nav/DesktopMenu.tsx +++ /dev/null @@ -1,57 +0,0 @@ -import { Flex } from "@chakra-ui/react"; -import { TrackedLink, TrackedLinkButton } from "tw-components"; -import { HoverMenu } from "./HoverMenu"; -import { NestedHoverMenu } from "./NestedHoverMenu"; -import { - COMPANY, - DEVELOPER_RESOURCES, - DEVELOPER_SECTIONS, - PRODUCT_SECTIONS, - SOLUTIONS, -} from "./data"; - -export const DesktopMenu: React.FC = () => { - return ( - - - - ); -}; diff --git a/apps/dashboard/src/components/product-pages/common/nav/HoverMenu.tsx b/apps/dashboard/src/components/product-pages/common/nav/HoverMenu.tsx deleted file mode 100644 index a9435f8aefb..00000000000 --- a/apps/dashboard/src/components/product-pages/common/nav/HoverMenu.tsx +++ /dev/null @@ -1,91 +0,0 @@ -import { Box, Fade, SimpleGrid, useDisclosure } from "@chakra-ui/react"; -import { useEffect, useRef, useState } from "react"; -import { Card, Text } from "tw-components"; -import { NavCard } from "./NavCard"; -import type { SectionItemProps, SectionProps } from "./types"; - -interface HoverMenuProps { - title: string; - items: SectionItemProps[] | SectionProps[]; - columns?: 1 | 2; -} - -const DEFAULT_OFFSET = -32; - -export const HoverMenu: React.FC = ({ - title, - items, - columns = 1, -}) => { - const { onOpen, isOpen, onClose } = useDisclosure(); - const [offset, setOffset] = useState(DEFAULT_OFFSET); - const triggerRef = useRef(null); - const width = columns === 2 ? 660 : 336; - - // legitimate use-case - // eslint-disable-next-line no-restricted-syntax - useEffect(() => { - const updateOffset = () => { - const el = triggerRef.current; - if (el && isOpen) { - const { right } = el.getBoundingClientRect(); - const isOverflowing = right + width > window.innerWidth; - const newOffset = isOverflowing - ? window.innerWidth - (right + width - 48) - : DEFAULT_OFFSET; - setOffset(newOffset); - } - }; - - updateOffset(); - - if (typeof window !== "undefined") { - window.addEventListener("resize", updateOffset); - return () => { - window.removeEventListener("resize", updateOffset); - }; - } - }, [isOpen, width]); - - return ( - -
- - {title} - -
- - - - -
- - {items.map((item) => ( - - ))} - -
-
-
-
-
- ); -}; diff --git a/apps/dashboard/src/components/product-pages/common/nav/MobileMenu.tsx b/apps/dashboard/src/components/product-pages/common/nav/MobileMenu.tsx deleted file mode 100644 index 65197adeca0..00000000000 --- a/apps/dashboard/src/components/product-pages/common/nav/MobileMenu.tsx +++ /dev/null @@ -1,114 +0,0 @@ -import { Sheet, SheetContent, SheetTrigger } from "@/components/ui/sheet"; -import { Flex, IconButton } from "@chakra-ui/react"; -import { ChakraNextImage } from "components/Image"; -import { MenuIcon } from "lucide-react"; -import { useState } from "react"; -import { Heading, TrackedLink, TrackedLinkButton } from "tw-components"; -import { - DEVELOPER_RESOURCES, - MOBILE_PRODUCTS_SECTIONS, - SOLUTIONS, -} from "./data"; -import type { SectionItemProps } from "./types"; - -export const MobileMenu: React.FC = () => { - const [open, setOpen] = useState(false); - - return ( - - - Contact Us - - - - } - variant="ghost" - /> - - - - setOpen(false)} - /> - setOpen(false)} - /> - setOpen(false)} - /> - - - - ); -}; - -type MobileNavSectionProps = { - title: string; - links: SectionItemProps[]; - onItemClick: () => void; -}; - -const MobileNavSection: React.FC = ({ - title, - links, - onItemClick, -}) => { - return ( - - - {title} - -
    - {links.map((link) => ( -
  • - - {link.icon && ( - - )} - {link.name} - -
  • - ))} -
-
- ); -}; diff --git a/apps/dashboard/src/components/product-pages/common/nav/NavCard.tsx b/apps/dashboard/src/components/product-pages/common/nav/NavCard.tsx deleted file mode 100644 index e6a11107839..00000000000 --- a/apps/dashboard/src/components/product-pages/common/nav/NavCard.tsx +++ /dev/null @@ -1,41 +0,0 @@ -import { Box } from "@chakra-ui/react"; -import { ChakraNextImage } from "components/Image"; -import { Text, TrackedLink } from "tw-components"; -import type { SectionItemProps, SectionProps } from "./types"; - -export const NavCard: React.FC = ({ - name, - description, - label, - link, - icon, - comingSoon, -}) => { - return ( - - -
- {icon && ( - - )} -
- - {name} {comingSoon && "(coming soon)"} - - {description} -
-
-
-
- ); -}; diff --git a/apps/dashboard/src/components/product-pages/common/nav/NestedHoverMenu.tsx b/apps/dashboard/src/components/product-pages/common/nav/NestedHoverMenu.tsx deleted file mode 100644 index 3d4fa1f67f2..00000000000 --- a/apps/dashboard/src/components/product-pages/common/nav/NestedHoverMenu.tsx +++ /dev/null @@ -1,155 +0,0 @@ -import { Box, Fade, Flex, SimpleGrid, useDisclosure } from "@chakra-ui/react"; -import { useEffect, useRef, useState } from "react"; -import { Card, Text } from "tw-components"; -import { NavCard } from "./NavCard"; -import { ProductNavCard } from "./ProductNavCard"; -import type { SectionItemProps, SectionProps } from "./types"; - -interface NestedHoverMenuProps { - title: string; - items: SectionItemProps[]; - sections: SectionProps[]; - initialSection: string; -} - -const WIDTH = 672; -const DEFAULT_OFFSET = -32; - -export const NestedHoverMenu: React.FC = ({ - title, - items, - sections, - initialSection, -}) => { - const { onOpen, isOpen, onClose } = useDisclosure(); - const [offset, setOffset] = useState(DEFAULT_OFFSET); - const [hoveredSection, setHoveredSection] = useState(initialSection); - const triggerRef = useRef(null); - const hoverTimeout = useRef | null>(null); - const closeTimeout = useRef | null>(null); - - const handleMouseEnter = (label: string) => { - // Clear any pending close actions - if (closeTimeout.current) { - clearTimeout(closeTimeout.current); - } - - hoverTimeout.current = setTimeout(() => { - setHoveredSection(label); - onOpen(); - }, 100); - }; - - const handleMouseLeave = () => { - if (hoverTimeout.current) { - clearTimeout(hoverTimeout.current); - } - }; - - const handleBoxLeave = () => { - closeTimeout.current = setTimeout(() => { - // We just check if the menu is open, and if so, close it. - if (isOpen) { - onClose(); - setHoveredSection(initialSection); - } - }, 100); - }; - - // legitimate use-case - // eslint-disable-next-line no-restricted-syntax - useEffect(() => { - const updateOffset = () => { - const el = triggerRef.current; - if (el && isOpen) { - const { right } = el.getBoundingClientRect(); - const isOverflowing = right + WIDTH > window.innerWidth; - const newOffset = isOverflowing - ? window.innerWidth - (right + WIDTH) - : DEFAULT_OFFSET; - setOffset(newOffset); - } - }; - - updateOffset(); - - if (typeof window !== "undefined") { - window.addEventListener("resize", updateOffset); - - return () => { - window.removeEventListener("resize", updateOffset); - }; - } - }, [isOpen]); - - return ( - -
- - {title} - -
- - - - -
- - {sections.map((section) => ( -
handleMouseEnter(section.label)} - onMouseLeave={handleMouseLeave} - > - - - -
- ))} -
- -
- - {items - .filter((item) => item.section === hoveredSection) - .map((item) => ( - - ))} - -
-
-
-
-
-
-
- ); -}; diff --git a/apps/dashboard/src/components/product-pages/common/nav/ProductNavCard.tsx b/apps/dashboard/src/components/product-pages/common/nav/ProductNavCard.tsx deleted file mode 100644 index ee5d8590eef..00000000000 --- a/apps/dashboard/src/components/product-pages/common/nav/ProductNavCard.tsx +++ /dev/null @@ -1,40 +0,0 @@ -import { Box } from "@chakra-ui/react"; -import type { StaticImageData } from "next/image"; -import { Text } from "tw-components"; - -interface ProductSectionItemProps { - name: string; - description: string; - href?: string; - icon?: StaticImageData; - comingSoon?: boolean; - selected: boolean; -} - -export const ProductNavCard: React.FC = ({ - name, - description, - comingSoon, - selected, -}) => { - return ( - -
-
- - {name} {comingSoon && "(coming soon)"} - - {description} -
-
-
- ); -}; diff --git a/apps/dashboard/src/components/product-pages/common/nav/data.ts b/apps/dashboard/src/components/product-pages/common/nav/data.ts index e5006250d1f..49a8d1cb330 100644 --- a/apps/dashboard/src/components/product-pages/common/nav/data.ts +++ b/apps/dashboard/src/components/product-pages/common/nav/data.ts @@ -1,91 +1,16 @@ -import connectIcon from "../../../../../public/assets/landingpage/connect-icon.png"; -import contractsIcon from "../../../../../public/assets/landingpage/contracts-icon.png"; -import engineIcon from "../../../../../public/assets/landingpage/engine-icon.png"; import authIcon from "../../../../../public/assets/product-icons/auth.png"; -import cliIcon from "../../../../../public/assets/product-icons/cli.svg"; import contractsProductIcon from "../../../../../public/assets/product-icons/contracts.png"; -import dashboardProductIcon from "../../../../../public/assets/product-icons/dashboard.svg"; import deployIcon from "../../../../../public/assets/product-icons/deploy.png"; import embeddedWalletIcon from "../../../../../public/assets/product-icons/embedded-wallet.png"; import engineProductIcon from "../../../../../public/assets/product-icons/engine.png"; import extensionIcon from "../../../../../public/assets/product-icons/extensions.png"; -import netIcon from "../../../../../public/assets/product-icons/net.svg"; import payIcon from "../../../../../public/assets/product-icons/pay.svg"; import publishIcon from "../../../../../public/assets/product-icons/publish.png"; -import reactIcon from "../../../../../public/assets/product-icons/react.svg"; import rpcEdgeIcon from "../../../../../public/assets/product-icons/rpc-edge.png"; import smartWalletIcon from "../../../../../public/assets/product-icons/smart-wallet.png"; -import solidityIcon from "../../../../../public/assets/product-icons/solidity.svg"; import storageIcon from "../../../../../public/assets/product-icons/storage.png"; -import typescriptIcon from "../../../../../public/assets/product-icons/typescript.svg"; -import unityIcon from "../../../../../public/assets/product-icons/unity.svg"; import walletSdkIcon from "../../../../../public/assets/product-icons/wallet-sdk.png"; -import chainsIcon from "../../../../../public/assets/solutions-icons/chains.svg"; -import gamingIcon from "../../../../../public/assets/solutions-icons/gaming.svg"; -import datastoreIcon from "../../../../../public/assets/tw-icons/datastore.png"; -import docsIcon from "../../../../../public/assets/tw-icons/docs.svg"; -import guidesIcon from "../../../../../public/assets/tw-icons/guides.svg"; -import missionIcon from "../../../../../public/assets/tw-icons/mission.svg"; -import opensourceIcon from "../../../../../public/assets/tw-icons/opensource.svg"; -import templatesIcon from "../../../../../public/assets/tw-icons/templates.svg"; -import type { SectionItemProps, SectionProps } from "./types"; - -export const PRODUCT_SECTIONS: SectionProps[] = [ - { - name: "Connect", - label: "connect", - description: "Onboard, authenticate and manage users", - link: "/connect", - icon: connectIcon, - section: "connect-v2", - }, - { - name: "Contracts", - label: "contracts", - description: "Create, deploy, and interact with smart contracts", - link: "/contracts", - icon: contractsIcon, - section: "contracts-v2", - }, - { - name: "Engine", - label: "engine", - description: "Connect your application to decentralized networks", - link: "/engine", - icon: engineIcon, - section: "engine-v2", - }, -]; - -export const MOBILE_PRODUCTS_SECTIONS: SectionItemProps[] = [ - { - name: "Connect", - label: "connect", - description: "Onboard, authenticate and manage users", - link: "/connect", - dashboardLink: "/connect", - icon: connectIcon, - section: "connect", - inLandingPage: true, - }, - { - name: "Contracts", - label: "contracts", - description: "Create, deploy, and interact with smart contracts", - link: "/contracts", - icon: contractsIcon, - section: "contracts", - }, - { - name: "Engine", - label: "engine", - description: "Connect your application to decentralized networks", - link: "/engine", - dashboardLink: "/engine", - icon: engineProductIcon, - section: "infrastructure", - }, -]; +import type { SectionItemProps } from "./types"; export const PRODUCTS: SectionItemProps[] = [ { @@ -203,198 +128,3 @@ export const PRODUCTS: SectionItemProps[] = [ inLandingPage: true, }, ]; - -export const SOLUTIONS: SectionItemProps[] = [ - { - name: "Gaming", - label: "gaming", - description: "Integrate web3 into games", - link: "/solutions/gaming", - icon: gamingIcon, - section: "solutions", - }, - { - name: "Chains", - label: "chains", - description: "All-in-one dev tools for your chain", - link: "/solutions/chains", - icon: chainsIcon, - section: "solutions", - }, -]; - -export const COMPANY: SectionItemProps[] = [ - { - name: "Mission", - label: "mission", - description: "Why we work in web3", - link: "/mission", - icon: missionIcon, - section: "company", - }, - { - name: "Blog", - label: "blog", - description: "Our latest news and updates", - link: "https://blog.thirdweb.com", - icon: datastoreIcon, - section: "company", - }, -]; - -export const DEVELOPER_SECTIONS = [ - { - name: "Resources", - label: "resources", - description: "Get started and learn how to build with thirdweb platform", - }, - { - name: "Dev Tools", - label: "tools", - description: "Interfaces for deploying and interacting with contracts", - }, - { - name: "SDKs", - label: "sdks", - description: "Smart and intuitive SDKs to get you up to speed", - }, -]; - -export const DEVELOPER_RESOURCES: SectionItemProps[] = [ - { - name: "Docs", - label: "docs", - description: "Complete thirdweb documentation", - link: "https://portal.thirdweb.com", - icon: docsIcon, - section: "resources", - }, - { - name: "Templates", - label: "templates", - description: "Ready-to-ship repositories", - link: "/templates", - icon: templatesIcon, - section: "resources", - }, - { - name: "Guides", - label: "guides", - description: "Learn how to build with thirdweb", - link: "https://blog.thirdweb.com/guides", - icon: guidesIcon, - section: "resources", - }, - { - name: "Bounties", - label: "bounties", - description: "Found an issue? Get rewarded", - link: "/bounties", - icon: opensourceIcon, - section: "resources", - }, - { - name: "TypeScript", - label: "typescript", - description: "Integrate web3 into your app", - link: "https://portal.thirdweb.com/typescript/v5", - icon: typescriptIcon, - section: "sdks", - }, - { - name: "React", - label: "react", - description: "Components and Hooks for wallets and contracts", - link: "https://portal.thirdweb.com/typescript/v5/react", - icon: reactIcon, - section: "sdks", - }, - { - name: "React Native", - label: "react-native", - description: "React Native hooks and components for mobile apps", - link: "https://portal.thirdweb.com/react-native/v0", - icon: reactIcon, - section: "sdks", - }, - { - name: "Unity", - label: "unity", - description: "Build games with blockchain and web3 capabilities", - link: "https://portal.thirdweb.com/unity", - icon: unityIcon, - section: "sdks", - }, - { - name: ".NET", - label: ".net", - description: "Build .NET apps and Godot games", - link: "https://portal.thirdweb.com/dotnet", - icon: netIcon, - section: "sdks", - }, - { - name: "Dashboard", - label: "dashboard", - description: "Manage and analyze contract activity", - link: "/dashboards", - icon: dashboardProductIcon, - section: "tools", - }, - { - name: "Solidity", - label: "solidity", - description: "Build custom smart contracts efficiently", - link: "https://portal.thirdweb.com/contracts/build/overview", - icon: solidityIcon, - section: "sdks", - }, - { - name: "CLI", - label: "cli", - description: "Tools to create, build, and deploy web3 applications", - link: "https://portal.thirdweb.com/cli", - icon: cliIcon, - section: "tools", - }, - { - name: "Transaction Simulator", - label: "transaction-simulator", - description: "", - link: "/tools/transaction-simulator", - icon: dashboardProductIcon, - section: "tools", - }, - { - name: "Wei Converter", - label: "wei-converter", - description: "", - link: "https://thirdweb.com/tools/wei-converter", - icon: dashboardProductIcon, - section: "tools", - }, - { - name: "Hex Converter", - label: "hex-converter", - description: "", - link: "https://thirdweb.com/tools/hex-converter", - icon: dashboardProductIcon, - section: "tools", - }, - { - name: "Unix Time Converter", - label: "unixtime-converter", - description: "", - link: "https://thirdweb.com/tools/unixtime-converter", - icon: dashboardProductIcon, - section: "tools", - }, - { - name: "Keccak-256 Converter", - label: "keccak256-converter", - description: "", - link: "https://thirdweb.com/tools/keccak256-converter", - icon: dashboardProductIcon, - section: "tools", - }, -]; diff --git a/apps/dashboard/src/components/product-pages/common/nav/types.ts b/apps/dashboard/src/components/product-pages/common/nav/types.ts index 1f353862c9d..67da358bc80 100644 --- a/apps/dashboard/src/components/product-pages/common/nav/types.ts +++ b/apps/dashboard/src/components/product-pages/common/nav/types.ts @@ -1,15 +1,5 @@ import type { StaticImageData } from "next/image"; -export interface SectionProps { - name: string; - label: string; - description: string; - icon?: StaticImageData; - link?: string; - section?: "contracts-v2" | "connect-v2" | "engine-v2"; - comingSoon?: boolean; -} - export interface SectionItemProps { name: string; dashboardName?: string; diff --git a/apps/dashboard/src/theme/typography.ts b/apps/dashboard/src/theme/typography.ts index 49f307c29d7..194781899f6 100644 --- a/apps/dashboard/src/theme/typography.ts +++ b/apps/dashboard/src/theme/typography.ts @@ -1,85 +1,3 @@ -import { pxToRem } from "../utils/pxFunctions"; - -export const baseFontSizes = { - display: { - sm: pxToRem(44), - md: pxToRem(48), - lg: pxToRem(52), - xl: pxToRem(56), - "2xl": pxToRem(64), - }, - title: { - sm: pxToRem(16), - md: pxToRem(18), - lg: pxToRem(20), - xl: pxToRem(24), - "2xl": pxToRem(28), - }, - subtitle: { - xs: pxToRem(12), - sm: pxToRem(14), - md: pxToRem(16), - lg: pxToRem(18), - xl: pxToRem(20), - "2xl": pxToRem(24), - }, - label: { - sm: pxToRem(12), - md: pxToRem(14), - lg: pxToRem(16), - xl: pxToRem(18), - "2xl": pxToRem(20), - }, - body: { - sm: pxToRem(12), - md: pxToRem(14), - lg: pxToRem(16), - xl: pxToRem(18), - "2xl": pxToRem(20), - }, -} as const; - -type FontSizeRecord = typeof baseFontSizes; - -export const mdFontSizes: FontSizeRecord = { - display: { - sm: pxToRem(56), - md: pxToRem(64), - lg: pxToRem(72), - xl: pxToRem(80), - "2xl": pxToRem(88), - }, - title: { - sm: pxToRem(20), - md: pxToRem(24), - lg: pxToRem(32), - xl: pxToRem(40), - "2xl": pxToRem(48), - }, - subtitle: { - xs: pxToRem(12), - sm: pxToRem(16), - md: pxToRem(20), - lg: pxToRem(24), - xl: pxToRem(28), - "2xl": pxToRem(32), - }, - label: { - sm: pxToRem(12), - md: pxToRem(14), - lg: pxToRem(16), - xl: pxToRem(24), - "2xl": pxToRem(28), - }, - body: { - sm: pxToRem(12), - md: pxToRem(14), - lg: pxToRem(16), - xl: pxToRem(20), - "2xl": pxToRem(24), - }, -}; - export const fontWeights = { display: 800, title: 700, @@ -104,12 +22,7 @@ export const letterSpacings = { body: "initial", } as const; -export type TypographyBase = - | "display" - | "title" - | "subtitle" - | "label" - | "body"; +type TypographyBase = "display" | "title" | "subtitle" | "label" | "body"; export type TypographySize = "xs" | "sm" | "md" | "lg" | "xl" | "2xl"; export type TypographyFontSize = `${TypographyBase}.${TypographySize}`; diff --git a/apps/dashboard/src/tw-components/button.tsx b/apps/dashboard/src/tw-components/button.tsx index 345f163e70a..9b7571aaa5f 100644 --- a/apps/dashboard/src/tw-components/button.tsx +++ b/apps/dashboard/src/tw-components/button.tsx @@ -155,7 +155,7 @@ interface TrackedIconButtonProps extends IconButtonProps { trackingProps?: Record; } -export const TrackedIconButton = forwardRef( +const TrackedIconButton = forwardRef( ({ category, label, trackingProps, ...restButtonProps }, ref) => { const trackEvent = useTrack(); return ( diff --git a/apps/dashboard/src/tw-components/card.tsx b/apps/dashboard/src/tw-components/card.tsx index 150e5dbb8ba..d156e8711b1 100644 --- a/apps/dashboard/src/tw-components/card.tsx +++ b/apps/dashboard/src/tw-components/card.tsx @@ -24,7 +24,7 @@ const borderRadiusMap = { none: "none", }; -export interface CardProps extends BoxProps { +interface CardProps extends BoxProps { outlineBorder?: { gradient: string; width: string; diff --git a/apps/dashboard/src/tw-components/utils/typography.ts b/apps/dashboard/src/tw-components/utils/typography.ts index 0f1f32bfb58..34b311b7bce 100644 --- a/apps/dashboard/src/tw-components/utils/typography.ts +++ b/apps/dashboard/src/tw-components/utils/typography.ts @@ -1,11 +1,4 @@ -import { - type TypographyBase, - type TypographyFontSize, - type TypographySize, - baseFontSizes, - mdFontSizes, -} from "theme/typography"; -import chakraTheme from "../../theme"; +import type { TypographyFontSize } from "theme/typography"; const FONT_SIZE_CSS_VAR_PREFIX = "--tw-font-size-" as const; @@ -16,40 +9,3 @@ function createCssVariable(size: TypographyFontSize) { export function convertFontSizeToCSSVar(fontSize: TypographyFontSize) { return `var(${createCssVariable(fontSize)})`; } - -export function generateBreakpointTypographyCssVars() { - const baseCSSVars = Object.entries(baseFontSizes) - .flatMap(([typographyBase, typographySizeMap]) => { - return Object.entries(typographySizeMap).map( - ([typographySize, fontSizeValue]) => { - return `${createCssVariable( - `${typographyBase as TypographyBase}.${ - typographySize as TypographySize - }`, - )}: ${fontSizeValue};`; - }, - ); - }) - .join("\n"); - - const mdCSSVars = Object.entries(mdFontSizes) - .flatMap(([typographyBase, typographySizeMap]) => { - return Object.entries(typographySizeMap).map( - ([typographySize, fontSizeValue]) => { - return `${createCssVariable( - `${typographyBase as TypographyBase}.${ - typographySize as TypographySize - }`, - )}: ${fontSizeValue};`; - }, - ); - }) - .join("\n"); - - return `:root { - ${baseCSSVars} - @media screen and (min-width: ${chakraTheme.breakpoints.md}) { - ${mdCSSVars} - } - }`; -} diff --git a/apps/dashboard/src/utils/pxFunctions.ts b/apps/dashboard/src/utils/pxFunctions.ts deleted file mode 100644 index 82f719a0912..00000000000 --- a/apps/dashboard/src/utils/pxFunctions.ts +++ /dev/null @@ -1,3 +0,0 @@ -export function pxToRem(px: number): string { - return `${px / 16}rem`; -} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d6659fd7498..741b9caab8d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -82,9 +82,6 @@ importers: '@marsidev/react-turnstile': specifier: ^1.1.0 version: 1.1.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@n8tb1t/use-scroll-position': - specifier: ^2.0.3 - version: 2.0.3(@types/react@19.0.10)(react@19.0.0) '@radix-ui/react-accordion': specifier: ^1.2.3 version: 1.2.3(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) @@ -135,7 +132,7 @@ importers: version: 1.1.8(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@sentry/nextjs': specifier: 9.2.0 - version: 9.2.0(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(encoding@0.1.13)(next@15.1.7(@babel/core@7.26.9)(@opentelemetry/api@1.9.0)(@playwright/test@1.50.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)(webpack@5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))) + version: 9.2.0(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(encoding@0.1.13)(next@15.1.7(@babel/core@7.26.9)(@opentelemetry/api@1.9.0)(@playwright/test@1.50.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)(webpack@5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))(esbuild@0.25.0)) '@shazow/whatsabi': specifier: ^0.19.0 version: 0.19.0(@noble/hashes@1.7.1)(typescript@5.7.3)(zod@3.24.2) @@ -334,7 +331,7 @@ importers: version: 8.6.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.0(bufferutil@4.0.9)(prettier@3.5.2)(utf-8-validate@5.0.10)) '@storybook/nextjs': specifier: 8.6.0 - version: 8.6.0(@swc/core@1.11.1(@swc/helpers@0.5.15))(next@15.1.7(@babel/core@7.26.9)(@opentelemetry/api@1.9.0)(@playwright/test@1.50.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.0(bufferutil@4.0.9)(prettier@3.5.2)(utf-8-validate@5.0.10))(type-fest@4.35.0)(typescript@5.7.3)(webpack-hot-middleware@2.26.1)(webpack@5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))) + version: 8.6.0(@swc/core@1.11.1(@swc/helpers@0.5.15))(esbuild@0.25.0)(next@15.1.7(@babel/core@7.26.9)(@opentelemetry/api@1.9.0)(@playwright/test@1.50.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.0(bufferutil@4.0.9)(prettier@3.5.2)(utf-8-validate@5.0.10))(type-fest@4.35.0)(typescript@5.7.3)(webpack-hot-middleware@2.26.1)(webpack@5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))(esbuild@0.25.0)) '@storybook/react': specifier: 8.6.0 version: 8.6.0(@storybook/test@8.6.0(storybook@8.6.0(bufferutil@4.0.9)(prettier@3.5.2)(utf-8-validate@5.0.10)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.0(bufferutil@4.0.9)(prettier@3.5.2)(utf-8-validate@5.0.10))(typescript@5.7.3) @@ -1121,7 +1118,7 @@ importers: version: 2.1.1(react-native@0.76.6(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@19.0.10)(bufferutil@4.0.9)(encoding@0.1.13)(react@19.0.0)(utf-8-validate@5.0.10)) '@size-limit/preset-big-lib': specifier: 11.2.0 - version: 11.2.0(bufferutil@4.0.9)(esbuild@0.25.0)(size-limit@11.2.0)(utf-8-validate@5.0.10) + version: 11.2.0(bufferutil@4.0.9)(size-limit@11.2.0)(utf-8-validate@5.0.10) '@storybook/addon-essentials': specifier: 8.6.0 version: 8.6.0(@types/react@19.0.10)(storybook@8.6.0(bufferutil@4.0.9)(prettier@3.3.3)(utf-8-validate@5.0.10)) @@ -3590,12 +3587,6 @@ packages: resolution: {integrity: sha512-wK+5pLK5XFmgtH3aQ2YVvA3HohS3xqV/OxuVOdNx9Wpnz7VE/fnC+e1A7ln6LFYeck7gOJ/dsZV6OLplOtAJ2w==} engines: {node: '>=18'} - '@n8tb1t/use-scroll-position@2.0.3': - resolution: {integrity: sha512-6GO4FHVJTMI4jbRHborzemuL6B319qh2cVLOLj8DApJhjyT71eLgANbQ4bNKSZ51zBm3uJ3WmqnyNF17eSsDyw==} - peerDependencies: - '@types/react': '*' - react: '*' - '@next/bundle-analyzer@15.1.7': resolution: {integrity: sha512-tESiAwTUEpzzxKMLDbQuPHvD+PFDjY+0O3R4T5bpjIo0cr5fvppbbllQbtksQbBEquT55Eu8JmDoOlc9YFv6Kw==} @@ -19053,11 +19044,6 @@ snapshots: outvariant: 1.4.3 strict-event-emitter: 0.5.1 - '@n8tb1t/use-scroll-position@2.0.3(@types/react@19.0.10)(react@19.0.0)': - dependencies: - '@types/react': 19.0.10 - react: 19.0.0 - '@next/bundle-analyzer@15.1.7(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) @@ -19666,7 +19652,7 @@ snapshots: dependencies: playwright: 1.50.1 - '@pmmmwh/react-refresh-webpack-plugin@0.5.15(react-refresh@0.14.2)(type-fest@4.35.0)(webpack-hot-middleware@2.26.1)(webpack@5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15)))': + '@pmmmwh/react-refresh-webpack-plugin@0.5.15(react-refresh@0.14.2)(type-fest@4.35.0)(webpack-hot-middleware@2.26.1)(webpack@5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))(esbuild@0.25.0))': dependencies: ansi-html: 0.0.9 core-js-pure: 3.40.0 @@ -19676,7 +19662,7 @@ snapshots: react-refresh: 0.14.2 schema-utils: 4.3.0 source-map: 0.7.4 - webpack: 5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15)) + webpack: 5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))(esbuild@0.25.0) optionalDependencies: type-fest: 4.35.0 webpack-hot-middleware: 2.26.1 @@ -20913,7 +20899,7 @@ snapshots: '@sentry/core@9.2.0': {} - '@sentry/nextjs@9.2.0(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(encoding@0.1.13)(next@15.1.7(@babel/core@7.26.9)(@opentelemetry/api@1.9.0)(@playwright/test@1.50.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)(webpack@5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15)))': + '@sentry/nextjs@9.2.0(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(encoding@0.1.13)(next@15.1.7(@babel/core@7.26.9)(@opentelemetry/api@1.9.0)(@playwright/test@1.50.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)(webpack@5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))(esbuild@0.25.0))': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/semantic-conventions': 1.28.0 @@ -20924,7 +20910,7 @@ snapshots: '@sentry/opentelemetry': 9.2.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.28.0) '@sentry/react': 9.2.0(react@19.0.0) '@sentry/vercel-edge': 9.2.0 - '@sentry/webpack-plugin': 3.1.2(encoding@0.1.13)(webpack@5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))) + '@sentry/webpack-plugin': 3.1.2(encoding@0.1.13)(webpack@5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))(esbuild@0.25.0)) chalk: 3.0.0 next: 15.1.7(@babel/core@7.26.9)(@opentelemetry/api@1.9.0)(@playwright/test@1.50.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) resolve: 1.22.8 @@ -21001,12 +20987,12 @@ snapshots: '@opentelemetry/api': 1.9.0 '@sentry/core': 9.2.0 - '@sentry/webpack-plugin@3.1.2(encoding@0.1.13)(webpack@5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15)))': + '@sentry/webpack-plugin@3.1.2(encoding@0.1.13)(webpack@5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))(esbuild@0.25.0))': dependencies: '@sentry/bundler-plugin-core': 3.1.2(encoding@0.1.13) unplugin: 1.0.1 uuid: 9.0.1 - webpack: 5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15)) + webpack: 5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))(esbuild@0.25.0) transitivePeerDependencies: - encoding - supports-color @@ -21097,11 +21083,11 @@ snapshots: dependencies: size-limit: 11.2.0 - '@size-limit/preset-big-lib@11.2.0(bufferutil@4.0.9)(esbuild@0.25.0)(size-limit@11.2.0)(utf-8-validate@5.0.10)': + '@size-limit/preset-big-lib@11.2.0(bufferutil@4.0.9)(size-limit@11.2.0)(utf-8-validate@5.0.10)': dependencies: '@size-limit/file': 11.2.0(size-limit@11.2.0) '@size-limit/time': 11.2.0(bufferutil@4.0.9)(size-limit@11.2.0)(utf-8-validate@5.0.10) - '@size-limit/webpack': 11.2.0(esbuild@0.25.0)(size-limit@11.2.0) + '@size-limit/webpack': 11.2.0(size-limit@11.2.0) size-limit: 11.2.0 transitivePeerDependencies: - '@swc/core' @@ -21123,11 +21109,11 @@ snapshots: - supports-color - utf-8-validate - '@size-limit/webpack@11.2.0(esbuild@0.25.0)(size-limit@11.2.0)': + '@size-limit/webpack@11.2.0(size-limit@11.2.0)': dependencies: nanoid: 5.1.2 size-limit: 11.2.0 - webpack: 5.98.0(esbuild@0.25.0) + webpack: 5.98.0 transitivePeerDependencies: - '@swc/core' - esbuild @@ -22082,7 +22068,7 @@ snapshots: ts-dedent: 2.2.0 vite: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) - '@storybook/builder-webpack5@8.6.0(@swc/core@1.11.1(@swc/helpers@0.5.15))(storybook@8.6.0(bufferutil@4.0.9)(prettier@3.5.2)(utf-8-validate@5.0.10))(typescript@5.7.3)': + '@storybook/builder-webpack5@8.6.0(@swc/core@1.11.1(@swc/helpers@0.5.15))(esbuild@0.25.0)(storybook@8.6.0(bufferutil@4.0.9)(prettier@3.5.2)(utf-8-validate@5.0.10))(typescript@5.7.3)': dependencies: '@storybook/core-webpack': 8.6.0(storybook@8.6.0(bufferutil@4.0.9)(prettier@3.5.2)(utf-8-validate@5.0.10)) '@types/semver': 7.5.8 @@ -22090,23 +22076,23 @@ snapshots: case-sensitive-paths-webpack-plugin: 2.4.0 cjs-module-lexer: 1.4.3 constants-browserify: 1.0.0 - css-loader: 6.11.0(webpack@5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))) + css-loader: 6.11.0(webpack@5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))(esbuild@0.25.0)) es-module-lexer: 1.6.0 - fork-ts-checker-webpack-plugin: 8.0.0(typescript@5.7.3)(webpack@5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))) - html-webpack-plugin: 5.6.3(webpack@5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))) + fork-ts-checker-webpack-plugin: 8.0.0(typescript@5.7.3)(webpack@5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))(esbuild@0.25.0)) + html-webpack-plugin: 5.6.3(webpack@5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))(esbuild@0.25.0)) magic-string: 0.30.17 path-browserify: 1.0.1 process: 0.11.10 semver: 7.7.1 storybook: 8.6.0(bufferutil@4.0.9)(prettier@3.5.2)(utf-8-validate@5.0.10) - style-loader: 3.3.4(webpack@5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))) - terser-webpack-plugin: 5.3.11(@swc/core@1.11.1(@swc/helpers@0.5.15))(webpack@5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))) + style-loader: 3.3.4(webpack@5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))(esbuild@0.25.0)) + terser-webpack-plugin: 5.3.11(@swc/core@1.11.1(@swc/helpers@0.5.15))(esbuild@0.25.0)(webpack@5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))(esbuild@0.25.0)) ts-dedent: 2.2.0 url: 0.11.4 util: 0.12.5 util-deprecate: 1.0.2 - webpack: 5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15)) - webpack-dev-middleware: 6.1.3(webpack@5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))) + webpack: 5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))(esbuild@0.25.0) + webpack-dev-middleware: 6.1.3(webpack@5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))(esbuild@0.25.0)) webpack-hot-middleware: 2.26.1 webpack-virtual-modules: 0.6.2 optionalDependencies: @@ -22214,7 +22200,7 @@ snapshots: dependencies: storybook: 8.6.0(bufferutil@4.0.9)(prettier@3.5.2)(utf-8-validate@5.0.10) - '@storybook/nextjs@8.6.0(@swc/core@1.11.1(@swc/helpers@0.5.15))(next@15.1.7(@babel/core@7.26.9)(@opentelemetry/api@1.9.0)(@playwright/test@1.50.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.0(bufferutil@4.0.9)(prettier@3.5.2)(utf-8-validate@5.0.10))(type-fest@4.35.0)(typescript@5.7.3)(webpack-hot-middleware@2.26.1)(webpack@5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15)))': + '@storybook/nextjs@8.6.0(@swc/core@1.11.1(@swc/helpers@0.5.15))(esbuild@0.25.0)(next@15.1.7(@babel/core@7.26.9)(@opentelemetry/api@1.9.0)(@playwright/test@1.50.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.0(bufferutil@4.0.9)(prettier@3.5.2)(utf-8-validate@5.0.10))(type-fest@4.35.0)(typescript@5.7.3)(webpack-hot-middleware@2.26.1)(webpack@5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))(esbuild@0.25.0))': dependencies: '@babel/core': 7.26.9 '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.26.9) @@ -22229,30 +22215,30 @@ snapshots: '@babel/preset-react': 7.26.3(@babel/core@7.26.9) '@babel/preset-typescript': 7.26.0(@babel/core@7.26.9) '@babel/runtime': 7.26.9 - '@pmmmwh/react-refresh-webpack-plugin': 0.5.15(react-refresh@0.14.2)(type-fest@4.35.0)(webpack-hot-middleware@2.26.1)(webpack@5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))) - '@storybook/builder-webpack5': 8.6.0(@swc/core@1.11.1(@swc/helpers@0.5.15))(storybook@8.6.0(bufferutil@4.0.9)(prettier@3.5.2)(utf-8-validate@5.0.10))(typescript@5.7.3) - '@storybook/preset-react-webpack': 8.6.0(@storybook/test@8.6.0(storybook@8.6.0(bufferutil@4.0.9)(prettier@3.5.2)(utf-8-validate@5.0.10)))(@swc/core@1.11.1(@swc/helpers@0.5.15))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.0(bufferutil@4.0.9)(prettier@3.5.2)(utf-8-validate@5.0.10))(typescript@5.7.3) + '@pmmmwh/react-refresh-webpack-plugin': 0.5.15(react-refresh@0.14.2)(type-fest@4.35.0)(webpack-hot-middleware@2.26.1)(webpack@5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))(esbuild@0.25.0)) + '@storybook/builder-webpack5': 8.6.0(@swc/core@1.11.1(@swc/helpers@0.5.15))(esbuild@0.25.0)(storybook@8.6.0(bufferutil@4.0.9)(prettier@3.5.2)(utf-8-validate@5.0.10))(typescript@5.7.3) + '@storybook/preset-react-webpack': 8.6.0(@storybook/test@8.6.0(storybook@8.6.0(bufferutil@4.0.9)(prettier@3.5.2)(utf-8-validate@5.0.10)))(@swc/core@1.11.1(@swc/helpers@0.5.15))(esbuild@0.25.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.0(bufferutil@4.0.9)(prettier@3.5.2)(utf-8-validate@5.0.10))(typescript@5.7.3) '@storybook/react': 8.6.0(@storybook/test@8.6.0(storybook@8.6.0(bufferutil@4.0.9)(prettier@3.5.2)(utf-8-validate@5.0.10)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.0(bufferutil@4.0.9)(prettier@3.5.2)(utf-8-validate@5.0.10))(typescript@5.7.3) '@storybook/test': 8.6.0(storybook@8.6.0(bufferutil@4.0.9)(prettier@3.5.2)(utf-8-validate@5.0.10)) '@types/semver': 7.5.8 - babel-loader: 9.2.1(@babel/core@7.26.9)(webpack@5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))) - css-loader: 6.11.0(webpack@5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))) + babel-loader: 9.2.1(@babel/core@7.26.9)(webpack@5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))(esbuild@0.25.0)) + css-loader: 6.11.0(webpack@5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))(esbuild@0.25.0)) find-up: 5.0.0 image-size: 1.2.0 loader-utils: 3.3.1 next: 15.1.7(@babel/core@7.26.9)(@opentelemetry/api@1.9.0)(@playwright/test@1.50.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - node-polyfill-webpack-plugin: 2.0.1(webpack@5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))) + node-polyfill-webpack-plugin: 2.0.1(webpack@5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))(esbuild@0.25.0)) pnp-webpack-plugin: 1.7.0(typescript@5.7.3) postcss: 8.5.3 - postcss-loader: 8.1.1(postcss@8.5.3)(typescript@5.7.3)(webpack@5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))) + postcss-loader: 8.1.1(postcss@8.5.3)(typescript@5.7.3)(webpack@5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))(esbuild@0.25.0)) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) react-refresh: 0.14.2 resolve-url-loader: 5.0.0 - sass-loader: 14.2.1(webpack@5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))) + sass-loader: 14.2.1(webpack@5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))(esbuild@0.25.0)) semver: 7.7.1 storybook: 8.6.0(bufferutil@4.0.9)(prettier@3.5.2)(utf-8-validate@5.0.10) - style-loader: 3.3.4(webpack@5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))) + style-loader: 3.3.4(webpack@5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))(esbuild@0.25.0)) styled-jsx: 5.1.6(@babel/core@7.26.9)(react@19.0.0) ts-dedent: 2.2.0 tsconfig-paths: 4.2.0 @@ -22260,7 +22246,7 @@ snapshots: optionalDependencies: sharp: 0.33.5 typescript: 5.7.3 - webpack: 5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15)) + webpack: 5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))(esbuild@0.25.0) transitivePeerDependencies: - '@rspack/core' - '@swc/core' @@ -22279,11 +22265,11 @@ snapshots: - webpack-hot-middleware - webpack-plugin-serve - '@storybook/preset-react-webpack@8.6.0(@storybook/test@8.6.0(storybook@8.6.0(bufferutil@4.0.9)(prettier@3.5.2)(utf-8-validate@5.0.10)))(@swc/core@1.11.1(@swc/helpers@0.5.15))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.0(bufferutil@4.0.9)(prettier@3.5.2)(utf-8-validate@5.0.10))(typescript@5.7.3)': + '@storybook/preset-react-webpack@8.6.0(@storybook/test@8.6.0(storybook@8.6.0(bufferutil@4.0.9)(prettier@3.5.2)(utf-8-validate@5.0.10)))(@swc/core@1.11.1(@swc/helpers@0.5.15))(esbuild@0.25.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.0(bufferutil@4.0.9)(prettier@3.5.2)(utf-8-validate@5.0.10))(typescript@5.7.3)': dependencies: '@storybook/core-webpack': 8.6.0(storybook@8.6.0(bufferutil@4.0.9)(prettier@3.5.2)(utf-8-validate@5.0.10)) '@storybook/react': 8.6.0(@storybook/test@8.6.0(storybook@8.6.0(bufferutil@4.0.9)(prettier@3.5.2)(utf-8-validate@5.0.10)))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(storybook@8.6.0(bufferutil@4.0.9)(prettier@3.5.2)(utf-8-validate@5.0.10))(typescript@5.7.3) - '@storybook/react-docgen-typescript-plugin': 1.0.6--canary.9.0c3f3b7.0(typescript@5.7.3)(webpack@5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))) + '@storybook/react-docgen-typescript-plugin': 1.0.6--canary.9.0c3f3b7.0(typescript@5.7.3)(webpack@5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))(esbuild@0.25.0)) '@types/semver': 7.5.8 find-up: 5.0.0 magic-string: 0.30.17 @@ -22294,7 +22280,7 @@ snapshots: semver: 7.7.1 storybook: 8.6.0(bufferutil@4.0.9)(prettier@3.5.2)(utf-8-validate@5.0.10) tsconfig-paths: 4.2.0 - webpack: 5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15)) + webpack: 5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))(esbuild@0.25.0) optionalDependencies: typescript: 5.7.3 transitivePeerDependencies: @@ -22313,7 +22299,7 @@ snapshots: dependencies: storybook: 8.6.0(bufferutil@4.0.9)(prettier@3.5.2)(utf-8-validate@5.0.10) - '@storybook/react-docgen-typescript-plugin@1.0.6--canary.9.0c3f3b7.0(typescript@5.7.3)(webpack@5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15)))': + '@storybook/react-docgen-typescript-plugin@1.0.6--canary.9.0c3f3b7.0(typescript@5.7.3)(webpack@5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))(esbuild@0.25.0))': dependencies: debug: 4.4.0(supports-color@8.1.1) endent: 2.1.0 @@ -22323,7 +22309,7 @@ snapshots: react-docgen-typescript: 2.2.2(typescript@5.7.3) tslib: 2.8.1 typescript: 5.7.3 - webpack: 5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15)) + webpack: 5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))(esbuild@0.25.0) transitivePeerDependencies: - supports-color @@ -24618,7 +24604,7 @@ snapshots: agent-base@6.0.2: dependencies: - debug: 4.4.0 + debug: 4.4.0(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -24917,12 +24903,12 @@ snapshots: transitivePeerDependencies: - supports-color - babel-loader@9.2.1(@babel/core@7.26.9)(webpack@5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))): + babel-loader@9.2.1(@babel/core@7.26.9)(webpack@5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))(esbuild@0.25.0)): dependencies: '@babel/core': 7.26.9 find-cache-dir: 4.0.0 schema-utils: 4.3.0 - webpack: 5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15)) + webpack: 5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))(esbuild@0.25.0) babel-plugin-istanbul@6.1.1: dependencies: @@ -25908,7 +25894,7 @@ snapshots: css-gradient-parser@0.0.16: {} - css-loader@6.11.0(webpack@5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))): + css-loader@6.11.0(webpack@5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))(esbuild@0.25.0)): dependencies: icss-utils: 5.1.0(postcss@8.5.3) postcss: 8.5.3 @@ -25919,7 +25905,7 @@ snapshots: postcss-value-parser: 4.2.0 semver: 7.7.1 optionalDependencies: - webpack: 5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15)) + webpack: 5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))(esbuild@0.25.0) css-select@4.3.0: dependencies: @@ -26048,10 +26034,6 @@ snapshots: dependencies: ms: 2.1.3 - debug@4.4.0: - dependencies: - ms: 2.1.3 - debug@4.4.0(supports-color@8.1.1): dependencies: ms: 2.1.3 @@ -26632,7 +26614,7 @@ snapshots: eslint: 9.19.0(jiti@2.4.2) eslint-import-resolver-node: 0.3.9 eslint-import-resolver-typescript: 3.8.3(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.14.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.19.0(jiti@2.4.2)))(eslint@9.19.0(jiti@2.4.2)) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.14.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3))(eslint-import-resolver-typescript@3.8.3)(eslint@9.19.0(jiti@2.4.2)) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.14.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3))(eslint-import-resolver-typescript@3.8.3(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.14.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.19.0(jiti@2.4.2)))(eslint@9.19.0(jiti@2.4.2)))(eslint@9.19.0(jiti@2.4.2)) eslint-plugin-jsx-a11y: 6.10.2(eslint@9.19.0(jiti@2.4.2)) eslint-plugin-react: 7.37.4(eslint@9.19.0(jiti@2.4.2)) eslint-plugin-react-hooks: 5.1.0(eslint@9.19.0(jiti@2.4.2)) @@ -26662,7 +26644,7 @@ snapshots: stable-hash: 0.0.4 tinyglobby: 0.2.12 optionalDependencies: - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.14.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3))(eslint-import-resolver-typescript@3.8.3)(eslint@9.19.0(jiti@2.4.2)) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.14.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3))(eslint-import-resolver-typescript@3.8.3(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.14.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.19.0(jiti@2.4.2)))(eslint@9.19.0(jiti@2.4.2)))(eslint@9.19.0(jiti@2.4.2)) transitivePeerDependencies: - supports-color @@ -26753,7 +26735,7 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.14.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3))(eslint-import-resolver-typescript@3.8.3)(eslint@9.19.0(jiti@2.4.2)): + eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.14.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3))(eslint-import-resolver-typescript@3.8.3(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.14.1(eslint@9.19.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.19.0(jiti@2.4.2)))(eslint@9.19.0(jiti@2.4.2)))(eslint@9.19.0(jiti@2.4.2)): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.8 @@ -27713,7 +27695,7 @@ snapshots: cross-spawn: 7.0.6 signal-exit: 4.1.0 - fork-ts-checker-webpack-plugin@8.0.0(typescript@5.7.3)(webpack@5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))): + fork-ts-checker-webpack-plugin@8.0.0(typescript@5.7.3)(webpack@5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))(esbuild@0.25.0)): dependencies: '@babel/code-frame': 7.26.2 chalk: 4.1.2 @@ -27728,7 +27710,7 @@ snapshots: semver: 7.7.1 tapable: 2.2.1 typescript: 5.7.3 - webpack: 5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15)) + webpack: 5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))(esbuild@0.25.0) form-data-encoder@2.1.4: {} @@ -28221,7 +28203,7 @@ snapshots: html-void-elements@3.0.0: {} - html-webpack-plugin@5.6.3(webpack@5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))): + html-webpack-plugin@5.6.3(webpack@5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))(esbuild@0.25.0)): dependencies: '@types/html-minifier-terser': 6.1.0 html-minifier-terser: 6.1.0 @@ -28229,7 +28211,7 @@ snapshots: pretty-error: 4.0.0 tapable: 2.2.1 optionalDependencies: - webpack: 5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15)) + webpack: 5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))(esbuild@0.25.0) htmlparser2@3.10.1: dependencies: @@ -28293,7 +28275,7 @@ snapshots: https-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 - debug: 4.4.0 + debug: 4.4.0(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -30751,7 +30733,7 @@ snapshots: node-int64@0.4.0: {} - node-polyfill-webpack-plugin@2.0.1(webpack@5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))): + node-polyfill-webpack-plugin@2.0.1(webpack@5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))(esbuild@0.25.0)): dependencies: assert: 2.1.0 browserify-zlib: 0.2.0 @@ -30778,7 +30760,7 @@ snapshots: url: 0.11.4 util: 0.12.5 vm-browserify: 1.1.2 - webpack: 5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15)) + webpack: 5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))(esbuild@0.25.0) node-releases@2.0.19: {} @@ -31466,14 +31448,14 @@ snapshots: tsx: 4.19.3 yaml: 2.7.0 - postcss-loader@8.1.1(postcss@8.5.3)(typescript@5.7.3)(webpack@5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))): + postcss-loader@8.1.1(postcss@8.5.3)(typescript@5.7.3)(webpack@5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))(esbuild@0.25.0)): dependencies: cosmiconfig: 9.0.0(typescript@5.7.3) jiti: 1.21.7 postcss: 8.5.3 semver: 7.7.1 optionalDependencies: - webpack: 5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15)) + webpack: 5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))(esbuild@0.25.0) transitivePeerDependencies: - typescript @@ -32662,11 +32644,11 @@ snapshots: safer-buffer@2.1.2: {} - sass-loader@14.2.1(webpack@5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))): + sass-loader@14.2.1(webpack@5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))(esbuild@0.25.0)): dependencies: neo-async: 2.6.2 optionalDependencies: - webpack: 5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15)) + webpack: 5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))(esbuild@0.25.0) satori@0.12.1: dependencies: @@ -33262,9 +33244,9 @@ snapshots: structured-headers@0.4.1: {} - style-loader@3.3.4(webpack@5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))): + style-loader@3.3.4(webpack@5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))(esbuild@0.25.0)): dependencies: - webpack: 5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15)) + webpack: 5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))(esbuild@0.25.0) style-to-object@0.4.4: dependencies: @@ -33515,6 +33497,18 @@ snapshots: ansi-escapes: 4.3.2 supports-hyperlinks: 2.3.0 + terser-webpack-plugin@5.3.11(@swc/core@1.11.1(@swc/helpers@0.5.15))(esbuild@0.25.0)(webpack@5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))(esbuild@0.25.0)): + dependencies: + '@jridgewell/trace-mapping': 0.3.25 + jest-worker: 27.5.1 + schema-utils: 4.3.0 + serialize-javascript: 6.0.2 + terser: 5.39.0 + webpack: 5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))(esbuild@0.25.0) + optionalDependencies: + '@swc/core': 1.11.1(@swc/helpers@0.5.15) + esbuild: 0.25.0 + terser-webpack-plugin@5.3.11(@swc/core@1.11.1(@swc/helpers@0.5.15))(webpack@5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))): dependencies: '@jridgewell/trace-mapping': 0.3.25 @@ -33526,16 +33520,14 @@ snapshots: optionalDependencies: '@swc/core': 1.11.1(@swc/helpers@0.5.15) - terser-webpack-plugin@5.3.11(esbuild@0.25.0)(webpack@5.98.0(esbuild@0.25.0)): + terser-webpack-plugin@5.3.11(webpack@5.98.0): dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 schema-utils: 4.3.0 serialize-javascript: 6.0.2 terser: 5.39.0 - webpack: 5.98.0(esbuild@0.25.0) - optionalDependencies: - esbuild: 0.25.0 + webpack: 5.98.0 terser@5.39.0: dependencies: @@ -34340,7 +34332,7 @@ snapshots: vite-node@3.0.7(@types/node@22.13.5)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0): dependencies: cac: 6.7.14 - debug: 4.4.0 + debug: 4.4.0(supports-color@8.1.1) es-module-lexer: 1.6.0 pathe: 2.0.3 vite: 6.2.0(@types/node@22.13.5)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) @@ -34423,7 +34415,7 @@ snapshots: '@vitest/spy': 3.0.7 '@vitest/utils': 3.0.7 chai: 5.2.0 - debug: 4.4.0 + debug: 4.4.0(supports-color@8.1.1) expect-type: 1.1.0 magic-string: 0.30.17 pathe: 2.0.3 @@ -34549,7 +34541,7 @@ snapshots: - bufferutil - utf-8-validate - webpack-dev-middleware@6.1.3(webpack@5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))): + webpack-dev-middleware@6.1.3(webpack@5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))(esbuild@0.25.0)): dependencies: colorette: 2.0.20 memfs: 3.5.3 @@ -34557,7 +34549,7 @@ snapshots: range-parser: 1.2.1 schema-utils: 4.3.0 optionalDependencies: - webpack: 5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15)) + webpack: 5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))(esbuild@0.25.0) webpack-hot-middleware@2.26.1: dependencies: @@ -34571,6 +34563,36 @@ snapshots: webpack-virtual-modules@0.6.2: {} + webpack@5.98.0: + dependencies: + '@types/eslint-scope': 3.7.7 + '@types/estree': 1.0.6 + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/wasm-edit': 1.14.1 + '@webassemblyjs/wasm-parser': 1.14.1 + acorn: 8.14.0 + browserslist: 4.24.4 + chrome-trace-event: 1.0.4 + enhanced-resolve: 5.18.1 + es-module-lexer: 1.6.0 + eslint-scope: 5.1.1 + events: 3.3.0 + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + json-parse-even-better-errors: 2.3.1 + loader-runner: 4.3.0 + mime-types: 2.1.35 + neo-async: 2.6.2 + schema-utils: 4.3.0 + tapable: 2.2.1 + terser-webpack-plugin: 5.3.11(webpack@5.98.0) + watchpack: 2.4.2 + webpack-sources: 3.2.3 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js + webpack@5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15)): dependencies: '@types/eslint-scope': 3.7.7 @@ -34601,7 +34623,7 @@ snapshots: - esbuild - uglify-js - webpack@5.98.0(esbuild@0.25.0): + webpack@5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))(esbuild@0.25.0): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.6 @@ -34623,7 +34645,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 4.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.11(esbuild@0.25.0)(webpack@5.98.0(esbuild@0.25.0)) + terser-webpack-plugin: 5.3.11(@swc/core@1.11.1(@swc/helpers@0.5.15))(esbuild@0.25.0)(webpack@5.98.0(@swc/core@1.11.1(@swc/helpers@0.5.15))(esbuild@0.25.0)) watchpack: 2.4.2 webpack-sources: 3.2.3 transitivePeerDependencies: