diff --git a/apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/(marketplace)/components/list-form.tsx b/apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/(marketplace)/components/list-form.tsx index 11730c4e1ed..cd4907fca3b 100644 --- a/apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/(marketplace)/components/list-form.tsx +++ b/apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/(marketplace)/components/list-form.tsx @@ -1,10 +1,10 @@ import { Alert, AlertTitle } from "@/components/ui/alert"; import { Button } from "@/components/ui/button"; import { Card } from "@/components/ui/card"; +import { cn } from "@/lib/utils"; import { useDashboardOwnedNFTs } from "@3rdweb-sdk/react/hooks/useDashboardOwnedNFTs"; import { useWalletNFTs } from "@3rdweb-sdk/react/hooks/useWalletNFTs"; import { - Box, Flex, FormControl, Input, @@ -539,19 +539,28 @@ export const CreateListingsForm: React.FC = ({ } > - isSelected(nft) ? form.setValue("selected", undefined) : form.setValue("selected", nft) } - outline={isSelected(nft) ? "3px solid" : undefined} - outlineColor={ - isSelected(nft) ? "purple.500" : undefined - } - overflow="hidden" + onKeyDown={(e) => { + if (e.key === "Enter" || e.key === " ") { + e.preventDefault(); + isSelected(nft) + ? form.setValue("selected", undefined) + : form.setValue("selected", nft); + } + }} + tabIndex={0} + role="button" + aria-pressed={isSelected(nft)} > = ({ height="140px" requireInteraction /> - + ); })} diff --git a/apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/_components/claim-conditions/claim-conditions-form/Inputs/ClaimPriceInput.tsx b/apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/_components/claim-conditions/claim-conditions-form/Inputs/ClaimPriceInput.tsx index 45adba454db..c9204099827 100644 --- a/apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/_components/claim-conditions/claim-conditions-form/Inputs/ClaimPriceInput.tsx +++ b/apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/_components/claim-conditions/claim-conditions-form/Inputs/ClaimPriceInput.tsx @@ -1,4 +1,5 @@ -import { Box, Flex } from "@chakra-ui/react"; +import { cn } from "@/lib/utils"; +import { Flex } from "@chakra-ui/react"; import { CurrencySelector } from "components/shared/CurrencySelector"; import { NATIVE_TOKEN_ADDRESS } from "thirdweb"; import { useClaimConditionsFormContext } from ".."; @@ -36,14 +37,14 @@ export const ClaimPriceInput = (props: { } > - +
form.setValue(`phases.${phaseIndex}.price`, val)} /> - - +
+
- +
); diff --git a/apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/_components/claim-conditions/claim-conditions-form/Inputs/ClaimerSelection.tsx b/apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/_components/claim-conditions/claim-conditions-form/Inputs/ClaimerSelection.tsx index aab2ee3fd38..dc0a76e3dc6 100644 --- a/apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/_components/claim-conditions/claim-conditions-form/Inputs/ClaimerSelection.tsx +++ b/apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/_components/claim-conditions/claim-conditions-form/Inputs/ClaimerSelection.tsx @@ -1,5 +1,5 @@ import { Button } from "@/components/ui/button"; -import { Box, Flex, Select } from "@chakra-ui/react"; +import { Flex, Select } from "@chakra-ui/react"; import { UploadIcon } from "lucide-react"; import { useClaimConditionsFormContext } from ".."; import { CustomFormControl } from "../common"; @@ -147,10 +147,7 @@ export const ClaimerSelection = () => { ) : ( - +
)} diff --git a/apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/_components/claim-conditions/claim-conditions-form/index.tsx b/apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/_components/claim-conditions/claim-conditions-form/index.tsx index f3b26340cc2..61cbd84cd1a 100644 --- a/apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/_components/claim-conditions/claim-conditions-form/index.tsx +++ b/apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/_components/claim-conditions/claim-conditions-form/index.tsx @@ -9,7 +9,6 @@ import { AlertDescription, AlertIcon, AlertTitle, - Box, Flex, Menu, MenuButton, @@ -647,7 +646,10 @@ export const ClaimConditionsForm: React.FC = ({
- }> + } + > {(hasRemovedPhases || hasAddedPhases) && ( diff --git a/apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/account-permissions/components/account-signer.tsx b/apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/account-permissions/components/account-signer.tsx index 2bcd28c4926..fb981f0159c 100644 --- a/apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/account-permissions/components/account-signer.tsx +++ b/apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/account-permissions/components/account-signer.tsx @@ -34,7 +34,7 @@ export const AccountSigner: React.FC = ({ endTimestamp, } = item; return ( - + = ({ contract }) => { return ( - + {balance?.symbol} {balance?.displayValue} {balanceQuery?.data ?.filter((bl) => bl.name !== "Native Token") .map((bl) => ( - + {bl.symbol} {bl.display_balance} diff --git a/apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/account/components/deposit-native.tsx b/apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/account/components/deposit-native.tsx index 87b3c2544af..87124e7b0b7 100644 --- a/apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/account/components/deposit-native.tsx +++ b/apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/account/components/deposit-native.tsx @@ -32,15 +32,7 @@ export const DepositNative: React.FC = ({ const v5Chain = useV5DashboardChain(chain.chainId); return ( - + = ({ contract }) => { const totalAccountsQuery = useReadContract(totalAccounts, { contract }); return ( - + Total Accounts {totalAccountsQuery.data?.toString()} diff --git a/apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/events/events-feed.tsx b/apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/events/events-feed.tsx index 89b6d93f4bc..7edfe841451 100644 --- a/apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/events/events-feed.tsx +++ b/apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/events/events-feed.tsx @@ -11,7 +11,6 @@ import { AccordionButton, AccordionItem, AccordionPanel, - Box, ButtonGroup, Divider, Flex, @@ -114,7 +113,7 @@ export const EventsFeed: React.FC = ({ contract }) => {
- + = ({ alignItems="center" _last={{ borderBottomWidth: 0 }} > - +
+ Copy transaction hash to clipboard @@ -227,9 +226,9 @@ const EventsFeedItem: React.FC = ({ {transaction.transactionHash.slice(0, 32)}...
- +
- +
= ({ )} - +
{transaction.blockNumber} @@ -271,7 +270,7 @@ const EventsFeedItem: React.FC = ({
-
+
@@ -312,15 +311,15 @@ const EventsFeedItem: React.FC = ({ key={`${transaction.transactionHash}_${event.logIndex}`} > - +
{event.eventName} - - +
+
- +
{arr.length - 1 === idx ? null : } @@ -353,7 +352,7 @@ const TransactionData: React.FC = ({ bg="transparent" boxShadow="none" label={ - + {description} } diff --git a/apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/permissions/ContractPermissionsPage.tsx b/apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/permissions/ContractPermissionsPage.tsx index 59352daefcd..cc9c20f3333 100644 --- a/apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/permissions/ContractPermissionsPage.tsx +++ b/apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/permissions/ContractPermissionsPage.tsx @@ -25,7 +25,7 @@ export const ContractPermissionsPage: React.FC< if (!detectedPermissionEnumerable) { return ( - + {/* TODO extract this out into it's own component and make it better */} Missing PermissionsEnumerable Extension diff --git a/apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/proposals/ContractProposalsPage.tsx b/apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/proposals/ContractProposalsPage.tsx index a73537b1c4d..87b8152e47c 100644 --- a/apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/proposals/ContractProposalsPage.tsx +++ b/apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/proposals/ContractProposalsPage.tsx @@ -1,7 +1,7 @@ "use client"; import { voteTokenBalances } from "@3rdweb-sdk/react/hooks/useVote"; -import { Divider, Flex, Stat, StatLabel, StatNumber } from "@chakra-ui/react"; +import { Divider, Flex, StatLabel, StatNumber } from "@chakra-ui/react"; import { useMemo } from "react"; import type { ThirdwebContract } from "thirdweb"; import * as VoteExt from "thirdweb/extensions/vote"; @@ -61,7 +61,11 @@ export const ContractProposalsPage: React.FC = ({ Voting Tokens
{voteTokenBalancesQuery.data?.map((balance) => ( - + {balance.address?.toLowerCase() === address?.toLowerCase() ? "Your Balance" diff --git a/apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/settings/components/metadata.tsx b/apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/settings/components/metadata.tsx index 71bf43990a9..b7cb6273f49 100644 --- a/apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/settings/components/metadata.tsx +++ b/apps/dashboard/src/app/(app)/(dashboard)/(chain)/[chain_id]/[contractAddress]/settings/components/metadata.tsx @@ -142,7 +142,7 @@ export const SettingsMetadata = ({ ); return ( - + + + + = ({
- + {nativeBalanceQuery.data?.symbol} @@ -145,7 +144,11 @@ export const ContractSplitPage: React.FC = ({ (balanceQuery?.data || []) ?.filter((bl) => bl.name !== "Native Token") ?.map((balance) => ( - + {balance.name === "Native Token" ? v4Chain?.nativeCurrency.symbol || "Native Token" diff --git a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/dedicated/(instance)/[engineId]/contract-subscriptions/components/contract-subscriptions-table.tsx b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/dedicated/(instance)/[engineId]/contract-subscriptions/components/contract-subscriptions-table.tsx index 8afde003a7b..244cc97d158 100644 --- a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/dedicated/(instance)/[engineId]/contract-subscriptions/components/contract-subscriptions-table.tsx +++ b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/dedicated/(instance)/[engineId]/contract-subscriptions/components/contract-subscriptions-table.tsx @@ -287,7 +287,7 @@ const ChainLastBlockTimestamp = ({ } return ( - + {format(ethBlockQuery.data, "PP pp z")} ); @@ -405,7 +405,7 @@ const RemoveModal = ({ subscription. - + Chain diff --git a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/dedicated/(instance)/[engineId]/metrics/components/EngineSystemMetrics.tsx b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/dedicated/(instance)/[engineId]/metrics/components/EngineSystemMetrics.tsx index 5b06c4f7b31..864abbd8fee 100644 --- a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/dedicated/(instance)/[engineId]/metrics/components/EngineSystemMetrics.tsx +++ b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/dedicated/(instance)/[engineId]/metrics/components/EngineSystemMetrics.tsx @@ -39,7 +39,7 @@ export const EngineSystemMetrics: React.FC = ({ let systemMetricsPanel = ; if (!systemMetricsQuery.data || systemMetricsQuery.isError) { systemMetricsPanel = ( - +
@@ -65,7 +65,7 @@ export const EngineSystemMetrics: React.FC = ({ ); } else { systemMetricsPanel = ( - +
@@ -106,7 +106,7 @@ export const EngineSystemMetrics: React.FC = ({ const msToMine = queueMetricsQuery.data.result.latency?.msToMine; queueMetricsPanel = ( - +
Queue Metrics diff --git a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/dedicated/(instance)/[engineId]/webhooks/components/webhooks-table.tsx b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/dedicated/(instance)/[engineId]/webhooks/components/webhooks-table.tsx index 35bcabaf646..946ea0ccaa0 100644 --- a/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/dedicated/(instance)/[engineId]/webhooks/components/webhooks-table.tsx +++ b/apps/dashboard/src/app/(app)/team/[team_slug]/[project_slug]/(sidebar)/engine/dedicated/(instance)/[engineId]/webhooks/components/webhooks-table.tsx @@ -101,7 +101,7 @@ const columns = [ bg="transparent" boxShadow="none" label={ - + {format(date, "PP pp z")} } diff --git a/apps/dashboard/src/components/contract-components/contract-publish-form/custom-factory.tsx b/apps/dashboard/src/components/contract-components/contract-publish-form/custom-factory.tsx index cb77bad7047..7a630c8e261 100644 --- a/apps/dashboard/src/components/contract-components/contract-publish-form/custom-factory.tsx +++ b/apps/dashboard/src/components/contract-components/contract-publish-form/custom-factory.tsx @@ -1,6 +1,5 @@ import { SingleNetworkSelector } from "@/components/blocks/NetworkSelectors"; import { - Box, Flex, FormControl, IconButton, @@ -77,7 +76,7 @@ export const CustomFactory: React.FC = ({ {fields.map((field, index) => (
- +
= ({ ); }} /> - - +
+
- +
} diff --git a/apps/dashboard/src/components/contract-components/contract-publish-form/index.tsx b/apps/dashboard/src/components/contract-components/contract-publish-form/index.tsx index 31adef4332f..ca1253d2ff3 100644 --- a/apps/dashboard/src/components/contract-components/contract-publish-form/index.tsx +++ b/apps/dashboard/src/components/contract-components/contract-publish-form/index.tsx @@ -2,7 +2,7 @@ import { useDashboardRouter } from "@/lib/DashboardRouter"; import { useIsomorphicLayoutEffect } from "@/lib/useIsomorphicLayoutEffect"; import { CustomConnectWallet } from "@3rdweb-sdk/react/components/connect-wallet"; -import { Box, Divider, Flex, IconButton } from "@chakra-ui/react"; +import { Divider, Flex, IconButton } from "@chakra-ui/react"; import type { Abi } from "abitype"; import { DASHBOARD_ENGINE_RELAYER_URL, @@ -365,13 +365,13 @@ export function ContractPublishForm(props: { > {!account ? ( <> - +
) : fieldsetToShow === "landing" && form.watch("deployType") === "standard" ? ( <> - +
- +
); diff --git a/apps/dashboard/src/core-ui/batch-upload/batch-table.tsx b/apps/dashboard/src/core-ui/batch-upload/batch-table.tsx index 670841e3930..7ac5b1ba703 100644 --- a/apps/dashboard/src/core-ui/batch-upload/batch-table.tsx +++ b/apps/dashboard/src/core-ui/batch-upload/batch-table.tsx @@ -1,8 +1,6 @@ import { CodeClient } from "@/components/ui/code/code.client"; import { ToolTipLabel } from "@/components/ui/tooltip"; import { - Box, - type BoxProps, Flex, IconButton, Image, @@ -29,6 +27,7 @@ import { useMemo } from "react"; import { type Column, usePagination, useTable } from "react-table"; import type { NFTInput } from "thirdweb/utils"; import { useThirdwebClient } from "../../@/constants/thirdweb.client"; +import { cn } from "../../@/lib/utils"; const FileImage: React.FC = ({ src, ...props }) => { const client = useThirdwebClient(); @@ -41,17 +40,36 @@ const FileImage: React.FC = ({ src, ...props }) => { }; const FileVideo: React.FC< - BoxProps & - Omit, "ref" | "src"> & { src: string | File } -> = ({ src, ...props }) => { + React.VideoHTMLAttributes & { src: string | File } +> = ({ + src, + className = "", + autoPlay, + playsInline, + muted, + loop, + ...videoProps +}) => { const client = useThirdwebClient(); const video = useImageFileOrUrl( typeof src === "string" && src.startsWith("ipfs://") ? replaceIpfsUrl(src, client) : src, ); - return ; + + return ( +