diff --git a/package.json b/package.json
index 291721adfc3..44cbaad2f0e 100644
--- a/package.json
+++ b/package.json
@@ -139,6 +139,7 @@
"@octokit/types": "12.4.0",
"@radix-ui/colors": "3.0.0",
"@radix-ui/react-accessible-icon": "1.0.3",
+ "@radix-ui/react-avatar": "1.0.4",
"@radix-ui/react-dropdown-menu": "2.0.6",
"@radix-ui/react-select": "2.0.0",
"@radix-ui/react-tabs": "1.0.4",
diff --git a/public/assets/avatars/stamps-avatar-icon.png b/public/assets/avatars/stamps-avatar-icon.png
new file mode 100644
index 00000000000..c26aebef2e4
Binary files /dev/null and b/public/assets/avatars/stamps-avatar-icon.png differ
diff --git a/public/assets/images/btc-icon.png b/public/assets/images/btc-icon.png
deleted file mode 100644
index 9de5f6cc7a7..00000000000
Binary files a/public/assets/images/btc-icon.png and /dev/null differ
diff --git a/public/assets/images/fund/stacks-icon.png b/public/assets/images/fund/stacks-icon.png
deleted file mode 100644
index f4f37baf9e0..00000000000
Binary files a/public/assets/images/fund/stacks-icon.png and /dev/null differ
diff --git a/src/app/components/bitcoin-transaction-item/bitcoin-transaction-inscription-icon.tsx b/src/app/components/bitcoin-transaction-item/bitcoin-transaction-inscription-icon.tsx
index b9e7e3db34c..b3ce5a376bb 100644
--- a/src/app/components/bitcoin-transaction-item/bitcoin-transaction-inscription-icon.tsx
+++ b/src/app/components/bitcoin-transaction-item/bitcoin-transaction-inscription-icon.tsx
@@ -2,7 +2,7 @@ import { Circle } from 'leather-styles/jsx';
import { SupportedInscription } from '@shared/models/inscription.model';
-import { OrdinalIcon } from '@app/ui/components/avatar-icon/ordinal-icon';
+import { OrdinalAvatarIcon } from '@app/ui/components/avatar/ordinal-avatar-icon';
export function InscriptionIcon({ inscription, ...rest }: { inscription: SupportedInscription }) {
switch (inscription.type) {
@@ -13,7 +13,7 @@ export function InscriptionIcon({ inscription, ...rest }: { inscription: Support
color="ink.background-primary"
flexShrink={0}
position="relative"
- size="36px"
+ size="xl"
{...rest}
>
);
default:
- return ;
+ return ;
}
}
diff --git a/src/app/components/bitcoin-transaction-item/bitcoin-transaction-item.tsx b/src/app/components/bitcoin-transaction-item/bitcoin-transaction-item.tsx
index f5af0f981cf..57546e1351d 100644
--- a/src/app/components/bitcoin-transaction-item/bitcoin-transaction-item.tsx
+++ b/src/app/components/bitcoin-transaction-item/bitcoin-transaction-item.tsx
@@ -21,7 +21,7 @@ import {
} from '@app/query/bitcoin/ordinals/inscription.hooks';
import { useGetInscriptionsByOutputQuery } from '@app/query/bitcoin/ordinals/inscriptions-by-param.query';
import { useCurrentAccountNativeSegwitAddressIndexZero } from '@app/store/accounts/blockchain/bitcoin/native-segwit-account.hooks';
-import { BtcIcon } from '@app/ui/components/avatar-icon/btc-icon';
+import { BtcAvatarIcon } from '@app/ui/components/avatar/btc-avatar-icon';
import { BulletSeparator } from '@app/ui/components/bullet-separator/bullet-separator';
import { Caption } from '@app/ui/components/typography/caption';
@@ -96,7 +96,9 @@ export function BitcoinTransactionItem({ transaction }: BitcoinTransactionItemPr
txCaption={txCaption}
txIcon={
: }
+ icon={
+ inscriptionData ? :
+ }
transaction={transaction}
btcAddress={bitcoinAddress}
/>
diff --git a/src/app/components/crypto-assets/bitcoin/brc20-token-asset-list/components/brc20-token-asset-item.layout.tsx b/src/app/components/crypto-assets/bitcoin/brc20-token-asset-list/components/brc20-token-asset-item.layout.tsx
index f79dc796763..23bbbdae530 100644
--- a/src/app/components/crypto-assets/bitcoin/brc20-token-asset-list/components/brc20-token-asset-item.layout.tsx
+++ b/src/app/components/crypto-assets/bitcoin/brc20-token-asset-list/components/brc20-token-asset-item.layout.tsx
@@ -4,7 +4,7 @@ import { createMoney } from '@shared/models/money.model';
import { formatBalance } from '@app/common/format-balance';
import { Brc20Token } from '@app/query/bitcoin/bitcoin-client';
-import { Brc20TokenIcon } from '@app/ui/components/avatar-icon/brc20-token-icon';
+import { Brc20AvatarIcon } from '@app/ui/components/avatar/brc20-avatar-icon';
import { ItemInteractive } from '@app/ui/components/item/item-interactive';
import { ItemLayout } from '@app/ui/components/item/item.layout';
import { BasicTooltip } from '@app/ui/components/tooltip/basic-tooltip';
@@ -31,7 +31,7 @@ export function Brc20TokenAssetItemLayout({
>
}
+ flagImg={}
titleLeft={token.ticker}
captionLeft="BRC-20"
titleRight={
diff --git a/src/app/components/crypto-assets/choose-crypto-asset/crypto-asset-list.tsx b/src/app/components/crypto-assets/choose-crypto-asset/crypto-asset-list.tsx
index 996b548c73a..b9db5559af2 100644
--- a/src/app/components/crypto-assets/choose-crypto-asset/crypto-asset-list.tsx
+++ b/src/app/components/crypto-assets/choose-crypto-asset/crypto-asset-list.tsx
@@ -6,7 +6,7 @@ import { BitcoinNativeSegwitAccountLoader } from '@app/components/account/bitcoi
import { BitcoinBalanceLoader } from '@app/components/balance/bitcoin-balance-loader';
import { Brc20TokensLoader } from '@app/components/brc20-tokens-loader';
import { Brc20TokenAssetList } from '@app/components/crypto-assets/bitcoin/brc20-token-asset-list/brc20-token-asset-list';
-import { BtcIcon } from '@app/ui/components/avatar-icon/btc-icon';
+import { BtcAvatarIcon } from '@app/ui/components/avatar/btc-avatar-icon';
import { CryptoCurrencyAssetItemLayout } from '../crypto-currency-asset/crypto-currency-asset-item.layout';
import { CryptoAssetListItem } from './crypto-asset-list-item';
@@ -27,7 +27,7 @@ export function CryptoAssetList({ cryptoAssetBalances, onItemClick }: CryptoAsse
{balance => (
}
+ icon={}
onClick={() => onItemClick(balance)}
/>
)}
diff --git a/src/app/components/crypto-assets/choose-crypto-asset/crypto-currency-asset-icon.tsx b/src/app/components/crypto-assets/choose-crypto-asset/crypto-currency-asset-icon.tsx
index d0d648e304a..340164184aa 100644
--- a/src/app/components/crypto-assets/choose-crypto-asset/crypto-currency-asset-icon.tsx
+++ b/src/app/components/crypto-assets/choose-crypto-asset/crypto-currency-asset-icon.tsx
@@ -1,14 +1,14 @@
import type { Blockchains } from '@shared/models/blockchain.model';
-import { StxAvatar } from '@app/components/crypto-assets/stacks/components/stx-avatar';
-import { BtcIcon } from '@app/ui/components/avatar-icon/btc-icon';
+import { BtcAvatarIcon } from '@app/ui/components/avatar/btc-avatar-icon';
+import { StxAvatarIcon } from '@app/ui/components/avatar/stx-avatar-icon';
export function CryptoCurrencyAssetIcon(props: { blockchain: Blockchains }) {
switch (props.blockchain) {
case 'bitcoin':
- return ;
+ return ;
case 'stacks':
- return ;
+ return ;
default:
return <>>;
}
diff --git a/src/app/components/crypto-assets/stacks/components/stacks-asset-avatar.tsx b/src/app/components/crypto-assets/stacks/components/stacks-asset-avatar.tsx
index 08d771dd2d1..36dde46b297 100644
--- a/src/app/components/crypto-assets/stacks/components/stacks-asset-avatar.tsx
+++ b/src/app/components/crypto-assets/stacks/components/stacks-asset-avatar.tsx
@@ -1,9 +1,9 @@
import { Box, BoxProps } from 'leather-styles/jsx';
+import { Avatar, defaultFallbackDelay } from '@app/ui/components/avatar/avatar';
+import { StxAvatarIcon } from '@app/ui/components/avatar/stx-avatar-icon';
import { DynamicColorCircle } from '@app/ui/components/dynamic-color-circle';
-import { StxAvatar } from './stx-avatar';
-
interface StacksAssetAvatarProps extends BoxProps {
gradientString?: string;
imageCanonicalUri?: string;
@@ -15,15 +15,20 @@ export function StacksAssetAvatar({
gradientString,
imageCanonicalUri,
isStx,
- size = '40',
+ size = '36',
...props
}: StacksAssetAvatarProps) {
- if (isStx) return ;
+ if (isStx) return ;
const { color } = props;
if (imageCanonicalUri)
- return ;
+ return (
+
+
+ FT
+
+ );
if (!gradientString) return null;
diff --git a/src/app/components/crypto-assets/stacks/components/stx-avatar.tsx b/src/app/components/crypto-assets/stacks/components/stx-avatar.tsx
deleted file mode 100644
index 2340e77443f..00000000000
--- a/src/app/components/crypto-assets/stacks/components/stx-avatar.tsx
+++ /dev/null
@@ -1,11 +0,0 @@
-import { Circle, CircleProps } from 'leather-styles/jsx';
-
-import { StxIcon } from '@app/ui/components/avatar-icon/stx-icon';
-
-export function StxAvatar({ ...props }: CircleProps) {
- return (
-
-
-
- );
-}
diff --git a/src/app/components/inscription-preview-card/components/inscription-preview.tsx b/src/app/components/inscription-preview-card/components/inscription-preview.tsx
index 10a3885ed69..a009524afc6 100644
--- a/src/app/components/inscription-preview-card/components/inscription-preview.tsx
+++ b/src/app/components/inscription-preview-card/components/inscription-preview.tsx
@@ -2,7 +2,7 @@ import { BoxProps, Flex } from 'leather-styles/jsx';
import { SupportedInscription } from '@shared/models/inscription.model';
-import { OrdinalIcon } from '@app/ui/components/avatar-icon/ordinal-icon';
+import { OrdinalAvatarIcon } from '@app/ui/components/avatar/ordinal-avatar-icon';
import { InscriptionImage } from './inscription-image';
import { InscriptionPreviewContainer } from './inscription-preview-container';
@@ -31,7 +31,7 @@ export function InscriptionPreview({ inscription, ...props }: InscriptionPreview
return (
-
+
);
diff --git a/src/app/components/stacks-transaction-item/stacks-transaction-icon.tsx b/src/app/components/stacks-transaction-item/stacks-transaction-icon.tsx
index fa7563e3225..7ee52e681ad 100644
--- a/src/app/components/stacks-transaction-item/stacks-transaction-icon.tsx
+++ b/src/app/components/stacks-transaction-item/stacks-transaction-icon.tsx
@@ -2,7 +2,7 @@ import { BoxProps } from 'leather-styles/jsx';
import { StacksTx } from '@shared/models/transactions/stacks-transaction.model';
-import { StxIcon } from '@app/ui/components/avatar-icon/stx-icon';
+import { StxAvatarIcon } from '@app/ui/components/avatar/stx-avatar-icon';
import { DynamicColorCircle } from '@app/ui/components/dynamic-color-circle';
import { ErrorCircleIcon } from '@app/ui/icons';
import { ListIcon } from '@app/ui/icons/list-icon';
@@ -33,7 +33,9 @@ export function StacksTransactionIcon({ transaction, ...rest }: TransactionIconP
);
case 'token_transfer':
- return } transaction={transaction} {...rest} />;
+ return (
+ } transaction={transaction} {...rest} />
+ );
case 'poison_microblock':
return (
} transaction={transaction} {...rest} />
diff --git a/src/app/components/transaction/transaction-icon-wrapper.tsx b/src/app/components/transaction/transaction-icon-wrapper.tsx
index 82916222871..68ee792320d 100644
--- a/src/app/components/transaction/transaction-icon-wrapper.tsx
+++ b/src/app/components/transaction/transaction-icon-wrapper.tsx
@@ -21,7 +21,7 @@ export function TransactionIconWrapper({
color="ink.background-primary"
flexShrink={0}
position="relative"
- size="36px"
+ size="xl"
{...props}
>
{icon}
diff --git a/src/app/components/transaction/transaction-type-icon-wrapper.tsx b/src/app/components/transaction/transaction-type-icon-wrapper.tsx
index eb44dba36ed..048d396bf45 100644
--- a/src/app/components/transaction/transaction-type-icon-wrapper.tsx
+++ b/src/app/components/transaction/transaction-type-icon-wrapper.tsx
@@ -1,8 +1,10 @@
+import type { ReactNode } from 'react';
+
import { Circle, CircleProps } from 'leather-styles/jsx';
interface TransactionTypeIconWrapperProps extends CircleProps {
bg?: any;
- icon: React.JSX.Element;
+ icon: ReactNode;
}
export function TransactionTypeIconWrapper({
bg,
diff --git a/src/app/features/activity-list/components/submitted-transaction-list/submitted-transaction-icon.tsx b/src/app/features/activity-list/components/submitted-transaction-list/submitted-transaction-icon.tsx
index 16fda21e9a5..ffe80588163 100644
--- a/src/app/features/activity-list/components/submitted-transaction-list/submitted-transaction-icon.tsx
+++ b/src/app/features/activity-list/components/submitted-transaction-list/submitted-transaction-icon.tsx
@@ -6,7 +6,7 @@ import { StacksTx } from '@shared/models/transactions/stacks-transaction.model';
import { getTxSenderAddress } from '@app/common/transactions/stacks/transaction.utils';
import { TransactionIconWrapper } from '@app/components/transaction/transaction-icon-wrapper';
import { TransactionTypeIcon } from '@app/components/transaction/transaction-type-icon';
-import { StxIcon } from '@app/ui/components/avatar-icon/stx-icon';
+import { StxAvatarIcon } from '@app/ui/components/avatar/stx-avatar-icon';
import { DynamicColorCircle } from '@app/ui/components/dynamic-color-circle';
interface SubmittedTransactionIconProps extends CircleProps {
@@ -53,7 +53,7 @@ export function SubmittedTransactionIcon({ transaction, ...rest }: SubmittedTran
case PayloadType.TokenTransfer:
return (
}
+ icon={}
transaction={
{
tx_type: 'token_transfer',
diff --git a/src/app/features/activity-list/components/transaction-list/stacks-transaction/tx-transfer-icon-wrapper.tsx b/src/app/features/activity-list/components/transaction-list/stacks-transaction/tx-transfer-icon-wrapper.tsx
index e9f03e2be08..7be01e8bd78 100644
--- a/src/app/features/activity-list/components/transaction-list/stacks-transaction/tx-transfer-icon-wrapper.tsx
+++ b/src/app/features/activity-list/components/transaction-list/stacks-transaction/tx-transfer-icon-wrapper.tsx
@@ -1,24 +1,17 @@
-import React from 'react';
+import { type ReactNode } from 'react';
import { Circle } from 'leather-styles/jsx';
import { TransactionTypeIconWrapper } from '@app/components/transaction/transaction-type-icon-wrapper';
-import { StxIcon } from '@app/ui/components/avatar-icon/stx-icon';
+import { StxAvatarIcon } from '@app/ui/components/avatar/stx-avatar-icon';
interface TxTransferIconWrapperProps {
- icon: React.JSX.Element;
+ icon: ReactNode;
}
export function TxTransferIconWrapper({ icon }: TxTransferIconWrapperProps) {
return (
-
-
+
+
);
diff --git a/src/app/features/asset-list/asset-list.tsx b/src/app/features/asset-list/asset-list.tsx
index 909ee350e63..f8e05c26abe 100644
--- a/src/app/features/asset-list/asset-list.tsx
+++ b/src/app/features/asset-list/asset-list.tsx
@@ -12,7 +12,7 @@ import { CurrentStacksAccountLoader } from '@app/components/loaders/stacks-accou
import { useHasBitcoinLedgerKeychain } from '@app/store/accounts/blockchain/bitcoin/bitcoin.ledger';
import { useCurrentAccountNativeSegwitAddressIndexZero } from '@app/store/accounts/blockchain/bitcoin/native-segwit-account.hooks';
import { useCurrentNetwork } from '@app/store/networks/networks.selectors';
-import { BtcIcon } from '@app/ui/components/avatar-icon/btc-icon';
+import { BtcAvatarIcon } from '@app/ui/components/avatar/btc-avatar-icon';
import { Collectibles } from '../collectibles/collectibles';
import { PendingBrc20TransferList } from '../pending-brc-20-transfers/pending-brc-20-transfers';
@@ -37,7 +37,7 @@ export function AssetsList() {
}
+ icon={}
address={btcAddress}
/>
),
@@ -45,7 +45,7 @@ export function AssetsList() {
}
+ icon={}
address={btcAddress}
rightElement={
hasBitcoinLedgerKeys ? undefined :
diff --git a/src/app/features/asset-list/components/add-stacks-ledger-keys-item.tsx b/src/app/features/asset-list/components/add-stacks-ledger-keys-item.tsx
index ff0f0ed281a..2309e849ab5 100644
--- a/src/app/features/asset-list/components/add-stacks-ledger-keys-item.tsx
+++ b/src/app/features/asset-list/components/add-stacks-ledger-keys-item.tsx
@@ -1,8 +1,8 @@
import BigNumber from 'bignumber.js';
import { CryptoCurrencyAssetItemLayout } from '@app/components/crypto-assets/crypto-currency-asset/crypto-currency-asset-item.layout';
-import { StxAvatar } from '@app/components/crypto-assets/stacks/components/stx-avatar';
import { createStacksCryptoCurrencyAssetTypeWrapper } from '@app/query/stacks/balance/stacks-ft-balances.utils';
+import { StxAvatarIcon } from '@app/ui/components/avatar/stx-avatar-icon';
import { ConnectLedgerAssetBtn } from './connect-ledger-asset-button';
@@ -10,7 +10,7 @@ export function AddStacksLedgerKeysItem() {
return (
}
+ icon={}
rightElement={}
/>
);
diff --git a/src/app/features/asset-list/components/stacks-asset-list.tsx b/src/app/features/asset-list/components/stacks-asset-list.tsx
index a58c3a82834..f92f68276d1 100644
--- a/src/app/features/asset-list/components/stacks-asset-list.tsx
+++ b/src/app/features/asset-list/components/stacks-asset-list.tsx
@@ -3,9 +3,9 @@ import { styled } from 'leather-styles/jsx';
import { useStxBalance } from '@app/common/hooks/balance/stx/use-stx-balance';
import { ftDecimals } from '@app/common/stacks-utils';
import { CryptoCurrencyAssetItemLayout } from '@app/components/crypto-assets/crypto-currency-asset/crypto-currency-asset-item.layout';
-import { StxAvatar } from '@app/components/crypto-assets/stacks/components/stx-avatar';
import { useStacksFungibleTokenAssetBalancesWithMetadata } from '@app/query/stacks/balance/stacks-ft-balances.hooks';
import { StacksAccount } from '@app/store/accounts/blockchain/stacks/stacks-account.models';
+import { StxAvatarIcon } from '@app/ui/components/avatar/stx-avatar-icon';
import { BulletOperator } from '@app/ui/components/bullet-separator/bullet-separator';
import { Caption } from '@app/ui/components/typography/caption';
@@ -42,7 +42,7 @@ export function StacksAssetList({ account }: StacksAssetListProps) {
address={account.address}
additionalBalanceInfo={stxAdditionalBalanceInfo}
additionalUsdBalanceInfo={stxAdditionalUsdBalanceInfo}
- icon={}
+ icon={}
/>
>
diff --git a/src/app/features/collectibles/components/add-collectible.tsx b/src/app/features/collectibles/components/add-collectible.tsx
index d8443570b0c..a6b37349175 100644
--- a/src/app/features/collectibles/components/add-collectible.tsx
+++ b/src/app/features/collectibles/components/add-collectible.tsx
@@ -26,7 +26,7 @@ export function AddCollectible() {
subtitle="Collectible"
title="Add new"
>
-
+
);
}
diff --git a/src/app/features/collectibles/components/bitcoin/inscription-text.tsx b/src/app/features/collectibles/components/bitcoin/inscription-text.tsx
index d4ad627d844..af99655db66 100644
--- a/src/app/features/collectibles/components/bitcoin/inscription-text.tsx
+++ b/src/app/features/collectibles/components/bitcoin/inscription-text.tsx
@@ -1,6 +1,6 @@
import { parseJson } from '@app/components/json';
import { useInscriptionTextContentQuery } from '@app/query/bitcoin/ordinals/inscription-text-content.query';
-import { OrdinalIcon } from '@app/ui/components/avatar-icon/ordinal-icon';
+import { OrdinalAvatarIcon } from '@app/ui/components/avatar/ordinal-avatar-icon';
import { CollectibleText } from '../_collectible-types/collectible-text';
@@ -22,7 +22,7 @@ export function InscriptionText({
return (
}
+ icon={}
key={inscriptionNumber}
onClickCallToAction={onClickCallToAction}
onClickSend={onClickSend}
diff --git a/src/app/features/collectibles/components/bitcoin/inscription.tsx b/src/app/features/collectibles/components/bitcoin/inscription.tsx
index 8fdd9784a43..48786b86c8c 100644
--- a/src/app/features/collectibles/components/bitcoin/inscription.tsx
+++ b/src/app/features/collectibles/components/bitcoin/inscription.tsx
@@ -5,7 +5,7 @@ import { RouteUrls } from '@shared/route-urls';
import { openInNewTab } from '@app/common/utils/open-in-new-tab';
import { convertInscriptionToSupportedInscriptionType } from '@app/query/bitcoin/ordinals/inscription.hooks';
-import { OrdinalIcon } from '@app/ui/components/avatar-icon/ordinal-icon';
+import { OrdinalAvatarIcon } from '@app/ui/components/avatar/ordinal-avatar-icon';
import { CollectibleAudio } from '../_collectible-types/collectible-audio';
import { CollectibleIframe } from '../_collectible-types/collectible-iframe';
@@ -31,7 +31,7 @@ export function Inscription({ rawInscription }: InscriptionProps) {
case 'audio':
return (
}
+ icon={}
key={inscription.title}
onClickCallToAction={() => openInNewTab(inscription.infoUrl)}
onClickSend={() => openSendInscriptionModal()}
@@ -44,7 +44,7 @@ export function Inscription({ rawInscription }: InscriptionProps) {
case 'video':
return (
}
+ icon={}
key={inscription.title}
onClickCallToAction={() => openInNewTab(inscription.infoUrl)}
onClickSend={() => openSendInscriptionModal()}
@@ -56,7 +56,7 @@ export function Inscription({ rawInscription }: InscriptionProps) {
case 'image':
return (
}
+ icon={}
key={inscription.title}
onClickCallToAction={() => openInNewTab(inscription.infoUrl)}
onClickSend={() => openSendInscriptionModal()}
@@ -83,7 +83,7 @@ export function Inscription({ rawInscription }: InscriptionProps) {
subtitle="Ordinal inscription"
title={`# ${inscription.number}`}
>
-
+
);
default:
diff --git a/src/app/features/collectibles/components/bitcoin/stamp.tsx b/src/app/features/collectibles/components/bitcoin/stamp.tsx
index a55fd33279f..aca13fe961b 100644
--- a/src/app/features/collectibles/components/bitcoin/stamp.tsx
+++ b/src/app/features/collectibles/components/bitcoin/stamp.tsx
@@ -1,6 +1,6 @@
import { openInNewTab } from '@app/common/utils/open-in-new-tab';
import { Stamp as BitcoinStamp } from '@app/query/bitcoin/stamps/stamps-by-address.query';
-import { StampsIcon } from '@app/ui/components/avatar-icon/stamps-icon';
+import { StampsAvatarIcon } from '@app/ui/components/avatar/stamps-avatar-icon';
import { CollectibleImage } from '../_collectible-types/collectible-image';
@@ -11,7 +11,7 @@ export function Stamp(props: { bitcoinStamp: BitcoinStamp }) {
return (
}
+ icon={}
key={bitcoinStamp.stamp}
onClickCallToAction={() => openInNewTab(`${stampChainAssetUrl}${bitcoinStamp.stamp}`)}
src={bitcoinStamp.stamp_url}
diff --git a/src/app/features/collectibles/components/stacks/stacks-bns-name.tsx b/src/app/features/collectibles/components/stacks/stacks-bns-name.tsx
index c219bc2ed81..0fddbfc96c0 100644
--- a/src/app/features/collectibles/components/stacks/stacks-bns-name.tsx
+++ b/src/app/features/collectibles/components/stacks/stacks-bns-name.tsx
@@ -1,6 +1,6 @@
import StacksNftBns from '@assets/images/stacks-nft-bns.png';
-import { StxIcon } from '@app/ui/components/avatar-icon/stx-icon';
+import { StxAvatarIcon } from '@app/ui/components/avatar/stx-avatar-icon';
import { CollectibleItemLayout } from '../collectible-item.layout';
@@ -9,7 +9,7 @@ export function StacksBnsName(props: { bnsName: string }) {
return (
}
+ collectibleTypeIcon={}
subtitle="Bitcoin Naming System"
title={bnsName}
>
diff --git a/src/app/features/collectibles/components/stacks/stacks-non-fungible-tokens.tsx b/src/app/features/collectibles/components/stacks/stacks-non-fungible-tokens.tsx
index ee0c83694df..1bd48e3aabc 100644
--- a/src/app/features/collectibles/components/stacks/stacks-non-fungible-tokens.tsx
+++ b/src/app/features/collectibles/components/stacks/stacks-non-fungible-tokens.tsx
@@ -2,7 +2,7 @@ import { Metadata as StacksNftMetadata } from '@hirosystems/token-metadata-api-c
import { isValidUrl } from '@shared/utils/validate-url';
-import { StxIcon } from '@app/ui/components/avatar-icon/stx-icon';
+import { StxAvatarIcon } from '@app/ui/components/avatar/stx-avatar-icon';
import { CollectibleImage } from '../_collectible-types/collectible-image';
import { ImageUnavailable } from '../image-unavailable';
@@ -18,7 +18,7 @@ export function StacksNonFungibleTokens({ metadata }: StacksNonFungibleTokensPro
return (
}
+ icon={}
src={metadata.cached_image ?? ''}
subtitle="Stacks NFT"
title={metadata.name ?? ''}
diff --git a/src/app/features/psbt-signer/components/psbt-inputs-outputs-totals/components/psbt-address-total-item.tsx b/src/app/features/psbt-signer/components/psbt-inputs-outputs-totals/components/psbt-address-total-item.tsx
index 543a7f2c7db..b7cae70622f 100644
--- a/src/app/features/psbt-signer/components/psbt-inputs-outputs-totals/components/psbt-address-total-item.tsx
+++ b/src/app/features/psbt-signer/components/psbt-inputs-outputs-totals/components/psbt-address-total-item.tsx
@@ -1,7 +1,7 @@
import { Box, HStack, styled } from 'leather-styles/jsx';
import { useClipboard } from '@app/common/hooks/use-copy-to-clipboard';
-import { BtcIcon } from '@app/ui/components/avatar-icon/btc-icon';
+import { BtcAvatarIcon } from '@app/ui/components/avatar/btc-avatar-icon';
import { Flag } from '@app/ui/components/flag/flag';
import { Link } from '@app/ui/components/link/link';
import { BasicTooltip } from '@app/ui/components/tooltip/basic-tooltip';
@@ -28,7 +28,7 @@ export function PsbtAddressTotalItem({
const { onCopy, hasCopied } = useClipboard(hoverLabel ?? '');
return (
- } mt="space.05" spacing="space.04">
+ } mt="space.05" spacing="space.04">
{title ? title : 'Bitcoin'}
{valueAction ? (
diff --git a/src/app/features/psbt-signer/components/psbt-inputs-outputs-totals/components/psbt-inscription.tsx b/src/app/features/psbt-signer/components/psbt-inputs-outputs-totals/components/psbt-inscription.tsx
index 5b225ac159d..0f97f8bb35c 100644
--- a/src/app/features/psbt-signer/components/psbt-inputs-outputs-totals/components/psbt-inscription.tsx
+++ b/src/app/features/psbt-signer/components/psbt-inputs-outputs-totals/components/psbt-inscription.tsx
@@ -7,7 +7,7 @@ import {
createInscriptionInfoUrl,
useInscription,
} from '@app/query/bitcoin/ordinals/inscription.hooks';
-import { OrdinalIcon } from '@app/ui/components/avatar-icon/ordinal-icon';
+import { OrdinalAvatarIcon } from '@app/ui/components/avatar/ordinal-avatar-icon';
import { PsbtAddressTotalItem } from './psbt-address-total-item';
@@ -21,7 +21,7 @@ export function PsbtInscription({ inscription }: PsbtInscriptionProps) {
if (isError || isUndefined(supportedInscription))
return (
}
+ image={}
title="Inscription not found"
value="# Unknown"
/>
diff --git a/src/app/features/retrieve-taproot-to-native-segwit/components/retrieve-taproot-to-native-segwit.layout.tsx b/src/app/features/retrieve-taproot-to-native-segwit/components/retrieve-taproot-to-native-segwit.layout.tsx
index cbc08026ac3..8bae581829b 100644
--- a/src/app/features/retrieve-taproot-to-native-segwit/components/retrieve-taproot-to-native-segwit.layout.tsx
+++ b/src/app/features/retrieve-taproot-to-native-segwit/components/retrieve-taproot-to-native-segwit.layout.tsx
@@ -1,7 +1,7 @@
import { Flex, styled } from 'leather-styles/jsx';
import { BaseDrawer } from '@app/components/drawer/base-drawer';
-import { BtcIcon } from '@app/ui/components/avatar-icon/btc-icon';
+import { BtcAvatarIcon } from '@app/ui/components/avatar/btc-avatar-icon';
import { Button } from '@app/ui/components/button/button';
import { Callout } from '@app/ui/components/callout/callout';
@@ -18,7 +18,7 @@ export function RetrieveTaprootToNativeSegwitLayout(
return (
onClose()}>
-
+
Retrieve Bitcoin deposited to
Taproot addresses
diff --git a/src/app/pages/bitcoin-contract-request/components/bitcoin-contract-offer/bitcoin-contract-lock-amount.tsx b/src/app/pages/bitcoin-contract-request/components/bitcoin-contract-offer/bitcoin-contract-lock-amount.tsx
index 3c3880dd856..427fdd871fe 100644
--- a/src/app/pages/bitcoin-contract-request/components/bitcoin-contract-offer/bitcoin-contract-lock-amount.tsx
+++ b/src/app/pages/bitcoin-contract-request/components/bitcoin-contract-offer/bitcoin-contract-lock-amount.tsx
@@ -5,7 +5,7 @@ import { HStack, styled } from 'leather-styles/jsx';
import { token } from 'leather-styles/tokens';
import { useClipboard } from '@app/common/hooks/use-copy-to-clipboard';
-import { BtcIcon } from '@app/ui/components/avatar-icon/btc-icon';
+import { BtcAvatarIcon } from '@app/ui/components/avatar/btc-avatar-icon';
import { Flag } from '@app/ui/components/flag/flag';
import { Link } from '@app/ui/components/link/link';
import { BasicTooltip } from '@app/ui/components/tooltip/basic-tooltip';
@@ -33,7 +33,7 @@ export function BitcoinContractLockAmount({
const { onCopy, hasCopied } = useClipboard(hoverLabel ?? '');
return (
- } width="100%">
+ } width="100%">
{title ? title : 'BTC'}
-
+
@@ -19,9 +20,7 @@ export function StacksIconComponent() {
export function BitcoinIconComponent() {
return (
<>
-
-
-
+
diff --git a/src/app/pages/receive/receive-modal.tsx b/src/app/pages/receive/receive-modal.tsx
index 0aa99061525..b39ca8b0e75 100644
--- a/src/app/pages/receive/receive-modal.tsx
+++ b/src/app/pages/receive/receive-modal.tsx
@@ -10,15 +10,15 @@ import { RouteUrls } from '@shared/route-urls';
import { useAnalytics } from '@app/common/hooks/analytics/use-analytics';
import { useClipboard } from '@app/common/hooks/use-copy-to-clipboard';
import { useLocationState } from '@app/common/hooks/use-location-state';
-import { StxAvatar } from '@app/components/crypto-assets/stacks/components/stx-avatar';
import { BaseDrawer } from '@app/components/drawer/base-drawer';
import { useBackgroundLocationRedirect } from '@app/routes/hooks/use-background-location-redirect';
import { useZeroIndexTaprootAddress } from '@app/store/accounts/blockchain/bitcoin/bitcoin.hooks';
import { useCurrentAccountNativeSegwitAddressIndexZero } from '@app/store/accounts/blockchain/bitcoin/native-segwit-account.hooks';
import { useCurrentAccountStxAddressState } from '@app/store/accounts/blockchain/stacks/stacks-account.hooks';
-import { BtcIcon } from '@app/ui/components/avatar-icon/btc-icon';
-import { OrdinalIcon } from '@app/ui/components/avatar-icon/ordinal-icon';
-import { StampsIcon } from '@app/ui/components/avatar-icon/stamps-icon';
+import { BtcAvatarIcon } from '@app/ui/components/avatar/btc-avatar-icon';
+import { OrdinalAvatarIcon } from '@app/ui/components/avatar/ordinal-avatar-icon';
+import { StampsAvatarIcon } from '@app/ui/components/avatar/stamps-avatar-icon';
+import { StxAvatarIcon } from '@app/ui/components/avatar/stx-avatar-icon';
import { ReceiveItem } from './components/receive-item';
import { ReceiveItemList } from './components/receive-items';
@@ -76,7 +76,7 @@ export function ReceiveModal({ type = 'full' }: ReceiveModalProps) {
}
+ icon={}
dataTestId={HomePageSelectors.ReceiveBtcNativeSegwitQrCodeBtn}
onCopyAddress={() => copyToClipboard(onCopyBtc)}
onClickQrCode={() =>
@@ -88,7 +88,7 @@ export function ReceiveModal({ type = 'full' }: ReceiveModalProps) {
/>
}
+ icon={}
dataTestId={HomePageSelectors.ReceiveStxQrCodeBtn}
onCopyAddress={() => copyToClipboard(onCopyStx)}
onClickQrCode={() =>
@@ -103,7 +103,7 @@ export function ReceiveModal({ type = 'full' }: ReceiveModalProps) {
}
+ icon={}
dataTestId={HomePageSelectors.ReceiveBtcTaprootQrCodeBtn}
onCopyAddress={() =>
copyToClipboard(onCopyOrdinal, 'select_stamp_to_add_new_collectible')
@@ -121,7 +121,7 @@ export function ReceiveModal({ type = 'full' }: ReceiveModalProps) {
/>
}
+ icon={}
onClickQrCode={() =>
navigate(`${RouteUrls.Home}${RouteUrls.ReceiveBtcStamp}`, {
state: { backgroundLocation },
@@ -134,7 +134,7 @@ export function ReceiveModal({ type = 'full' }: ReceiveModalProps) {
/>
}
+ icon={}
onCopyAddress={() => copyToClipboard(onCopyStx, 'select_nft_to_add_new_collectible')}
onClickQrCode={() =>
navigate(`${RouteUrls.Home}${RouteUrls.ReceiveStx}`, {
diff --git a/src/app/pages/send/ordinal-inscription/send-inscription-form.tsx b/src/app/pages/send/ordinal-inscription/send-inscription-form.tsx
index 23d5d05e9f6..59d3e4f0afb 100644
--- a/src/app/pages/send/ordinal-inscription/send-inscription-form.tsx
+++ b/src/app/pages/send/ordinal-inscription/send-inscription-form.tsx
@@ -9,7 +9,7 @@ import { BaseDrawer } from '@app/components/drawer/base-drawer';
import { ErrorLabel } from '@app/components/error-label';
import { InscriptionPreview } from '@app/components/inscription-preview-card/components/inscription-preview';
import { InscriptionPreviewCard } from '@app/components/inscription-preview-card/inscription-preview-card';
-import { OrdinalIcon } from '@app/ui/components/avatar-icon/ordinal-icon';
+import { OrdinalAvatarIcon } from '@app/ui/components/avatar/ordinal-avatar-icon';
import { Button } from '@app/ui/components/button/button';
import { RecipientAddressTypeField } from '../send-crypto-asset-form/components/recipient-address-type-field';
@@ -47,7 +47,7 @@ export function SendInscriptionForm() {
/>
- } name="Ordinal inscription" />
+ } name="Ordinal inscription" />
- } name={ticker} symbol={ticker} />
+ } name={ticker} symbol={ticker} />
1. Create transfer inscription with amount to send
diff --git a/src/app/pages/send/send-crypto-asset-form/form/btc/btc-send-form.tsx b/src/app/pages/send/send-crypto-asset-form/form/btc/btc-send-form.tsx
index 6e1987c2681..9d5ee8e67d3 100644
--- a/src/app/pages/send/send-crypto-asset-form/form/btc/btc-send-form.tsx
+++ b/src/app/pages/send/send-crypto-asset-form/form/btc/btc-send-form.tsx
@@ -11,7 +11,7 @@ import { HighFeeDrawer } from '@app/features/high-fee-drawer/high-fee-drawer';
import { useNativeSegwitBalance } from '@app/query/bitcoin/balance/btc-native-segwit-balance.hooks';
import { useCryptoCurrencyMarketData } from '@app/query/common/market-data/market-data.hooks';
import { useCurrentAccountNativeSegwitIndexZeroSigner } from '@app/store/accounts/blockchain/bitcoin/native-segwit-account.hooks';
-import { BtcIcon } from '@app/ui/components/avatar-icon/btc-icon';
+import { BtcAvatarIcon } from '@app/ui/components/avatar/btc-avatar-icon';
import { Callout } from '@app/ui/components/callout/callout';
import { Link } from '@app/ui/components/link/link';
@@ -86,7 +86,7 @@ export function BtcSendForm() {
}
/>
}
+ icon={}
name={btcBalance.asset.name}
symbol={symbol}
/>
diff --git a/src/app/pages/send/send-crypto-asset-form/form/stacks-sip10/sip10-token-send-form-container.tsx b/src/app/pages/send/send-crypto-asset-form/form/stacks-sip10/sip10-token-send-form-container.tsx
index 687f888f53c..607a132e312 100644
--- a/src/app/pages/send/send-crypto-asset-form/form/stacks-sip10/sip10-token-send-form-container.tsx
+++ b/src/app/pages/send/send-crypto-asset-form/form/stacks-sip10/sip10-token-send-form-container.tsx
@@ -1,5 +1,5 @@
import { StacksAssetAvatar } from '@app/components/crypto-assets/stacks/components/stacks-asset-avatar';
-import { StxAvatar } from '@app/components/crypto-assets/stacks/components/stx-avatar';
+import { StxAvatarIcon } from '@app/ui/components/avatar/stx-avatar-icon';
import { AmountField } from '../../components/amount-field';
import { SelectedAssetField } from '../../components/selected-asset-field';
@@ -44,7 +44,7 @@ export function Sip10TokenSendFormContainer({
imageCanonicalUri={avatar.imageCanonicalUri}
/>
) : (
-
+
)
}
name={symbol}
diff --git a/src/app/pages/send/send-crypto-asset-form/form/stx/stx-send-form.tsx b/src/app/pages/send/send-crypto-asset-form/form/stx/stx-send-form.tsx
index 2b3b47f428b..870350795c6 100644
--- a/src/app/pages/send/send-crypto-asset-form/form/stx/stx-send-form.tsx
+++ b/src/app/pages/send/send-crypto-asset-form/form/stx/stx-send-form.tsx
@@ -1,7 +1,7 @@
import { CryptoCurrencies } from '@shared/models/currencies.model';
-import { StxAvatar } from '@app/components/crypto-assets/stacks/components/stx-avatar';
import { useCryptoCurrencyMarketData } from '@app/query/common/market-data/market-data.hooks';
+import { StxAvatarIcon } from '@app/ui/components/avatar/stx-avatar-icon';
import { AmountField } from '../../components/amount-field';
import { SelectedAssetField } from '../../components/selected-asset-field';
@@ -36,7 +36,7 @@ export function StxSendForm() {
);
const selectedAssetField = (
- } name="Stacks" symbol={symbol} />
+ } name="Stacks" symbol={symbol} />
);
return (
diff --git a/src/app/pages/swap/components/select-asset-trigger-button.tsx b/src/app/pages/swap/components/select-asset-trigger-button.tsx
index c364a4aadf2..d51a9747d3a 100644
--- a/src/app/pages/swap/components/select-asset-trigger-button.tsx
+++ b/src/app/pages/swap/components/select-asset-trigger-button.tsx
@@ -2,6 +2,7 @@ import { SwapSelectors } from '@tests/selectors/swap.selectors';
import { useField } from 'formik';
import { HStack, styled } from 'leather-styles/jsx';
+import { Avatar, defaultFallbackDelay, getAvatarFallback } from '@app/ui/components/avatar/avatar';
import { Button } from '@app/ui/components/button/button';
import { ChevronDownIcon } from '@app/ui/icons/chevron-down-icon';
@@ -18,6 +19,7 @@ export function SelectAssetTriggerButton({
symbol,
}: SelectAssetTriggerButtonProps) {
const [field] = useField(name);
+ const fallback = getAvatarFallback(symbol);
return (