diff --git a/apps/dashboard/src/components/buttons/MismatchButton.tsx b/apps/dashboard/src/components/buttons/MismatchButton.tsx
index 62c4bf004b7..b5812db8da8 100644
--- a/apps/dashboard/src/components/buttons/MismatchButton.tsx
+++ b/apps/dashboard/src/components/buttons/MismatchButton.tsx
@@ -25,7 +25,6 @@ import {
useBreakpointValue,
useDisclosure,
} from "@chakra-ui/react";
-import { AiOutlineWarning } from "@react-icons/all-files/ai/AiOutlineWarning";
import { useQuery } from "@tanstack/react-query";
import { FaucetButton } from "app/(dashboard)/(chain)/[chain_id]/(chainPage)/components/client/FaucetButton";
import { GiftIcon } from "app/(dashboard)/(chain)/[chain_id]/(chainPage)/components/icons/GiftIcon";
@@ -36,7 +35,7 @@ import type {
import { getSDKTheme } from "app/components/sdk-component-theme";
import { LOCAL_NODE_PKEY } from "constants/misc";
import { useTrack } from "hooks/analytics/useTrack";
-import { ExternalLinkIcon } from "lucide-react";
+import { ExternalLinkIcon, TriangleAlertIcon } from "lucide-react";
import { useTheme } from "next-themes";
import Link from "next/link";
import { forwardRef, useCallback, useMemo, useRef, useState } from "react";
@@ -448,7 +447,7 @@ const MismatchNotice: React.FC<{
-
+
Network Mismatch
diff --git a/apps/dashboard/src/components/hackathon/HacakthonEarnFooter.tsx b/apps/dashboard/src/components/hackathon/HacakthonEarnFooter.tsx
index 828dca3d5f1..5cc8d101b9f 100644
--- a/apps/dashboard/src/components/hackathon/HacakthonEarnFooter.tsx
+++ b/apps/dashboard/src/components/hackathon/HacakthonEarnFooter.tsx
@@ -1,7 +1,7 @@
import { Flex, Icon } from "@chakra-ui/react";
-import { ImMagicWand } from "@react-icons/all-files/im/ImMagicWand";
import { ChakraNextImage } from "components/Image";
import { useTrack } from "hooks/analytics/useTrack";
+import { WandIcon } from "lucide-react";
import { FiSearch } from "react-icons/fi";
import { Heading, LinkButton } from "tw-components";
@@ -60,7 +60,7 @@ export const HackathonEarnFooter = ({
h="68px"
w={{ base: "90%", md: 80 }}
fontSize="20px"
- leftIcon={
}
+ leftIcon={
}
color="black"
flexShrink={0}
background="rgba(255,255,255,1)"
diff --git a/apps/dashboard/src/components/hackathon/HackathonFooter.tsx b/apps/dashboard/src/components/hackathon/HackathonFooter.tsx
index 3209aa1ae6d..19e18f1a22b 100644
--- a/apps/dashboard/src/components/hackathon/HackathonFooter.tsx
+++ b/apps/dashboard/src/components/hackathon/HackathonFooter.tsx
@@ -1,7 +1,7 @@
import { Flex, Icon } from "@chakra-ui/react";
-import { ImMagicWand } from "@react-icons/all-files/im/ImMagicWand";
import { ChakraNextImage } from "components/Image";
import { useTrack } from "hooks/analytics/useTrack";
+import { WandIcon } from "lucide-react";
import { FiSearch } from "react-icons/fi";
import { Heading, LinkButton } from "tw-components";
@@ -56,7 +56,7 @@ export const HackathonFooter = ({
h="68px"
w={{ base: "90%", md: 80 }}
fontSize="20px"
- leftIcon={
}
+ leftIcon={
}
color="black"
flexShrink={0}
background="rgba(255,255,255,1)"
diff --git a/apps/dashboard/src/components/hackathon/common/ScheduleSection.tsx b/apps/dashboard/src/components/hackathon/common/ScheduleSection.tsx
index fa05c8db7b8..fe4cd767ff6 100644
--- a/apps/dashboard/src/components/hackathon/common/ScheduleSection.tsx
+++ b/apps/dashboard/src/components/hackathon/common/ScheduleSection.tsx
@@ -1,6 +1,6 @@
-import { Flex, Icon, LinkBox, LinkOverlay } from "@chakra-ui/react";
-import { BiRightArrowAlt } from "@react-icons/all-files/bi/BiRightArrowAlt";
+import { Flex, LinkBox, LinkOverlay } from "@chakra-ui/react";
import { useTrack } from "hooks/analytics/useTrack";
+import { MoveRightIcon } from "lucide-react";
import { Badge, Heading, LinkButton, Text } from "tw-components";
interface ScheduleItem {
@@ -108,14 +108,7 @@ export const ScheduleSection: React.FC
= ({
-
+
))}
diff --git a/apps/dashboard/src/components/homepage/AnimatedCLICommand/AnimatedCLICommand.tsx b/apps/dashboard/src/components/homepage/AnimatedCLICommand/AnimatedCLICommand.tsx
deleted file mode 100644
index 9f8d494b55d..00000000000
--- a/apps/dashboard/src/components/homepage/AnimatedCLICommand/AnimatedCLICommand.tsx
+++ /dev/null
@@ -1,34 +0,0 @@
-import { Icon, IconButton } from "@chakra-ui/react";
-import { IoMdCheckmark } from "@react-icons/all-files/io/IoMdCheckmark";
-import { useTrack } from "hooks/analytics/useTrack";
-import { useClipboard } from "hooks/useClipboard";
-import { FiCopy } from "react-icons/fi";
-
-export const CopyButton: React.FC<{ text: string }> = ({ text }) => {
- const { onCopy, hasCopied } = useClipboard(text);
- const trackEvent = useTrack();
- return (
- {
- onCopy();
- trackEvent({
- category: "hero-section",
- action: "copy",
- label: "npx command",
- });
- }}
- icon={
-
- }
- />
- );
-};
diff --git a/apps/dashboard/src/components/homepage/CodeBlock/index.tsx b/apps/dashboard/src/components/homepage/CodeBlock/index.tsx
index 0bed55186d7..0c81924baa0 100644
--- a/apps/dashboard/src/components/homepage/CodeBlock/index.tsx
+++ b/apps/dashboard/src/components/homepage/CodeBlock/index.tsx
@@ -8,12 +8,11 @@ import {
useColorModeValue,
useTheme,
} from "@chakra-ui/react";
-import { IoMdCheckmark } from "@react-icons/all-files/io/IoMdCheckmark";
import { useClipboard } from "hooks/useClipboard";
+import { CheckIcon, CopyIcon } from "lucide-react";
import { Highlight, themes } from "prism-react-renderer";
import { useEffect, useRef, useState } from "react";
import { BsLightning } from "react-icons/bs";
-import { FiCopy } from "react-icons/fi";
import { useInView } from "react-intersection-observer";
import { Text } from "tw-components";
@@ -162,10 +161,11 @@ export const HomePageCodeBlock: React.FC = ({
colorScheme="gray"
size="sm"
icon={
-
+ hasCopied ? (
+
+ ) : (
+
+ )
}
/>
)}
diff --git a/apps/dashboard/src/components/product-pages/common/nav/MobileMenu.tsx b/apps/dashboard/src/components/product-pages/common/nav/MobileMenu.tsx
index 5bb94132c2e..5cbeef404be 100644
--- a/apps/dashboard/src/components/product-pages/common/nav/MobileMenu.tsx
+++ b/apps/dashboard/src/components/product-pages/common/nav/MobileMenu.tsx
@@ -1,7 +1,6 @@
import {
Flex,
type FlexProps,
- Icon,
IconButton,
ListItem,
UnorderedList,
@@ -106,7 +105,7 @@ const MobileNavSection: React.FC = ({
size="label.md"
onClick={onItemClick}
>
- {link.icon ? (
+ {link.icon && (
= ({
sizes="40px"
w={5}
/>
- ) : link.iconType ? (
-
- ) : null}
+ )}
{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
index a0418fcfb21..e5dd574eb1e 100644
--- a/apps/dashboard/src/components/product-pages/common/nav/NavCard.tsx
+++ b/apps/dashboard/src/components/product-pages/common/nav/NavCard.tsx
@@ -1,4 +1,4 @@
-import { Box, Icon, Stack } from "@chakra-ui/react";
+import { Box, Stack } from "@chakra-ui/react";
import { ChakraNextImage } from "components/Image";
import { Text, TrackedLink } from "tw-components";
import type { SectionItemProps, SectionProps } from "./types";
@@ -9,7 +9,6 @@ export const NavCard: React.FC = ({
label,
link,
icon,
- iconType,
comingSoon,
}) => {
return (
@@ -26,14 +25,6 @@ export const NavCard: React.FC = ({
{icon && (
)}
- {iconType && (
-
- )}
= ({
disabled={isDisabled}
className="gap-2"
>
-
- {selectOrUpload} {helperTextOrFile}
+ {selectOrUpload}{" "}
+ {helperTextOrFile}
)}
{noDisplay && (
diff --git a/apps/dashboard/src/contract-ui/tabs/embed/components/embed-setup.tsx b/apps/dashboard/src/contract-ui/tabs/embed/components/embed-setup.tsx
index a40f430281e..b753a8becaf 100644
--- a/apps/dashboard/src/contract-ui/tabs/embed/components/embed-setup.tsx
+++ b/apps/dashboard/src/contract-ui/tabs/embed/components/embed-setup.tsx
@@ -9,13 +9,12 @@ import {
Stack,
useBreakpointValue,
} from "@chakra-ui/react";
-import { IoMdCheckmark } from "@react-icons/all-files/io/IoMdCheckmark";
import { useTrack } from "hooks/analytics/useTrack";
import { useClipboard } from "hooks/useClipboard";
import { useTxNotifications } from "hooks/useTxNotifications";
+import { CheckIcon, CopyIcon } from "lucide-react";
import { useMemo } from "react";
import { useForm } from "react-hook-form";
-import { FiCopy } from "react-icons/fi";
import type { ThirdwebContract } from "thirdweb";
import type { ChainMetadata } from "thirdweb/chains";
import {
@@ -567,7 +566,13 @@ export const EmbedSetup: React.FC = ({
chainId,
});
}}
- leftIcon={hasCopied ? : }
+ leftIcon={
+ hasCopied ? (
+
+ ) : (
+
+ )
+ }
>
{hasCopied ? "Copied!" : "Copy to clipboard"}
diff --git a/apps/dashboard/src/contract-ui/tabs/events/components/events-feed.tsx b/apps/dashboard/src/contract-ui/tabs/events/components/events-feed.tsx
index 8e44a65d931..9e1ced5167d 100644
--- a/apps/dashboard/src/contract-ui/tabs/events/components/events-feed.tsx
+++ b/apps/dashboard/src/contract-ui/tabs/events/components/events-feed.tsx
@@ -23,9 +23,9 @@ import {
Switch,
Tooltip,
} from "@chakra-ui/react";
-import { AiOutlineQuestionCircle } from "@react-icons/all-files/ai/AiOutlineQuestionCircle";
import { AnimatePresence, motion } from "framer-motion";
import { useClipboard } from "hooks/useClipboard";
+import { CircleHelpIcon } from "lucide-react";
import { useSearchParams } from "next/navigation";
import { useRouter } from "next/router";
import { Fragment, useMemo, useState } from "react";
@@ -398,7 +398,7 @@ const TransactionData: React.FC = ({
}
>
-
+
diff --git a/apps/dashboard/src/contract-ui/tabs/nfts/components/claim-button.tsx b/apps/dashboard/src/contract-ui/tabs/nfts/components/claim-button.tsx
index 8c7b8fcee6d..041cfad2d60 100644
--- a/apps/dashboard/src/contract-ui/tabs/nfts/components/claim-button.tsx
+++ b/apps/dashboard/src/contract-ui/tabs/nfts/components/claim-button.tsx
@@ -1,5 +1,5 @@
-import { Icon, useDisclosure } from "@chakra-ui/react";
-import { GiDiamondHard } from "@react-icons/all-files/gi/GiDiamondHard";
+import { useDisclosure } from "@chakra-ui/react";
+import { GemIcon } from "lucide-react";
import type { ThirdwebContract } from "thirdweb";
import { Button, Drawer } from "tw-components";
import { NFTClaimForm } from "./claim-form";
@@ -28,7 +28,7 @@ export const NFTClaimButton: React.FC = ({ contract }) => {
}
+ leftIcon={}
onClick={onOpen}
>
Claim
diff --git a/apps/dashboard/src/core-ui/batch-upload/batch-lazy-mint.tsx b/apps/dashboard/src/core-ui/batch-upload/batch-lazy-mint.tsx
index 49fb75ba56d..980c222403c 100644
--- a/apps/dashboard/src/core-ui/batch-upload/batch-lazy-mint.tsx
+++ b/apps/dashboard/src/core-ui/batch-upload/batch-lazy-mint.tsx
@@ -13,11 +13,10 @@ import {
Textarea,
} from "@chakra-ui/react";
import { zodResolver } from "@hookform/resolvers/zod";
-import { AiFillEye } from "@react-icons/all-files/ai/AiFillEye";
-import { AiFillEyeInvisible } from "@react-icons/all-files/ai/AiFillEyeInvisible";
import { TransactionButton } from "components/buttons/TransactionButton";
import { FileInput } from "components/shared/FileInput";
import { useImageFileOrUrl } from "hooks/useImageFileOrUrl";
+import { EyeIcon, EyeOffIcon } from "lucide-react";
import { useRef, useState } from "react";
import { useDropzone } from "react-dropzone";
import { useForm } from "react-hook-form";
@@ -396,10 +395,17 @@ const SelectReveal: React.FC = ({
type={show ? "text" : "password"}
/>
- setShow(!show)}
- />
+ {show ? (
+ setShow(!show)}
+ className="size-3"
+ />
+ ) : (
+ setShow(!show)}
+ className="size-3"
+ />
+ )}
diff --git a/apps/dashboard/src/core-ui/batch-upload/lazy-mint-form/select-option.tsx b/apps/dashboard/src/core-ui/batch-upload/lazy-mint-form/select-option.tsx
index 2f955ceb3e2..22da997eca0 100644
--- a/apps/dashboard/src/core-ui/batch-upload/lazy-mint-form/select-option.tsx
+++ b/apps/dashboard/src/core-ui/batch-upload/lazy-mint-form/select-option.tsx
@@ -1,12 +1,5 @@
-import {
- Flex,
- Icon,
- Radio,
- Stack,
- type StackProps,
- Tooltip,
-} from "@chakra-ui/react";
-import { AiOutlineInfoCircle } from "@react-icons/all-files/ai/AiOutlineInfoCircle";
+import { Flex, Radio, Stack, type StackProps, Tooltip } from "@chakra-ui/react";
+import { InfoIcon } from "lucide-react";
import type { MouseEventHandler } from "react";
import { Card, Heading, Text } from "tw-components";
@@ -97,7 +90,7 @@ export const SelectOption: React.FC = ({
}
>
-
+
diff --git a/apps/dashboard/src/pages/hackathon/consumer-crypto.tsx b/apps/dashboard/src/pages/hackathon/consumer-crypto.tsx
index dd59a980ab7..54633060195 100644
--- a/apps/dashboard/src/pages/hackathon/consumer-crypto.tsx
+++ b/apps/dashboard/src/pages/hackathon/consumer-crypto.tsx
@@ -1,6 +1,5 @@
import { useForceDarkTheme } from "@/components/theme-provider";
-import { Box, Divider, Flex, Icon, ListItem } from "@chakra-ui/react";
-import { ImMagicWand } from "@react-icons/all-files/im/ImMagicWand";
+import { Box, Divider, Flex, ListItem } from "@chakra-ui/react";
import { ChakraNextImage } from "components/Image";
import FAQ from "components/hackathon/FAQ";
import { HackathonFooter } from "components/hackathon/HackathonFooter";
@@ -13,6 +12,7 @@ import { HomepageTopNav } from "components/product-pages/common/Topnav";
import { HomepageSection } from "components/product-pages/homepage/HomepageSection";
import { useTrack } from "hooks/analytics/useTrack";
import { getAbsoluteUrl } from "lib/vercel-utils";
+import { WandIcon } from "lucide-react";
import { NextSeo } from "next-seo";
import dynamic from "next/dynamic";
import { PageId } from "page-id";
@@ -138,7 +138,7 @@ const Hackathon = () => {
h="68px"
w={{ base: "100%", md: 96 }}
fontSize="20px"
- leftIcon={}
+ leftIcon={}
color="black"
flexShrink={0}
background="rgba(255,255,255,1)"
diff --git a/apps/dashboard/src/pages/hackathon/earn.tsx b/apps/dashboard/src/pages/hackathon/earn.tsx
index 42f1d24b55e..c6bb916eeed 100644
--- a/apps/dashboard/src/pages/hackathon/earn.tsx
+++ b/apps/dashboard/src/pages/hackathon/earn.tsx
@@ -1,6 +1,5 @@
import { useForceDarkTheme } from "@/components/theme-provider";
-import { Box, Divider, Flex, Icon, ListItem } from "@chakra-ui/react";
-import { ImMagicWand } from "@react-icons/all-files/im/ImMagicWand";
+import { Box, Divider, Flex, ListItem } from "@chakra-ui/react";
import { ChakraNextImage } from "components/Image";
import EarnReasonSection from "components/hackathon/EarnReasonSection";
import FAQEarn from "components/hackathon/FAQEarn";
@@ -12,6 +11,7 @@ import { HomepageTopNav } from "components/product-pages/common/Topnav";
import { HomepageSection } from "components/product-pages/homepage/HomepageSection";
import { useTrack } from "hooks/analytics/useTrack";
import { getAbsoluteUrl } from "lib/vercel-utils";
+import { WandIcon } from "lucide-react";
import { NextSeo } from "next-seo";
import dynamic from "next/dynamic";
import { PageId } from "page-id";
@@ -149,7 +149,7 @@ const HackathonEarn = () => {
h="68px"
w={{ base: "100%", md: 96 }}
fontSize="20px"
- leftIcon={}
+ leftIcon={}
color="black"
flexShrink={0}
background="rgba(255,255,255,1)"
diff --git a/apps/dashboard/src/pages/template/[id].tsx b/apps/dashboard/src/pages/template/[id].tsx
index a9b07d9c202..6ed0988002d 100644
--- a/apps/dashboard/src/pages/template/[id].tsx
+++ b/apps/dashboard/src/pages/template/[id].tsx
@@ -1,6 +1,6 @@
import { useForceDarkTheme } from "@/components/theme-provider";
+import { CopyButton } from "@/components/ui/CopyButton";
import { Box, Flex, Image } from "@chakra-ui/react";
-import { CopyButton } from "components/homepage/AnimatedCLICommand/AnimatedCLICommand";
import { ProductButton } from "components/product-pages/common/ProductButton";
import { HomepageTopNav } from "components/product-pages/common/Topnav";
import type { GetStaticPaths, GetStaticProps } from "next";
@@ -36,6 +36,7 @@ const CodeBlock: React.FC<{ text: string }> = (props) => {
gap={1}
align="center"
alignSelf="start"
+ justifyContent="space-between"
>
{props.text}
diff --git a/apps/dashboard/src/tw-components/code-block.tsx b/apps/dashboard/src/tw-components/code-block.tsx
index 4f3e1185a96..dd1a5eca504 100644
--- a/apps/dashboard/src/tw-components/code-block.tsx
+++ b/apps/dashboard/src/tw-components/code-block.tsx
@@ -4,14 +4,12 @@ import {
Box,
Code,
type CodeProps,
- Icon,
IconButton,
useColorModeValue,
} from "@chakra-ui/react";
-import { IoMdCheckmark } from "@react-icons/all-files/io/IoMdCheckmark";
import { useClipboard } from "hooks/useClipboard";
+import { CheckIcon, CopyIcon } from "lucide-react";
import { Highlight, Prism, themes } from "prism-react-renderer";
-import { FiCopy } from "react-icons/fi";
import { Text } from "./text";
const darkThemeDefault = themes.vsDark;
@@ -103,10 +101,11 @@ export const CodeBlock: React.FC = ({
colorScheme="gray"
size="sm"
icon={
-
+ hasCopied ? (
+
+ ) : (
+
+ )
}
/>
)}