From 279fad54c18b0fb0ff89d3da3a838d5d170dfcd6 Mon Sep 17 00:00:00 2001 From: Kien Ngo Date: Thu, 24 Oct 2024 15:17:45 +0700 Subject: [PATCH] Update --- apps/dashboard/package.json | 1 + apps/dashboard/src/@/components/ui/tabs.tsx | 52 ++++ .../nfts/components/claim-button.tsx | 279 ++++++++++++++---- .../tokens/components/airdrop-upload.tsx | 17 +- pnpm-lock.yaml | 270 ++++++----------- 5 files changed, 389 insertions(+), 230 deletions(-) diff --git a/apps/dashboard/package.json b/apps/dashboard/package.json index 9331d4f99e1..00c2860effb 100644 --- a/apps/dashboard/package.json +++ b/apps/dashboard/package.json @@ -45,6 +45,7 @@ "@radix-ui/react-separator": "^1.1.0", "@radix-ui/react-slot": "^1.1.0", "@radix-ui/react-switch": "^1.1.1", + "@radix-ui/react-tabs": "^1.1.1", "@radix-ui/react-tooltip": "1.1.3", "@sentry/nextjs": "8.35.0", "@shazow/whatsabi": "^0.15.4", diff --git a/apps/dashboard/src/@/components/ui/tabs.tsx b/apps/dashboard/src/@/components/ui/tabs.tsx index 1e854a05dc9..06007c6c35a 100644 --- a/apps/dashboard/src/@/components/ui/tabs.tsx +++ b/apps/dashboard/src/@/components/ui/tabs.tsx @@ -1,5 +1,8 @@ "use client"; +import * as TabsPrimitive from "@radix-ui/react-tabs"; +import * as React from "react"; + import { useIsomorphicLayoutEffect } from "@/lib/useIsomorphicLayoutEffect"; import { cn } from "@/lib/utils"; import Link from "next/link"; @@ -8,6 +11,55 @@ import { useCallback, useRef, useState } from "react"; import { ScrollShadow } from "./ScrollShadow/ScrollShadow"; import { Button } from "./button"; +const Tabs = TabsPrimitive.Root; + +const TabsList = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)); +TabsList.displayName = TabsPrimitive.List.displayName; + +const TabsTrigger = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)); +TabsTrigger.displayName = TabsPrimitive.Trigger.displayName; + +const TabsContent = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)); +TabsContent.displayName = TabsPrimitive.Content.displayName; + +export { Tabs, TabsList, TabsTrigger, TabsContent }; + export type TabLink = { name: string; href: string; diff --git a/apps/dashboard/src/app/(dashboard)/(chain)/[chain_id]/[contractAddress]/nfts/components/claim-button.tsx b/apps/dashboard/src/app/(dashboard)/(chain)/[chain_id]/[contractAddress]/nfts/components/claim-button.tsx index 82aed57d65e..9233a829d03 100644 --- a/apps/dashboard/src/app/(dashboard)/(chain)/[chain_id]/[contractAddress]/nfts/components/claim-button.tsx +++ b/apps/dashboard/src/app/(dashboard)/(chain)/[chain_id]/[contractAddress]/nfts/components/claim-button.tsx @@ -7,21 +7,24 @@ import { SheetTitle, SheetTrigger, } from "@/components/ui/sheet"; +import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; import { FormControl, Input } from "@chakra-ui/react"; import { TransactionButton } from "components/buttons/TransactionButton"; import { useTrack } from "hooks/analytics/useTrack"; import { GemIcon } from "lucide-react"; -import { useState } from "react"; +import { type Dispatch, type SetStateAction, useState } from "react"; import { useForm } from "react-hook-form"; import { toast } from "sonner"; import { type ThirdwebContract, ZERO_ADDRESS } from "thirdweb"; import { getApprovalForTransaction } from "thirdweb/extensions/erc20"; -import { claimTo } from "thirdweb/extensions/erc721"; +import { claimTo, claimToBatch } from "thirdweb/extensions/erc721"; import { useActiveAccount, useSendAndConfirmTransaction } from "thirdweb/react"; import { Button } from "tw-components"; import { FormErrorMessage, FormHelperText, FormLabel } from "tw-components"; - -const CLAIM_FORM_ID = "nft-claim-form"; +import { + type AirdropAddressInput, + AirdropUpload, +} from "../../tokens/components/airdrop-upload"; interface NFTClaimButtonProps { contract: ThirdwebContract; @@ -32,16 +35,7 @@ interface NFTClaimButtonProps { * For Edition Drop we have a dedicated ClaimTabERC1155 inside each Edition's page */ export const NFTClaimButton: React.FC = ({ contract }) => { - const trackEvent = useTrack(); - const address = useActiveAccount()?.address; - const { register, handleSubmit, formState } = useForm({ - defaultValues: { amount: "1", to: address }, - }); - const { errors } = formState; - const sendAndConfirmTx = useSendAndConfirmTransaction(); - const account = useActiveAccount(); const [open, setOpen] = useState(false); - return ( @@ -53,41 +47,203 @@ export const NFTClaimButton: React.FC = ({ contract }) => { Claim NFTs -
-
- - To Address - - Enter the address to claim to. - {errors.to?.message} - - - Amount - { - const valueNum = Number(value); - if (!Number.isInteger(valueNum)) { - return "Amount must be an integer"; - } + + + + Single claim + + + Batch claim + + + + + + + + + + + + ); +}; + +function SingleClaimTab({ + contract, + setOpen, +}: { contract: ThirdwebContract; setOpen: Dispatch> }) { + const CLAIM_FORM_ID = "nft-claim-form"; + const trackEvent = useTrack(); + const address = useActiveAccount()?.address; + const { register, handleSubmit, formState } = useForm({ + defaultValues: { amount: "1", to: address }, + }); + const { errors } = formState; + const sendAndConfirmTx = useSendAndConfirmTransaction(); + const account = useActiveAccount(); + return ( + <> + +
+ + To Address + + Enter the address to claim to. + {errors.to?.message} + + + Amount + { + const valueNum = Number(value); + if (!Number.isInteger(valueNum)) { + return "Amount must be an integer"; + } + }, + })} + /> + How many would you like to claim? + {errors.amount?.message} + +
+ +
+ { + try { + trackEvent({ + category: "nft", + action: "claim", + label: "attempt", + }); + if (!account) { + return toast.error("No account detected"); + } + if (!d.to) { + return toast.error( + "Please enter the address that will receive the NFT", + ); + } + + const transaction = claimTo({ + contract, + to: d.to, + quantity: BigInt(d.amount), + from: account.address, + }); + + const approveTx = await getApprovalForTransaction({ + transaction, + account, + }); + + if (approveTx) { + const promise = sendAndConfirmTx.mutateAsync(approveTx, { + onError: (error) => { + console.error(error); }, - })} - /> - How many would you like to claim? - {errors.amount?.message} - -
- + }); + toast.promise(promise, { + loading: "Approving ERC20 tokens for this claim", + success: "Tokens approved successfully", + error: "Failed to approve token", + }); + + await promise; + } + + const promise = sendAndConfirmTx.mutateAsync(transaction, { + onSuccess: () => { + trackEvent({ + category: "nft", + action: "claim", + label: "success", + }); + setOpen(false); + }, + onError: (error) => { + trackEvent({ + category: "nft", + action: "claim", + label: "error", + error, + }); + }, + }); + + toast.promise(promise, { + loading: "Claiming NFT(s)", + success: "NFT(s) claimed successfully", + error: "Failed to claim NFT(s)", + }); + } catch (error) { + console.error(error); + toast.error((error as Error).message || "Error claiming NFT"); + trackEvent({ + category: "nft", + action: "claim", + label: "error", + error, + }); + } + })} + > + Claim NFT + +
+ + ); +} + +function BatchClaimTab({ + contract, + setOpen, +}: { + contract: ThirdwebContract; + setOpen: Dispatch>; +}) { + const CLAIM_FORM_ID = "nft-claim-form"; + const trackEvent = useTrack(); + const form = useForm<{ + addresses: AirdropAddressInput[]; + }>({ + defaultValues: { addresses: [] }, + }); + const currentAddresses = form.watch("addresses"); + const account = useActiveAccount(); + const sendAndConfirmTx = useSendAndConfirmTransaction(); + if (currentAddresses.length > 0) { + return ( + <> +

+ ● {currentAddresses.length} addresses ready to be + airdropped +

+ {/* No need to show if there's only 1 claim address */} + {currentAddresses.length > 1 && ( +

+ Depends on the network that you are using, the number of unique + addresses that you can claim per batch is limited. The higher the + amount, the lower chance the transaction will succeed. +

+ )}
{ + onClick={form.handleSubmit(async (d) => { try { trackEvent({ category: "nft", @@ -97,18 +253,23 @@ export const NFTClaimButton: React.FC = ({ contract }) => { if (!account) { return toast.error("No account detected"); } - if (!d.to) { - return toast.error( - "Please enter the address that will receive the NFT", - ); - } - const transaction = claimTo({ - contract, - to: d.to, - quantity: BigInt(d.amount), - from: account.address, - }); + const transaction = + d.addresses.length === 1 && d.addresses[0] + ? claimTo({ + contract, + to: d.addresses[0].address, + quantity: BigInt(d.addresses[0].quantity), + from: account.address, + }) + : claimToBatch({ + contract, + content: d.addresses.map((o) => ({ + to: o.address, + quantity: BigInt(o.quantity), + })), + from: account.address, + }); const approveTx = await getApprovalForTransaction({ transaction, @@ -140,6 +301,7 @@ export const NFTClaimButton: React.FC = ({ contract }) => { setOpen(false); }, onError: (error) => { + console.log(error); trackEvent({ category: "nft", action: "claim", @@ -166,10 +328,17 @@ export const NFTClaimButton: React.FC = ({ contract }) => { } })} > - Claim NFT + Claim NFTs
- -
+ + ); + } + return ( + + form.setValue("addresses", value, { shouldDirty: true }) + } + /> ); -}; +} diff --git a/apps/dashboard/src/app/(dashboard)/(chain)/[chain_id]/[contractAddress]/tokens/components/airdrop-upload.tsx b/apps/dashboard/src/app/(dashboard)/(chain)/[chain_id]/[contractAddress]/tokens/components/airdrop-upload.tsx index 89d57a02b04..71802d65003 100644 --- a/apps/dashboard/src/app/(dashboard)/(chain)/[chain_id]/[contractAddress]/tokens/components/airdrop-upload.tsx +++ b/apps/dashboard/src/app/(dashboard)/(chain)/[chain_id]/[contractAddress]/tokens/components/airdrop-upload.tsx @@ -40,7 +40,7 @@ export interface AirdropAddressInput { } interface AirdropUploadProps { setAirdrop: (airdrop: AirdropAddressInput[]) => void; - onClose: () => void; + onClose?: () => void; } async function checkIsAddress( item: AirdropAddressInput, @@ -92,6 +92,15 @@ function processAirdropData( return ordered; } +/** + * This upload form can be reused between the following features: + * 1. Batch transfer (or Airdrop) for ERC1155 contract (in the token page) + * 2. Batch transfer for ERC20 contract + * 3. Batch claim for ERC721 Drop contract + * + * since they all do not require a tokenId column in the CSV file. + * Should we want to include that column, we might have to refactor some code + */ export const AirdropUpload: React.FC = ({ setAirdrop, onClose, @@ -158,7 +167,9 @@ export const AirdropUpload: React.FC = ({ const paginationPortalRef = useRef(null); const onSave = () => { setAirdrop(normalizeQuery.data.result); - onClose(); + if (onClose) { + onClose(); + } }; const removeInvalid = useCallback(() => { const filteredData = normalizeQuery.data?.result.filter( @@ -389,7 +400,7 @@ const AirdropTable: React.FC = ({ data, portalRef }) => { {/* Only need to show the Pagination components if we have more than 25 records */} - {data.length > 0 && ( + {data.length > 25 && (
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3bd7721e095..89cf608420b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -132,12 +132,15 @@ importers: '@radix-ui/react-switch': specifier: ^1.1.1 version: 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-tabs': + specifier: ^1.1.1 + version: 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-tooltip': specifier: 1.1.3 version: 1.1.3(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@sentry/nextjs': specifier: 8.35.0 - version: 8.35.0(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.27.0(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.53.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.27.0(@opentelemetry/api@1.9.0))(next@14.2.15(@babel/core@7.25.9)(@opentelemetry/api@1.9.0)(@playwright/test@1.47.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(webpack@5.95.0(@swc/core@1.7.39(@swc/helpers@0.5.13))(esbuild@0.23.1)) + version: 8.35.0(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.27.0(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.53.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.27.0(@opentelemetry/api@1.9.0))(next@14.2.15(@babel/core@7.25.9)(@opentelemetry/api@1.9.0)(@playwright/test@1.47.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(webpack@5.95.0(@swc/core@1.7.39)(esbuild@0.23.1)) '@shazow/whatsabi': specifier: ^0.15.4 version: 0.15.4(@noble/hashes@1.5.0)(bufferutil@4.0.8)(utf-8-validate@5.0.10) @@ -290,7 +293,7 @@ importers: version: 2.5.4 tailwindcss-animate: specifier: ^1.0.7 - version: 1.0.7(tailwindcss@3.4.14(ts-node@10.9.2(@swc/core@1.7.39(@swc/helpers@0.5.13))(@types/node@20.14.9)(typescript@5.6.3))) + version: 1.0.7(tailwindcss@3.4.14(ts-node@10.9.2(@types/node@20.14.9)(typescript@5.6.3))) thirdweb: specifier: workspace:* version: link:../../packages/thirdweb @@ -339,7 +342,7 @@ importers: version: 8.3.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.6(bufferutil@4.0.8)(utf-8-validate@5.0.10)) '@storybook/nextjs': specifier: 8.3.6 - version: 8.3.6(@swc/core@1.7.39(@swc/helpers@0.5.13))(esbuild@0.23.1)(next@14.2.15(@babel/core@7.25.9)(@opentelemetry/api@1.9.0)(@playwright/test@1.47.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.6(bufferutil@4.0.8)(utf-8-validate@5.0.10))(type-fest@4.26.1)(typescript@5.6.3)(webpack-hot-middleware@2.26.1)(webpack@5.95.0(@swc/core@1.7.39(@swc/helpers@0.5.13))(esbuild@0.23.1)) + version: 8.3.6(@swc/core@1.7.39)(esbuild@0.23.1)(next@14.2.15(@babel/core@7.25.9)(@opentelemetry/api@1.9.0)(@playwright/test@1.47.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.6(bufferutil@4.0.8)(utf-8-validate@5.0.10))(type-fest@4.26.1)(typescript@5.6.3)(webpack-hot-middleware@2.26.1)(webpack@5.95.0(@swc/core@1.7.39)(esbuild@0.23.1)) '@storybook/react': specifier: 8.3.6 version: 8.3.6(@storybook/test@8.3.6(storybook@8.3.6(bufferutil@4.0.8)(utf-8-validate@5.0.10)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.6(bufferutil@4.0.8)(utf-8-validate@5.0.10))(typescript@5.6.3) @@ -387,7 +390,7 @@ importers: version: 10.4.20(postcss@8.4.47) checkly: specifier: ^4.8.1 - version: 4.9.1(@swc/core@1.7.39(@swc/helpers@0.5.13))(@types/node@20.14.9)(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10) + version: 4.9.1(@swc/core@1.7.39)(@types/node@20.14.9)(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10) eslint: specifier: 8.57.0 version: 8.57.0 @@ -414,7 +417,7 @@ importers: version: 8.3.6(bufferutil@4.0.8)(utf-8-validate@5.0.10) tailwindcss: specifier: 3.4.14 - version: 3.4.14(ts-node@10.9.2(@swc/core@1.7.39(@swc/helpers@0.5.13))(@types/node@20.14.9)(typescript@5.6.3)) + version: 3.4.14(ts-node@10.9.2(@types/node@20.14.9)(typescript@5.6.3)) typescript: specifier: 5.6.3 version: 5.6.3 @@ -526,10 +529,10 @@ importers: version: 8.4.47 tailwindcss: specifier: 3.4.14 - version: 3.4.14(ts-node@10.9.2(@swc/core@1.7.39(@swc/helpers@0.5.13))(@types/node@20.14.9)(typescript@5.6.3)) + version: 3.4.14(ts-node@10.9.2(@types/node@20.14.9)(typescript@5.6.3)) tailwindcss-animate: specifier: ^1.0.7 - version: 1.0.7(tailwindcss@3.4.14(ts-node@10.9.2(@swc/core@1.7.39(@swc/helpers@0.5.13))(@types/node@20.14.9)(typescript@5.6.3))) + version: 1.0.7(tailwindcss@3.4.14(ts-node@10.9.2(@types/node@20.14.9)(typescript@5.6.3))) typescript: specifier: 5.6.3 version: 5.6.3 @@ -541,13 +544,13 @@ importers: version: 1.0.1(react@18.3.1) '@mdx-js/loader': specifier: ^2.3.0 - version: 2.3.0(webpack@5.95.0(@swc/core@1.7.39(@swc/helpers@0.5.13))) + version: 2.3.0(webpack@5.95.0) '@mdx-js/react': specifier: ^2.3.0 version: 2.3.0(react@18.3.1) '@next/mdx': specifier: ^13.5.6 - version: 13.5.7(@mdx-js/loader@2.3.0(webpack@5.95.0(@swc/core@1.7.39(@swc/helpers@0.5.13))))(@mdx-js/react@2.3.0(react@18.3.1)) + version: 13.5.7(@mdx-js/loader@2.3.0(webpack@5.95.0))(@mdx-js/react@2.3.0(react@18.3.1)) '@radix-ui/react-dialog': specifier: 1.1.2 version: 1.1.2(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -628,7 +631,7 @@ importers: version: 2.5.4 tailwindcss-animate: specifier: ^1.0.7 - version: 1.0.7(tailwindcss@3.4.14(ts-node@10.9.2(@swc/core@1.7.39(@swc/helpers@0.5.13))(@types/node@20.14.9)(typescript@5.6.3))) + version: 1.0.7(tailwindcss@3.4.14(ts-node@10.9.2(@types/node@20.14.9)(typescript@5.6.3))) thirdweb: specifier: workspace:* version: link:../../packages/thirdweb @@ -686,7 +689,7 @@ importers: version: 1.2.4 eslint-plugin-tailwindcss: specifier: ^3.17.5 - version: 3.17.5(tailwindcss@3.4.14(ts-node@10.9.2(@swc/core@1.7.39(@swc/helpers@0.5.13))(@types/node@20.14.9)(typescript@5.6.3))) + version: 3.17.5(tailwindcss@3.4.14(ts-node@10.9.2(@types/node@20.14.9)(typescript@5.6.3))) next-sitemap: specifier: ^4.2.3 version: 4.2.3(next@14.2.15(@opentelemetry/api@1.9.0)(@playwright/test@1.48.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) @@ -695,7 +698,7 @@ importers: version: 8.4.47 tailwindcss: specifier: 3.4.14 - version: 3.4.14(ts-node@10.9.2(@swc/core@1.7.39(@swc/helpers@0.5.13))(@types/node@20.14.9)(typescript@5.6.3)) + version: 3.4.14(ts-node@10.9.2(@types/node@20.14.9)(typescript@5.6.3)) tsx: specifier: ^4.19.1 version: 4.19.1 @@ -764,7 +767,7 @@ importers: version: 2.5.4 tailwindcss-animate: specifier: ^1.0.7 - version: 1.0.7(tailwindcss@3.4.14(ts-node@10.9.2(@swc/core@1.7.39(@swc/helpers@0.5.13))(@types/node@20.14.9)(typescript@5.6.3))) + version: 1.0.7(tailwindcss@3.4.14(ts-node@10.9.2(@types/node@20.14.9)(typescript@5.6.3))) thirdweb: specifier: workspace:* version: link:../../packages/thirdweb @@ -795,7 +798,7 @@ importers: version: 8.4.47 tailwindcss: specifier: 3.4.14 - version: 3.4.14(ts-node@10.9.2(@swc/core@1.7.39(@swc/helpers@0.5.13))(@types/node@20.14.9)(typescript@5.6.3)) + version: 3.4.14(ts-node@10.9.2(@types/node@20.14.9)(typescript@5.6.3)) typescript: specifier: 5.6.3 version: 5.6.3 @@ -5605,9 +5608,6 @@ packages: '@swc/counter@0.1.3': resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} - '@swc/helpers@0.5.13': - resolution: {integrity: sha512-UoKGxQ3r5kYI9dALKJapMmuK+1zWM/H17Z1+iwnNmzcJRnfFuevZs375TA5rW31pu4BS4NoSy1fRsexDXfWn5w==} - '@swc/helpers@0.5.5': resolution: {integrity: sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==} @@ -17409,11 +17409,11 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@mdx-js/loader@2.3.0(webpack@5.95.0(@swc/core@1.7.39(@swc/helpers@0.5.13)))': + '@mdx-js/loader@2.3.0(webpack@5.95.0)': dependencies: '@mdx-js/mdx': 2.3.0 source-map: 0.7.4 - webpack: 5.95.0(@swc/core@1.7.39(@swc/helpers@0.5.13)) + webpack: 5.95.0 transitivePeerDependencies: - supports-color @@ -17557,11 +17557,11 @@ snapshots: dependencies: glob: 10.3.10 - '@next/mdx@13.5.7(@mdx-js/loader@2.3.0(webpack@5.95.0(@swc/core@1.7.39(@swc/helpers@0.5.13))))(@mdx-js/react@2.3.0(react@18.3.1))': + '@next/mdx@13.5.7(@mdx-js/loader@2.3.0(webpack@5.95.0))(@mdx-js/react@2.3.0(react@18.3.1))': dependencies: source-map: 0.7.4 optionalDependencies: - '@mdx-js/loader': 2.3.0(webpack@5.95.0(@swc/core@1.7.39(@swc/helpers@0.5.13))) + '@mdx-js/loader': 2.3.0(webpack@5.95.0) '@mdx-js/react': 2.3.0(react@18.3.1) '@next/swc-darwin-arm64@14.2.15': @@ -17714,7 +17714,7 @@ snapshots: widest-line: 3.1.0 wrap-ansi: 7.0.0 - '@oclif/core@2.8.11(@swc/core@1.7.39(@swc/helpers@0.5.13))(@types/node@20.14.9)(typescript@5.6.3)': + '@oclif/core@2.8.11(@swc/core@1.7.39)(@types/node@20.14.9)(typescript@5.6.3)': dependencies: '@types/cli-progress': 3.11.5 ansi-escapes: 4.3.2 @@ -17740,7 +17740,7 @@ snapshots: strip-ansi: 6.0.1 supports-color: 8.1.1 supports-hyperlinks: 2.3.0 - ts-node: 10.9.2(@swc/core@1.7.39(@swc/helpers@0.5.13))(@types/node@20.14.9)(typescript@5.6.3) + ts-node: 10.9.2(@swc/core@1.7.39)(@types/node@20.14.9)(typescript@5.6.3) tslib: 2.8.0 widest-line: 3.1.0 wordwrap: 1.0.0 @@ -17777,10 +17777,10 @@ snapshots: dependencies: '@oclif/core': 1.26.2 - '@oclif/plugin-not-found@2.3.23(@swc/core@1.7.39(@swc/helpers@0.5.13))(@types/node@20.14.9)(typescript@5.6.3)': + '@oclif/plugin-not-found@2.3.23(@swc/core@1.7.39)(@types/node@20.14.9)(typescript@5.6.3)': dependencies: '@oclif/color': 1.0.13 - '@oclif/core': 2.8.11(@swc/core@1.7.39(@swc/helpers@0.5.13))(@types/node@20.14.9)(typescript@5.6.3) + '@oclif/core': 2.8.11(@swc/core@1.7.39)(@types/node@20.14.9)(typescript@5.6.3) fast-levenshtein: 3.0.0 lodash: 4.17.21 transitivePeerDependencies: @@ -17805,9 +17805,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@oclif/plugin-warn-if-update-available@2.0.24(@swc/core@1.7.39(@swc/helpers@0.5.13))(@types/node@20.14.9)(typescript@5.6.3)': + '@oclif/plugin-warn-if-update-available@2.0.24(@swc/core@1.7.39)(@types/node@20.14.9)(typescript@5.6.3)': dependencies: - '@oclif/core': 2.8.11(@swc/core@1.7.39(@swc/helpers@0.5.13))(@types/node@20.14.9)(typescript@5.6.3) + '@oclif/core': 2.8.11(@swc/core@1.7.39)(@types/node@20.14.9)(typescript@5.6.3) chalk: 4.1.2 debug: 4.3.7(supports-color@8.1.1) fs-extra: 9.1.0 @@ -18175,7 +18175,7 @@ snapshots: playwright: 1.48.1 optional: true - '@pmmmwh/react-refresh-webpack-plugin@0.5.15(react-refresh@0.14.2)(type-fest@4.26.1)(webpack-hot-middleware@2.26.1)(webpack@5.95.0(@swc/core@1.7.39(@swc/helpers@0.5.13))(esbuild@0.23.1))': + '@pmmmwh/react-refresh-webpack-plugin@0.5.15(react-refresh@0.14.2)(type-fest@4.26.1)(webpack-hot-middleware@2.26.1)(webpack@5.95.0(@swc/core@1.7.39)(esbuild@0.23.1))': dependencies: ansi-html: 0.0.9 core-js-pure: 3.38.1 @@ -18185,7 +18185,7 @@ snapshots: react-refresh: 0.14.2 schema-utils: 4.2.0 source-map: 0.7.4 - webpack: 5.95.0(@swc/core@1.7.39(@swc/helpers@0.5.13))(esbuild@0.23.1) + webpack: 5.95.0(@swc/core@1.7.39)(esbuild@0.23.1) optionalDependencies: type-fest: 4.26.1 webpack-hot-middleware: 2.26.1 @@ -19462,7 +19462,7 @@ snapshots: '@sentry/types': 8.35.0 '@sentry/utils': 8.35.0 - '@sentry/nextjs@8.35.0(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.27.0(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.53.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.27.0(@opentelemetry/api@1.9.0))(next@14.2.15(@babel/core@7.25.9)(@opentelemetry/api@1.9.0)(@playwright/test@1.47.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(webpack@5.95.0(@swc/core@1.7.39(@swc/helpers@0.5.13))(esbuild@0.23.1))': + '@sentry/nextjs@8.35.0(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.27.0(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.53.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.27.0(@opentelemetry/api@1.9.0))(next@14.2.15(@babel/core@7.25.9)(@opentelemetry/api@1.9.0)(@playwright/test@1.47.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)(webpack@5.95.0(@swc/core@1.7.39)(esbuild@0.23.1))': dependencies: '@opentelemetry/instrumentation-http': 0.53.0(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.27.0 @@ -19475,14 +19475,14 @@ snapshots: '@sentry/types': 8.35.0 '@sentry/utils': 8.35.0 '@sentry/vercel-edge': 8.35.0 - '@sentry/webpack-plugin': 2.22.3(webpack@5.95.0(@swc/core@1.7.39(@swc/helpers@0.5.13))(esbuild@0.23.1)) + '@sentry/webpack-plugin': 2.22.3(webpack@5.95.0(@swc/core@1.7.39)(esbuild@0.23.1)) chalk: 3.0.0 next: 14.2.15(@babel/core@7.25.9)(@opentelemetry/api@1.9.0)(@playwright/test@1.47.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) resolve: 1.22.8 rollup: 3.29.5 stacktrace-parser: 0.1.10 optionalDependencies: - webpack: 5.95.0(@swc/core@1.7.39(@swc/helpers@0.5.13))(esbuild@0.23.1) + webpack: 5.95.0(@swc/core@1.7.39)(esbuild@0.23.1) transitivePeerDependencies: - '@opentelemetry/api' - '@opentelemetry/core' @@ -19564,12 +19564,12 @@ snapshots: '@sentry/types': 8.35.0 '@sentry/utils': 8.35.0 - '@sentry/webpack-plugin@2.22.3(webpack@5.95.0(@swc/core@1.7.39(@swc/helpers@0.5.13))(esbuild@0.23.1))': + '@sentry/webpack-plugin@2.22.3(webpack@5.95.0(@swc/core@1.7.39)(esbuild@0.23.1))': dependencies: '@sentry/bundler-plugin-core': 2.22.3 unplugin: 1.0.1 uuid: 9.0.1 - webpack: 5.95.0(@swc/core@1.7.39(@swc/helpers@0.5.13))(esbuild@0.23.1) + webpack: 5.95.0(@swc/core@1.7.39)(esbuild@0.23.1) transitivePeerDependencies: - encoding - supports-color @@ -20217,7 +20217,7 @@ snapshots: - supports-color - webpack-sources - '@storybook/builder-webpack5@8.3.6(@swc/core@1.7.39(@swc/helpers@0.5.13))(esbuild@0.23.1)(storybook@8.3.6(bufferutil@4.0.8)(utf-8-validate@5.0.10))(typescript@5.6.3)': + '@storybook/builder-webpack5@8.3.6(@swc/core@1.7.39)(esbuild@0.23.1)(storybook@8.3.6(bufferutil@4.0.8)(utf-8-validate@5.0.10))(typescript@5.6.3)': dependencies: '@storybook/core-webpack': 8.3.6(storybook@8.3.6(bufferutil@4.0.8)(utf-8-validate@5.0.10)) '@types/node': 22.7.9 @@ -20226,25 +20226,25 @@ snapshots: case-sensitive-paths-webpack-plugin: 2.4.0 cjs-module-lexer: 1.4.1 constants-browserify: 1.0.0 - css-loader: 6.11.0(webpack@5.95.0(@swc/core@1.7.39(@swc/helpers@0.5.13))(esbuild@0.23.1)) + css-loader: 6.11.0(webpack@5.95.0(@swc/core@1.7.39)(esbuild@0.23.1)) es-module-lexer: 1.5.4 express: 4.21.1 - fork-ts-checker-webpack-plugin: 8.0.0(typescript@5.6.3)(webpack@5.95.0(@swc/core@1.7.39(@swc/helpers@0.5.13))(esbuild@0.23.1)) + fork-ts-checker-webpack-plugin: 8.0.0(typescript@5.6.3)(webpack@5.95.0(@swc/core@1.7.39)(esbuild@0.23.1)) fs-extra: 11.2.0 - html-webpack-plugin: 5.6.3(webpack@5.95.0(@swc/core@1.7.39(@swc/helpers@0.5.13))(esbuild@0.23.1)) + html-webpack-plugin: 5.6.3(webpack@5.95.0(@swc/core@1.7.39)(esbuild@0.23.1)) magic-string: 0.30.12 path-browserify: 1.0.1 process: 0.11.10 semver: 7.6.3 storybook: 8.3.6(bufferutil@4.0.8)(utf-8-validate@5.0.10) - style-loader: 3.3.4(webpack@5.95.0(@swc/core@1.7.39(@swc/helpers@0.5.13))(esbuild@0.23.1)) - terser-webpack-plugin: 5.3.10(@swc/core@1.7.39(@swc/helpers@0.5.13))(esbuild@0.23.1)(webpack@5.95.0(@swc/core@1.7.39(@swc/helpers@0.5.13))(esbuild@0.23.1)) + style-loader: 3.3.4(webpack@5.95.0(@swc/core@1.7.39)(esbuild@0.23.1)) + terser-webpack-plugin: 5.3.10(@swc/core@1.7.39)(esbuild@0.23.1)(webpack@5.95.0(@swc/core@1.7.39)(esbuild@0.23.1)) ts-dedent: 2.2.0 url: 0.11.4 util: 0.12.5 util-deprecate: 1.0.2 - webpack: 5.95.0(@swc/core@1.7.39(@swc/helpers@0.5.13))(esbuild@0.23.1) - webpack-dev-middleware: 6.1.3(webpack@5.95.0(@swc/core@1.7.39(@swc/helpers@0.5.13))(esbuild@0.23.1)) + webpack: 5.95.0(@swc/core@1.7.39)(esbuild@0.23.1) + webpack-dev-middleware: 6.1.3(webpack@5.95.0(@swc/core@1.7.39)(esbuild@0.23.1)) webpack-hot-middleware: 2.26.1 webpack-virtual-modules: 0.6.2 optionalDependencies: @@ -20320,7 +20320,7 @@ snapshots: dependencies: storybook: 8.3.6(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@storybook/nextjs@8.3.6(@swc/core@1.7.39(@swc/helpers@0.5.13))(esbuild@0.23.1)(next@14.2.15(@babel/core@7.25.9)(@opentelemetry/api@1.9.0)(@playwright/test@1.47.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.6(bufferutil@4.0.8)(utf-8-validate@5.0.10))(type-fest@4.26.1)(typescript@5.6.3)(webpack-hot-middleware@2.26.1)(webpack@5.95.0(@swc/core@1.7.39(@swc/helpers@0.5.13))(esbuild@0.23.1))': + '@storybook/nextjs@8.3.6(@swc/core@1.7.39)(esbuild@0.23.1)(next@14.2.15(@babel/core@7.25.9)(@opentelemetry/api@1.9.0)(@playwright/test@1.47.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.6(bufferutil@4.0.8)(utf-8-validate@5.0.10))(type-fest@4.26.1)(typescript@5.6.3)(webpack-hot-middleware@2.26.1)(webpack@5.95.0(@swc/core@1.7.39)(esbuild@0.23.1))': dependencies: '@babel/core': 7.25.9 '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.25.9) @@ -20335,32 +20335,32 @@ snapshots: '@babel/preset-react': 7.25.9(@babel/core@7.25.9) '@babel/preset-typescript': 7.25.9(@babel/core@7.25.9) '@babel/runtime': 7.25.9 - '@pmmmwh/react-refresh-webpack-plugin': 0.5.15(react-refresh@0.14.2)(type-fest@4.26.1)(webpack-hot-middleware@2.26.1)(webpack@5.95.0(@swc/core@1.7.39(@swc/helpers@0.5.13))(esbuild@0.23.1)) - '@storybook/builder-webpack5': 8.3.6(@swc/core@1.7.39(@swc/helpers@0.5.13))(esbuild@0.23.1)(storybook@8.3.6(bufferutil@4.0.8)(utf-8-validate@5.0.10))(typescript@5.6.3) - '@storybook/preset-react-webpack': 8.3.6(@storybook/test@8.3.6(storybook@8.3.6(bufferutil@4.0.8)(utf-8-validate@5.0.10)))(@swc/core@1.7.39(@swc/helpers@0.5.13))(esbuild@0.23.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.6(bufferutil@4.0.8)(utf-8-validate@5.0.10))(typescript@5.6.3) + '@pmmmwh/react-refresh-webpack-plugin': 0.5.15(react-refresh@0.14.2)(type-fest@4.26.1)(webpack-hot-middleware@2.26.1)(webpack@5.95.0(@swc/core@1.7.39)(esbuild@0.23.1)) + '@storybook/builder-webpack5': 8.3.6(@swc/core@1.7.39)(esbuild@0.23.1)(storybook@8.3.6(bufferutil@4.0.8)(utf-8-validate@5.0.10))(typescript@5.6.3) + '@storybook/preset-react-webpack': 8.3.6(@storybook/test@8.3.6(storybook@8.3.6(bufferutil@4.0.8)(utf-8-validate@5.0.10)))(@swc/core@1.7.39)(esbuild@0.23.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.6(bufferutil@4.0.8)(utf-8-validate@5.0.10))(typescript@5.6.3) '@storybook/react': 8.3.6(@storybook/test@8.3.6(storybook@8.3.6(bufferutil@4.0.8)(utf-8-validate@5.0.10)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.6(bufferutil@4.0.8)(utf-8-validate@5.0.10))(typescript@5.6.3) '@storybook/test': 8.3.6(storybook@8.3.6(bufferutil@4.0.8)(utf-8-validate@5.0.10)) '@types/node': 22.7.9 '@types/semver': 7.5.8 - babel-loader: 9.2.1(@babel/core@7.25.9)(webpack@5.95.0(@swc/core@1.7.39(@swc/helpers@0.5.13))(esbuild@0.23.1)) - css-loader: 6.11.0(webpack@5.95.0(@swc/core@1.7.39(@swc/helpers@0.5.13))(esbuild@0.23.1)) + babel-loader: 9.2.1(@babel/core@7.25.9)(webpack@5.95.0(@swc/core@1.7.39)(esbuild@0.23.1)) + css-loader: 6.11.0(webpack@5.95.0(@swc/core@1.7.39)(esbuild@0.23.1)) find-up: 5.0.0 fs-extra: 11.2.0 image-size: 1.1.1 loader-utils: 3.3.1 next: 14.2.15(@babel/core@7.25.9)(@opentelemetry/api@1.9.0)(@playwright/test@1.47.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - node-polyfill-webpack-plugin: 2.0.1(webpack@5.95.0(@swc/core@1.7.39(@swc/helpers@0.5.13))(esbuild@0.23.1)) + node-polyfill-webpack-plugin: 2.0.1(webpack@5.95.0(@swc/core@1.7.39)(esbuild@0.23.1)) pnp-webpack-plugin: 1.7.0(typescript@5.6.3) postcss: 8.4.47 - postcss-loader: 8.1.1(postcss@8.4.47)(typescript@5.6.3)(webpack@5.95.0(@swc/core@1.7.39(@swc/helpers@0.5.13))(esbuild@0.23.1)) + postcss-loader: 8.1.1(postcss@8.4.47)(typescript@5.6.3)(webpack@5.95.0(@swc/core@1.7.39)(esbuild@0.23.1)) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) react-refresh: 0.14.2 resolve-url-loader: 5.0.0 - sass-loader: 13.3.3(webpack@5.95.0(@swc/core@1.7.39(@swc/helpers@0.5.13))(esbuild@0.23.1)) + sass-loader: 13.3.3(webpack@5.95.0(@swc/core@1.7.39)(esbuild@0.23.1)) semver: 7.6.3 storybook: 8.3.6(bufferutil@4.0.8)(utf-8-validate@5.0.10) - style-loader: 3.3.4(webpack@5.95.0(@swc/core@1.7.39(@swc/helpers@0.5.13))(esbuild@0.23.1)) + style-loader: 3.3.4(webpack@5.95.0(@swc/core@1.7.39)(esbuild@0.23.1)) styled-jsx: 5.1.6(@babel/core@7.25.9)(react@18.3.1) ts-dedent: 2.2.0 tsconfig-paths: 4.2.0 @@ -20368,7 +20368,7 @@ snapshots: optionalDependencies: sharp: 0.33.5 typescript: 5.6.3 - webpack: 5.95.0(@swc/core@1.7.39(@swc/helpers@0.5.13))(esbuild@0.23.1) + webpack: 5.95.0(@swc/core@1.7.39)(esbuild@0.23.1) transitivePeerDependencies: - '@rspack/core' - '@swc/core' @@ -20388,11 +20388,11 @@ snapshots: - webpack-hot-middleware - webpack-plugin-serve - '@storybook/preset-react-webpack@8.3.6(@storybook/test@8.3.6(storybook@8.3.6(bufferutil@4.0.8)(utf-8-validate@5.0.10)))(@swc/core@1.7.39(@swc/helpers@0.5.13))(esbuild@0.23.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.6(bufferutil@4.0.8)(utf-8-validate@5.0.10))(typescript@5.6.3)': + '@storybook/preset-react-webpack@8.3.6(@storybook/test@8.3.6(storybook@8.3.6(bufferutil@4.0.8)(utf-8-validate@5.0.10)))(@swc/core@1.7.39)(esbuild@0.23.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.6(bufferutil@4.0.8)(utf-8-validate@5.0.10))(typescript@5.6.3)': dependencies: '@storybook/core-webpack': 8.3.6(storybook@8.3.6(bufferutil@4.0.8)(utf-8-validate@5.0.10)) '@storybook/react': 8.3.6(@storybook/test@8.3.6(storybook@8.3.6(bufferutil@4.0.8)(utf-8-validate@5.0.10)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.6(bufferutil@4.0.8)(utf-8-validate@5.0.10))(typescript@5.6.3) - '@storybook/react-docgen-typescript-plugin': 1.0.6--canary.9.0c3f3b7.0(typescript@5.6.3)(webpack@5.95.0(@swc/core@1.7.39(@swc/helpers@0.5.13))(esbuild@0.23.1)) + '@storybook/react-docgen-typescript-plugin': 1.0.6--canary.9.0c3f3b7.0(typescript@5.6.3)(webpack@5.95.0(@swc/core@1.7.39)(esbuild@0.23.1)) '@types/node': 22.7.9 '@types/semver': 7.5.8 find-up: 5.0.0 @@ -20405,7 +20405,7 @@ snapshots: semver: 7.6.3 storybook: 8.3.6(bufferutil@4.0.8)(utf-8-validate@5.0.10) tsconfig-paths: 4.2.0 - webpack: 5.95.0(@swc/core@1.7.39(@swc/helpers@0.5.13))(esbuild@0.23.1) + webpack: 5.95.0(@swc/core@1.7.39)(esbuild@0.23.1) optionalDependencies: typescript: 5.6.3 transitivePeerDependencies: @@ -20420,7 +20420,7 @@ snapshots: dependencies: storybook: 8.3.6(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@storybook/react-docgen-typescript-plugin@1.0.6--canary.9.0c3f3b7.0(typescript@5.6.3)(webpack@5.95.0(@swc/core@1.7.39(@swc/helpers@0.5.13))(esbuild@0.23.1))': + '@storybook/react-docgen-typescript-plugin@1.0.6--canary.9.0c3f3b7.0(typescript@5.6.3)(webpack@5.95.0(@swc/core@1.7.39)(esbuild@0.23.1))': dependencies: debug: 4.3.7(supports-color@8.1.1) endent: 2.1.0 @@ -20430,7 +20430,7 @@ snapshots: react-docgen-typescript: 2.2.2(typescript@5.6.3) tslib: 2.8.0 typescript: 5.6.3 - webpack: 5.95.0(@swc/core@1.7.39(@swc/helpers@0.5.13))(esbuild@0.23.1) + webpack: 5.95.0(@swc/core@1.7.39)(esbuild@0.23.1) transitivePeerDependencies: - supports-color @@ -20881,7 +20881,7 @@ snapshots: '@swc/core-win32-x64-msvc@1.7.39': optional: true - '@swc/core@1.7.39(@swc/helpers@0.5.13)': + '@swc/core@1.7.39': dependencies: '@swc/counter': 0.1.3 '@swc/types': 0.1.13 @@ -20896,16 +20896,10 @@ snapshots: '@swc/core-win32-arm64-msvc': 1.7.39 '@swc/core-win32-ia32-msvc': 1.7.39 '@swc/core-win32-x64-msvc': 1.7.39 - '@swc/helpers': 0.5.13 optional: true '@swc/counter@0.1.3': {} - '@swc/helpers@0.5.13': - dependencies: - tslib: 2.8.0 - optional: true - '@swc/helpers@0.5.5': dependencies: '@swc/counter': 0.1.3 @@ -22406,12 +22400,12 @@ snapshots: transitivePeerDependencies: - supports-color - babel-loader@9.2.1(@babel/core@7.25.9)(webpack@5.95.0(@swc/core@1.7.39(@swc/helpers@0.5.13))(esbuild@0.23.1)): + babel-loader@9.2.1(@babel/core@7.25.9)(webpack@5.95.0(@swc/core@1.7.39)(esbuild@0.23.1)): dependencies: '@babel/core': 7.25.9 find-cache-dir: 4.0.0 schema-utils: 4.2.0 - webpack: 5.95.0(@swc/core@1.7.39(@swc/helpers@0.5.13))(esbuild@0.23.1) + webpack: 5.95.0(@swc/core@1.7.39)(esbuild@0.23.1) babel-plugin-istanbul@6.1.1: dependencies: @@ -22893,13 +22887,13 @@ snapshots: check-error@2.1.1: {} - checkly@4.9.1(@swc/core@1.7.39(@swc/helpers@0.5.13))(@types/node@20.14.9)(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10): + checkly@4.9.1(@swc/core@1.7.39)(@types/node@20.14.9)(bufferutil@4.0.8)(typescript@5.6.3)(utf-8-validate@5.0.10): dependencies: - '@oclif/core': 2.8.11(@swc/core@1.7.39(@swc/helpers@0.5.13))(@types/node@20.14.9)(typescript@5.6.3) + '@oclif/core': 2.8.11(@swc/core@1.7.39)(@types/node@20.14.9)(typescript@5.6.3) '@oclif/plugin-help': 5.1.20 - '@oclif/plugin-not-found': 2.3.23(@swc/core@1.7.39(@swc/helpers@0.5.13))(@types/node@20.14.9)(typescript@5.6.3) + '@oclif/plugin-not-found': 2.3.23(@swc/core@1.7.39)(@types/node@20.14.9)(typescript@5.6.3) '@oclif/plugin-plugins': 5.4.4 - '@oclif/plugin-warn-if-update-available': 2.0.24(@swc/core@1.7.39(@swc/helpers@0.5.13))(@types/node@20.14.9)(typescript@5.6.3) + '@oclif/plugin-warn-if-update-available': 2.0.24(@swc/core@1.7.39)(@types/node@20.14.9)(typescript@5.6.3) '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.6.3) acorn: 8.8.1 acorn-walk: 8.2.0 @@ -23366,7 +23360,7 @@ snapshots: css-color-keywords@1.0.0: {} - css-loader@6.11.0(webpack@5.95.0(@swc/core@1.7.39(@swc/helpers@0.5.13))(esbuild@0.23.1)): + css-loader@6.11.0(webpack@5.95.0(@swc/core@1.7.39)(esbuild@0.23.1)): dependencies: icss-utils: 5.1.0(postcss@8.4.47) postcss: 8.4.47 @@ -23377,7 +23371,7 @@ snapshots: postcss-value-parser: 4.2.0 semver: 7.6.3 optionalDependencies: - webpack: 5.95.0(@swc/core@1.7.39(@swc/helpers@0.5.13))(esbuild@0.23.1) + webpack: 5.95.0(@swc/core@1.7.39)(esbuild@0.23.1) css-select@4.3.0: dependencies: @@ -24263,11 +24257,11 @@ snapshots: eslint-plugin-svg-jsx@1.2.4: {} - eslint-plugin-tailwindcss@3.17.5(tailwindcss@3.4.14(ts-node@10.9.2(@swc/core@1.7.39(@swc/helpers@0.5.13))(@types/node@20.14.9)(typescript@5.6.3))): + eslint-plugin-tailwindcss@3.17.5(tailwindcss@3.4.14(ts-node@10.9.2(@types/node@20.14.9)(typescript@5.6.3))): dependencies: fast-glob: 3.3.2 postcss: 8.4.47 - tailwindcss: 3.4.14(ts-node@10.9.2(@swc/core@1.7.39(@swc/helpers@0.5.13))(@types/node@20.14.9)(typescript@5.6.3)) + tailwindcss: 3.4.14(ts-node@10.9.2(@types/node@20.14.9)(typescript@5.6.3)) eslint-scope@5.1.1: dependencies: @@ -24873,7 +24867,7 @@ snapshots: cross-spawn: 7.0.3 signal-exit: 4.1.0 - fork-ts-checker-webpack-plugin@8.0.0(typescript@5.6.3)(webpack@5.95.0(@swc/core@1.7.39(@swc/helpers@0.5.13))(esbuild@0.23.1)): + fork-ts-checker-webpack-plugin@8.0.0(typescript@5.6.3)(webpack@5.95.0(@swc/core@1.7.39)(esbuild@0.23.1)): dependencies: '@babel/code-frame': 7.25.9 chalk: 4.1.2 @@ -24888,7 +24882,7 @@ snapshots: semver: 7.6.3 tapable: 2.2.1 typescript: 5.6.3 - webpack: 5.95.0(@swc/core@1.7.39(@swc/helpers@0.5.13))(esbuild@0.23.1) + webpack: 5.95.0(@swc/core@1.7.39)(esbuild@0.23.1) form-data-encoder@2.1.4: {} @@ -25414,7 +25408,7 @@ snapshots: html-void-elements@3.0.0: {} - html-webpack-plugin@5.6.3(webpack@5.95.0(@swc/core@1.7.39(@swc/helpers@0.5.13))(esbuild@0.23.1)): + html-webpack-plugin@5.6.3(webpack@5.95.0(@swc/core@1.7.39)(esbuild@0.23.1)): dependencies: '@types/html-minifier-terser': 6.1.0 html-minifier-terser: 6.1.0 @@ -25422,7 +25416,7 @@ snapshots: pretty-error: 4.0.0 tapable: 2.2.1 optionalDependencies: - webpack: 5.95.0(@swc/core@1.7.39(@swc/helpers@0.5.13))(esbuild@0.23.1) + webpack: 5.95.0(@swc/core@1.7.39)(esbuild@0.23.1) htmlparser2@3.10.1: dependencies: @@ -27864,7 +27858,7 @@ snapshots: '@next/env': 13.5.6 fast-glob: 3.3.2 minimist: 1.2.8 - next: 14.2.15(@opentelemetry/api@1.9.0)(@playwright/test@1.48.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: 14.2.15(@babel/core@7.25.9)(@opentelemetry/api@1.9.0)(@playwright/test@1.48.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) next-themes@0.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: @@ -27925,33 +27919,6 @@ snapshots: - '@babel/core' - babel-plugin-macros - next@14.2.15(@opentelemetry/api@1.9.0)(@playwright/test@1.48.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@next/env': 14.2.15 - '@swc/helpers': 0.5.5 - busboy: 1.6.0 - caniuse-lite: 1.0.30001669 - graceful-fs: 4.2.11 - postcss: 8.4.31 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - styled-jsx: 5.1.1(@babel/core@7.25.9)(react@18.3.1) - optionalDependencies: - '@next/swc-darwin-arm64': 14.2.15 - '@next/swc-darwin-x64': 14.2.15 - '@next/swc-linux-arm64-gnu': 14.2.15 - '@next/swc-linux-arm64-musl': 14.2.15 - '@next/swc-linux-x64-gnu': 14.2.15 - '@next/swc-linux-x64-musl': 14.2.15 - '@next/swc-win32-arm64-msvc': 14.2.15 - '@next/swc-win32-ia32-msvc': 14.2.15 - '@next/swc-win32-x64-msvc': 14.2.15 - '@opentelemetry/api': 1.9.0 - '@playwright/test': 1.48.1 - transitivePeerDependencies: - - '@babel/core' - - babel-plugin-macros - nextjs-toploader@1.6.12(next@14.2.15(@babel/core@7.25.9)(@opentelemetry/api@1.9.0)(@playwright/test@1.47.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: next: 14.2.15(@babel/core@7.25.9)(@opentelemetry/api@1.9.0)(@playwright/test@1.47.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -27962,7 +27929,7 @@ snapshots: nextjs-toploader@1.6.12(next@14.2.15(@opentelemetry/api@1.9.0)(@playwright/test@1.48.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - next: 14.2.15(@opentelemetry/api@1.9.0)(@playwright/test@1.48.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: 14.2.15(@babel/core@7.25.9)(@opentelemetry/api@1.9.0)(@playwright/test@1.48.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) nprogress: 0.2.0 prop-types: 15.8.1 react: 18.3.1 @@ -28019,7 +27986,7 @@ snapshots: node-int64@0.4.0: {} - node-polyfill-webpack-plugin@2.0.1(webpack@5.95.0(@swc/core@1.7.39(@swc/helpers@0.5.13))(esbuild@0.23.1)): + node-polyfill-webpack-plugin@2.0.1(webpack@5.95.0(@swc/core@1.7.39)(esbuild@0.23.1)): dependencies: assert: 2.1.0 browserify-zlib: 0.2.0 @@ -28046,7 +28013,7 @@ snapshots: url: 0.11.4 util: 0.12.5 vm-browserify: 1.1.2 - webpack: 5.95.0(@swc/core@1.7.39(@swc/helpers@0.5.13))(esbuild@0.23.1) + webpack: 5.95.0(@swc/core@1.7.39)(esbuild@0.23.1) node-releases@2.0.18: {} @@ -28656,22 +28623,22 @@ snapshots: camelcase-css: 2.0.1 postcss: 8.4.47 - postcss-load-config@4.0.2(postcss@8.4.47)(ts-node@10.9.2(@swc/core@1.7.39(@swc/helpers@0.5.13))(@types/node@20.14.9)(typescript@5.6.3)): + postcss-load-config@4.0.2(postcss@8.4.47)(ts-node@10.9.2(@types/node@20.14.9)(typescript@5.6.3)): dependencies: lilconfig: 3.1.2 yaml: 2.5.1 optionalDependencies: postcss: 8.4.47 - ts-node: 10.9.2(@swc/core@1.7.39(@swc/helpers@0.5.13))(@types/node@20.14.9)(typescript@5.6.3) + ts-node: 10.9.2(@swc/core@1.7.39)(@types/node@20.14.9)(typescript@5.6.3) - postcss-loader@8.1.1(postcss@8.4.47)(typescript@5.6.3)(webpack@5.95.0(@swc/core@1.7.39(@swc/helpers@0.5.13))(esbuild@0.23.1)): + postcss-loader@8.1.1(postcss@8.4.47)(typescript@5.6.3)(webpack@5.95.0(@swc/core@1.7.39)(esbuild@0.23.1)): dependencies: cosmiconfig: 9.0.0(typescript@5.6.3) jiti: 1.21.6 postcss: 8.4.47 semver: 7.6.3 optionalDependencies: - webpack: 5.95.0(@swc/core@1.7.39(@swc/helpers@0.5.13))(esbuild@0.23.1) + webpack: 5.95.0(@swc/core@1.7.39)(esbuild@0.23.1) transitivePeerDependencies: - typescript @@ -29827,10 +29794,10 @@ snapshots: safer-buffer@2.1.2: {} - sass-loader@13.3.3(webpack@5.95.0(@swc/core@1.7.39(@swc/helpers@0.5.13))(esbuild@0.23.1)): + sass-loader@13.3.3(webpack@5.95.0(@swc/core@1.7.39)(esbuild@0.23.1)): dependencies: neo-async: 2.6.2 - webpack: 5.95.0(@swc/core@1.7.39(@swc/helpers@0.5.13))(esbuild@0.23.1) + webpack: 5.95.0(@swc/core@1.7.39)(esbuild@0.23.1) satori@0.10.9: dependencies: @@ -30360,9 +30327,9 @@ snapshots: structured-headers@0.4.1: {} - style-loader@3.3.4(webpack@5.95.0(@swc/core@1.7.39(@swc/helpers@0.5.13))(esbuild@0.23.1)): + style-loader@3.3.4(webpack@5.95.0(@swc/core@1.7.39)(esbuild@0.23.1)): dependencies: - webpack: 5.95.0(@swc/core@1.7.39(@swc/helpers@0.5.13))(esbuild@0.23.1) + webpack: 5.95.0(@swc/core@1.7.39)(esbuild@0.23.1) style-to-object@0.4.4: dependencies: @@ -30512,11 +30479,11 @@ snapshots: tailwind-merge@2.5.4: {} - tailwindcss-animate@1.0.7(tailwindcss@3.4.14(ts-node@10.9.2(@swc/core@1.7.39(@swc/helpers@0.5.13))(@types/node@20.14.9)(typescript@5.6.3))): + tailwindcss-animate@1.0.7(tailwindcss@3.4.14(ts-node@10.9.2(@types/node@20.14.9)(typescript@5.6.3))): dependencies: - tailwindcss: 3.4.14(ts-node@10.9.2(@swc/core@1.7.39(@swc/helpers@0.5.13))(@types/node@20.14.9)(typescript@5.6.3)) + tailwindcss: 3.4.14(ts-node@10.9.2(@types/node@20.14.9)(typescript@5.6.3)) - tailwindcss@3.4.14(ts-node@10.9.2(@swc/core@1.7.39(@swc/helpers@0.5.13))(@types/node@20.14.9)(typescript@5.6.3)): + tailwindcss@3.4.14(ts-node@10.9.2(@types/node@20.14.9)(typescript@5.6.3)): dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 @@ -30535,7 +30502,7 @@ snapshots: postcss: 8.4.47 postcss-import: 15.1.0(postcss@8.4.47) postcss-js: 4.0.1(postcss@8.4.47) - postcss-load-config: 4.0.2(postcss@8.4.47)(ts-node@10.9.2(@swc/core@1.7.39(@swc/helpers@0.5.13))(@types/node@20.14.9)(typescript@5.6.3)) + postcss-load-config: 4.0.2(postcss@8.4.47)(ts-node@10.9.2(@types/node@20.14.9)(typescript@5.6.3)) postcss-nested: 6.2.0(postcss@8.4.47) postcss-selector-parser: 6.1.2 resolve: 1.22.8 @@ -30626,29 +30593,18 @@ snapshots: ansi-escapes: 4.3.2 supports-hyperlinks: 2.3.0 - terser-webpack-plugin@5.3.10(@swc/core@1.7.39(@swc/helpers@0.5.13))(esbuild@0.23.1)(webpack@5.95.0(@swc/core@1.7.39(@swc/helpers@0.5.13))(esbuild@0.23.1)): + terser-webpack-plugin@5.3.10(@swc/core@1.7.39)(esbuild@0.23.1)(webpack@5.95.0(@swc/core@1.7.39)(esbuild@0.23.1)): dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.2 terser: 5.36.0 - webpack: 5.95.0(@swc/core@1.7.39(@swc/helpers@0.5.13))(esbuild@0.23.1) + webpack: 5.95.0(@swc/core@1.7.39)(esbuild@0.23.1) optionalDependencies: - '@swc/core': 1.7.39(@swc/helpers@0.5.13) + '@swc/core': 1.7.39 esbuild: 0.23.1 - terser-webpack-plugin@5.3.10(@swc/core@1.7.39(@swc/helpers@0.5.13))(webpack@5.95.0(@swc/core@1.7.39(@swc/helpers@0.5.13))): - dependencies: - '@jridgewell/trace-mapping': 0.3.25 - jest-worker: 27.5.1 - schema-utils: 3.3.0 - serialize-javascript: 6.0.2 - terser: 5.36.0 - webpack: 5.95.0(@swc/core@1.7.39(@swc/helpers@0.5.13)) - optionalDependencies: - '@swc/core': 1.7.39(@swc/helpers@0.5.13) - terser-webpack-plugin@5.3.10(webpack@5.95.0): dependencies: '@jridgewell/trace-mapping': 0.3.25 @@ -30794,7 +30750,7 @@ snapshots: ts-mixer@6.0.4: {} - ts-node@10.9.2(@swc/core@1.7.39(@swc/helpers@0.5.13))(@types/node@20.14.9)(typescript@5.6.3): + ts-node@10.9.2(@swc/core@1.7.39)(@types/node@20.14.9)(typescript@5.6.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 @@ -30812,7 +30768,7 @@ snapshots: v8-compile-cache-lib: 3.0.1 yn: 3.1.1 optionalDependencies: - '@swc/core': 1.7.39(@swc/helpers@0.5.13) + '@swc/core': 1.7.39 ts-pnp@1.2.0(typescript@5.6.3): optionalDependencies: @@ -31638,7 +31594,7 @@ snapshots: - bufferutil - utf-8-validate - webpack-dev-middleware@6.1.3(webpack@5.95.0(@swc/core@1.7.39(@swc/helpers@0.5.13))(esbuild@0.23.1)): + webpack-dev-middleware@6.1.3(webpack@5.95.0(@swc/core@1.7.39)(esbuild@0.23.1)): dependencies: colorette: 2.0.20 memfs: 3.5.3 @@ -31646,7 +31602,7 @@ snapshots: range-parser: 1.2.1 schema-utils: 4.2.0 optionalDependencies: - webpack: 5.95.0(@swc/core@1.7.39(@swc/helpers@0.5.13))(esbuild@0.23.1) + webpack: 5.95.0(@swc/core@1.7.39)(esbuild@0.23.1) webpack-hot-middleware@2.26.1: dependencies: @@ -31690,37 +31646,7 @@ snapshots: - esbuild - uglify-js - webpack@5.95.0(@swc/core@1.7.39(@swc/helpers@0.5.13)): - dependencies: - '@types/estree': 1.0.6 - '@webassemblyjs/ast': 1.12.1 - '@webassemblyjs/wasm-edit': 1.12.1 - '@webassemblyjs/wasm-parser': 1.12.1 - acorn: 8.13.0 - acorn-import-attributes: 1.9.5(acorn@8.13.0) - browserslist: 4.24.2 - chrome-trace-event: 1.0.4 - enhanced-resolve: 5.17.1 - es-module-lexer: 1.5.4 - 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: 3.3.0 - tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(@swc/core@1.7.39(@swc/helpers@0.5.13))(webpack@5.95.0(@swc/core@1.7.39(@swc/helpers@0.5.13))) - watchpack: 2.4.2 - webpack-sources: 3.2.3 - transitivePeerDependencies: - - '@swc/core' - - esbuild - - uglify-js - - webpack@5.95.0(@swc/core@1.7.39(@swc/helpers@0.5.13))(esbuild@0.23.1): + webpack@5.95.0(@swc/core@1.7.39)(esbuild@0.23.1): dependencies: '@types/estree': 1.0.6 '@webassemblyjs/ast': 1.12.1 @@ -31742,7 +31668,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(@swc/core@1.7.39(@swc/helpers@0.5.13))(esbuild@0.23.1)(webpack@5.95.0(@swc/core@1.7.39(@swc/helpers@0.5.13))(esbuild@0.23.1)) + terser-webpack-plugin: 5.3.10(@swc/core@1.7.39)(esbuild@0.23.1)(webpack@5.95.0(@swc/core@1.7.39)(esbuild@0.23.1)) watchpack: 2.4.2 webpack-sources: 3.2.3 transitivePeerDependencies: