@0xsequence/marketplace-sdk 0.3.2 → 0.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-O7UQGT43.js → chunk-RJK7PUJE.js} +13 -5
- package/dist/{chunk-O7UQGT43.js.map → chunk-RJK7PUJE.js.map} +1 -1
- package/dist/{chunk-WA433WAJ.js → chunk-RZSZNVEH.js} +16 -2
- package/dist/chunk-RZSZNVEH.js.map +1 -0
- package/dist/{chunk-22NLQ3AS.js → chunk-ZZMM3IVS.js} +296 -197
- package/dist/chunk-ZZMM3IVS.js.map +1 -0
- package/dist/index.css +40 -0
- package/dist/index.js +1 -1
- package/dist/react/hooks/index.js +3 -3
- package/dist/react/index.js +5 -5
- package/dist/react/ui/components/index.d.ts +1 -1
- package/dist/react/ui/components/index.js +5 -5
- package/dist/react/ui/index.js +5 -5
- package/dist/react/ui/styles/index.d.ts +1 -1
- package/dist/styles/index.css +40 -0
- package/dist/styles/index.css.map +1 -1
- package/dist/styles/index.d.ts +9 -2
- package/dist/styles/index.js +14 -2
- package/package.json +5 -2
- package/src/react/_internal/transaction-machine/execute-transaction.ts +14 -3
- package/src/react/ui/components/_internals/custom-select/CustomSelect.tsx +2 -2
- package/src/react/ui/components/collectible-card/CollectibleCard.tsx +2 -2
- package/src/react/ui/components/collectible-card/Footer.tsx +33 -29
- package/src/react/ui/modals/BuyModal/_store.ts +4 -1
- package/src/react/ui/modals/BuyModal/index.tsx +77 -49
- package/src/react/ui/modals/CreateListingModal/index.tsx +10 -6
- package/src/react/ui/modals/MakeOfferModal/index.tsx +11 -3
- package/src/react/ui/modals/SellModal/index.tsx +14 -6
- package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/index.tsx +2 -1
- package/src/react/ui/modals/TransferModal/_views/followWalletInstructions/index.tsx +1 -1
- package/src/react/ui/modals/_internal/components/alertMessage/index.tsx +1 -1
- package/src/react/ui/modals/_internal/components/currencyOptionsSelect/index.tsx +2 -7
- package/src/react/ui/modals/_internal/components/expirationDateSelect/index.tsx +1 -0
- package/src/react/ui/modals/_internal/components/floorPriceText/index.tsx +1 -0
- package/src/react/ui/modals/_internal/components/transaction-footer/index.tsx +30 -9
- package/src/react/ui/modals/_internal/components/transactionDetails/index.tsx +2 -2
- package/src/react/ui/modals/_internal/components/transactionHeader/index.tsx +14 -2
- package/src/react/ui/modals/_internal/components/transactionPreview/index.tsx +16 -4
- package/src/react/ui/modals/_internal/components/transactionStatusModal/index.tsx +12 -4
- package/src/styles/index.ts +3 -0
- package/tsup.config.ts +3 -0
- package/dist/chess-tile-6BS5MQT5.png +0 -0
- package/dist/chunk-22NLQ3AS.js.map +0 -1
- package/dist/chunk-WA433WAJ.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/react/ui/modals/modal-provider.tsx","../src/react/ui/modals/_internal/components/transactionStatusModal/index.tsx","../src/react/ui/modals/_internal/components/transaction-footer/index.tsx","../src/react/ui/modals/_internal/components/transactionPreview/index.tsx","../src/react/ui/modals/_internal/components/timeAgo/index.tsx","../src/react/ui/modals/_internal/components/transactionStatusModal/store.ts","../src/react/ui/modals/_internal/components/transactionPreview/useTransactionPreviewTitle.tsx","../src/react/ui/modals/_internal/components/transactionPreview/consts.ts","../src/react/ui/modals/_internal/components/transactionStatusModal/styles.css.ts","../src/react/ui/modals/Account/index.tsx","../src/react/ui/modals/CreateListingModal/index.tsx","../src/react/hooks/useCreateListing.tsx","../src/react/ui/modals/_internal/components/actionModal/ErrorModal.tsx","../src/react/ui/modals/_internal/components/actionModal/LoadingModal.tsx","../src/react/ui/modals/_internal/components/expirationDateSelect/index.tsx","../src/react/ui/modals/_internal/components/calendarPopover/index.tsx","../src/react/ui/modals/_internal/components/calendar/index.tsx","../src/react/ui/components/_internals/custom-select/CustomSelect.tsx","../src/react/ui/components/_internals/custom-select/styles.css.ts","../src/react/ui/modals/_internal/components/floorPriceText/index.tsx","../src/react/ui/modals/_internal/components/priceInput/index.tsx","../src/react/ui/modals/_internal/components/currencyOptionsSelect/index.tsx","../src/react/ui/modals/_internal/components/quantityInput/index.tsx","../src/react/ui/modals/_internal/components/tokenPreview/index.tsx","../src/react/ui/modals/_internal/components/transactionDetails/index.tsx","../src/react/ui/modals/CreateListingModal/_store.ts","../src/react/ui/modals/CreateListingModal/_utils/getCreateListingTransactionTitleMessage.ts","../src/react/ui/modals/MakeOfferModal/index.tsx","../src/react/hooks/useMakeOffer.tsx","../src/react/ui/modals/MakeOfferModal/_store.ts","../src/react/ui/modals/MakeOfferModal/_utils/getMakeOfferTransactionTitleMessage.ts","../src/react/ui/modals/SellModal/index.tsx","../src/react/ui/modals/_internal/components/transactionHeader/index.tsx","../src/react/ui/modals/SellModal/_store.ts","../src/react/hooks/useSell.tsx","../src/react/ui/modals/SellModal/_utils/getSellTransactionTitleMessage.ts","../src/react/ui/modals/SuccessfulPurchaseModal/index.tsx","../src/react/ui/modals/SuccessfulPurchaseModal/_store.ts","../src/react/ui/modals/TransferModal/index.tsx","../src/react/ui/modals/TransferModal/_store.ts","../src/react/ui/modals/TransferModal/_views/enterWalletAddress/index.tsx","../src/react/ui/modals/TransferModal/messages.ts","../src/react/ui/modals/TransferModal/_utils/getTransferTransactionTitleMessage.ts","../src/react/ui/modals/TransferModal/_views/enterWalletAddress/useHandleTransfer.tsx","../src/react/ui/modals/TransferModal/_views/followWalletInstructions/index.tsx","../src/react/ui/modals/BuyModal/_store.ts","../src/react/ui/modals/BuyModal/index.tsx","../src/react/ui/components/collectible-card/CollectibleCard.tsx","../src/react/ui/icons/DiamondEye.tsx","../src/react/ui/components/_internals/action-button/ActionButton.tsx","../src/react/ui/components/collectible-card/Footer.tsx","../src/react/ui/icons/Bell.tsx"],"sourcesContent":["import { observer } from '@legendapp/state/react';\nimport SwitchChainModal from './_internal/components/switchChainModal';\nimport TransactionStatusModal from './_internal/components/transactionStatusModal';\nimport { AccountModal } from './Account';\nimport { CreateListingModal } from './CreateListingModal';\nimport { MakeOfferModal } from './MakeOfferModal';\nimport { SellModal } from './SellModal';\nimport SuccessfulPurchaseModal from './SuccessfulPurchaseModal';\nimport { TransferModal } from './TransferModal';\nimport { _accountModalOpen$ } from './_internal/stores/accountModal';\nimport { BuyModal } from './BuyModal';\n\nexport const ModalProvider = observer(() => {\n\treturn (\n\t\t<>\n\t\t\t<AccountModal />\n\t\t\t<CreateListingModal />\n\t\t\t<MakeOfferModal />\n\t\t\t<TransferModal />\n\t\t\t<SellModal />\n\t\t\t<BuyModal />\n\t\t\t<SuccessfulPurchaseModal />\n\t\t\t{/* Helper modals */}\n\t\t\t<SwitchChainModal />\n\t\t\t<TransactionStatusModal />\n\t\t</>\n\t);\n});\n","import {\n\tCloseIcon,\n\tIconButton,\n\tSkeleton,\n\tText,\n} from '@0xsequence/design-system';\nimport { observer } from '@legendapp/state/react';\nimport { Close, Content, Overlay, Portal, Root } from '@radix-ui/react-dialog';\nimport type { QueryKey } from '@tanstack/react-query';\nimport { useEffect } from 'react';\nimport type { Hex } from 'viem';\nimport { useTransactionReceipt } from 'wagmi';\nimport type { Price } from '../../../../../../types';\nimport type { BaseCallbacks } from '../../../../../../types/callbacks';\nimport { getQueryClient } from '../../../../../_internal';\nimport { useCollectible } from '../../../../../hooks';\nimport TransactionFooter from '../transaction-footer';\nimport TransactionPreview from '../transactionPreview';\nimport {\n\ttype ConfirmationStatus,\n\ttype StatusOrderType,\n\ttransactionStatusModal$,\n} from './store';\nimport {\n\tcloseButton,\n\tdialogOverlay,\n\ttransactionStatusModalContent,\n} from './styles.css';\nimport { ChainId } from '@0xsequence/network';\n\nexport type ShowTransactionStatusModalArgs = {\n\thash: Hex;\n\tprice?: Price;\n\tcollectionAddress: Hex;\n\tchainId: string;\n\ttokenId: string;\n\tgetTitle?: (props: ConfirmationStatus) => string;\n\tgetMessage?: (props: ConfirmationStatus) => string;\n\ttype: StatusOrderType;\n\tcallbacks?: BaseCallbacks;\n\tqueriesToInvalidate?: QueryKey[];\n};\n\nexport const useTransactionStatusModal = () => {\n\treturn {\n\t\tshow: (args: ShowTransactionStatusModalArgs) =>\n\t\t\ttransactionStatusModal$.open(args),\n\t\tclose: () => transactionStatusModal$.close(),\n\t};\n};\n\nconst TransactionStatusModal = observer(() => {\n\tconst {\n\t\thash,\n\t\tprice,\n\t\tcollectionAddress,\n\t\tchainId,\n\t\ttokenId,\n\t\tgetTitle,\n\t\tgetMessage,\n\t\tcallbacks,\n\t\tqueriesToInvalidate,\n\t} = transactionStatusModal$.state.get();\n\tconst { data: collectible } = useCollectible({\n\t\tcollectionAddress,\n\t\tchainId,\n\t\tcollectibleId: tokenId,\n\t});\n\tconst {\n\t\tdata: transaction,\n\t\tisLoading: isConfirming,\n\t\tisSuccess: isConfirmed,\n\t\tisError: isFailed,\n\t\terror,\n\t} = useTransactionReceipt({ hash });\n\tconst title = getTitle && getTitle({ isConfirmed, isConfirming, isFailed });\n\tconst message =\n\t\tgetMessage && getMessage({ isConfirmed, isConfirming, isFailed });\n\tconst { onUnknownError, onSuccess }: BaseCallbacks = callbacks || {};\n\tconst queryClient = getQueryClient();\n\n\tuseEffect(() => {\n\t\tif (!transactionStatusModal$.isOpen.get()) return;\n\n\t\tlet isSubscribed = true;\n\n\t\tif (isConfirmed && isSubscribed && onSuccess) {\n\t\t\tonSuccess();\n\t\t}\n\n\t\tif (isFailed && isSubscribed && onUnknownError) {\n\t\t\tonUnknownError(error);\n\t\t}\n\n\t\tif (isSubscribed && queriesToInvalidate) {\n\t\t\tqueryClient.invalidateQueries({ queryKey: [...queriesToInvalidate] });\n\t\t}\n\n\t\treturn () => {\n\t\t\tisSubscribed = false;\n\t\t};\n\t}, [isConfirmed, isFailed, onSuccess, onUnknownError, error]);\n\n\treturn (\n\t\t<Root open={transactionStatusModal$.isOpen.get()}>\n\t\t\t<Portal>\n\t\t\t\t<Overlay className={dialogOverlay} />\n\n\t\t\t\t<Content className={transactionStatusModalContent}>\n\t\t\t\t\t{title ? (\n\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\tfontSize=\"large\"\n\t\t\t\t\t\t\tfontWeight=\"bold\"\n\t\t\t\t\t\t\tcolor=\"text100\"\n\t\t\t\t\t\t\tfontFamily=\"body\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{title}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<Skeleton width=\"16\" height=\"6\" />\n\t\t\t\t\t)}\n\n\t\t\t\t\t{message ? (\n\t\t\t\t\t\t<Text fontSize=\"small\" color=\"text80\" fontFamily=\"body\">\n\t\t\t\t\t\t\t{message}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<Skeleton width=\"20\" height=\"4\" />\n\t\t\t\t\t)}\n\n\t\t\t\t\t{collectible && (\n\t\t\t\t\t\t<TransactionPreview\n\t\t\t\t\t\t\tprice={price}\n\t\t\t\t\t\t\tcollectionAddress={collectionAddress}\n\t\t\t\t\t\t\tchainId={chainId}\n\t\t\t\t\t\t\tcollectible={collectible}\n\t\t\t\t\t\t\tcurrencyImageUrl={price?.currency.imageUrl}\n\t\t\t\t\t\t\tisConfirming={isConfirming}\n\t\t\t\t\t\t\tisConfirmed={isConfirmed}\n\t\t\t\t\t\t\tisFailed={isFailed || transaction?.status === 'reverted'}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\n\t\t\t\t\t<TransactionFooter\n\t\t\t\t\t\ttransactionHash={hash!}\n\t\t\t\t\t\tisConfirming={isConfirming}\n\t\t\t\t\t\tisConfirmed={isConfirmed}\n\t\t\t\t\t\tisFailed={isFailed || transaction?.status === 'reverted'}\n\t\t\t\t\t\tchainId={chainId as unknown as ChainId}\n\t\t\t\t\t/>\n\n\t\t\t\t\t<Close\n\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\ttransactionStatusModal$.close();\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tclassName={closeButton}\n\t\t\t\t\t\tasChild\n\t\t\t\t\t>\n\t\t\t\t\t\t<IconButton size=\"xs\" aria-label=\"Close modal\" icon={CloseIcon} />\n\t\t\t\t\t</Close>\n\t\t\t\t</Content>\n\t\t\t</Portal>\n\t\t</Root>\n\t);\n});\n\nexport default TransactionStatusModal;\n","import { ChainId, networks } from '@0xsequence/network';\nimport { truncateMiddle } from '../../../../../../utils';\nimport SvgPositiveCircleIcon from '../../../../icons/PositiveCircleIcon';\nimport { Box, Spinner, Text } from '@0xsequence/design-system';\nimport type { Hex } from 'viem';\n\ntype TransactionFooterProps = {\n\ttransactionHash: Hex;\n\tisConfirming: boolean;\n\tisConfirmed: boolean;\n\tisFailed: boolean;\n\tchainId: ChainId;\n};\n\nexport default function TransactionFooter({\n\ttransactionHash,\n\tisConfirming,\n\tisConfirmed,\n\tisFailed,\n\tchainId,\n}: TransactionFooterProps) {\n\tconst icon =\n\t\t(isConfirming && <Spinner size=\"md\" />) ||\n\t\t(isConfirmed && <SvgPositiveCircleIcon size=\"md\" />);\n\n\tconst title =\n\t\t(isConfirming && 'Processing transaction') ||\n\t\t(isConfirmed && 'Transaction complete') ||\n\t\t(isFailed && 'Transaction failed');\n\n\tconst transactionUrl = `${networks[chainId as unknown as ChainId]?.blockExplorer?.rootUrl}tx/${transactionHash}`;\n\treturn (\n\t\t<Box display=\"flex\" alignItems=\"center\">\n\t\t\t{icon}\n\n\t\t\t<Text\n\t\t\t\tcolor=\"text50\"\n\t\t\t\tfontSize=\"normal\"\n\t\t\t\tfontWeight=\"medium\"\n\t\t\t\tmarginLeft=\"2\"\n\t\t\t\tfontFamily=\"body\"\n\t\t\t>\n\t\t\t\t{title}\n\t\t\t</Text>\n\n\t\t\t<Box\n\t\t\t\tas=\"a\"\n\t\t\t\tflexGrow=\"1\"\n\t\t\t\tmarginLeft=\"2\"\n\t\t\t\thref={transactionUrl}\n\t\t\t\ttarget=\"_blank\"\n\t\t\t\trel=\"noopener noreferrer\"\n\t\t\t\ttextAlign=\"right\"\n\t\t\t\ttextDecoration=\"none\"\n\t\t\t>\n\t\t\t\t<Text\n\t\t\t\t\t// TODO: Replace \"polygonLight\" with the actual color from design system\n\t\t\t\t\tcolor=\"polygonLight\"\n\t\t\t\t\ttextAlign=\"right\"\n\t\t\t\t\tfontSize=\"normal\"\n\t\t\t\t\tfontWeight=\"medium\"\n\t\t\t\t\tfontFamily=\"body\"\n\t\t\t\t>\n\t\t\t\t\t{truncateMiddle(transactionHash, 4, 4)}\n\t\t\t\t</Text>\n\t\t\t</Box>\n\t\t</Box>\n\t);\n}\n","import { Box, Image, NetworkImage, Text } from '@0xsequence/design-system';\nimport { observer } from '@legendapp/state/react';\nimport { type Hex, formatUnits } from 'viem';\nimport type { Price } from '../../../../../../types';\nimport { useCollection } from '../../../../../hooks';\nimport TimeAgo from '../timeAgo';\nimport { transactionStatusModal$ } from '../transactionStatusModal/store';\nimport { useTransactionPreviewTitle } from './useTransactionPreviewTitle';\nimport type { TokenMetadata } from '@0xsequence/metadata';\nimport ChessTileImage from '../../../../images/chess-tile.png';\n\ntype TransactionPreviewProps = {\n\tprice?: Price;\n\tcollectionAddress: Hex;\n\tchainId: string;\n\tcollectible: TokenMetadata;\n\tcurrencyImageUrl?: string;\n\tisConfirming: boolean;\n\tisConfirmed: boolean;\n\tisFailed: boolean;\n};\n\nconst TransactionPreview = observer(\n\t({\n\t\tprice,\n\t\tcollectionAddress,\n\t\tchainId,\n\t\tcollectible,\n\t\tcurrencyImageUrl,\n\t\tisConfirming,\n\t\tisConfirmed,\n\t\tisFailed,\n\t}: TransactionPreviewProps) => {\n\t\tconst { type } = transactionStatusModal$.state.get();\n\t\tconst title = useTransactionPreviewTitle(\n\t\t\t{ isConfirmed, isConfirming, isFailed },\n\t\t\ttype,\n\t\t);\n\t\tconst { data: collection } = useCollection({\n\t\t\tcollectionAddress,\n\t\t\tchainId,\n\t\t});\n\n\t\tconst collectibleImage = collectible.image;\n\t\tconst collectibleName = collectible.name;\n\t\tconst collectionName = collection?.name;\n\t\tconst priceFormatted = price\n\t\t\t? formatUnits(BigInt(price!.amountRaw), price!.currency.decimals)\n\t\t\t: undefined;\n\n\t\treturn (\n\t\t\t<Box padding=\"3\" background=\"backgroundSecondary\" borderRadius=\"md\">\n\t\t\t\t<Box display=\"flex\" alignItems=\"center\">\n\t\t\t\t\t<Text\n\t\t\t\t\t\tcolor=\"text50\"\n\t\t\t\t\t\tfontSize=\"small\"\n\t\t\t\t\t\tfontWeight=\"medium\"\n\t\t\t\t\t\tmarginRight=\"1\"\n\t\t\t\t\t\tfontFamily=\"body\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{title}\n\t\t\t\t\t</Text>\n\n\t\t\t\t\t<NetworkImage chainId={Number(chainId)} size=\"xs\" />\n\n\t\t\t\t\t{isConfirming && <TimeAgo date={new Date()} />}\n\t\t\t\t</Box>\n\n\t\t\t\t<Box display=\"flex\" alignItems=\"center\" marginTop=\"2\">\n\t\t\t\t\t<Image\n\t\t\t\t\t\tsrc={collectibleImage || ChessTileImage}\n\t\t\t\t\t\talt={collectibleName}\n\t\t\t\t\t\twidth=\"9\"\n\t\t\t\t\t\theight=\"9\"\n\t\t\t\t\t\tborderRadius=\"xs\"\n\t\t\t\t\t\tmarginRight=\"3\"\n\t\t\t\t\t/>\n\n\t\t\t\t\t<Box\n\t\t\t\t\t\tdisplay=\"flex\"\n\t\t\t\t\t\tflexDirection=\"column\"\n\t\t\t\t\t\talignItems=\"flex-start\"\n\t\t\t\t\t\tgap=\"0.5\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\tcolor=\"text80\"\n\t\t\t\t\t\t\tfontSize=\"small\"\n\t\t\t\t\t\t\tfontWeight=\"medium\"\n\t\t\t\t\t\t\tfontFamily=\"body\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{collectibleName}\n\t\t\t\t\t\t</Text>\n\n\t\t\t\t\t\t<Text color=\"text100\" fontSize=\"small\" fontFamily=\"body\">\n\t\t\t\t\t\t\t{collectionName}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t</Box>\n\n\t\t\t\t\t{price && (\n\t\t\t\t\t\t<Box\n\t\t\t\t\t\t\tflexGrow=\"1\"\n\t\t\t\t\t\t\tdisplay=\"flex\"\n\t\t\t\t\t\t\talignItems=\"center\"\n\t\t\t\t\t\t\tjustifyContent=\"flex-end\"\n\t\t\t\t\t\t\tgap=\"1\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Image src={currencyImageUrl} width=\"3\" height=\"3\" />\n\n\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\tcolor=\"text80\"\n\t\t\t\t\t\t\t\tfontSize=\"small\"\n\t\t\t\t\t\t\t\tfontWeight=\"medium\"\n\t\t\t\t\t\t\t\tfontFamily=\"body\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{priceFormatted} {price!.currency.symbol}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t</Box>\n\t\t\t\t\t)}\n\t\t\t\t</Box>\n\t\t\t</Box>\n\t\t);\n\t},\n);\n\nexport default TransactionPreview;\n","import { Box, Text } from '@0xsequence/design-system';\nimport { formatDistanceToNow } from 'date-fns';\nimport { useState, useEffect } from 'react';\n\ntype TimeAgoProps = {\n\tdate: Date;\n};\n\nexport default function TimeAgo({ date }: TimeAgoProps) {\n\tconst [timeAgo, setTimeAgo] = useState<string>('');\n\n\tuseEffect(() => {\n\t\tconst interval = setInterval(() => {\n\t\t\tsetTimeAgo(formatDistanceToNow(date));\n\t\t}, 1000);\n\n\t\treturn () => clearInterval(interval);\n\t}, [date]);\n\n\treturn (\n\t\t<Box\n\t\t\tflexGrow=\"1\"\n\t\t\tdisplay=\"flex\"\n\t\t\talignItems=\"center\"\n\t\t\tjustifyContent=\"flex-end\"\n\t\t>\n\t\t\t<Text color=\"text50\" fontSize=\"small\">\n\t\t\t\t{timeAgo}\n\t\t\t</Text>\n\t\t</Box>\n\t);\n}\n","import type { TransactionStatus } from '@0xsequence/indexer';\nimport { observable } from '@legendapp/state';\nimport type { QueryKey } from '@tanstack/react-query';\nimport type { Hex } from 'viem';\nimport type { ShowTransactionStatusModalArgs } from '.';\nimport type { Price } from '../../../../../../types';\nimport type { BaseCallbacks } from '../../../../../../types/callbacks';\nimport type { StepType } from '../../../../../_internal';\n\nexport type ConfirmationStatus = {\n\tisConfirming: boolean;\n\tisConfirmed: boolean;\n\tisFailed: boolean;\n};\n\nexport type TransactionStatusExtended = TransactionStatus | 'PENDING';\n\nexport type StatusOrderType =\n\t| Pick<\n\t\t\ttypeof StepType,\n\t\t\t'sell' | 'createListing' | 'createOffer' | 'buy'\n\t >[keyof Pick<\n\t\t\ttypeof StepType,\n\t\t\t'sell' | 'createListing' | 'createOffer' | 'buy'\n\t >]\n\t| 'transfer';\n\nexport interface TransactionStatusModalState {\n\tisOpen: boolean;\n\topen: (args: ShowTransactionStatusModalArgs) => void;\n\tclose: () => void;\n\tstate: {\n\t\thash: Hex | undefined;\n\t\tstatus: TransactionStatusExtended;\n\t\ttype: StatusOrderType | undefined;\n\t\tprice: Price | undefined;\n\t\tcollectionAddress: Hex;\n\t\tchainId: string;\n\t\ttokenId: string;\n\t\tgetTitle?: (params: ConfirmationStatus) => string;\n\t\tgetMessage?: (params: ConfirmationStatus) => string;\n\t\tcallbacks?: BaseCallbacks;\n\t\tqueriesToInvalidate?: QueryKey[];\n\t};\n}\n\nexport const initialState: TransactionStatusModalState = {\n\tisOpen: false,\n\topen: ({\n\t\thash,\n\t\tprice,\n\t\tcollectionAddress,\n\t\tchainId,\n\t\ttokenId,\n\t\tgetTitle,\n\t\tgetMessage,\n\t\ttype,\n\t\tcallbacks,\n\t\tqueriesToInvalidate,\n\t}) => {\n\t\ttransactionStatusModal$.state.set({\n\t\t\t...transactionStatusModal$.state.get(),\n\t\t\thash,\n\t\t\tprice,\n\t\t\tcollectionAddress,\n\t\t\tchainId,\n\t\t\ttokenId,\n\t\t\tgetTitle,\n\t\t\tgetMessage,\n\t\t\ttype,\n\t\t\tcallbacks,\n\t\t\tqueriesToInvalidate,\n\t\t});\n\t\ttransactionStatusModal$.isOpen.set(true);\n\t},\n\tclose: () => {\n\t\ttransactionStatusModal$.isOpen.set(false);\n\t\ttransactionStatusModal$.state.set({\n\t\t\t...initialState.state,\n\t\t});\n\t},\n\tstate: {\n\t\thash: undefined,\n\t\tstatus: 'PENDING',\n\t\tprice: undefined,\n\t\tcollectionAddress: '' as Hex,\n\t\tchainId: '',\n\t\ttokenId: '',\n\t\tgetTitle: undefined,\n\t\tgetMessage: undefined,\n\t\ttype: undefined,\n\t},\n};\n\nexport const transactionStatusModal$ = observable(initialState);\n","import { useMemo } from 'react';\nimport type {\n\tConfirmationStatus,\n\tStatusOrderType,\n} from '../transactionStatusModal/store';\nimport { TRANSACTION_TITLES } from './consts';\n\nexport function useTransactionPreviewTitle(\n\tstatus: ConfirmationStatus,\n\ttype?: StatusOrderType | undefined,\n): string {\n\treturn useMemo(() => {\n\t\tif (!type) return '';\n\n\t\tconst { isConfirming, isConfirmed, isFailed } = status;\n\t\tconst titles = TRANSACTION_TITLES[type];\n\n\t\tif (isConfirming) return titles.confirming;\n\t\tif (isConfirmed) return titles.confirmed;\n\t\tif (isFailed) return titles.failed;\n\n\t\treturn '';\n\t}, [status, type]);\n}\n","export const TRANSACTION_TITLES = {\n\tsell: {\n\t\tconfirming: 'Selling',\n\t\tconfirmed: 'Sold',\n\t\tfailed: 'Sale failed',\n\t},\n\tcreateListing: {\n\t\tconfirming: 'Creating listing',\n\t\tconfirmed: 'Listed',\n\t\tfailed: 'Listing failed',\n\t},\n\tcreateOffer: {\n\t\tconfirming: 'Creating offer',\n\t\tconfirmed: 'Offer created',\n\t\tfailed: 'Offer failed',\n\t},\n\tbuy: {\n\t\tconfirming: 'Buying',\n\t\tconfirmed: 'Bought',\n\t\tfailed: 'Purchase failed',\n\t},\n\ttransfer: {\n\t\tconfirming: 'Transferring',\n\t\tconfirmed: 'Transferred',\n\t\tfailed: 'Transfer failed',\n\t},\n} as const;\n","import 'src/react/ui/styles/modal.css.ts.vanilla.css?source=Lm1vZGFsX2RpYWxvZ0NvbnRlbnRCYXNlX18xeXBsNm50MSB7CiAgdG9wOiA1MCU7CiAgbGVmdDogNTAlOwogIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwogIHBhZGRpbmc6IDI0cHg7Cn0KLm1vZGFsX2RpYWxvZ0NvbnRlbnRfbmFycm93X18xeXBsNm50MiB7CiAgd2lkdGg6IDM2MHB4Owp9Ci5tb2RhbF9kaWFsb2dDb250ZW50X3dpZGVfXzF5cGw2bnQzIHsKICB3aWR0aDogNTQwcHg7Cn0KQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzYwcHgpIHsKICAubW9kYWxfZGlhbG9nQ29udGVudF9uYXJyb3dfXzF5cGw2bnQyIHsKICAgIHdpZHRoOiAxMDAlOwogICAgYm90dG9tOiAwOwogICAgdHJhbnNmb3JtOiB1bnNldDsKICAgIHRvcDogdW5zZXQ7CiAgICBsZWZ0OiB1bnNldDsKICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDAgIWltcG9ydGFudDsKICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwICFpbXBvcnRhbnQ7CiAgfQp9CkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDU0MHB4KSB7CiAgLm1vZGFsX2RpYWxvZ0NvbnRlbnRfd2lkZV9fMXlwbDZudDMgewogICAgd2lkdGg6IDEwMCU7CiAgICBib3R0b206IDA7CiAgICB0cmFuc2Zvcm06IHVuc2V0OwogICAgdG9wOiB1bnNldDsKICAgIGxlZnQ6IHVuc2V0OwogICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMCAhaW1wb3J0YW50OwogICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDAgIWltcG9ydGFudDsKICB9Cn0=';\nexport var closeButton = 'fyvr11lw fyvr1tc fyvr1mo';\nexport var dialogOverlay = 'fyvr1m0 fyvr1o8 fyvr1qg fyvr1so fyvr11xl fyvr11m0 fyvr11rs';\nexport var transactionStatusModalContent = 'modal_dialogContent_wide__1ypl6nt3 modal_dialogContentBase__1ypl6nt1 fyvr11hg fyvr11i4 fyvr11g4 fyvr11gs fyvr11l8 fyvr11wl fyvr11m0 fyvr11rs fyvr1vo fyvr1xs fyvr1zw fyvr1120 fyvr11lc fyvr11mc fyvr11cw';","import { Box, Button, Modal, Text } from '@0xsequence/design-system';\nimport { observable } from '@legendapp/state';\nimport { observer } from '@legendapp/state/react';\nimport { useAccount } from 'wagmi';\n\nconst accountModalOpen$ = observable(false);\n\nexport const useAccountModal = () => {\n\treturn {\n\t\tshow: () => accountModalOpen$.set(true),\n\t\thide: () => accountModalOpen$.set(false),\n\t\ttoggle: () => accountModalOpen$.toggle(),\n\t};\n};\n\nexport const AccountModal = observer(function AccountModal() {\n\tconst { address } = useAccount();\n\treturn (\n\t\taccountModalOpen$.get() && (\n\t\t\t<Modal>\n\t\t\t\t<Box>\n\t\t\t\t\t<Text>Wallet address</Text>\n\t\t\t\t\t<Text>{address}</Text>\n\t\t\t\t</Box>\n\t\t\t\t<Button label=\"Sign out\" />\n\t\t\t</Modal>\n\t\t)\n\t);\n});\n","import { Box } from '@0xsequence/design-system';\nimport { Show, observer } from '@legendapp/state/react';\nimport type { QueryKey } from '@tanstack/react-query';\nimport type { Hash, Hex } from 'viem';\nimport {\n\ttype ContractType,\n\tStepType,\n\tcollectableKeys,\n} from '../../../_internal';\nimport { useCollectible, useCollection } from '../../../hooks';\nimport { useCreateListing } from '../../../hooks/useCreateListing';\nimport {\n\tActionModal,\n\ttype ActionModalProps,\n} from '../_internal/components/actionModal/ActionModal';\nimport { ErrorModal } from '../_internal/components/actionModal/ErrorModal';\nimport { LoadingModal } from '../_internal/components/actionModal/LoadingModal';\nimport ExpirationDateSelect from '../_internal/components/expirationDateSelect';\nimport FloorPriceText from '../_internal/components/floorPriceText';\nimport PriceInput from '../_internal/components/priceInput';\nimport QuantityInput from '../_internal/components/quantityInput';\nimport TokenPreview from '../_internal/components/tokenPreview';\nimport TransactionDetails from '../_internal/components/transactionDetails';\nimport { useTransactionStatusModal } from '../_internal/components/transactionStatusModal';\nimport type { ModalCallbacks } from '../_internal/types';\nimport { createListingModal$ } from './_store';\nimport {\n\tgetCreateListingTransactionMessage,\n\tgetCreateListingTransactionTitle,\n} from './_utils/getCreateListingTransactionTitleMessage';\n\nexport type ShowCreateListingModalArgs = {\n\tcollectionAddress: Hex;\n\tchainId: string;\n\tcollectibleId: string;\n\tonSuccess?: (hash?: Hash) => void;\n\tonError?: (error: Error) => void;\n};\n\nexport const useCreateListingModal = (callbacks?: ModalCallbacks) => {\n\treturn {\n\t\tshow: (args: ShowCreateListingModalArgs) =>\n\t\t\tcreateListingModal$.open({ ...args, defaultCallbacks: callbacks }),\n\t\tclose: () => createListingModal$.close(),\n\t};\n};\n\nexport const CreateListingModal = () => {\n\tconst { show: showTransactionStatusModal } = useTransactionStatusModal();\n\treturn (\n\t\t<Show if={createListingModal$.isOpen}>\n\t\t\t<Modal showTransactionStatusModal={showTransactionStatusModal} />\n\t\t</Show>\n\t);\n};\n\ntype TransactionStatusModalReturn = ReturnType<\n\ttypeof useTransactionStatusModal\n>;\n\nexport const Modal = observer(\n\t({\n\t\tshowTransactionStatusModal,\n\t}: {\n\t\tshowTransactionStatusModal: TransactionStatusModalReturn['show'];\n\t}) => {\n\t\tconst state = createListingModal$.get();\n\t\tconst { collectionAddress, chainId, listingPrice, collectibleId } = state;\n\t\tconst {\n\t\t\tdata: collectible,\n\t\t\tisLoading: collectableIsLoading,\n\t\t\tisError: collectableIsError,\n\t\t} = useCollectible({\n\t\t\tchainId,\n\t\t\tcollectionAddress,\n\t\t\tcollectibleId,\n\t\t});\n\t\tconst {\n\t\t\tdata: collection,\n\t\t\tisLoading: collectionIsLoading,\n\t\t\tisError: collectionIsError,\n\t\t} = useCollection({\n\t\t\tchainId,\n\t\t\tcollectionAddress,\n\t\t});\n\n\t\tconst { getListingSteps } = useCreateListing({\n\t\t\tchainId,\n\t\t\tcollectionAddress,\n\t\t\tonTransactionSent: (hash) => {\n\t\t\t\tif (!hash) return;\n\t\t\t\tshowTransactionStatusModal({\n\t\t\t\t\thash,\n\t\t\t\t\tcollectionAddress,\n\t\t\t\t\tchainId,\n\t\t\t\t\tprice: createListingModal$.listingPrice.get(),\n\t\t\t\t\ttokenId: collectibleId,\n\t\t\t\t\tgetTitle: getCreateListingTransactionTitle,\n\t\t\t\t\tgetMessage: (params) =>\n\t\t\t\t\t\tgetCreateListingTransactionMessage(params, collectible?.name || ''),\n\t\t\t\t\ttype: StepType.createListing,\n\t\t\t\t\tqueriesToInvalidate: collectableKeys.all as unknown as QueryKey[],\n\t\t\t\t});\n\t\t\t\tcreateListingModal$.close();\n\t\t\t},\n\t\t\tonError: (error) => {\n\t\t\t\tif (typeof createListingModal$.callbacks?.onError === 'function') {\n\t\t\t\t\tcreateListingModal$.onError(error);\n\t\t\t\t} else {\n\t\t\t\t\tconsole.debug('onError callback not provided:', error);\n\t\t\t\t}\n\t\t\t},\n\t\t});\n\n\t\t// biome-ignore lint/suspicious/noExplicitAny: <explanation>\n\t\tconst handleStepExecution = async (execute?: any) => {\n\t\t\tif (!execute) return;\n\t\t\ttry {\n\t\t\t\tawait refreshSteps();\n\t\t\t\tawait execute();\n\t\t\t} catch (error) {\n\t\t\t\tcreateListingModal$.onError?.(error as Error);\n\t\t\t}\n\t\t};\n\n\t\tif (collectableIsLoading || collectionIsLoading) {\n\t\t\treturn (\n\t\t\t\t<LoadingModal\n\t\t\t\t\tstore={createListingModal$}\n\t\t\t\t\tonClose={createListingModal$.close}\n\t\t\t\t\ttitle=\"List item for sale\"\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\tif (collectableIsError || collectionIsError) {\n\t\t\treturn (\n\t\t\t\t<ErrorModal\n\t\t\t\t\tstore={createListingModal$}\n\t\t\t\t\tonClose={createListingModal$.close}\n\t\t\t\t\ttitle=\"List item for sale\"\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\tconst dateToUnixTime = (date: Date) =>\n\t\t\tMath.floor(date.getTime() / 1000).toString();\n\n\t\tconst { isLoading, steps, refreshSteps } = getListingSteps({\n\t\t\t// biome-ignore lint/style/noNonNullAssertion: <explanation>\n\t\t\tcontractType: collection!.type as ContractType,\n\t\t\tlisting: {\n\t\t\t\ttokenId: collectibleId,\n\t\t\t\tquantity: createListingModal$.quantity.get(),\n\t\t\t\texpiry: dateToUnixTime(createListingModal$.expiry.get()),\n\t\t\t\tcurrencyAddress: listingPrice.currency.contractAddress,\n\t\t\t\tpricePerToken: listingPrice.amountRaw,\n\t\t\t},\n\t\t});\n\n\t\tconst ctas = [\n\t\t\t{\n\t\t\t\tlabel: 'Approve TOKEN',\n\t\t\t\tonClick: () => handleStepExecution(() => steps?.approval.execute()),\n\t\t\t\thidden: !steps?.approval.isPending,\n\t\t\t\tpending: steps?.approval.isExecuting,\n\t\t\t\tvariant: 'glass' as const,\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'List item for sale',\n\t\t\t\tonClick: () => handleStepExecution(() => steps?.transaction.execute()),\n\t\t\t\tpending: steps?.transaction.isExecuting || isLoading,\n\t\t\t\tdisabled:\n\t\t\t\t\tsteps?.approval.isPending ||\n\t\t\t\t\tlistingPrice.amountRaw === '0' ||\n\t\t\t\t\tisLoading,\n\t\t\t},\n\t\t] satisfies ActionModalProps['ctas'];\n\n\t\treturn (\n\t\t\t<ActionModal\n\t\t\t\tstore={createListingModal$}\n\t\t\t\tonClose={() => createListingModal$.close()}\n\t\t\t\ttitle=\"List item for sale\"\n\t\t\t\tctas={ctas}\n\t\t\t>\n\t\t\t\t<TokenPreview\n\t\t\t\t\tcollectionName={collection?.name}\n\t\t\t\t\tcollectionAddress={collectionAddress}\n\t\t\t\t\tcollectibleId={collectibleId}\n\t\t\t\t\tchainId={chainId}\n\t\t\t\t/>\n\n\t\t\t\t<Box display=\"flex\" flexDirection=\"column\" width=\"full\" gap=\"1\">\n\t\t\t\t\t<PriceInput\n\t\t\t\t\t\tchainId={chainId}\n\t\t\t\t\t\tcollectionAddress={collectionAddress}\n\t\t\t\t\t\t$listingPrice={createListingModal$.listingPrice}\n\t\t\t\t\t/>\n\t\t\t\t\t{!!listingPrice && (\n\t\t\t\t\t\t<FloorPriceText\n\t\t\t\t\t\t\ttokenId={collectibleId}\n\t\t\t\t\t\t\tchainId={chainId}\n\t\t\t\t\t\t\tcollectionAddress={collectionAddress}\n\t\t\t\t\t\t\tprice={listingPrice}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t</Box>\n\n\t\t\t\t{collection?.type === 'ERC1155' && (\n\t\t\t\t\t<QuantityInput\n\t\t\t\t\t\tchainId={chainId}\n\t\t\t\t\t\tcollectionAddress={collectionAddress}\n\t\t\t\t\t\tcollectibleId={collectibleId}\n\t\t\t\t\t\t$quantity={createListingModal$.quantity}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\n\t\t\t\t<ExpirationDateSelect $date={createListingModal$.expiry} />\n\n\t\t\t\t<TransactionDetails\n\t\t\t\t\tcollectibleId={collectibleId}\n\t\t\t\t\tcollectionAddress={collectionAddress}\n\t\t\t\t\tchainId={chainId}\n\t\t\t\t\tprice={createListingModal$.listingPrice.get()}\n\t\t\t\t\tcurrencyImageUrl={listingPrice.currency.imageUrl}\n\t\t\t\t/>\n\t\t\t</ActionModal>\n\t\t);\n\t},\n);\n","import { useState, useCallback } from 'react';\nimport type { Hash } from 'viem';\nimport {\n\ttype ListingInput,\n\tTransactionType,\n\ttype TransactionSteps,\n} from '../_internal/transaction-machine/execute-transaction';\nimport {\n\tuseTransactionMachine,\n\ttype UseTransactionMachineConfig,\n} from '../_internal/transaction-machine/useTransactionMachine';\n\ninterface UseCreateListingArgs\n\textends Omit<UseTransactionMachineConfig, 'type'> {\n\tonSuccess?: (hash: Hash) => void;\n\tonError?: (error: Error) => void;\n\tonTransactionSent?: (hash: Hash) => void;\n}\n\nexport const useCreateListing = ({\n\tonSuccess,\n\tonError,\n\tonTransactionSent,\n\t...config\n}: UseCreateListingArgs) => {\n\tconst [isLoading, setIsLoading] = useState(false);\n\tconst [steps, setSteps] = useState<TransactionSteps | null>(null);\n\n\tconst machine = useTransactionMachine(\n\t\t{\n\t\t\t...config,\n\t\t\ttype: TransactionType.LISTING,\n\t\t},\n\t\tonSuccess,\n\t\tonError,\n\t\tonTransactionSent,\n\t);\n\n\tconst loadSteps = useCallback(\n\t\tasync (props: ListingInput) => {\n\t\t\tif (!machine) return;\n\t\t\tsetIsLoading(true);\n\t\t\ttry {\n\t\t\t\tconst generatedSteps = await machine.getTransactionSteps(props);\n\t\t\t\tsetSteps(generatedSteps);\n\t\t\t} catch (error) {\n\t\t\t\tonError?.(error as Error);\n\t\t\t} finally {\n\t\t\t\tsetIsLoading(false);\n\t\t\t}\n\t\t},\n\t\t[machine, onError],\n\t);\n\n\treturn {\n\t\tcreateListing: (props: ListingInput) => machine?.start({ props }),\n\t\tgetListingSteps: (props: ListingInput) => ({\n\t\t\tisLoading,\n\t\t\tsteps,\n\t\t\trefreshSteps: () => loadSteps(props),\n\t\t}),\n\t\tonError,\n\t\tonSuccess,\n\t};\n};\n","import { Box } from '@0xsequence/design-system';\nimport type { Observable } from '@legendapp/state';\nimport type { ActionModalState } from './store';\nimport { ActionModal } from './ActionModal';\n\ninterface ErrorModalProps {\n\tstore: Observable<ActionModalState>;\n\tonClose: () => void;\n\ttitle: string;\n}\n\nexport const ErrorModal = ({ store, onClose, title }: ErrorModalProps) => (\n\t<ActionModal store={store} onClose={onClose} title={title} ctas={[]}>\n\t\t<Box display=\"flex\" justifyContent=\"center\" alignItems=\"center\" padding=\"4\">\n\t\t\tError loading item details\n\t\t</Box>\n\t</ActionModal>\n);\n","import { Box, Spinner } from '@0xsequence/design-system';\nimport type { Observable } from '@legendapp/state';\nimport type { ActionModalState } from './store';\nimport { ActionModal } from './ActionModal';\n\ninterface LoadingModalProps {\n\tstore: Observable<ActionModalState>;\n\tonClose: () => void;\n\ttitle: string;\n}\n\nexport const LoadingModal = ({ store, onClose, title }: LoadingModalProps) => (\n\t<ActionModal store={store} onClose={onClose} title={title} ctas={[]}>\n\t\t<Box display=\"flex\" justifyContent=\"center\" alignItems=\"center\" padding=\"4\">\n\t\t\t<Spinner size=\"lg\" />\n\t\t</Box>\n\t</ActionModal>\n);\n","import { useState } from 'react';\n\nimport { Box, Text } from '@0xsequence/design-system';\nimport type { Observable } from '@legendapp/state';\nimport { observer } from '@legendapp/state/react';\nimport { addDays, isSameDay } from 'date-fns';\nimport CalendarPopover from '../calendarPopover';\nimport { CustomSelect } from '../../../../components/_internals/custom-select/CustomSelect';\n\nexport const PRESET_RANGES = {\n\tTODAY: {\n\t\tlabel: 'Today',\n\t\tvalue: 'today',\n\t\toffset: 0,\n\t},\n\tTOMORROW: {\n\t\tlabel: 'Tomorrow',\n\t\tvalue: 'tomorrow',\n\t\toffset: 1,\n\t},\n\tIN_3_DAYS: {\n\t\tlabel: 'In 3 days',\n\t\tvalue: '3_days',\n\t\toffset: 3,\n\t},\n\tONE_WEEK: {\n\t\tlabel: '1 week',\n\t\tvalue: '1_week',\n\t\toffset: 7,\n\t},\n\tONE_MONTH: {\n\t\tlabel: '1 month',\n\t\tvalue: '1_month',\n\t\toffset: 30,\n\t},\n} as const;\n\nexport type rangeType =\n\t(typeof PRESET_RANGES)[keyof typeof PRESET_RANGES]['value'];\n\ntype ExpirationDateSelectProps = {\n\tclassName?: string;\n\t$date: Observable<Date>;\n};\n\nconst ExpirationDateSelect = observer(function ExpirationDateSelect({\n\tclassName,\n\t$date,\n}: ExpirationDateSelectProps) {\n\tconst [_, setRange] = useState<rangeType>('1_week');\n\tfunction handleSelectPresetRange(range: rangeType) {\n\t\tsetRange(range);\n\n\t\tconst presetRange = Object.values(PRESET_RANGES).find(\n\t\t\t(preset) => preset.value === range,\n\t\t);\n\n\t\tif (!presetRange) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst newDate = addDays(new Date(), presetRange.offset);\n\n\t\t$date.set(newDate);\n\t}\n\n\tfunction handleDateValueChange(date: Date) {\n\t\tconst presetRange = Object.values(PRESET_RANGES).find((preset) =>\n\t\t\tisSameDay(new Date(date), addDays(new Date(), preset.offset)),\n\t\t);\n\n\t\tif (presetRange) {\n\t\t\tsetRange(presetRange.value);\n\t\t}\n\n\t\t$date.set(date);\n\t}\n\n\treturn (\n\t\t<Box width=\"full\" position=\"relative\">\n\t\t\t<Text\n\t\t\t\tfontSize={'small'}\n\t\t\t\tfontWeight={'medium'}\n\t\t\t\ttextAlign={'left'}\n\t\t\t\twidth={'full'}\n\t\t\t\tcolor={'text100'}\n\t\t\t\tfontFamily=\"body\"\n\t\t\t>\n\t\t\t\tSet expiry\n\t\t\t</Text>\n\n\t\t\t<Box\n\t\t\t\tclassName={className}\n\t\t\t\twidth={'full'}\n\t\t\t\tdisplay={'flex'}\n\t\t\t\talignItems={'center'}\n\t\t\t\tgap={'2'}\n\t\t\t\tmarginTop={'0.5'}\n\t\t\t>\n\t\t\t\t<Box\n\t\t\t\t\tposition={'absolute'}\n\t\t\t\t\tright={'0'}\n\t\t\t\t\tonClick={(e) => e.stopPropagation()}\n\t\t\t\t\tzIndex=\"10\"\n\t\t\t\t>\n\t\t\t\t\t<CustomSelect\n\t\t\t\t\t\titems={Object.values(PRESET_RANGES).map((preset) => ({\n\t\t\t\t\t\t\tlabel: preset.label,\n\t\t\t\t\t\t\tvalue: preset.value,\n\t\t\t\t\t\t}))}\n\t\t\t\t\t\tplaceholder={\n\t\t\t\t\t\t\tObject.values(PRESET_RANGES).find((preset) =>\n\t\t\t\t\t\t\t\tisSameDay(\n\t\t\t\t\t\t\t\t\tnew Date($date.get()),\n\t\t\t\t\t\t\t\t\taddDays(new Date(), preset.offset),\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t)?.label\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonValueChange={(value) =>\n\t\t\t\t\t\t\thandleSelectPresetRange(value as rangeType)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdefaultValue={\n\t\t\t\t\t\t\tObject.values(PRESET_RANGES).find((preset) =>\n\t\t\t\t\t\t\t\tisSameDay(\n\t\t\t\t\t\t\t\t\tnew Date($date.get()),\n\t\t\t\t\t\t\t\t\taddDays(new Date(), preset.offset),\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t)?.value\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</Box>\n\n\t\t\t\t<CalendarPopover\n\t\t\t\t\tselectedDate={$date.get()}\n\t\t\t\t\tsetSelectedDate={(date) => handleDateValueChange(date)}\n\t\t\t\t/>\n\t\t\t</Box>\n\t\t</Box>\n\t);\n});\n\nexport default ExpirationDateSelect;\n","'use client';\n\nimport './overrides.css';\nimport { Button } from '@0xsequence/design-system';\nimport { Content, Portal, Root, Trigger } from '@radix-ui/react-popover';\nimport { format } from 'date-fns';\nimport SvgCalendarIcon from '../../../../icons/CalendarIcon';\nimport Calendar from '../calendar';\nimport { dateSelectButton, dateSelectPopoverContent } from './styles.css';\n\ntype CalendarPopoverProps = {\n\tselectedDate: Date;\n\tsetSelectedDate: (date: Date) => void;\n};\n\nexport default function CalendarPopover({\n\tselectedDate,\n\tsetSelectedDate,\n}: CalendarPopoverProps) {\n\treturn (\n\t\t<Root>\n\t\t\t<Trigger asChild>\n\t\t\t\t<Button\n\t\t\t\t\tleftIcon={SvgCalendarIcon}\n\t\t\t\t\tclassName={dateSelectButton}\n\t\t\t\t\tvariant=\"ghost\"\n\t\t\t\t\tlabel={format(selectedDate, 'dd/MM/yyyy HH:mm')}\n\t\t\t\t\tshape=\"square\"\n\t\t\t\t/>\n\t\t\t</Trigger>\n\t\t\t<Portal>\n\t\t\t\t<Content className={dateSelectPopoverContent} sideOffset={5}>\n\t\t\t\t\t<Calendar\n\t\t\t\t\t\tselectedDate={selectedDate}\n\t\t\t\t\t\tsetSelectedDate={setSelectedDate}\n\t\t\t\t\t\tmode=\"single\"\n\t\t\t\t\t/>\n\t\t\t\t</Content>\n\t\t\t</Portal>\n\t\t</Root>\n\t);\n}\n","'use client';\n\nimport { DayPicker, type PropsSingle } from 'react-day-picker';\nimport 'react-day-picker/style.css';\n\nexport type CalendarProps = React.PropsWithChildren<PropsSingle> & {\n\tselectedDate?: Date;\n\tsetSelectedDate?: (date: Date) => void;\n};\n\nfunction Calendar({ ...props }: CalendarProps) {\n\tconst { selectedDate, setSelectedDate } = props;\n\n\treturn (\n\t\t<DayPicker\n\t\t\tdisabled={{\n\t\t\t\tbefore: new Date(),\n\t\t\t}}\n\t\t\tselected={selectedDate as unknown as Date}\n\t\t\tonDayClick={setSelectedDate}\n\t\t\tdefaultMonth={selectedDate}\n\t\t\tmodifiersStyles={{\n\t\t\t\tselected: {\n\t\t\t\t\tcolor: 'hsl(var(--foreground))',\n\t\t\t\t\tbackground: 'hsl(var(--primary))',\n\t\t\t\t\tborder: 'none',\n\t\t\t\t},\n\t\t\t}}\n\t\t\tstyles={{\n\t\t\t\troot: {\n\t\t\t\t\twidth: 'max-content',\n\t\t\t\t\tmargin: 0,\n\t\t\t\t\tcolor: 'hsl(var(--foreground))',\n\t\t\t\t\tbackground: 'hsl(var(--background))',\n\t\t\t\t\tborder: `1px solid hsl(var(--border))`,\n\t\t\t\t\tborderRadius: 'var(--radius)',\n\t\t\t\t\tpadding: '0.5rem',\n\t\t\t\t\tposition: 'relative',\n\t\t\t\t},\n\t\t\t\tday: {\n\t\t\t\t\tmargin: 0,\n\t\t\t\t\twidth: '1rem',\n\t\t\t\t\theight: '1rem',\n\t\t\t\t},\n\t\t\t\tday_button: {\n\t\t\t\t\tmargin: 0,\n\t\t\t\t\twidth: '1.8rem',\n\t\t\t\t\theight: '1.5rem',\n\t\t\t\t\tpadding: 0,\n\t\t\t\t\tborder: 'none',\n\t\t\t\t},\n\t\t\t}}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\nCalendar.displayName = 'Calendar';\n\nexport default Calendar;\n","import React from 'react';\nimport * as Select from '@radix-ui/react-select';\nimport { CheckmarkIcon, ChevronDownIcon } from '@0xsequence/design-system';\nimport { content, item, itemIndicator, trigger } from './styles.css';\n\ninterface CustomSelectProps {\n\titems: Array<{\n\t\tvalue: string;\n\t\tlabel: string;\n\t\tdisabled?: boolean;\n\t}>;\n\tplaceholder?: string;\n\tonValueChange?: (value: string) => void;\n\tdefaultValue?: string;\n}\n\nconst CustomSelectItem = React.forwardRef<\n\tHTMLDivElement,\n\tSelect.SelectItemProps\n>(({ children, ...props }, forwardedRef) => {\n\treturn (\n\t\t<Select.Item className={item} {...props} ref={forwardedRef}>\n\t\t\t<Select.ItemText>{children}</Select.ItemText>\n\t\t\t<Select.ItemIndicator className={itemIndicator}>\n\t\t\t\t<CheckmarkIcon size=\"xs\" />\n\t\t\t</Select.ItemIndicator>\n\t\t</Select.Item>\n\t);\n});\n\nexport const CustomSelect: React.FC<CustomSelectProps> = ({\n\titems,\n\tplaceholder = 'Select an item...',\n\tonValueChange,\n\tdefaultValue,\n}) => {\n\treturn (\n\t\t<Select.Root onValueChange={onValueChange} defaultValue={defaultValue}>\n\t\t\t<Select.Trigger className={trigger}>\n\t\t\t\t<Select.Value placeholder={placeholder} />\n\t\t\t\t<Select.Icon>\n\t\t\t\t\t<ChevronDownIcon size=\"xs\" />\n\t\t\t\t</Select.Icon>\n\t\t\t</Select.Trigger>\n\n\t\t\t<Select.Portal>\n\t\t\t\t<Select.Content className={content}>\n\t\t\t\t\t<Select.Viewport>\n\t\t\t\t\t\t{items.map((item, index) => (\n\t\t\t\t\t\t\t<CustomSelectItem\n\t\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t\t\tvalue={item.value}\n\t\t\t\t\t\t\t\tdisabled={item.disabled}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{item.label}\n\t\t\t\t\t\t\t</CustomSelectItem>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</Select.Viewport>\n\t\t\t\t</Select.Content>\n\t\t\t</Select.Portal>\n\t\t</Select.Root>\n\t);\n};\n","import 'src/react/ui/components/_internals/custom-select/styles.css.ts.vanilla.css?source=LnN0eWxlc19pdGVtX18xZGR0dWprMjpob3ZlciB7CiAgYmFja2dyb3VuZDogdmFyKC0tc2VxLWNvbG9ycy1iYWNrZ3JvdW5kLW11dGVkKTsKfQ==';\nexport var content = 'fyvr11eg fyvr11es fyvr11f4 fyvr11fg fyvr11hc fyvr11i0 fyvr11g0 fyvr11go fyvr11q0 fyvr11qg fyvr12q3 fyvr12ir fyvr1243 fyvr12bf fyvr12rr fyvr12kf fyvr125r fyvr12d3 fyvr11xx fyvr11r0 fyvr11rt';\nexport var item = 'styles_item__1ddtujk2 fyvr11h0 fyvr11ho fyvr11fo fyvr11gc fyvr1v4 fyvr1x8 fyvr1zs fyvr111g fyvr11ik fyvr12w9 fyvr11l8 fyvr11ow fyvr14g fyvr11m4 fyvr11rc fyvr12zf';\nexport var itemIndicator = 'fyvr11lw fyvr1qk fyvr11lk fyvr11ow fyvr11no';\nexport var trigger = 'fyvr11hk fyvr11i8 fyvr11g8 fyvr11gw fyvr1zg fyvr111k fyvr11lk fyvr11ow fyvr11no fyvr11ik fyvr14g fyvr11cg fyvr11wr fyvr12w9 fyvr12zf fyvr12s9 fyvr11a4';","import { Text } from '@0xsequence/design-system';\nimport type { Hex } from 'viem';\nimport type { Price } from '../../../../../../types';\nimport { calculatePriceDifferencePercentage } from '../../../../../../utils';\nimport { useLowestListing } from '../../../../../hooks';\n\nexport default function FloorPriceText({\n\tchainId,\n\tcollectionAddress,\n\ttokenId,\n\tprice,\n}: {\n\tchainId: string;\n\tcollectionAddress: Hex;\n\ttokenId: string;\n\tprice: Price;\n}) {\n\tconst { data: listing, isLoading: listingLoading } = useLowestListing({\n\t\ttokenId: tokenId,\n\t\tchainId,\n\t\tcollectionAddress,\n\t\tfilters: {\n\t\t\tcurrencies: [price.currency.contractAddress],\n\t\t},\n\t});\n\n\tconst floorPriceRaw = listing?.order?.priceAmount;\n\n\tif (!floorPriceRaw || listingLoading || price.amountRaw === '0') {\n\t\treturn null;\n\t}\n\n\tconst floorPriceDifference = calculatePriceDifferencePercentage({\n\t\tinputPriceRaw: BigInt(price.amountRaw),\n\t\tbasePriceRaw: BigInt(floorPriceRaw),\n\t\tdecimals: price.currency.decimals,\n\t});\n\n\tconst floorPriceDifferenceText =\n\t\tfloorPriceRaw === price.amountRaw\n\t\t\t? 'Same as floor price'\n\t\t\t: `${floorPriceDifference}% ${floorPriceRaw > price.amountRaw ? 'below' : 'above'} floor price`;\n\n\treturn (\n\t\t<Text\n\t\t\tfontSize={'small'}\n\t\t\tfontWeight={'medium'}\n\t\t\ttextAlign={'left'}\n\t\t\twidth={'full'}\n\t\t\tcolor={'text50'}\n\t\t\tfontFamily=\"body\"\n\t\t>\n\t\t\t{floorPriceDifferenceText}\n\t\t</Text>\n\t);\n}\n","import { Box, NumericInput, TokenImage } from '@0xsequence/design-system';\nimport type { Observable } from '@legendapp/state';\nimport { observer } from '@legendapp/state/react';\nimport { useState } from 'react';\nimport { type Hex, erc20Abi, parseUnits } from 'viem';\nimport { useAccount, useReadContract } from 'wagmi';\nimport type { Price } from '../../../../../../types';\nimport CurrencyOptionsSelect from '../currencyOptionsSelect';\nimport { priceInputCurrencyImage, priceInputWrapper } from './styles.css';\n\ntype PriceInputProps = {\n\tcollectionAddress: Hex;\n\tchainId: string;\n\t$listingPrice: Observable<Price | undefined>;\n\tcheckBalance?: {\n\t\tenabled: boolean;\n\t\tcallback: (state: boolean) => void;\n\t};\n};\n\nconst PriceInput = observer(function PriceInput({\n\tchainId,\n\tcollectionAddress,\n\t$listingPrice,\n\tcheckBalance,\n}: PriceInputProps) {\n\tconst [balanceError, setBalanceError] = useState('');\n\tconst { address: accountAddress } = useAccount();\n\tconst { data: balance, isSuccess: isBalanceSuccess } = useReadContract({\n\t\taddress: $listingPrice.currency.contractAddress.get() as Hex,\n\t\tabi: erc20Abi,\n\t\tfunctionName: 'balanceOf',\n\t\targs: [accountAddress as Hex],\n\t\tquery: {\n\t\t\tenabled: checkBalance?.enabled,\n\t\t},\n\t});\n\tconst currencyDecimals = $listingPrice.currency.decimals.get();\n\n\tconst [value, setValue] = useState('');\n\n\tconst checkInsufficientBalance = (priceAmountRaw: string) => {\n\t\tconst hasInsufficientBalance =\n\t\t\tisBalanceSuccess &&\n\t\t\tpriceAmountRaw &&\n\t\t\tcurrencyDecimals &&\n\t\t\tBigInt(priceAmountRaw) > (balance || 0);\n\n\t\tif (!checkBalance) return;\n\n\t\tif (hasInsufficientBalance) {\n\t\t\tsetBalanceError('Insufficient balance');\n\t\t\tcheckBalance.callback(true);\n\t\t} else {\n\t\t\tsetBalanceError('');\n\t\t\tcheckBalance.callback(false);\n\t\t}\n\t};\n\n\tconst changeListingPrice = (value: string) => {\n\t\tsetValue(value);\n\t\tconst parsedAmount = parseUnits(value, Number(currencyDecimals));\n\t\t$listingPrice.amountRaw.set(parsedAmount.toString());\n\t\tcheckBalance && checkInsufficientBalance(parsedAmount.toString());\n\t};\n\n\treturn (\n\t\t<Box className={priceInputWrapper} position=\"relative\">\n\t\t\t<Box\n\t\t\t\tclassName={priceInputCurrencyImage}\n\t\t\t\tposition=\"absolute\"\n\t\t\t\tleft=\"2\"\n\t\t\t\tdisplay=\"flex\"\n\t\t\t\talignItems=\"center\"\n\t\t\t>\n\t\t\t\t<TokenImage src={$listingPrice.currency.imageUrl.get()} size=\"xs\" />\n\t\t\t</Box>\n\n\t\t\t<NumericInput\n\t\t\t\tname=\"listingPrice\"\n\t\t\t\tdecimals={currencyDecimals}\n\t\t\t\tlabel=\"Enter price\"\n\t\t\t\tlabelLocation=\"top\"\n\t\t\t\tcontrols={\n\t\t\t\t\t<CurrencyOptionsSelect\n\t\t\t\t\t\t$selectedCurrency={$listingPrice?.currency}\n\t\t\t\t\t\tcollectionAddress={collectionAddress}\n\t\t\t\t\t\tchainId={chainId}\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t\tvalue={value}\n\t\t\t\tonChange={(event) => changeListingPrice(event.target.value)}\n\t\t\t\twidth=\"full\"\n\t\t\t/>\n\t\t\t{balanceError && (\n\t\t\t\t<Box color=\"negative\" fontSize=\"small\">\n\t\t\t\t\t{balanceError}\n\t\t\t\t</Box>\n\t\t\t)}\n\t\t</Box>\n\t);\n});\n\nexport default PriceInput;\n","import { Skeleton } from '@0xsequence/design-system';\nimport type { Observable } from '@legendapp/state';\nimport { observer } from '@legendapp/state/react';\nimport { useEffect } from 'react';\nimport type { Hex } from 'viem';\nimport type { ChainId, Currency } from '../../../../../_internal';\nimport { useCurrencies } from '../../../../../hooks';\nimport { CustomSelect } from '../../../../components/_internals/custom-select/CustomSelect';\n\n// TODO: this should be exported from design system\ntype SelectOption = {\n\tlabel: string;\n\tvalue: string;\n};\n\ntype CurrencyOptionsSelectProps = {\n\tcollectionAddress: Hex;\n\tchainId: ChainId;\n\t$selectedCurrency: Observable<Currency | null | undefined>;\n};\n\nconst CurrencyOptionsSelect = observer(function CurrencyOptionsSelect({\n\tchainId,\n\tcollectionAddress,\n\t$selectedCurrency,\n}: CurrencyOptionsSelectProps) {\n\tconst { data: currencies, isLoading: currenciesLoading } = useCurrencies({\n\t\tcollectionAddress,\n\t\tchainId,\n\t});\n\n\tuseEffect(() => {\n\t\tif (\n\t\t\tcurrencies &&\n\t\t\tcurrencies.length > 0 &&\n\t\t\t!$selectedCurrency.contractAddress.get()\n\t\t) {\n\t\t\t$selectedCurrency.set(currencies[0]);\n\t\t}\n\t}, [currencies]);\n\n\tif (!currencies || currenciesLoading) {\n\t\treturn <Skeleton borderRadius=\"lg\" width=\"20\" height=\"7\" marginRight=\"3\" />;\n\t}\n\n\tconst options = currencies.map(\n\t\t(currency) =>\n\t\t\t({\n\t\t\t\tlabel: currency.symbol,\n\t\t\t\tvalue: currency.contractAddress,\n\t\t\t}) satisfies SelectOption,\n\t);\n\n\tconst onChange = (value: string) => {\n\t\t// biome-ignore lint/style/noNonNullAssertion: This can not be undefined\n\t\tconst c = currencies.find(\n\t\t\t(currency) => currency.contractAddress === value,\n\t\t)!;\n\n\t\t$selectedCurrency.set(c);\n\t};\n\n\treturn (\n\t\t<CustomSelect items={options} onValueChange={onChange} placeholder=\"\" />\n\t);\n});\n\nexport default CurrencyOptionsSelect;\n","import { Box, IconButton, NumericInput } from '@0xsequence/design-system';\nimport type { Observable } from '@legendapp/state';\nimport type { Hex } from 'viem';\nimport { useCollectible } from '../../../../../hooks';\nimport SvgMinusIcon from '../../../../icons/MinusIcon';\nimport SvgPlusIcon from '../../../../icons/PlusIcon';\nimport { quantityInputWrapper } from './styles.css';\n\ntype QuantityInputProps = {\n\t$quantity: Observable<string>;\n\tchainId: string;\n\tcollectionAddress: Hex;\n\tcollectibleId: string;\n};\n\nexport default function QuantityInput({\n\t$quantity,\n\tchainId,\n\tcollectionAddress,\n\tcollectibleId,\n}: QuantityInputProps) {\n\tconst { data: collectable, isLoading: collectableLoading } = useCollectible({\n\t\tchainId,\n\t\tcollectionAddress,\n\t\tcollectibleId,\n\t});\n\n\tconst quantityDecimals =\n\t\tcollectable && ((collectable.decimals || 0) as number | undefined);\n\n\tfunction handleChangeQuantity(value: string) {\n\t\tif (!isValidInput(value)) return;\n\n\t\tconst formattedValue = formatQuantity(value);\n\t\tif (formattedValue !== null) {\n\t\t\t$quantity.set(formattedValue);\n\t\t}\n\t}\n\n\tfunction handleIncrement() {\n\t\tif (!isValidInput()) return;\n\n\t\tconst newQuantity = incrementQuantity();\n\t\tif (newQuantity !== null) {\n\t\t\t$quantity.set(newQuantity);\n\t\t}\n\t}\n\n\tfunction handleDecrement() {\n\t\tif (!isValidInput()) return;\n\n\t\tconst newQuantity = decrementQuantity();\n\t\tif (newQuantity !== null) {\n\t\t\t$quantity.set(newQuantity);\n\t\t}\n\t}\n\n\tfunction isValidInput(value?: string): boolean {\n\t\treturn (\n\t\t\tcollectable !== undefined &&\n\t\t\tquantityDecimals !== undefined &&\n\t\t\t(value === undefined || value !== '')\n\t\t);\n\t}\n\n\tfunction formatQuantity(value: string): string | null {\n\t\tif (quantityDecimals === 0 && value.includes('.')) {\n\t\t\treturn null;\n\t\t}\n\n\t\tif (quantityDecimals && quantityDecimals > 0) {\n\t\t\tconst decimalIndex = value.indexOf('.');\n\t\t\tif (\n\t\t\t\tdecimalIndex !== -1 &&\n\t\t\t\tvalue.length - decimalIndex > quantityDecimals + 1\n\t\t\t) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t}\n\n\tconst quantity = $quantity.get();\n\n\tfunction incrementQuantity(): string | null {\n\t\tif (!isValidInput()) return null;\n\n\t\tif (!quantity) {\n\t\t\treturn quantityDecimals === 0\n\t\t\t\t? '1'\n\t\t\t\t: `1.${'0'.repeat(quantityDecimals!)}`;\n\t\t}\n\n\t\tconst newValue =\n\t\t\tquantityDecimals === 0\n\t\t\t\t? (Number.parseInt(quantity) + 1).toString()\n\t\t\t\t: (Number.parseFloat(quantity) + 1).toFixed(quantityDecimals);\n\n\t\treturn newValue;\n\t}\n\n\tfunction decrementQuantity(): string | null {\n\t\tif (!quantity) {\n\t\t\treturn '1';\n\t\t}\n\n\t\tconst newValue = Number.parseFloat(quantity) - 1;\n\t\tif (newValue < 0) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn quantityDecimals === 0\n\t\t\t? newValue.toString()\n\t\t\t: newValue.toFixed(quantityDecimals);\n\t}\n\n\tfunction getPlaceholder(decimals: number) {\n\t\tif (decimals === 0) {\n\t\t\treturn '0';\n\t\t} else {\n\t\t\treturn '0.' + '0'.repeat(decimals);\n\t\t}\n\t}\n\n\tif (collectableLoading) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Box className={quantityInputWrapper}>\n\t\t\t<NumericInput\n\t\t\t\tname={'quantity'}\n\t\t\t\tdecimals={quantityDecimals || 0}\n\t\t\t\tpaddingLeft={'1'}\n\t\t\t\tlabel={'Enter quantity'}\n\t\t\t\tlabelLocation=\"top\"\n\t\t\t\tplaceholder={getPlaceholder(quantityDecimals || 0)}\n\t\t\t\tcontrols={\n\t\t\t\t\t<Box\n\t\t\t\t\t\tdisplay={'flex'}\n\t\t\t\t\t\talignItems={'center'}\n\t\t\t\t\t\tgap={'1'}\n\t\t\t\t\t\tmarginRight={'2'}\n\t\t\t\t\t>\n\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\tdisabled={Number.parseFloat(quantity) === 0 || !quantity}\n\t\t\t\t\t\t\tonClick={handleDecrement}\n\t\t\t\t\t\t\tbackground={'buttonGlass'}\n\t\t\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\t\t\ticon={SvgMinusIcon}\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\tonClick={handleIncrement}\n\t\t\t\t\t\t\tbackground={'buttonGlass'}\n\t\t\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\t\t\ticon={SvgPlusIcon}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Box>\n\t\t\t\t}\n\t\t\t\tnumeric={true}\n\t\t\t\tvalue={$quantity.get()}\n\t\t\t\tonChange={(e) => handleChangeQuantity(e.target.value)}\n\t\t\t\twidth={'full'}\n\t\t\t/>\n\t\t</Box>\n\t);\n}\n","import { Box, Image, Skeleton, Text } from '@0xsequence/design-system';\nimport type { Hex } from 'viem';\nimport { useCollectible } from '../../../../../hooks';\nimport { tokenPreview } from './styles.css';\nimport ChessTileImage from '../../../../images/chess-tile.png';\n\ntype TokenPreviewProps = {\n\tcollectionName?: string;\n\tcollectionAddress: Hex;\n\tcollectibleId: string;\n\tchainId: string;\n};\n\nexport default function TokenPreview({\n\tcollectionName,\n\tcollectionAddress,\n\tcollectibleId,\n\tchainId,\n}: TokenPreviewProps) {\n\tconst { data: collectable, isLoading: collectibleLoading } = useCollectible({\n\t\tchainId: chainId,\n\t\tcollectionAddress: collectionAddress,\n\t\tcollectibleId,\n\t});\n\n\tif (collectibleLoading) {\n\t\treturn (\n\t\t\t<Box display=\"flex\" alignItems=\"center\" gap=\"3\" width=\"full\">\n\t\t\t\t<Skeleton width={'9'} height={'9'} borderRadius={'xs'} />\n\n\t\t\t\t<Box display=\"flex\" flexGrow=\"1\" gap=\"1\" flexDirection=\"column\">\n\t\t\t\t\t<Skeleton width=\"1/3\" height=\"3\" />\n\t\t\t\t\t<Skeleton width=\"1/2\" height=\"3\" />\n\t\t\t\t</Box>\n\t\t\t</Box>\n\t\t);\n\t}\n\n\treturn (\n\t\t<Box className={tokenPreview}>\n\t\t\t<Image\n\t\t\t\tsrc={collectable?.image || ChessTileImage}\n\t\t\t\talt={collectable?.name}\n\t\t\t\twidth={'9'}\n\t\t\t\theight={'9'}\n\t\t\t\tborderRadius={'xs'}\n\t\t\t/>\n\n\t\t\t<Box display={'flex'} flexDirection={'column'} marginLeft={'3'}>\n\t\t\t\t<Text\n\t\t\t\t\tfontSize={'small'}\n\t\t\t\t\tcolor={'text80'}\n\t\t\t\t\tfontWeight={'medium'}\n\t\t\t\t\tfontFamily=\"body\"\n\t\t\t\t>\n\t\t\t\t\t{collectionName}\n\t\t\t\t</Text>\n\n\t\t\t\t<Text\n\t\t\t\t\tfontSize={'small'}\n\t\t\t\t\tfontWeight={'bold'}\n\t\t\t\t\tcolor={'text100'}\n\t\t\t\t\tfontFamily=\"body\"\n\t\t\t\t>\n\t\t\t\t\t{collectable?.name}\n\t\t\t\t</Text>\n\t\t\t</Box>\n\t\t</Box>\n\t);\n}\n","import { Box, Image, Skeleton, Text } from '@0xsequence/design-system';\nimport { type Hex, formatUnits } from 'viem';\nimport type { Price } from '../../../../../../types';\nimport {\n\tuseMarketplaceConfig,\n\tuseRoyaltyPercentage,\n} from '../../../../../hooks';\n\ntype TransactionDetailsProps = {\n\tcollectibleId: string;\n\tcollectionAddress: Hex;\n\tchainId: string;\n\tprice?: Price;\n\tcurrencyImageUrl?: string;\n};\n\n//TODO: Move this\nconst DEFAULT_MARKETPLACE_FEE_PERCENTAGE = 2.5;\n\nexport default function TransactionDetails({\n\tcollectibleId,\n\tcollectionAddress,\n\tchainId,\n\tprice,\n\tcurrencyImageUrl,\n}: TransactionDetailsProps) {\n\tconst { data, isLoading: marketplaceConfigLoading } = useMarketplaceConfig();\n\n\tconst marketplaceFeePercentage =\n\t\tdata?.collections.find(\n\t\t\t(collection) => collection.collectionAddress === collectionAddress,\n\t\t)?.marketplaceFeePercentage || DEFAULT_MARKETPLACE_FEE_PERCENTAGE;\n\tconst { data: royaltyPercentage, isLoading: royaltyPercentageLoading } =\n\t\tuseRoyaltyPercentage({\n\t\t\tchainId,\n\t\t\tcollectionAddress,\n\t\t\tcollectibleId,\n\t\t});\n\n\tconst priceLoading =\n\t\t!price || marketplaceConfigLoading || royaltyPercentageLoading;\n\n\tlet formattedAmount =\n\t\tprice && formatUnits(BigInt(price.amountRaw), price.currency.decimals);\n\n\tif (royaltyPercentage !== undefined && formattedAmount) {\n\t\tformattedAmount = (\n\t\t\tNumber.parseFloat(formattedAmount) -\n\t\t\t(Number.parseFloat(formattedAmount) * Number(royaltyPercentage)) / 100\n\t\t).toString();\n\t}\n\n\tif (marketplaceFeePercentage !== undefined && formattedAmount) {\n\t\tformattedAmount = (\n\t\t\tNumber.parseFloat(formattedAmount) -\n\t\t\t(Number.parseFloat(formattedAmount) * marketplaceFeePercentage) / 100\n\t\t).toString();\n\t}\n\n\treturn (\n\t\t<Box\n\t\t\twidth=\"full\"\n\t\t\tdisplay={'flex'}\n\t\t\tjustifyContent={'space-between'}\n\t\t\talignItems={'center'}\n\t\t>\n\t\t\t<Text fontSize={'small'} color={'text50'} fontFamily=\"body\">\n\t\t\t\tTotal earnings\n\t\t\t</Text>\n\n\t\t\t<Box display=\"flex\" alignItems=\"center\" gap=\"2\">\n\t\t\t\t<Image src={currencyImageUrl} width=\"3\" height=\"3\" />\n\n\t\t\t\t{priceLoading ? (\n\t\t\t\t\t<Skeleton width=\"16\" height={'4'} />\n\t\t\t\t) : (\n\t\t\t\t\t<Text fontSize={'small'} color={'text100'} fontFamily=\"body\">\n\t\t\t\t\t\t{formattedAmount} {price.currency.symbol}\n\t\t\t\t\t</Text>\n\t\t\t\t)}\n\t\t\t</Box>\n\t\t</Box>\n\t);\n}\n","import { observable } from '@legendapp/state';\nimport { addDays } from 'date-fns/addDays';\nimport type { Hash, Hex } from 'viem';\nimport type { Currency } from '../../../../types';\nimport type { ModalCallbacks } from '../_internal/types';\n\nconst initialState = {\n\tisOpen: false,\n\tcollectionAddress: '' as Hex,\n\tchainId: '',\n\tcollectibleId: '',\n\tcollectionName: '',\n\tcollectionType: undefined,\n\tlistingPrice: {\n\t\tamountRaw: '0',\n\t\tcurrency: {} as Currency,\n\t},\n\tquantity: '1',\n\texpiry: new Date(addDays(new Date(), 7).toJSON()),\n\tcallbacks: undefined as ModalCallbacks | undefined,\n\n\tonError: undefined as undefined | ((error: Error) => void),\n\tonSuccess: undefined as undefined | ((hash: Hash) => void),\n\n\topen: (args: {\n\t\tcollectionAddress: Hex;\n\t\tchainId: string;\n\t\tcollectibleId: string;\n\t\tcallbacks?: ModalCallbacks;\n\t\tdefaultCallbacks?: ModalCallbacks;\n\t\tonSuccess?: (hash?: Hash) => void;\n\t\tonError?: (error: Error) => void;\n\t}) => {\n\t\tcreateListingModal$.collectionAddress.set(args.collectionAddress);\n\t\tcreateListingModal$.chainId.set(args.chainId);\n\t\tcreateListingModal$.collectibleId.set(args.collectibleId);\n\t\tcreateListingModal$.callbacks.set(args.callbacks || args.defaultCallbacks);\n\t\tcreateListingModal$.onSuccess.set(args.onSuccess);\n\t\tcreateListingModal$.onError.set(args.onError);\n\t\tcreateListingModal$.isOpen.set(true);\n\t},\n\tclose: () => {\n\t\tcreateListingModal$.isOpen.set(false);\n\t\tcreateListingModal$.callbacks.set(undefined);\n\t},\n};\n\nexport const createListingModal$ = observable(initialState);\n","import type { ConfirmationStatus } from '../../_internal/components/transactionStatusModal/store';\n\nexport const getCreateListingTransactionTitle = (\n\tparams: ConfirmationStatus,\n) => {\n\tif (params.isConfirmed) {\n\t\treturn 'Listing has processed';\n\t}\n\n\tif (params.isFailed) {\n\t\treturn 'Listing has failed';\n\t}\n\n\treturn 'Listing is processing';\n};\n\nexport const getCreateListingTransactionMessage = (\n\tparams: ConfirmationStatus,\n\tcollectibleName: string,\n) => {\n\tif (params.isConfirmed) {\n\t\treturn `You just listed ${collectibleName}. It’s been confirmed on the blockchain!`;\n\t}\n\n\tif (params.isFailed) {\n\t\treturn `Your listing of ${collectibleName} has failed. Please try again.`;\n\t}\n\n\treturn `You just listed ${collectibleName}. It should be confirmed on the blockchain shortly.`;\n};\n","import { Show, observer } from '@legendapp/state/react';\nimport { useEffect, useState } from 'react';\nimport type { Hex } from 'viem';\nimport { collectableKeys, ContractType, StepType } from '../../../_internal';\nimport { useCollectible, useCollection, useCurrencies } from '../../../hooks';\nimport { useMakeOffer } from '../../../hooks/useMakeOffer';\nimport { ActionModal } from '../_internal/components/actionModal/ActionModal';\nimport ExpirationDateSelect from '../_internal/components/expirationDateSelect';\nimport FloorPriceText from '../_internal/components/floorPriceText';\nimport PriceInput from '../_internal/components/priceInput';\nimport QuantityInput from '../_internal/components/quantityInput';\nimport TokenPreview from '../_internal/components/tokenPreview';\nimport { useTransactionStatusModal } from '../_internal/components/transactionStatusModal';\nimport { makeOfferModal$ } from './_store';\nimport {\n\tgetMakeOfferTransactionMessage,\n\tgetMakeOfferTransactionTitle,\n} from './_utils/getMakeOfferTransactionTitleMessage';\nimport { LoadingModal } from '../_internal/components/actionModal/LoadingModal';\nimport { ErrorModal } from '../_internal/components/actionModal/ErrorModal';\nimport type { ModalCallbacks } from '../_internal/types';\nimport type { QueryKey } from '@tanstack/react-query';\n\nexport type ShowMakeOfferModalArgs = {\n\tcollectionAddress: Hex;\n\tchainId: string;\n\tcollectibleId: string;\n};\n\nexport const useMakeOfferModal = (defaultCallbacks?: ModalCallbacks) => ({\n\tshow: (args: ShowMakeOfferModalArgs) =>\n\t\tmakeOfferModal$.open({ ...args, callbacks: defaultCallbacks }),\n\tclose: makeOfferModal$.close,\n});\n\nexport const MakeOfferModal = () => {\n\tconst { show: showTransactionStatusModal } = useTransactionStatusModal();\n\treturn (\n\t\t<Show if={makeOfferModal$.isOpen}>\n\t\t\t<ModalContent showTransactionStatusModal={showTransactionStatusModal} />\n\t\t</Show>\n\t);\n};\n\ntype TransactionStatusModalReturn = ReturnType<\n\ttypeof useTransactionStatusModal\n>;\n\nconst ModalContent = observer(\n\t({\n\t\tshowTransactionStatusModal,\n\t}: {\n\t\tshowTransactionStatusModal: TransactionStatusModalReturn['show'];\n\t}) => {\n\t\tconst state = makeOfferModal$.get();\n\t\tconst { collectionAddress, chainId, offerPrice, collectibleId } = state;\n\t\tconst [insufficientBalance, setInsufficientBalance] = useState(false);\n\n\t\tconst {\n\t\t\tdata: collectible,\n\t\t\tisLoading: collectableIsLoading,\n\t\t\tisError: collectableIsError,\n\t\t} = useCollectible({\n\t\t\tchainId,\n\t\t\tcollectionAddress,\n\t\t\tcollectibleId,\n\t\t});\n\n\t\tconst {\n\t\t\tdata: collection,\n\t\t\tisLoading: collectionIsLoading,\n\t\t\tisError: collectionIsError,\n\t\t} = useCollection({\n\t\t\tchainId,\n\t\t\tcollectionAddress,\n\t\t});\n\n\t\tconst { isLoading: currenciesIsLoading } = useCurrencies({\n\t\t\tchainId,\n\t\t\tcollectionAddress,\n\t\t});\n\n\t\tconst { getMakeOfferSteps } = useMakeOffer({\n\t\t\tchainId,\n\t\t\tcollectionAddress,\n\t\t\tonTransactionSent: (hash) => {\n\t\t\t\tif (!hash) return;\n\t\t\t\tshowTransactionStatusModal({\n\t\t\t\t\thash,\n\t\t\t\t\tprice: makeOfferModal$.offerPrice.get(),\n\t\t\t\t\tcollectionAddress,\n\t\t\t\t\tchainId,\n\t\t\t\t\ttokenId: collectibleId,\n\t\t\t\t\tgetTitle: getMakeOfferTransactionTitle,\n\t\t\t\t\tgetMessage: (params) =>\n\t\t\t\t\t\tgetMakeOfferTransactionMessage(params, collectible?.name || ''),\n\t\t\t\t\ttype: StepType.createOffer,\n\t\t\t\t\tqueriesToInvalidate: collectableKeys.all as unknown as QueryKey[],\n\t\t\t\t});\n\t\t\t\tmakeOfferModal$.close();\n\t\t\t},\n\t\t\tonSuccess: (hash) => {\n\t\t\t\tif (typeof makeOfferModal$.callbacks?.onSuccess === 'function') {\n\t\t\t\t\tmakeOfferModal$.callbacks.onSuccess(hash);\n\t\t\t\t} else {\n\t\t\t\t\tconsole.debug('onSuccess callback not provided:', hash);\n\t\t\t\t}\n\t\t\t},\n\t\t\tonError: (error) => {\n\t\t\t\tif (typeof makeOfferModal$.callbacks?.onError === 'function') {\n\t\t\t\t\tmakeOfferModal$.callbacks.onError(error);\n\t\t\t\t} else {\n\t\t\t\t\tconsole.debug('onError callback not provided:', error);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tconst dateToUnixTime = (date: Date) =>\n\t\t\tMath.floor(date.getTime() / 1000).toString();\n\n\t\tconst currencyAddress = offerPrice.currency.contractAddress;\n\n\t\tconst { isLoading, steps, refreshSteps } = getMakeOfferSteps({\n\t\t\tcontractType: collection!.type as ContractType,\n\t\t\toffer: {\n\t\t\t\ttokenId: collectibleId,\n\t\t\t\tquantity: makeOfferModal$.quantity.get(),\n\t\t\t\texpiry: dateToUnixTime(makeOfferModal$.expiry.get()),\n\t\t\t\tcurrencyAddress,\n\t\t\t\tpricePerToken: offerPrice.amountRaw,\n\t\t\t},\n\t\t});\n\n\t\tuseEffect(() => {\n\t\t\tif (!currencyAddress) return;\n\t\t\trefreshSteps();\n\t\t}, [currencyAddress]);\n\n\t\tif (collectableIsLoading || collectionIsLoading || currenciesIsLoading) {\n\t\t\treturn (\n\t\t\t\t<LoadingModal\n\t\t\t\t\tstore={makeOfferModal$}\n\t\t\t\t\tonClose={makeOfferModal$.close}\n\t\t\t\t\ttitle=\"Make an offer\"\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\tif (collectableIsError || collectionIsError) {\n\t\t\treturn (\n\t\t\t\t<ErrorModal\n\t\t\t\t\tstore={makeOfferModal$}\n\t\t\t\t\tonClose={makeOfferModal$.close}\n\t\t\t\t\ttitle=\"Make an offer\"\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\tconst handleStepExecution = async (execute?: any) => {\n\t\t\tif (!execute) return;\n\t\t\ttry {\n\t\t\t\tawait refreshSteps();\n\t\t\t\tawait execute();\n\t\t\t} catch (error) {\n\t\t\t\tmakeOfferModal$.callbacks?.onError?.(error as Error);\n\t\t\t}\n\t\t};\n\n\t\tconst ctas = [\n\t\t\t{\n\t\t\t\tlabel: 'Approve TOKEN',\n\t\t\t\tonClick: () => handleStepExecution(() => steps?.approval.execute()),\n\t\t\t\thidden: !steps?.approval.isPending,\n\t\t\t\tpending: steps?.approval.isExecuting,\n\t\t\t\tvariant: 'glass' as const,\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Make offer',\n\t\t\t\tonClick: () => handleStepExecution(() => steps?.transaction.execute()),\n\t\t\t\tpending: steps?.transaction.isExecuting || isLoading,\n\t\t\t\tdisabled:\n\t\t\t\t\tsteps?.approval.isPending ||\n\t\t\t\t\tofferPrice.amountRaw === '0' ||\n\t\t\t\t\tinsufficientBalance ||\n\t\t\t\t\tisLoading,\n\t\t\t},\n\t\t];\n\n\t\treturn (\n\t\t\t<ActionModal\n\t\t\t\tstore={makeOfferModal$}\n\t\t\t\tonClose={() => makeOfferModal$.close()}\n\t\t\t\ttitle=\"Make an offer\"\n\t\t\t\tctas={ctas}\n\t\t\t>\n\t\t\t\t<TokenPreview\n\t\t\t\t\tcollectionName={collection?.name}\n\t\t\t\t\tcollectionAddress={collectionAddress}\n\t\t\t\t\tcollectibleId={collectibleId}\n\t\t\t\t\tchainId={chainId}\n\t\t\t\t/>\n\n\t\t\t\t<PriceInput\n\t\t\t\t\tchainId={chainId}\n\t\t\t\t\tcollectionAddress={collectionAddress}\n\t\t\t\t\t$listingPrice={makeOfferModal$.offerPrice}\n\t\t\t\t\tcheckBalance={{\n\t\t\t\t\t\tenabled: true,\n\t\t\t\t\t\tcallback: (state) => setInsufficientBalance(state),\n\t\t\t\t\t}}\n\t\t\t\t/>\n\n\t\t\t\t{collection?.type === ContractType.ERC1155 && (\n\t\t\t\t\t<QuantityInput\n\t\t\t\t\t\tchainId={chainId}\n\t\t\t\t\t\t$quantity={makeOfferModal$.quantity}\n\t\t\t\t\t\tcollectionAddress={collectionAddress}\n\t\t\t\t\t\tcollectibleId={collectibleId}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\n\t\t\t\t{!!offerPrice && (\n\t\t\t\t\t<FloorPriceText\n\t\t\t\t\t\ttokenId={collectibleId}\n\t\t\t\t\t\tchainId={chainId}\n\t\t\t\t\t\tcollectionAddress={collectionAddress}\n\t\t\t\t\t\tprice={offerPrice}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\n\t\t\t\t<ExpirationDateSelect $date={makeOfferModal$.expiry} />\n\t\t\t</ActionModal>\n\t\t);\n\t},\n);\n","import { useState, useCallback } from 'react';\nimport type { Hash } from 'viem';\nimport {\n\ttype OfferInput,\n\tTransactionType,\n\ttype TransactionSteps,\n} from '../_internal/transaction-machine/execute-transaction';\nimport {\n\tuseTransactionMachine,\n\ttype UseTransactionMachineConfig,\n} from '../_internal/transaction-machine/useTransactionMachine';\n\ninterface UseMakeOfferArgs extends Omit<UseTransactionMachineConfig, 'type'> {\n\tonSuccess?: (hash: Hash) => void;\n\tonError?: (error: Error) => void;\n\tonTransactionSent?: (hash: Hash) => void;\n}\n\nexport const useMakeOffer = ({\n\tonSuccess,\n\tonError,\n\tonTransactionSent,\n\t...config\n}: UseMakeOfferArgs) => {\n\tconst [isLoading, setIsLoading] = useState(false);\n\tconst [steps, setSteps] = useState<TransactionSteps | null>(null);\n\n\tconst machine = useTransactionMachine(\n\t\t{\n\t\t\t...config,\n\t\t\ttype: TransactionType.OFFER,\n\t\t},\n\t\tonSuccess,\n\t\tonError,\n\t\tonTransactionSent,\n\t);\n\n\tconst loadSteps = useCallback(\n\t\tasync (props: OfferInput) => {\n\t\t\tif (!machine) return;\n\t\t\tsetIsLoading(true);\n\t\t\ttry {\n\t\t\t\tconst generatedSteps = await machine.getTransactionSteps(props);\n\t\t\t\tsetSteps(generatedSteps);\n\t\t\t} catch (error) {\n\t\t\t\tonError?.(error as Error);\n\t\t\t} finally {\n\t\t\t\tsetIsLoading(false);\n\t\t\t}\n\t\t},\n\t\t[machine, onError],\n\t);\n\n\treturn {\n\t\tmakeOffer: (props: OfferInput) => machine?.start({ props }),\n\t\tgetMakeOfferSteps: (props: OfferInput) => ({\n\t\t\tisLoading,\n\t\t\tsteps,\n\t\t\trefreshSteps: () => loadSteps(props),\n\t\t}),\n\t};\n};\n","import { observable } from '@legendapp/state';\nimport { addDays } from 'date-fns/addDays';\nimport type { Hex } from 'viem';\nimport type { Currency, Price } from '../../../../types';\nimport type { BaseModalState, ModalCallbacks } from '../_internal/types';\n\ntype MakeOfferModalState = BaseModalState & {\n\tcollectibleId: string;\n\tofferPrice: Price;\n\tquantity: string;\n\texpiry: Date;\n};\n\nconst initialState: MakeOfferModalState & {\n\topen: (args: {\n\t\tcollectionAddress: Hex;\n\t\tchainId: string;\n\t\tcollectibleId: string;\n\t\tcallbacks?: ModalCallbacks;\n\t}) => void;\n\tclose: () => void;\n} = {\n\tisOpen: false,\n\tcollectionAddress: '' as Hex,\n\tchainId: '',\n\tcollectibleId: '',\n\tcallbacks: undefined,\n\tofferPrice: {\n\t\tamountRaw: '0',\n\t\tcurrency: {} as Currency,\n\t},\n\tquantity: '1',\n\texpiry: new Date(addDays(new Date(), 7).toJSON()),\n\n\topen: (args) => {\n\t\tmakeOfferModal$.collectionAddress.set(args.collectionAddress);\n\t\tmakeOfferModal$.chainId.set(args.chainId);\n\t\tmakeOfferModal$.collectibleId.set(args.collectibleId);\n\t\tmakeOfferModal$.callbacks.set(args.callbacks);\n\t\tmakeOfferModal$.isOpen.set(true);\n\t},\n\n\tclose: () => {\n\t\tmakeOfferModal$.isOpen.set(false);\n\t\tmakeOfferModal$.callbacks.set(undefined);\n\t},\n};\n\nexport const makeOfferModal$ = observable(initialState);\n","import type { ConfirmationStatus } from '../../_internal/components/transactionStatusModal/store';\n\nexport const getMakeOfferTransactionTitle = (params: ConfirmationStatus) => {\n\tif (params.isConfirmed) {\n\t\treturn 'Your offer has processed';\n\t}\n\n\tif (params.isFailed) {\n\t\treturn 'Your offer has failed';\n\t}\n\n\treturn 'Your offer is processing';\n};\n\nexport const getMakeOfferTransactionMessage = (\n\tparams: ConfirmationStatus,\n\tcollectibleName: string,\n) => {\n\tif (params.isConfirmed) {\n\t\treturn `You just made offer for ${collectibleName}. It’s been confirmed on the blockchain!`;\n\t}\n\n\tif (params.isFailed) {\n\t\treturn `Your offer for ${collectibleName} has failed. Please try again.`;\n\t}\n\n\treturn `You just made offer for ${collectibleName}. It should be confirmed on the blockchain shortly.`;\n};\n","import { Show, observer } from '@legendapp/state/react';\nimport type { Hex } from 'viem';\nimport { ActionModal } from '../_internal/components/actionModal/ActionModal';\nimport TokenPreview from '../_internal/components/tokenPreview';\nimport TransactionDetails from '../_internal/components/transactionDetails';\nimport TransactionHeader from '../_internal/components/transactionHeader';\nimport { sellModal$ } from './_store';\nimport { useCollection, useCurrencies } from '../../../hooks';\nimport {\n\tbalanceQueries,\n\tcollectableKeys,\n\tStepType,\n\ttype Order,\n} from '../../../_internal';\nimport { useSell } from '../../../hooks/useSell';\nimport { LoadingModal } from '../_internal/components/actionModal/LoadingModal';\nimport { ErrorModal } from '..//_internal/components/actionModal/ErrorModal';\nimport type { ModalCallbacks } from '..//_internal/types';\nimport {\n\tgetSellTransactionMessage,\n\tgetSellTransactionTitle,\n} from './_utils/getSellTransactionTitleMessage';\nimport { useTransactionStatusModal } from '../_internal/components/transactionStatusModal';\nimport type { QueryKey } from '@tanstack/react-query';\n\nexport type ShowSellModalArgs = {\n\tchainId: string;\n\tcollectionAddress: Hex;\n\ttokenId: string;\n\torder: Order;\n};\n\nexport const useSellModal = (defaultCallbacks?: ModalCallbacks) => ({\n\tshow: (args: ShowSellModalArgs) =>\n\t\tsellModal$.open({ ...args, callbacks: defaultCallbacks }),\n\tclose: sellModal$.close,\n});\n\nexport const SellModal = () => {\n\tconst { show: showTransactionStatusModal } = useTransactionStatusModal();\n\treturn (\n\t\t<Show if={sellModal$.isOpen}>\n\t\t\t<ModalContent showTransactionStatusModal={showTransactionStatusModal} />\n\t\t</Show>\n\t);\n};\n\ntype TransactionStatusModalReturn = ReturnType<\n\ttypeof useTransactionStatusModal\n>;\n\nconst ModalContent = observer(\n\t({\n\t\tshowTransactionStatusModal,\n\t}: {\n\t\tshowTransactionStatusModal: TransactionStatusModalReturn['show'];\n\t}) => {\n\t\tconst { tokenId, collectionAddress, chainId, order } = sellModal$.get();\n\t\tconst { data: collectible } = useCollection({\n\t\t\tchainId,\n\t\t\tcollectionAddress,\n\t\t});\n\n\t\tconst { sell } = useSell({\n\t\t\tcollectionAddress,\n\t\t\tchainId,\n\t\t\tonTransactionSent: (hash) => {\n\t\t\t\tif (!hash) return;\n\t\t\t\tshowTransactionStatusModal({\n\t\t\t\t\thash: hash,\n\t\t\t\t\tprice: {\n\t\t\t\t\t\tamountRaw: order!.priceAmount,\n\t\t\t\t\t\tcurrency: currencies!.find(\n\t\t\t\t\t\t\t(currency) =>\n\t\t\t\t\t\t\t\tcurrency.contractAddress === order!.priceCurrencyAddress,\n\t\t\t\t\t\t)!,\n\t\t\t\t\t},\n\t\t\t\t\tcollectionAddress,\n\t\t\t\t\tchainId,\n\t\t\t\t\ttokenId,\n\t\t\t\t\tgetTitle: getSellTransactionTitle,\n\t\t\t\t\tgetMessage: (params) =>\n\t\t\t\t\t\tgetSellTransactionMessage(params, collectible?.name || ''),\n\t\t\t\t\ttype: StepType.sell,\n\t\t\t\t\tqueriesToInvalidate: [\n\t\t\t\t\t\t...collectableKeys.all,\n\t\t\t\t\t\tbalanceQueries.all,\n\t\t\t\t\t] as unknown as QueryKey[],\n\t\t\t\t});\n\t\t\t\tsellModal$.close();\n\t\t\t},\n\t\t\tonSuccess: (hash) => {\n\t\t\t\tif (typeof sellModal$.callbacks?.onSuccess === 'function') {\n\t\t\t\t\tsellModal$.callbacks.onSuccess(hash);\n\t\t\t\t} else {\n\t\t\t\t\tconsole.debug('onSuccess callback not provided:', hash);\n\t\t\t\t}\n\t\t\t},\n\t\t\tonError: (error) => {\n\t\t\t\tif (typeof sellModal$.callbacks?.onError === 'function') {\n\t\t\t\t\tsellModal$.callbacks.onError(error);\n\t\t\t\t} else {\n\t\t\t\t\tconsole.debug('onError callback not provided:', error);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tconst {\n\t\t\tdata: collection,\n\t\t\tisLoading: collectionLoading,\n\t\t\tisError: collectionError,\n\t\t} = useCollection({\n\t\t\tchainId,\n\t\t\tcollectionAddress,\n\t\t});\n\n\t\tconst { data: currencies, isLoading: currenciesLoading } = useCurrencies({\n\t\t\tchainId,\n\t\t\tcollectionAddress,\n\t\t});\n\n\t\tif (collectionLoading || currenciesLoading) {\n\t\t\treturn (\n\t\t\t\t<LoadingModal\n\t\t\t\t\tstore={sellModal$}\n\t\t\t\t\tonClose={sellModal$.close}\n\t\t\t\t\ttitle=\"You have an offer\"\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\tif (collectionError || order === undefined) {\n\t\t\treturn (\n\t\t\t\t<ErrorModal\n\t\t\t\t\tstore={sellModal$}\n\t\t\t\t\tonClose={sellModal$.close}\n\t\t\t\t\ttitle=\"You have an offer\"\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\tconst currency = currencies?.find(\n\t\t\t(c) => c.contractAddress === order?.priceCurrencyAddress,\n\t\t);\n\n\t\treturn (\n\t\t\t<ActionModal\n\t\t\t\tstore={sellModal$}\n\t\t\t\tonClose={sellModal$.close}\n\t\t\t\ttitle=\"You have an offer\"\n\t\t\t\tctas={[\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: 'Accept',\n\t\t\t\t\t\tonClick: () =>\n\t\t\t\t\t\t\tsell({\n\t\t\t\t\t\t\t\torderId: order?.orderId,\n\t\t\t\t\t\t\t\tmarketplace: order?.marketplace,\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t},\n\t\t\t\t]}\n\t\t\t>\n\t\t\t\t<TransactionHeader\n\t\t\t\t\ttitle=\"Offer received\"\n\t\t\t\t\tcurrencyImageUrl={currency?.imageUrl}\n\t\t\t\t\tdate={order && new Date(order.createdAt)}\n\t\t\t\t/>\n\t\t\t\t<TokenPreview\n\t\t\t\t\tcollectionName={collection?.name}\n\t\t\t\t\tcollectionAddress={collectionAddress}\n\t\t\t\t\tcollectibleId={tokenId}\n\t\t\t\t\tchainId={chainId}\n\t\t\t\t/>\n\t\t\t\t<TransactionDetails\n\t\t\t\t\tcollectibleId={tokenId}\n\t\t\t\t\tcollectionAddress={collectionAddress}\n\t\t\t\t\tchainId={chainId}\n\t\t\t\t\tprice={\n\t\t\t\t\t\tcurrency\n\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tamountRaw: order?.priceAmount,\n\t\t\t\t\t\t\t\tcurrency,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t}\n\t\t\t\t\tcurrencyImageUrl={currency?.imageUrl}\n\t\t\t\t/>\n\t\t\t</ActionModal>\n\t\t);\n\t},\n);\n","import { Box, Image, Skeleton, Text } from '@0xsequence/design-system';\nimport { formatDistanceToNow } from 'date-fns';\n\ntype TransactionHeaderProps = {\n\ttitle: string;\n\tcurrencyImageUrl?: string;\n\tdate?: Date;\n};\n\nexport default function TransactionHeader({\n\ttitle,\n\tcurrencyImageUrl,\n\tdate,\n}: TransactionHeaderProps) {\n\treturn (\n\t\t<Box display=\"flex\" alignItems=\"center\" width=\"full\">\n\t\t\t<Text\n\t\t\t\tfontSize=\"small\"\n\t\t\t\tfontWeight=\"medium\"\n\t\t\t\tcolor=\"text80\"\n\t\t\t\tmarginRight=\"1\"\n\t\t\t\tfontFamily=\"body\"\n\t\t\t>\n\t\t\t\t{title}\n\t\t\t</Text>\n\n\t\t\t<Image src={currencyImageUrl} width=\"3\" height=\"3\" marginRight=\"1\" />\n\n\t\t\t{(date && (\n\t\t\t\t<Text\n\t\t\t\t\tfontSize=\"small\"\n\t\t\t\t\tcolor=\"text50\"\n\t\t\t\t\tflexGrow=\"1\"\n\t\t\t\t\ttextAlign=\"right\"\n\t\t\t\t\tfontFamily=\"body\"\n\t\t\t\t>\n\t\t\t\t\t{formatDistanceToNow(date)} ago\n\t\t\t\t</Text>\n\t\t\t)) || <Skeleton width=\"8\" height=\"4\" />}\n\t\t</Box>\n\t);\n}\n","import { observable } from '@legendapp/state';\nimport type { Hex } from 'viem';\nimport type { Order } from '../../../_internal';\nimport type { BaseModalState, ModalCallbacks } from '../_internal/types';\n\ntype SellModalState = BaseModalState & {\n\ttokenId: string;\n\torder?: Order;\n};\n\nconst initialState: SellModalState & {\n\topen: (args: {\n\t\tcollectionAddress: Hex;\n\t\tchainId: string;\n\t\ttokenId: string;\n\t\torder: Order;\n\t\tcallbacks?: ModalCallbacks;\n\t}) => void;\n\tclose: () => void;\n} = {\n\tisOpen: false,\n\tcollectionAddress: '' as Hex,\n\tchainId: '',\n\ttokenId: '',\n\torder: undefined,\n\tcallbacks: undefined,\n\n\topen: (args) => {\n\t\tsellModal$.collectionAddress.set(args.collectionAddress);\n\t\tsellModal$.chainId.set(args.chainId);\n\t\tsellModal$.tokenId.set(args.tokenId);\n\t\tsellModal$.order.set(args.order);\n\t\tsellModal$.callbacks.set(args.callbacks);\n\t\tsellModal$.isOpen.set(true);\n\t},\n\n\tclose: () => {\n\t\tsellModal$.isOpen.set(false);\n\t\tsellModal$.callbacks.set(undefined);\n\t},\n};\n\nexport const sellModal$ = observable(initialState);\n","import { useState, useCallback } from 'react';\nimport type { Hash } from 'viem';\nimport {\n\ttype SellInput,\n\tTransactionType,\n\ttype TransactionSteps,\n} from '../_internal/transaction-machine/execute-transaction';\nimport {\n\tuseTransactionMachine,\n\ttype UseTransactionMachineConfig,\n} from '../_internal/transaction-machine/useTransactionMachine';\n\ninterface UseSellArgs extends Omit<UseTransactionMachineConfig, 'type'> {\n\tonSuccess?: (hash: Hash) => void;\n\tonError?: (error: Error) => void;\n\tonTransactionSent?: (hash: Hash) => void;\n}\n\nexport const useSell = ({\n\tonSuccess,\n\tonError,\n\tonTransactionSent,\n\t...config\n}: UseSellArgs) => {\n\tconst [isLoading, setIsLoading] = useState(false);\n\tconst [steps, setSteps] = useState<TransactionSteps | null>(null);\n\n\tconst machine = useTransactionMachine(\n\t\t{\n\t\t\t...config,\n\t\t\ttype: TransactionType.SELL,\n\t\t},\n\t\tonSuccess,\n\t\tonError,\n\t\tonTransactionSent,\n\t);\n\n\tconst loadSteps = useCallback(\n\t\tasync (props: SellInput) => {\n\t\t\tif (!machine) return;\n\t\t\tsetIsLoading(true);\n\t\t\ttry {\n\t\t\t\tconst generatedSteps = await machine.getTransactionSteps(props);\n\t\t\t\tsetSteps(generatedSteps);\n\t\t\t} catch (error) {\n\t\t\t\tonError?.(error as Error);\n\t\t\t} finally {\n\t\t\t\tsetIsLoading(false);\n\t\t\t}\n\t\t},\n\t\t[machine, onError],\n\t);\n\n\treturn {\n\t\tsell: (props: SellInput) => machine?.start({ props }),\n\t\tgetSellSteps: (props: SellInput) => ({\n\t\t\tisLoading,\n\t\t\tsteps,\n\t\t\trefreshSteps: () => loadSteps(props),\n\t\t}),\n\t};\n};\n","import type { ConfirmationStatus } from '../../_internal/components/transactionStatusModal/store';\n\nexport const getSellTransactionTitle = (params: ConfirmationStatus) => {\n\tif (params.isConfirmed) {\n\t\treturn 'Your sale has processed';\n\t}\n\n\tif (params.isFailed) {\n\t\treturn 'Your sale has failed';\n\t}\n\n\treturn 'Your sale is processing';\n};\n\nexport const getSellTransactionMessage = (\n\tparams: ConfirmationStatus,\n\tcollectibleName: string,\n) => {\n\tif (params.isConfirmed) {\n\t\treturn `You just sold ${collectibleName}. It’s been confirmed on the blockchain!`;\n\t}\n\n\tif (params.isFailed) {\n\t\treturn `Your sale of ${collectibleName} has failed. Please try again.`;\n\t}\n\n\treturn `You just sold ${collectibleName}. It should be confirmed on the blockchain shortly.`;\n};\n","'use client';\n\nimport {\n\tBox,\n\tButton,\n\tCloseIcon,\n\tExternalLinkIcon,\n\tIconButton,\n\tImage,\n\tText,\n} from '@0xsequence/design-system';\nimport { observer } from '@legendapp/state/react';\nimport { Close, Content, Overlay, Portal, Root } from '@radix-ui/react-dialog';\nimport type { TokenMetadata } from '../../../_internal';\nimport {\n\ttype SuccessfulPurchaseModalState,\n\tsuccessfulPurchaseModal$,\n} from './_store';\nimport {\n\tcloseButton,\n\tcollectiblesGrid,\n\tcollectiblesGridImage,\n\tcollectiblesGridImagePale,\n\tcollectiblesGridItem,\n\tdialogContent,\n\tdialogOverlay,\n} from './styles.css';\nimport type { ModalCallbacks } from '../_internal/types';\n\nexport const useSuccessfulPurchaseModal = (callbacks?: ModalCallbacks) => {\n\treturn {\n\t\tshow: (args: SuccessfulPurchaseModalState['state']) =>\n\t\t\tsuccessfulPurchaseModal$.open({ ...args, defaultCallbacks: callbacks }),\n\t\tclose: () => successfulPurchaseModal$.close(),\n\t};\n};\n\nconst SuccessfulPurchaseModal = observer(() => {\n\treturn (\n\t\t<Root open={successfulPurchaseModal$.isOpen.get()}>\n\t\t\t<Portal>\n\t\t\t\t<Overlay className={dialogOverlay} />\n\n\t\t\t\t<Content className={dialogContent.narrow}>\n\t\t\t\t\t<Box display=\"flex\" flexDirection=\"column\" gap=\"4\" width=\"full\">\n\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\ttextAlign=\"center\"\n\t\t\t\t\t\t\tfontSize=\"medium\"\n\t\t\t\t\t\t\tfontWeight=\"bold\"\n\t\t\t\t\t\t\tcolor=\"text100\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tSuccessful purchase!\n\t\t\t\t\t\t</Text>\n\n\t\t\t\t\t\t<CollectiblesGrid\n\t\t\t\t\t\t\tcollectibles={successfulPurchaseModal$.state.get().collectibles}\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t<Box display=\"flex\" alignItems=\"center\" gap=\"1\">\n\t\t\t\t\t\t\t<Text fontSize=\"normal\" fontWeight=\"medium\" color=\"text80\">\n\t\t\t\t\t\t\t\tYou bought\n\t\t\t\t\t\t\t</Text>\n\n\t\t\t\t\t\t\t<Text fontSize=\"normal\" fontWeight=\"medium\" color=\"text100\">\n\t\t\t\t\t\t\t\t{successfulPurchaseModal$.state.get().collectibles.length}\n\t\t\t\t\t\t\t</Text>\n\n\t\t\t\t\t\t\t<Text fontSize=\"normal\" fontWeight=\"medium\" color=\"text80\">\n\t\t\t\t\t\t\t\titems for\n\t\t\t\t\t\t\t</Text>\n\n\t\t\t\t\t\t\t<Text fontSize=\"normal\" fontWeight=\"medium\" color=\"text100\">\n\t\t\t\t\t\t\t\t{successfulPurchaseModal$.state.get().totalPrice}\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t</Box>\n\n\t\t\t\t\t\t<SuccessfulPurchaseActions />\n\t\t\t\t\t</Box>\n\n\t\t\t\t\t<Close\n\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\tsuccessfulPurchaseModal$.close();\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tclassName={closeButton}\n\t\t\t\t\t\tasChild\n\t\t\t\t\t>\n\t\t\t\t\t\t<IconButton size=\"xs\" aria-label=\"Close modal\" icon={CloseIcon} />\n\t\t\t\t\t</Close>\n\t\t\t\t</Content>\n\t\t\t</Portal>\n\t\t</Root>\n\t);\n});\n\nfunction SuccessfulPurchaseActions() {\n\treturn (\n\t\t<Box display=\"flex\" flexDirection=\"column\" gap=\"2\">\n\t\t\t{successfulPurchaseModal$.state.ctaOptions.get() && (\n\t\t\t\t<Button\n\t\t\t\t\tshape=\"square\"\n\t\t\t\t\tleftIcon={\n\t\t\t\t\t\tsuccessfulPurchaseModal$.state.ctaOptions.ctaIcon.get() || undefined\n\t\t\t\t\t}\n\t\t\t\t\tlabel={successfulPurchaseModal$.state.ctaOptions.ctaLabel.get()}\n\t\t\t\t\twidth=\"full\"\n\t\t\t\t\tonClick={\n\t\t\t\t\t\tsuccessfulPurchaseModal$.state.ctaOptions.ctaOnClick.get() ||\n\t\t\t\t\t\tundefined\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t)}\n\n\t\t\t<Button\n\t\t\t\tas={'a'}\n\t\t\t\thref={successfulPurchaseModal$.state.explorerUrl.get()}\n\t\t\t\ttarget=\"_blank\"\n\t\t\t\trel=\"noopener noreferrer\"\n\t\t\t\tshape=\"square\"\n\t\t\t\tleftIcon={ExternalLinkIcon}\n\t\t\t\tlabel={`View on ${successfulPurchaseModal$.state.explorerName.get()}`}\n\t\t\t\twidth=\"full\"\n\t\t\t/>\n\t\t</Box>\n\t);\n}\n\nfunction CollectiblesGrid({ collectibles }: { collectibles: TokenMetadata[] }) {\n\tconst total = collectibles.length;\n\tconst shownCollectibles = total > 4 ? collectibles.slice(0, 4) : collectibles;\n\n\treturn (\n\t\t<Box className={collectiblesGrid} display={'grid'} gap={'2'}>\n\t\t\t{shownCollectibles.map((collectible) => {\n\t\t\t\tconst showPlus = total > 4 && collectibles.indexOf(collectible) === 3;\n\n\t\t\t\treturn (\n\t\t\t\t\t<Box\n\t\t\t\t\t\tkey={collectible.tokenId}\n\t\t\t\t\t\tclassName={collectiblesGridItem}\n\t\t\t\t\t\tposition=\"relative\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<Image\n\t\t\t\t\t\t\tsrc={collectible.image}\n\t\t\t\t\t\t\talt={collectible.name}\n\t\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t\tshowPlus ? collectiblesGridImagePale : collectiblesGridImage\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\taspectRatio=\"1/1\"\n\t\t\t\t\t\t\tbackground=\"backgroundSecondary\"\n\t\t\t\t\t\t\tborderRadius=\"sm\"\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t{showPlus && (\n\t\t\t\t\t\t\t<Box\n\t\t\t\t\t\t\t\tposition=\"absolute\"\n\t\t\t\t\t\t\t\ttop=\"0\"\n\t\t\t\t\t\t\t\tleft=\"0\"\n\t\t\t\t\t\t\t\tright=\"0\"\n\t\t\t\t\t\t\t\tbottom=\"0\"\n\t\t\t\t\t\t\t\tdisplay=\"flex\"\n\t\t\t\t\t\t\t\talignItems=\"center\"\n\t\t\t\t\t\t\t\tjustifyContent=\"center\"\n\t\t\t\t\t\t\t\tbackground=\"backgroundOverlay\"\n\t\t\t\t\t\t\t\tbackdropFilter=\"blur\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\t\tfontSize=\"small\"\n\t\t\t\t\t\t\t\t\tfontWeight=\"medium\"\n\t\t\t\t\t\t\t\t\tcolor=\"text80\"\n\t\t\t\t\t\t\t\t\tpaddingX=\"2\"\n\t\t\t\t\t\t\t\t\tpaddingY=\"1.5\"\n\t\t\t\t\t\t\t\t\tborderRadius=\"sm\"\n\t\t\t\t\t\t\t\t\tbackground=\"backgroundSecondary\"\n\t\t\t\t\t\t\t\t\tbackdropFilter=\"blur\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{total} TOTAL\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t</Box>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Box>\n\t\t\t\t);\n\t\t\t})}\n\t\t</Box>\n\t);\n}\n\nexport default SuccessfulPurchaseModal;\n","import type { ComponentType } from 'react';\nimport type { IconProps } from '@0xsequence/design-system';\nimport { observable } from '@legendapp/state';\nimport type { TokenMetadata } from '../../../_internal';\nimport type { ModalCallbacks } from '../_internal/types';\n\nexport interface SuccessfulPurchaseModalState {\n\tisOpen: boolean;\n\topen: (\n\t\targs: SuccessfulPurchaseModalState['state'] & {\n\t\t\tcallbacks?: ModalCallbacks;\n\t\t\tdefaultCallbacks?: ModalCallbacks;\n\t\t},\n\t) => void;\n\tclose: () => void;\n\tstate: {\n\t\tcollectibles: TokenMetadata[];\n\t\ttotalPrice: string;\n\t\texplorerName: string;\n\t\texplorerUrl: string;\n\t\tctaOptions?: {\n\t\t\tctaLabel: string;\n\t\t\tctaOnClick: () => void;\n\t\t\tctaIcon?: ComponentType<IconProps>;\n\t\t};\n\t};\n\tcallbacks?: ModalCallbacks;\n}\n\nconst initialState: SuccessfulPurchaseModalState = {\n\tisOpen: false,\n\topen: ({\n\t\tcollectibles,\n\t\ttotalPrice,\n\t\texplorerName,\n\t\texplorerUrl,\n\t\tctaOptions,\n\t\tcallbacks,\n\t\tdefaultCallbacks,\n\t}: SuccessfulPurchaseModalState['state'] & {\n\t\tcallbacks?: ModalCallbacks;\n\t\tdefaultCallbacks?: ModalCallbacks;\n\t}) => {\n\t\tsuccessfulPurchaseModal$.state.set({\n\t\t\t...successfulPurchaseModal$.state.get(),\n\t\t\tcollectibles,\n\t\t\ttotalPrice,\n\t\t\texplorerName,\n\t\t\texplorerUrl: explorerUrl,\n\t\t\tctaOptions,\n\t\t});\n\t\tsuccessfulPurchaseModal$.callbacks.set(callbacks || defaultCallbacks);\n\t\tsuccessfulPurchaseModal$.isOpen.set(true);\n\t},\n\tclose: () => {\n\t\tsuccessfulPurchaseModal$.isOpen.set(false);\n\t\tsuccessfulPurchaseModal$.callbacks.set(undefined);\n\t\tsuccessfulPurchaseModal$.state.set({\n\t\t\t...initialState.state,\n\t\t});\n\t},\n\tstate: {\n\t\tcollectibles: [],\n\t\ttotalPrice: '0',\n\t\texplorerName: '',\n\t\texplorerUrl: '',\n\t\tctaOptions: undefined,\n\t},\n\tcallbacks: undefined,\n};\n\nexport const successfulPurchaseModal$ = observable(initialState);\n","import { CloseIcon, IconButton } from '@0xsequence/design-system';\nimport { Show, observer } from '@legendapp/state/react';\nimport { Close, Content, Overlay, Portal, Root } from '@radix-ui/react-dialog';\nimport type { Hex } from 'viem';\nimport { useAccount } from 'wagmi';\nimport type {\n\tTransferErrorCallbacks,\n\tTransferSuccessCallbacks,\n} from '../../../../types/callbacks';\nimport { useSwitchChainModal } from '../_internal/components/switchChainModal';\nimport { transferModal$ } from './_store';\nimport EnterWalletAddressView from './_views/enterWalletAddress';\nimport FollowWalletInstructionsView from './_views/followWalletInstructions';\nimport { closeButton, dialogOverlay, transferModalContent } from './styles.css';\n\nexport type ShowTransferModalArgs = {\n\tcollectionAddress: Hex;\n\ttokenId: string;\n\tchainId: string;\n};\n\nexport const useTransferModal = () => {\n\tconst { chainId: accountChainId } = useAccount();\n\tconst { show: showSwitchNetworkModal } = useSwitchChainModal();\n\t// const { errorCallbacks, successCallbacks } = transferModal$.state.get();\n\n\tconst openModal = (args: ShowTransferModalArgs) => {\n\t\ttransferModal$.open(args);\n\t};\n\n\tconst handleShowModal = (args: ShowTransferModalArgs) => {\n\t\tconst isSameChain = accountChainId === Number(args.chainId);\n\n\t\tif (!isSameChain) {\n\t\t\tshowSwitchNetworkModal({\n\t\t\t\tchainIdToSwitchTo: Number(args.chainId),\n\t\t\t\tonSuccess: () => openModal(args),\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\topenModal(args);\n\t};\n\n\treturn {\n\t\tshow: handleShowModal,\n\t\tclose: () => transferModal$.close(),\n\t\tonError: (callbacks: TransferErrorCallbacks) => {\n\t\t\ttransferModal$.state.set({\n\t\t\t\t...transferModal$.state.get(),\n\t\t\t\terrorCallbacks: callbacks,\n\t\t\t});\n\t\t},\n\t\tonSuccess: (callbacks: TransferSuccessCallbacks) => {\n\t\t\ttransferModal$.state.set({\n\t\t\t\t...transferModal$.state.get(),\n\t\t\t\tsuccessCallbacks: callbacks,\n\t\t\t});\n\t\t},\n\t};\n};\n\nexport const TransferModal = () => {\n\treturn (\n\t\t<Show if={transferModal$.isOpen}>\n\t\t\t<Modal />\n\t\t</Show>\n\t);\n};\n\nconst Modal = () => {\n\treturn <ModalContent />;\n};\n\nconst ModalContent = observer(() => {\n\treturn (\n\t\t<Root open={true}>\n\t\t\t<Portal>\n\t\t\t\t<Overlay className={dialogOverlay} />\n\n\t\t\t\t<Content className={transferModalContent}>\n\t\t\t\t\t<TransactionModalView />\n\n\t\t\t\t\t<Close onClick={transferModal$.close} className={closeButton} asChild>\n\t\t\t\t\t\t<IconButton size=\"xs\" aria-label=\"Close modal\" icon={CloseIcon} />\n\t\t\t\t\t</Close>\n\t\t\t\t</Content>\n\t\t\t</Portal>\n\t\t</Root>\n\t);\n});\n\nconst TransactionModalView = observer(() => {\n\tconst { view } = transferModal$.get();\n\n\tswitch (view) {\n\t\tcase 'enterReceiverAddress':\n\t\t\treturn <EnterWalletAddressView />;\n\n\t\tcase 'followWalletInstructions':\n\t\t\treturn <FollowWalletInstructionsView />;\n\n\t\tdefault:\n\t\t\treturn null;\n\t}\n});\n","import { observable } from '@legendapp/state';\nimport type { Hex } from 'viem';\nimport type { ShowTransferModalArgs } from '.';\nimport type {\n\tTransferErrorCallbacks,\n\tTransferSuccessCallbacks,\n} from '../../../../types/callbacks';\nimport type { CollectionType } from '../../../_internal';\n\nexport interface TransferModalState {\n\tisOpen: boolean;\n\topen: (args: ShowTransferModalArgs) => void;\n\tclose: () => void;\n\tstate: {\n\t\tchainId: string;\n\t\tcollectionAddress: Hex;\n\t\tcollectionType?: CollectionType | undefined;\n\t\ttokenId: string;\n\t\tquantity: string;\n\t\treceiverAddress: string;\n\t\terrorCallbacks?: TransferErrorCallbacks;\n\t\tsuccessCallbacks?: TransferSuccessCallbacks;\n\t};\n\tview: 'enterReceiverAddress' | 'followWalletInstructions' | undefined;\n\thash: Hex | undefined;\n}\n\nexport const initialState: TransferModalState = {\n\tisOpen: false,\n\topen: ({ chainId, collectionAddress, tokenId }: ShowTransferModalArgs) => {\n\t\ttransferModal$.state.set({\n\t\t\t...transferModal$.state.get(),\n\t\t\tchainId,\n\t\t\tcollectionAddress,\n\t\t\ttokenId,\n\t\t});\n\t\ttransferModal$.isOpen.set(true);\n\t},\n\tclose: () => {\n\t\ttransferModal$.isOpen.set(false);\n\t\ttransferModal$.state.set({\n\t\t\t...initialState.state,\n\t\t});\n\t\ttransferModal$.view.set('enterReceiverAddress');\n\t\ttransferModal$.hash.set(undefined);\n\t},\n\tstate: {\n\t\treceiverAddress: '',\n\t\tcollectionAddress: '0x',\n\t\tchainId: '',\n\t\ttokenId: '',\n\t\tquantity: '1',\n\t},\n\tview: 'enterReceiverAddress',\n\thash: undefined,\n};\n\nexport const transferModal$ = observable(initialState);\n","import { Box, Button, Text, TextInput } from '@0xsequence/design-system';\nimport { isAddress } from 'viem';\nimport { useAccount } from 'wagmi';\nimport AlertMessage from '../../../_internal/components/alertMessage';\nimport QuantityInput from '../../../_internal/components/quantityInput';\nimport { transferModal$ } from '../../_store';\nimport getMessage from '../../messages';\nimport useHandleTransfer from './useHandleTransfer';\nimport { useCollection, useListBalances } from '../../../../..';\nimport { type CollectionType, ContractType } from '../../../../../_internal';\n\nconst EnterWalletAddressView = () => {\n\tconst { address } = useAccount();\n\tconst { collectionAddress, tokenId, chainId, collectionType } =\n\t\ttransferModal$.state.get();\n\tconst $quantity = transferModal$.state.quantity;\n\tconst isWalletAddressValid = isAddress(\n\t\ttransferModal$.state.receiverAddress.get(),\n\t);\n\tconst { data: tokenBalance } = useListBalances({\n\t\tchainId,\n\t\tcontractAddress: collectionAddress,\n\t\ttokenId,\n\t\taccountAddress: address!,\n\t\tquery: { enabled: !!address },\n\t});\n\tconst balanceAmount = tokenBalance?.pages[0].balances[0].balance;\n\tconst insufficientBalance: boolean = $quantity.get() > balanceAmount!;\n\tconst { data: collection } = useCollection({\n\t\tcollectionAddress,\n\t\tchainId,\n\t});\n\ttransferModal$.state.collectionType.set(\n\t\tcollection?.type as CollectionType | undefined,\n\t);\n\tconst { transfer } = useHandleTransfer();\n\n\tfunction handleChangeWalletAddress(\n\t\tevent: React.ChangeEvent<HTMLInputElement>,\n\t) {\n\t\ttransferModal$.state.receiverAddress.set(event.target.value);\n\t}\n\n\tfunction handleChangeView() {\n\t\ttransfer();\n\t\ttransferModal$.view.set('followWalletInstructions');\n\t}\n\n\treturn (\n\t\t<Box display=\"grid\" gap=\"6\" flexGrow=\"1\">\n\t\t\t<Text color=\"white\" fontSize=\"large\" fontWeight=\"bold\" fontFamily=\"body\">\n\t\t\t\tTransfer your item\n\t\t\t</Text>\n\n\t\t\t<Box display=\"flex\" flexDirection=\"column\" gap=\"3\">\n\t\t\t\t<AlertMessage\n\t\t\t\t\tmessage={getMessage('enterReceiverAddress')}\n\t\t\t\t\ttype=\"warning\"\n\t\t\t\t/>\n\n\t\t\t\t<TextInput\n\t\t\t\t\tlabel=\"Wallet address\"\n\t\t\t\t\tlabelLocation=\"top\"\n\t\t\t\t\tvalue={transferModal$.state.receiverAddress.get()}\n\t\t\t\t\tonChange={handleChangeWalletAddress}\n\t\t\t\t\tname=\"walletAddress\"\n\t\t\t\t\tplaceholder=\"Enter wallet address of recipient\"\n\t\t\t\t/>\n\n\t\t\t\t{collectionType === ContractType.ERC1155 && balanceAmount && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<QuantityInput\n\t\t\t\t\t\t\t$quantity={$quantity}\n\t\t\t\t\t\t\tchainId={chainId}\n\t\t\t\t\t\t\tcollectionAddress={collectionAddress}\n\t\t\t\t\t\t\tcollectibleId={tokenId}\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\tcolor={insufficientBalance ? 'negative' : 'text50'}\n\t\t\t\t\t\t\tfontSize=\"small\"\n\t\t\t\t\t\t\tfontWeight=\"medium\"\n\t\t\t\t\t\t\tfontFamily=\"body\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{`You have ${balanceAmount} of this item`}\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t</Box>\n\n\t\t\t<Button\n\t\t\t\tonClick={handleChangeView}\n\t\t\t\tdisabled={!isWalletAddressValid || insufficientBalance}\n\t\t\t\ttitle=\"Transfer\"\n\t\t\t\tlabel=\"Transfer\"\n\t\t\t\tvariant=\"primary\"\n\t\t\t\tshape=\"square\"\n\t\t\t\tsize=\"sm\"\n\t\t\t\tjustifySelf=\"flex-end\"\n\t\t\t\tpaddingX=\"10\"\n\t\t\t/>\n\t\t</Box>\n\t);\n};\n\nexport default EnterWalletAddressView;\n","import type { TransferModalState } from './_store';\n\ntype MessageKey = NonNullable<TransferModalState['view']>;\n\nconst baseMessages: Record<MessageKey, string> = {\n\tenterReceiverAddress:\n\t\t\"Items sent to the wrong wallet address can't be recovered!\",\n\tfollowWalletInstructions:\n\t\t\"Follow your wallet's instructions to submit a transaction to transfer your assets.\",\n};\n\nexport default function getMessage(key: MessageKey): string {\n\treturn baseMessages[key];\n}\n","import type { ConfirmationStatus } from '../../_internal/components/transactionStatusModal/store';\n\nexport const getTransferTransactionTitle = (params: ConfirmationStatus) => {\n\tif (params.isConfirmed) {\n\t\treturn 'Transfer has processed';\n\t}\n\n\tif (params.isFailed) {\n\t\treturn 'Transfer has failed';\n\t}\n\n\treturn 'Transfer is processing';\n};\n\nexport const getTransferTransactionMessage = (\n\tparams: ConfirmationStatus,\n\tcollectibleName: string,\n) => {\n\tif (params.isConfirmed) {\n\t\treturn `You just tranferred ${collectibleName}. It’s been confirmed on the blockchain!`;\n\t}\n\n\tif (params.isFailed) {\n\t\treturn `Transferring ${collectibleName} has failed. Please try again.`;\n\t}\n\n\treturn `You just transferred ${collectibleName}. It should be confirmed on the blockchain shortly.`;\n};\n","import type { QueryKey } from '@tanstack/react-query';\nimport type { Hex } from 'viem';\nimport { ContractType } from '../../../../../../types';\nimport { balanceQueries } from '../../../../../_internal';\nimport { useCollectible, useTransferTokens } from '../../../../../hooks';\nimport { useTransactionStatusModal } from '../../../_internal/components/transactionStatusModal';\nimport { transferModal$ } from '../../_store';\nimport {\n\tgetTransferTransactionMessage,\n\tgetTransferTransactionTitle,\n} from '../../_utils/getTransferTransactionTitleMessage';\n\nconst useHandleTransfer = () => {\n\tconst {\n\t\treceiverAddress,\n\t\tcollectionAddress,\n\t\ttokenId,\n\t\tquantity,\n\t\tchainId,\n\t\tcollectionType,\n\t\tsuccessCallbacks,\n\t\terrorCallbacks,\n\t} = transferModal$.state.get();\n\tconst { transferTokensAsync } = useTransferTokens();\n\tconst { show: showTransactionStatusModal } = useTransactionStatusModal();\n\tconst { data: collectible } = useCollectible({\n\t\tcollectionAddress,\n\t\tcollectibleId: tokenId,\n\t\tchainId,\n\t});\n\n\tasync function transfer() {\n\t\tif (\n\t\t\tcollectionType !== ContractType.ERC721 &&\n\t\t\tcollectionType !== ContractType.ERC1155\n\t\t) {\n\t\t\tthrow new Error('Invalid contract type');\n\t\t}\n\n\t\tif (collectionType === ContractType.ERC721) {\n\t\t\ttry {\n\t\t\t\tconst hash = await transferTokensAsync({\n\t\t\t\t\treceiverAddress: receiverAddress as Hex,\n\t\t\t\t\tcollectionAddress,\n\t\t\t\t\ttokenId,\n\t\t\t\t\tchainId,\n\t\t\t\t\tcontractType: ContractType.ERC721,\n\t\t\t\t});\n\n\t\t\t\ttransferModal$.close();\n\n\t\t\t\tshowTransactionStatusModal({\n\t\t\t\t\thash: hash,\n\t\t\t\t\tcollectionAddress,\n\t\t\t\t\tchainId,\n\t\t\t\t\ttokenId,\n\t\t\t\t\tprice: undefined,\n\t\t\t\t\tgetTitle: getTransferTransactionTitle,\n\t\t\t\t\tgetMessage: (params) =>\n\t\t\t\t\t\tgetTransferTransactionMessage(params, collectible!.name),\n\t\t\t\t\ttype: 'transfer',\n\t\t\t\t\tcallbacks: {\n\t\t\t\t\t\tonSuccess: successCallbacks?.onTransferSuccess,\n\t\t\t\t\t\tonUnknownError: errorCallbacks?.onTransferError,\n\t\t\t\t\t},\n\t\t\t\t\tqueriesToInvalidate: balanceQueries.all as unknown as QueryKey[],\n\t\t\t\t});\n\t\t\t} catch (error) {\n\t\t\t\ttransferModal$.view.set('enterReceiverAddress');\n\n\t\t\t\terrorCallbacks?.onTransferError?.(error);\n\t\t\t}\n\t\t}\n\n\t\tif (collectionType === ContractType.ERC1155) {\n\t\t\ttry {\n\t\t\t\tconst hash = await transferTokensAsync({\n\t\t\t\t\treceiverAddress: receiverAddress as Hex,\n\t\t\t\t\tcollectionAddress,\n\t\t\t\t\ttokenId,\n\t\t\t\t\tchainId,\n\t\t\t\t\tcontractType: ContractType.ERC1155,\n\t\t\t\t\tquantity: String(quantity),\n\t\t\t\t});\n\n\t\t\t\ttransferModal$.close();\n\n\t\t\t\tshowTransactionStatusModal({\n\t\t\t\t\thash: hash,\n\t\t\t\t\tcollectionAddress,\n\t\t\t\t\tchainId,\n\t\t\t\t\ttokenId,\n\t\t\t\t\tprice: undefined,\n\t\t\t\t\tgetTitle: getTransferTransactionTitle,\n\t\t\t\t\tgetMessage: (params) =>\n\t\t\t\t\t\tgetTransferTransactionMessage(params, collectible!.name),\n\t\t\t\t\ttype: 'transfer',\n\t\t\t\t\tcallbacks: {\n\t\t\t\t\t\tonSuccess: successCallbacks?.onTransferSuccess,\n\t\t\t\t\t\tonUnknownError: errorCallbacks?.onTransferError,\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t} catch (error) {\n\t\t\t\ttransferModal$.view.set('enterReceiverAddress');\n\n\t\t\t\terrorCallbacks?.onTransferError?.(error);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { transfer };\n};\n\nexport default useHandleTransfer;\n","import { observer } from '@legendapp/state/react';\nimport AlertMessage from '../../../_internal/components/alertMessage';\nimport getMessage from '../../messages';\nimport { Box, Button, Text } from '@0xsequence/design-system';\n\nconst FollowWalletInstructionsView = observer(() => {\n\treturn (\n\t\t<Box display=\"grid\" gap=\"6\" flexGrow=\"1\">\n\t\t\t<Text color=\"white\" fontSize=\"large\" fontWeight=\"bold\" fontFamily=\"body\">\n\t\t\t\tTransfer your item\n\t\t\t</Text>\n\n\t\t\t<Box display=\"flex\" flexDirection=\"column\" gap=\"3\">\n\t\t\t\t<AlertMessage\n\t\t\t\t\tmessage={getMessage('followWalletInstructions')}\n\t\t\t\t\ttype=\"info\"\n\t\t\t\t/>\n\t\t\t</Box>\n\n\t\t\t<Button\n\t\t\t\tdisabled={true}\n\t\t\t\ttitle=\"Transfer\"\n\t\t\t\tlabel=\"Transfer\"\n\t\t\t\tvariant=\"primary\"\n\t\t\t\tshape=\"square\"\n\t\t\t\tsize=\"sm\"\n\t\t\t\tjustifySelf=\"flex-end\"\n\t\t\t\tpaddingX=\"10\"\n\t\t\t/>\n\t\t</Box>\n\t);\n});\n\nexport default FollowWalletInstructionsView;\n","import { observable } from '@legendapp/state';\nimport type { Order } from '../../../_internal';\nimport type { ShowBuyModalArgs } from '.';\nimport type { ModalCallbacks } from '../_internal/types';\n\nexport interface BuyModalState {\n\tisOpen: boolean;\n\topen: (\n\t\targs: ShowBuyModalArgs & {\n\t\t\tcallbacks?: ModalCallbacks;\n\t\t\tdefaultCallbacks?: ModalCallbacks;\n\t\t},\n\t) => void;\n\tclose: () => void;\n\tstate: {\n\t\torder: Order;\n\t\tquantity: string;\n\t\tmodalId: number;\n\t};\n\tcallbacks?: ModalCallbacks;\n}\n\nexport const initialState: BuyModalState = {\n\tisOpen: false,\n\topen: ({\n\t\tcallbacks,\n\t\tdefaultCallbacks,\n\t\t...args\n\t}: ShowBuyModalArgs & {\n\t\tcallbacks?: ModalCallbacks;\n\t\tdefaultCallbacks?: ModalCallbacks;\n\t}) => {\n\t\tbuyModal$.state.set({\n\t\t\tquantity: args.order.quantityAvailableFormatted,\n\t\t\torder: args.order,\n\t\t\tmodalId: buyModal$.state.modalId.get() + 1,\n\t\t});\n\t\tbuyModal$.callbacks.set(callbacks || defaultCallbacks);\n\t\tbuyModal$.isOpen.set(true);\n\t},\n\tclose: () => {\n\t\tbuyModal$.isOpen.set(false);\n\t\tbuyModal$.callbacks.set(undefined);\n\t\tbuyModal$.state.set({\n\t\t\t...initialState.state,\n\t\t});\n\t},\n\tstate: {\n\t\torder: undefined as unknown as Order,\n\t\tquantity: '1',\n\t\tmodalId: 0\n\t},\n\tcallbacks: undefined,\n};\n\nexport const buyModal$ = observable(initialState);\n","import type { Hex } from 'viem';\nimport { buyModal$ } from './_store';\nimport { ContractType, MarketplaceKind, type Order } from '../../../_internal';\nimport { observer, Show, useSelector } from '@legendapp/state/react';\nimport { useCollectible, useCollection } from '../../../hooks';\nimport { ActionModal } from '../_internal/components/actionModal';\nimport { useEffect } from 'react';\nimport QuantityInput from '..//_internal/components/quantityInput';\nimport { useBuyCollectable } from '../../../hooks/useBuyCollectable';\nimport type { ModalCallbacks } from '../_internal/types';\nimport { TokenMetadata } from '@0xsequence/indexer';\n\nexport type ShowBuyModalArgs = {\n\tchainId: string;\n\tcollectionAddress: Hex;\n\ttokenId: string;\n\torder: Order;\n};\n\nexport const useBuyModal = (callbacks?: ModalCallbacks) => {\n\treturn {\n\t\tshow: (args: ShowBuyModalArgs) =>\n\t\t\tbuyModal$.open({ ...args, defaultCallbacks: callbacks }),\n\t\tclose: () => buyModal$.close(),\n\t};\n};\n\nexport const BuyModal = () => (\n\t<Show if={buyModal$.isOpen}>\n\t\t<BuyModalContent />\n\t</Show>\n);\n\nexport const BuyModalContent = () => {\n\tconst chainId = String(useSelector(buyModal$.state.order.chainId))\n\tconst collectionAddress = useSelector(buyModal$.state.order.collectionContractAddress) as Hex\n\tconst collectibleId = useSelector(buyModal$.state.order.tokenId)\n\tconst modalId = useSelector(buyModal$.state.modalId)\n\n\tconst { data: collection } = useCollection({\n\t\tchainId,\n\t\tcollectionAddress,\n\t});\n\tconst { buy } = useBuyCollectable({\n\t\tchainId,\n\t\tcollectionAddress,\n\t});\n\n\tconst { data: collectable } = useCollectible({\n\t\tchainId,\n\t\tcollectionAddress,\n\t\tcollectibleId,\n\t});\n\n\tif (modalId == 0 || !collection || !collectable || !buy) return null;\n\n\treturn collection.type === ContractType.ERC721 ? (\n\t\t<CheckoutModal\n\t\t\tkey={modalId}\n\t\t\tbuy={buy}\n\t\t\tcollectable={collectable}\n\t\t\torder={buyModal$.state.order.get()}\n\t\t/>\n\t) : (\n\t\t<ERC1155QuantityModal\n\t\t\tbuy={buy}\n\t\t\tcollectable={collectable}\n\t\t\torder={buyModal$.state.order.get()}\n\t\t\tchainId={chainId}\n\t\t\tcollectionAddress={collectionAddress}\n\t\t\tcollectibleId={collectibleId}\n\t\t/>\n\t);\n};\n\ninterface CheckoutModalProps {\n\tbuy: (params: {\n\t\torderId: string;\n\t\tcollectableDecimals: number;\n\t\tquantity: string;\n\t\tmarketplace: MarketplaceKind;\n\t}) => void;\n\tcollectable: TokenMetadata;\n\torder: Order;\n}\n\nfunction CheckoutModal({ buy, collectable, order }: CheckoutModalProps) {\n\tuseEffect(() => {\n\t\tconst executeBuy = () => {\n\t\t\tconsole.log('executeBuy');\n\t\t\tif (!collectable) return;\n\t\t\tbuy({\n\t\t\t\torderId: order.orderId,\n\t\t\t\tcollectableDecimals: collectable.decimals || 0,\n\t\t\t\tquantity: '1',\n\t\t\t\tmarketplace: order.marketplace,\n\t\t\t});\n\t\t\tbuyModal$.close();\n\t\t};\n\n\t\texecuteBuy();\n\t}, []);\n\n\treturn <></>;\n}\n\ninterface ERC1155QuantityModalProps extends CheckoutModalProps {\n\tchainId: string;\n\tcollectionAddress: Hex;\n\tcollectibleId: string;\n}\n\nconst ERC1155QuantityModal = observer(({\n\tbuy,\n\tcollectable,\n\torder,\n\tchainId,\n\tcollectionAddress,\n\tcollectibleId\n}: ERC1155QuantityModalProps) => {\n\treturn (\n\t\t<ActionModal\n\t\t\tstore={buyModal$}\n\t\t\tonClose={() => buyModal$.close()}\n\t\t\ttitle=\"Select Quantity\"\n\t\t\tctas={[\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Select Quantity',\n\t\t\t\t\tonClick: () =>\n\t\t\t\t\t\tbuy({\n\t\t\t\t\t\t\tquantity: buyModal$.state.quantity.get(),\n\t\t\t\t\t\t\torderId: order.orderId,\n\t\t\t\t\t\t\tcollectableDecimals: collectable.decimals || 0,\n\t\t\t\t\t\t\tmarketplace: order.marketplace,\n\t\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t]}\n\t\t>\n\t\t\t<QuantityInput\n\t\t\t\tchainId={chainId}\n\t\t\t\tcollectionAddress={collectionAddress}\n\t\t\t\tcollectibleId={collectibleId}\n\t\t\t\t$quantity={buyModal$.state.quantity}\n\t\t\t/>\n\t\t</ActionModal>\n\t);\n});\n","import { useState } from 'react';\n\nimport { Box, IconButton, Skeleton } from '@0xsequence/design-system';\nimport type { Hex } from 'viem';\nimport { useAccount } from 'wagmi';\nimport type {\n\tChainId,\n\tCollectibleOrder,\n\tContractType,\n\tOrder,\n} from '../../../_internal';\nimport { useCurrencies, useHighestOffer } from '../../../hooks';\nimport SvgDiamondEyeIcon from '../../icons/DiamondEye';\nimport ChessTileImage from '../../images/chess-tile.png';\nimport {\n\tActionButton,\n\tCollectibleCardAction,\n} from '../_internals/action-button/ActionButton';\nimport { Footer } from './Footer';\nimport {\n\tactionWrapper,\n\tcollectibleCard,\n\tcollectibleImage,\n\tcollectibleTileWrapper,\n} from './styles.css';\n\nfunction CollectibleSkeleton() {\n\treturn (\n\t\t<Box\n\t\t\tclassName={collectibleCard}\n\t\t\tborderRadius=\"md\"\n\t\t\toverflow=\"hidden\"\n\t\t\tbackground=\"backgroundPrimary\"\n\t\t>\n\t\t\t<Skeleton\n\t\t\t\tsize=\"lg\"\n\t\t\t\tstyle={{ width: '100%', height: 164, borderRadius: 0, paddingTop: 16 }}\n\t\t\t/>\n\n\t\t\t<Box\n\t\t\t\tdisplay=\"flex\"\n\t\t\t\tflexDirection=\"column\"\n\t\t\t\tgap=\"2\"\n\t\t\t\tpaddingX=\"4\"\n\t\t\t\tpaddingBottom=\"4\"\n\t\t\t\tmarginTop=\"2\"\n\t\t\t>\n\t\t\t\t<Skeleton size=\"lg\" />\n\n\t\t\t\t<Skeleton size=\"sm\" />\n\t\t\t</Box>\n\t\t</Box>\n\t);\n}\n\ntype CollectibleCardProps = {\n\tcollectibleId: string;\n\tchainId: ChainId;\n\tcollectionAddress: Hex;\n\tcollectionType?: ContractType;\n\tlowestListing: CollectibleOrder | undefined;\n\tonCollectibleClick?: (tokenId: string) => void;\n\tonOfferClick?: ({ order }: { order?: Order }) => void;\n\tbalance?: string;\n\tcardLoading?: boolean;\n};\n\nexport function CollectibleCard({\n\tcollectibleId,\n\tchainId,\n\tcollectionAddress,\n\tcollectionType,\n\tlowestListing,\n\tonCollectibleClick,\n\tonOfferClick,\n\tbalance,\n\tcardLoading,\n}: CollectibleCardProps) {\n\tconst { address: accountAddress } = useAccount();\n\tconst collectibleMetadata = lowestListing?.metadata;\n\tconst [imageLoadingError, setImageLoadingError] = useState(false);\n\tconst { data: highestOffer, isLoading: highestOfferLoading } =\n\t\tuseHighestOffer({\n\t\t\tchainId: String(chainId),\n\t\t\tcollectionAddress,\n\t\t\ttokenId: collectibleId,\n\t\t});\n\tconst { data: currencies } = useCurrencies({ chainId });\n\tconst lowestListingCurrency = currencies?.find(\n\t\t(currency) =>\n\t\t\tcurrency.contractAddress === lowestListing?.order?.priceCurrencyAddress,\n\t);\n\tif (highestOfferLoading || cardLoading) {\n\t\treturn <CollectibleSkeleton />;\n\t}\n\n\tconst action = (\n\t\t!!balance\n\t\t\t? (highestOffer?.order && CollectibleCardAction.SELL) ||\n\t\t\t\t(!lowestListing?.order && CollectibleCardAction.LIST) ||\n\t\t\t\tCollectibleCardAction.TRANSFER\n\t\t\t: (lowestListing?.order && CollectibleCardAction.BUY) ||\n\t\t\t\tCollectibleCardAction.OFFER\n\t) as CollectibleCardAction;\n\n\tconst name = collectibleMetadata?.name;\n\tconst image = collectibleMetadata?.image;\n\tconst externalUrl = collectibleMetadata?.external_url;\n\n\treturn (\n\t\t<Box\n\t\t\tclassName={collectibleCard}\n\t\t\tborderRadius=\"md\"\n\t\t\toverflow=\"hidden\"\n\t\t\tbackground=\"backgroundPrimary\"\n\t\t>\n\t\t\t<Box\n\t\t\t\tdisplay=\"flex\"\n\t\t\t\tflexDirection=\"column\"\n\t\t\t\talignItems=\"flex-start\"\n\t\t\t\tposition=\"relative\"\n\t\t\t\twidth=\"full\"\n\t\t\t\theight=\"full\"\n\t\t\t\tzIndex=\"10\"\n\t\t\t\toverflow=\"hidden\"\n\t\t\t\tonClick={() => onCollectibleClick?.(collectibleId)}\n\t\t\t\tborder=\"none\"\n\t\t\t\tcursor=\"pointer\"\n\t\t\t\tpadding=\"0\"\n\t\t\t\tclassName={collectibleTileWrapper}\n\t\t\t>\n\t\t\t\t<article style={{ width: '100%' }}>\n\t\t\t\t\t{externalUrl && (\n\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\tas=\"a\"\n\t\t\t\t\t\t\thref={externalUrl}\n\t\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\t\tbackdropFilter=\"blur\"\n\t\t\t\t\t\t\tvariant=\"glass\"\n\t\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tposition=\"absolute\"\n\t\t\t\t\t\t\ttop=\"2\"\n\t\t\t\t\t\t\tleft=\"2\"\n\t\t\t\t\t\t\ticon={SvgDiamondEyeIcon}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\n\t\t\t\t\t<img\n\t\t\t\t\t\tsrc={imageLoadingError ? ChessTileImage : image || ChessTileImage}\n\t\t\t\t\t\talt={name}\n\t\t\t\t\t\tclassName={collectibleImage}\n\t\t\t\t\t\tonError={() => setImageLoadingError(true)}\n\t\t\t\t\t/>\n\n\t\t\t\t\t<Footer\n\t\t\t\t\t\tname={name!}\n\t\t\t\t\t\ttype={collectionType}\n\t\t\t\t\t\tonOfferClick={() => onOfferClick?.({ order: highestOffer?.order })}\n\t\t\t\t\t\thighestOffer={highestOffer?.order}\n\t\t\t\t\t\tlowestListingPriceAmount={lowestListing?.order?.priceAmount}\n\t\t\t\t\t\tlowestListingCurrency={lowestListingCurrency}\n\t\t\t\t\t\tbalance={balance}\n\t\t\t\t\t\tisAnimated={!!action}\n\t\t\t\t\t/>\n\n\t\t\t\t\t{accountAddress && (highestOffer || lowestListing) && (\n\t\t\t\t\t\t<Box\n\t\t\t\t\t\t\tdisplay=\"flex\"\n\t\t\t\t\t\t\talignItems=\"center\"\n\t\t\t\t\t\t\tjustifyContent=\"center\"\n\t\t\t\t\t\t\tpadding=\"2\"\n\t\t\t\t\t\t\tclassName={actionWrapper}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ActionButton\n\t\t\t\t\t\t\t\tchainId={String(chainId)}\n\t\t\t\t\t\t\t\tcollectionAddress={collectionAddress}\n\t\t\t\t\t\t\t\ttokenId={collectibleId}\n\t\t\t\t\t\t\t\taction={action}\n\t\t\t\t\t\t\t\thighestOffer={highestOffer?.order}\n\t\t\t\t\t\t\t\tlowestListing={lowestListing?.order}\n\t\t\t\t\t\t\t\tisOwned={!!balance}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Box>\n\t\t\t\t\t)}\n\t\t\t\t</article>\n\t\t\t</Box>\n\t\t</Box>\n\t);\n}\n","import { Box, type IconProps } from '@0xsequence/design-system';\nimport { iconVariants } from './styles.css';\n\nconst Svg = () => (\n\t<svg\n\t\twidth=\"16\"\n\t\theight=\"12\"\n\t\tviewBox=\"0 0 16 12\"\n\t\tfill=\"none\"\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t>\n\t\t<path\n\t\t\tfillRule=\"evenodd\"\n\t\t\tclipRule=\"evenodd\"\n\t\t\td=\"M5.00447 0.108826L0.611084 4.50526L7.99997 11.8911L15.3889 4.50526L10.9955 0.108826H5.00447ZM4.60507 2.90461C6.4718 1.0297 9.52815 1.02968 11.3949 2.90459L12.9925 4.50223L11.3949 6.09983C9.52815 7.97473 6.4718 7.97473 4.60507 6.09985L3.00749 4.50223L4.60507 2.90461ZM5.70321 4.50209C5.70321 5.77095 6.73193 6.79865 7.99974 6.79865C9.2676 6.79865 10.2963 5.77095 10.2963 4.50209C10.2963 3.23322 9.2676 2.20553 7.99974 2.20553C6.73193 2.20553 5.70321 3.23322 5.70321 4.50209ZM7.99974 5.50058C7.44853 5.50058 7.00125 5.05377 7.00125 4.50209C7.00125 3.9504 7.44853 3.50359 7.99974 3.50359C8.55095 3.50359 8.99825 3.9504 8.99825 4.50209C8.99825 5.05377 8.55095 5.50058 7.99974 5.50058Z\"\n\t\t\tfill=\"white\"\n\t\t/>\n\t</svg>\n);\n\nconst SvgDiamondEyeIcon = ({ size = 'sm', ...props }: IconProps) => (\n\t<Box\n\t\tas={Svg}\n\t\tclassName={iconVariants({\n\t\t\tsize,\n\t\t})}\n\t\t{...props}\n\t/>\n);\n\nexport default SvgDiamondEyeIcon;\n","'use client';\n\nimport { Button } from '@0xsequence/design-system';\nimport { observer } from '@legendapp/state/react';\nimport type { Hex } from 'viem';\nimport type { Order } from '../../../../_internal';\nimport { useBuyModal } from '../../../modals/BuyModal';\nimport { useCreateListingModal } from '../../../modals/CreateListingModal';\nimport { useMakeOfferModal } from '../../../modals/MakeOfferModal';\nimport { useSellModal } from '../../../modals/SellModal';\nimport { useTransferModal } from '../../../modals/TransferModal';\n\nexport enum CollectibleCardAction {\n\tBUY = 'Buy',\n\tSELL = 'Sell',\n\tLIST = 'Create listing',\n\tOFFER = 'Make an offer',\n\tTRANSFER = 'Transfer',\n}\n\ntype ActionButtonProps = {\n\tchainId: string;\n\tcollectionAddress: Hex;\n\ttokenId: string;\n\tisTransfer?: boolean;\n\taction: CollectibleCardAction;\n\tisOwned: boolean;\n\thighestOffer?: Order;\n\tlowestListing?: Order;\n};\n\nexport const ActionButton = observer(\n\t({\n\t\tcollectionAddress,\n\t\tchainId,\n\t\ttokenId,\n\t\taction,\n\t\thighestOffer,\n\t\tlowestListing,\n\t}: ActionButtonProps) => {\n\t\tconst { show: showCreateListingModal } = useCreateListingModal();\n\t\tconst { show: showMakeOfferModal } = useMakeOfferModal();\n\t\tconst { show: showSellModal } = useSellModal();\n\t\tconst { show: showTransferModal } = useTransferModal();\n\t\tconst { show: showBuyModal } = useBuyModal();\n\n\t\tif (action === CollectibleCardAction.BUY) {\n\t\t\tif (!lowestListing)\n\t\t\t\tthrow new Error('lowestListing is required for BUY action');\n\n\t\t\treturn (\n\t\t\t\t<ActionButtonBody\n\t\t\t\t\tlabel=\"Buy\"\n\t\t\t\t\tonClick={() =>\n\t\t\t\t\t\tshowBuyModal({\n\t\t\t\t\t\t\tcollectionAddress,\n\t\t\t\t\t\t\tchainId: chainId,\n\t\t\t\t\t\t\ttokenId: tokenId,\n\t\t\t\t\t\t\torder: lowestListing,\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\tif (action === CollectibleCardAction.SELL) {\n\t\t\tif (!highestOffer)\n\t\t\t\tthrow new Error('highestOffer is required for SELL action');\n\n\t\t\treturn (\n\t\t\t\t<ActionButtonBody\n\t\t\t\t\tlabel=\"Sell\"\n\t\t\t\t\tonClick={() =>\n\t\t\t\t\t\tshowSellModal({\n\t\t\t\t\t\t\tcollectionAddress,\n\t\t\t\t\t\t\tchainId: chainId,\n\t\t\t\t\t\t\ttokenId: tokenId,\n\t\t\t\t\t\t\torder: highestOffer,\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\tif (action === CollectibleCardAction.LIST) {\n\t\t\treturn (\n\t\t\t\t<ActionButtonBody\n\t\t\t\t\tlabel=\"Create listing\"\n\t\t\t\t\tonClick={() =>\n\t\t\t\t\t\tshowCreateListingModal({\n\t\t\t\t\t\t\tcollectionAddress: collectionAddress as Hex,\n\t\t\t\t\t\t\tchainId: chainId,\n\t\t\t\t\t\t\tcollectibleId: tokenId,\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\tif (action === CollectibleCardAction.OFFER) {\n\t\t\treturn (\n\t\t\t\t<ActionButtonBody\n\t\t\t\t\tlabel=\"Make an offer\"\n\t\t\t\t\tonClick={() =>\n\t\t\t\t\t\tshowMakeOfferModal({\n\t\t\t\t\t\t\tcollectionAddress: collectionAddress as Hex,\n\t\t\t\t\t\t\tchainId: chainId,\n\t\t\t\t\t\t\tcollectibleId: tokenId,\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\tif (action === CollectibleCardAction.TRANSFER) {\n\t\t\treturn (\n\t\t\t\t<ActionButtonBody\n\t\t\t\t\tlabel=\"Transfer\"\n\t\t\t\t\tonClick={() =>\n\t\t\t\t\t\tshowTransferModal({\n\t\t\t\t\t\t\tcollectionAddress: collectionAddress as Hex,\n\t\t\t\t\t\t\tchainId: chainId,\n\t\t\t\t\t\t\ttokenId,\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\treturn null;\n\t},\n);\n\ntype ActionButtonBodyProps = {\n\tlabel: string;\n\tonClick: () => void;\n};\n\nfunction ActionButtonBody({ label, onClick }: ActionButtonBodyProps) {\n\treturn (\n\t\t<Button\n\t\t\tvariant=\"primary\"\n\t\t\tlabel={label}\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-empty-function\n\t\t\tonClick={(e) => {\n\t\t\t\te.preventDefault();\n\t\t\t\te.stopPropagation();\n\t\t\t\tonClick();\n\t\t\t}}\n\t\t\t// leftIcon={leftIcon}\n\t\t\tsize=\"xs\"\n\t\t\tshape=\"square\"\n\t\t\twidth=\"full\"\n\t\t/>\n\t);\n}\n","import { Box, IconButton, Image, Text } from '@0xsequence/design-system';\nimport { formatUnits } from 'viem';\nimport { useAccount } from 'wagmi';\nimport { ContractType, type Currency, type Order } from '../../../_internal';\nimport SvgBellIcon from '../../icons/Bell';\nimport { footer, offerBellButton } from './styles.css';\n\ntype FooterProps = {\n\tname: string;\n\ttype?: ContractType;\n\tonOfferClick?: () => void;\n\thighestOffer?: Order;\n\tlowestListingPriceAmount?: string;\n\tlowestListingCurrency?: Currency;\n\tbalance?: string;\n\tisAnimated?: boolean;\n};\n\nexport const Footer = ({\n\tname,\n\ttype,\n\tonOfferClick,\n\thighestOffer,\n\tlowestListingPriceAmount,\n\tlowestListingCurrency,\n\tbalance,\n\tisAnimated,\n}: FooterProps) => {\n\tconst { address } = useAccount();\n\n\tif (name.length > 15 && highestOffer) {\n\t\tname = name.substring(0, 13) + '...';\n\t}\n\tif (name.length > 17 && !highestOffer) {\n\t\tname = name.substring(0, 17) + '...';\n\t}\n\n\treturn (\n\t\t<Box\n\t\t\tdisplay=\"flex\"\n\t\t\tflexDirection=\"column\"\n\t\t\talignItems=\"flex-start\"\n\t\t\tgap=\"2\"\n\t\t\tpadding=\"4\"\n\t\t\twhiteSpace=\"nowrap\"\n\t\t\tposition=\"relative\"\n\t\t\tclassName={!!address && isAnimated ? footer.animated : footer.static}\n\t\t>\n\t\t\t<Box\n\t\t\t\tdisplay=\"flex\"\n\t\t\t\talignItems=\"center\"\n\t\t\t\tjustifyContent=\"space-between\"\n\t\t\t\tposition=\"relative\"\n\t\t\t\twidth=\"full\"\n\t\t\t>\n\t\t\t\t<Text\n\t\t\t\t\tcolor=\"text100\"\n\t\t\t\t\tfontSize=\"normal\"\n\t\t\t\t\tfontWeight=\"bold\"\n\t\t\t\t\ttextAlign=\"left\"\n\t\t\t\t\tfontFamily=\"body\"\n\t\t\t\t>\n\t\t\t\t\t{name}\n\t\t\t\t</Text>\n\n\t\t\t\t{highestOffer && onOfferClick && (\n\t\t\t\t\t<IconButton\n\t\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tclassName={offerBellButton}\n\t\t\t\t\t\tposition=\"absolute\"\n\t\t\t\t\t\tright=\"0\"\n\t\t\t\t\t\ttop=\"0\"\n\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\t\tonOfferClick?.();\n\t\t\t\t\t\t}}\n\t\t\t\t\t\ticon={(props) => <SvgBellIcon {...props} size={'xs'} />}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</Box>\n\n\t\t\t{lowestListingPriceAmount && lowestListingCurrency && (\n\t\t\t\t<Box display=\"flex\" alignItems=\"center\" gap=\"1\">\n\t\t\t\t\t<Image src={lowestListingCurrency?.imageUrl} width=\"3\" height=\"3\" />\n\n\t\t\t\t\t<Text\n\t\t\t\t\t\tcolor=\"text100\"\n\t\t\t\t\t\tfontSize=\"small\"\n\t\t\t\t\t\tfontWeight=\"bold\"\n\t\t\t\t\t\ttextAlign=\"left\"\n\t\t\t\t\t\tfontFamily=\"body\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{formatUnits(\n\t\t\t\t\t\t\tBigInt(lowestListingPriceAmount),\n\t\t\t\t\t\t\tlowestListingCurrency.decimals,\n\t\t\t\t\t\t)}{' '}\n\t\t\t\t\t</Text>\n\t\t\t\t</Box>\n\t\t\t)}\n\n\t\t\t<TokenTypeBalancePill balance={balance} type={type as ContractType} />\n\t\t</Box>\n\t);\n};\n\nconst TokenTypeBalancePill = ({\n\tbalance,\n\ttype,\n}: { balance?: string; type: ContractType }) => {\n\tconst displayText =\n\t\ttype === ContractType.ERC1155\n\t\t\t? !!balance\n\t\t\t\t? `Owned: ${balance}`\n\t\t\t\t: 'ERC-1155'\n\t\t\t: 'ERC-721';\n\n\treturn (\n\t\t<Text\n\t\t\tbackground=\"backgroundSecondary\"\n\t\t\tcolor=\"text80\"\n\t\t\tfontSize=\"small\"\n\t\t\ttextAlign=\"left\"\n\t\t\tfontFamily=\"body\"\n\t\t\tpaddingX=\"2\"\n\t\t\tpaddingY=\"1\"\n\t\t\tborderRadius=\"sm\"\n\t\t>\n\t\t\t{displayText}\n\t\t</Text>\n\t);\n};\n","import { Box, type IconProps } from '@0xsequence/design-system';\nimport { iconVariants } from './styles.css';\n\nconst Svg = () => (\n\t<svg\n\t\twidth=\"17\"\n\t\theight=\"17\"\n\t\tviewBox=\"0 0 17 17\"\n\t\tfill=\"none\"\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t>\n\t\t<path\n\t\t\tfillRule=\"evenodd\"\n\t\t\tclipRule=\"evenodd\"\n\t\t\td=\"M12.3127 7.45705V9.74274C12.3127 10.3805 12.6293 10.6971 12.9647 11.0326L12.9652 11.033L12.9679 11.0358C13.3205 11.3893 13.6843 11.754 13.6843 12.4854C13.6843 12.5491 13.6335 12.5998 13.57 12.5998H3.51277C3.44959 12.5998 3.39844 12.5489 3.39844 12.4854C3.39844 11.7539 3.76242 11.389 4.11507 11.0354L4.11754 11.033C4.45305 10.6975 4.76984 10.3807 4.76984 9.74245V7.45676C4.76984 5.6932 5.98854 4.21248 7.62704 3.802V3.11399C7.62704 2.60926 8.03659 2.19971 8.54132 2.19971C9.04606 2.19971 9.45561 2.60926 9.45561 3.11399V3.802C11.094 4.21286 12.3127 5.69335 12.3127 7.45705ZM10.3698 13.1711C10.3698 14.1809 9.55099 14.9997 8.54121 14.9997C7.53128 14.9997 6.71272 14.181 6.71272 13.1711H10.3698ZM8.758 7.70501C9.30005 7.85574 9.6696 7.99832 9.86302 8.13224C10.1776 8.35015 10.3374 8.67657 10.338 9.106C10.338 9.7284 10.1359 10.1706 9.72956 10.4326C9.50571 10.5778 9.18295 10.6723 8.75846 10.7195V11.4005H8.42657V10.7195C7.74604 10.6746 7.28244 10.4349 7.04094 9.99812C6.90703 9.76157 6.83984 9.44246 6.83984 9.04019H7.46277C7.48004 9.35983 7.53041 9.59501 7.6135 9.74163C7.75837 10.0063 8.0303 10.1548 8.42664 10.1861V8.27703C7.9177 8.18078 7.54357 8.01963 7.30116 7.79532C7.0605 7.57102 6.93929 7.25914 6.93929 6.86234C6.93929 6.50686 7.06917 6.18768 7.32977 5.90212C7.58991 5.61657 7.95581 5.47132 8.42619 5.46675V5.00049H8.75808V5.45861C9.22343 5.4927 9.58119 5.62981 9.82863 5.87039C10.0787 6.11144 10.2086 6.43062 10.2204 6.82651H9.60569C9.5907 6.64899 9.54299 6.49507 9.4631 6.36884C9.31595 6.13183 9.08076 6.00697 8.758 5.99518V7.70501ZM7.80143 7.36315C7.95574 7.49478 8.16369 7.58608 8.42611 7.63691L8.42619 5.98886C8.11651 5.99936 7.89723 6.09424 7.76651 6.2681C7.63572 6.4447 7.57036 6.62815 7.57036 6.82019C7.57036 7.05081 7.64705 7.23289 7.80143 7.36315ZM8.75747 10.2033C9.15883 10.1847 9.43305 10.0394 9.58606 9.76522C9.66504 9.62408 9.70415 9.46285 9.70399 9.27948C9.70399 8.98624 9.59686 8.76376 9.38123 8.61121C9.2582 8.52219 9.05079 8.4391 8.75747 8.35921V10.2033Z\"\n\t\t\tfill=\"white\"\n\t\t/>\n\t</svg>\n);\n\nconst SvgBellIcon = ({ size = 'sm', ...props }: IconProps) => (\n\t<Box\n\t\tas={Svg}\n\t\tclassName={iconVariants({\n\t\t\tsize,\n\t\t})}\n\t\t{...props}\n\t/>\n);\n\nexport default SvgBellIcon;\n"],"mappings":"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","names":["observer","Text","observer","useEffect","Box","Text","Box","Text","jsx","getMessage","jsx","jsxs","collectibleImage","Box","Text","closeButton","dialogOverlay","jsx","jsxs","observer","getMessage","useEffect","dialogOverlay","Text","closeButton","Box","Text","observable","observer","jsx","jsxs","observer","AccountModal","jsxs","Box","jsx","Text","Box","observer","useState","useState","Box","jsx","Box","Box","Spinner","jsx","Box","Spinner","useState","Box","Text","observer","Button","Content","Portal","Root","jsx","jsx","jsxs","Root","Button","Portal","Content","jsx","jsxs","item","jsx","jsxs","observer","ExpirationDateSelect","useState","Box","Text","Text","jsx","Text","Box","observer","useState","useAccount","Skeleton","observer","useEffect","jsx","observer","CurrencyOptionsSelect","useEffect","Skeleton","jsx","jsxs","observer","PriceInput","useState","useAccount","value","Box","Box","IconButton","NumericInput","jsx","jsxs","Box","NumericInput","IconButton","Box","Image","Skeleton","Text","jsx","jsxs","Box","Skeleton","Image","Text","Box","Image","Skeleton","Text","formatUnits","jsx","jsxs","formatUnits","Box","Text","Image","Skeleton","observable","addDays","initialState","jsx","jsxs","Modal","observer","Box","Show","observer","useEffect","useState","useState","useCallback","useState","useCallback","observable","addDays","initialState","jsx","jsxs","Show","observer","useState","useEffect","state","Show","observer","Box","Image","Skeleton","Text","formatDistanceToNow","jsx","jsxs","observable","initialState","useState","useCallback","useState","useCallback","jsx","jsxs","Show","ModalContent","observer","currency","Box","Button","CloseIcon","IconButton","Image","Text","observer","Close","Content","Overlay","Portal","Root","observable","initialState","jsx","jsxs","observer","Root","Portal","Overlay","Content","Box","Text","Close","IconButton","CloseIcon","Button","Image","CloseIcon","IconButton","Show","observer","Close","Content","Overlay","Portal","Root","useAccount","observable","initialState","Box","Button","Text","useAccount","jsx","jsxs","useAccount","Box","Text","Button","observer","Box","Button","Text","jsx","jsxs","observer","jsx","jsxs","useAccount","Show","Modal","ModalContent","observer","Root","Portal","Overlay","dialogOverlay","Content","Close","closeButton","IconButton","CloseIcon","observable","initialState","observer","Show","useEffect","Fragment","jsx","Show","useEffect","observer","Fragment","jsx","jsxs","observer","useState","Box","IconButton","Skeleton","useAccount","Box","jsx","Box","Button","observer","jsx","observer","jsx","Button","Box","IconButton","Image","Text","formatUnits","useAccount","Box","jsx","Svg","Box","jsx","jsxs","useAccount","Box","Text","IconButton","Image","formatUnits","jsx","jsxs","Box","Skeleton","useAccount","useState","IconButton"]}
|
package/dist/index.css
CHANGED
|
@@ -184,3 +184,43 @@
|
|
|
184
184
|
width: 100%;
|
|
185
185
|
}
|
|
186
186
|
}
|
|
187
|
+
|
|
188
|
+
/* vanilla-extract-css-ns:src/react/ui/components/collectible-card/styles.css.ts.vanilla.css?source=LnN0eWxlc19jb2xsZWN0aWJsZUNhcmRfX2JpZXA3YTAgewogIHdpZHRoOiAxNzVweDsKICBib3JkZXI6IDFweCBzb2xpZCBoc2xhKDAsIDAlLCAzMSUsIDEpOwp9Ci5zdHlsZXNfY29sbGVjdGlibGVJbWFnZV9fYmllcDdhMSB7CiAgd2lkdGg6IDE3NXB4OwogIGhlaWdodDogMTc1cHg7CiAgb2JqZWN0LWZpdDogY292ZXI7Cn0KLnN0eWxlc19jb2xsZWN0aWJsZVRpbGVXcmFwcGVyX19iaWVwN2EyIHsKICBwYWRkaW5nOiAwOwogIGJvcmRlcjogbm9uZTsKICBib3JkZXItcmFkaXVzOiAwOwogIGJhY2tncm91bmQ6IG5vbmU7CiAgcG9zaXRpb246IHJlbGF0aXZlOwp9Ci5zdHlsZXNfY29sbGVjdGlibGVUaWxlV3JhcHBlcl9fYmllcDdhMjpmb2N1cyB7CiAgb3V0bGluZTogbm9uZTsKfQouc3R5bGVzX29mZmVyQmVsbEJ1dHRvbl9fYmllcDdhMyB7CiAgd2lkdGg6IDIycHg7CiAgaGVpZ2h0OiAyMnB4Owp9Ci5zdHlsZXNfZm9vdGVyX2FuaW1hdGVkX19iaWVwN2E1IHsKICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlLWluLW91dDsKfQouc3R5bGVzX2NvbGxlY3RpYmxlVGlsZVdyYXBwZXJfX2JpZXA3YTI6aG92ZXIgLnN0eWxlc19mb290ZXJfYW5pbWF0ZWRfX2JpZXA3YTUgewogIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMzBweCk7Cn0KLnN0eWxlc19hY3Rpb25XcmFwcGVyX19iaWVwN2E3IHsKICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlLWluLW91dDsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgd2lkdGg6IDEwMCU7CiAgYm90dG9tOiAtMzZweDsKfQouc3R5bGVzX2NvbGxlY3RpYmxlVGlsZVdyYXBwZXJfX2JpZXA3YTI6aG92ZXIgLnN0eWxlc19hY3Rpb25XcmFwcGVyX19iaWVwN2E3IHsKICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTM2cHgpOwp9 */
|
|
189
|
+
.styles_collectibleCard__biep7a0 {
|
|
190
|
+
width: 175px;
|
|
191
|
+
border: 1px solid hsla(0, 0%, 31%, 1);
|
|
192
|
+
}
|
|
193
|
+
.styles_collectibleImage__biep7a1 {
|
|
194
|
+
width: 175px;
|
|
195
|
+
height: 175px;
|
|
196
|
+
object-fit: cover;
|
|
197
|
+
}
|
|
198
|
+
.styles_collectibleTileWrapper__biep7a2 {
|
|
199
|
+
padding: 0;
|
|
200
|
+
border: none;
|
|
201
|
+
border-radius: 0;
|
|
202
|
+
background: none;
|
|
203
|
+
position: relative;
|
|
204
|
+
}
|
|
205
|
+
.styles_collectibleTileWrapper__biep7a2:focus {
|
|
206
|
+
outline: none;
|
|
207
|
+
}
|
|
208
|
+
.styles_offerBellButton__biep7a3 {
|
|
209
|
+
width: 22px;
|
|
210
|
+
height: 22px;
|
|
211
|
+
}
|
|
212
|
+
.styles_footer_animated__biep7a5 {
|
|
213
|
+
transition: transform 0.2s ease-in-out;
|
|
214
|
+
}
|
|
215
|
+
.styles_collectibleTileWrapper__biep7a2:hover .styles_footer_animated__biep7a5 {
|
|
216
|
+
transform: translateY(-30px);
|
|
217
|
+
}
|
|
218
|
+
.styles_actionWrapper__biep7a7 {
|
|
219
|
+
transition: transform 0.2s ease-in-out;
|
|
220
|
+
position: absolute;
|
|
221
|
+
width: 100%;
|
|
222
|
+
bottom: -36px;
|
|
223
|
+
}
|
|
224
|
+
.styles_collectibleTileWrapper__biep7a2:hover .styles_actionWrapper__biep7a7 {
|
|
225
|
+
transform: translateY(-36px);
|
|
226
|
+
}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
"use client"
|
|
2
|
-
import "./chunk-MJ4YU7RW.js";
|
|
3
2
|
import {
|
|
4
3
|
calculatePriceDifferencePercentage,
|
|
5
4
|
compareAddress,
|
|
@@ -19,6 +18,7 @@ import {
|
|
|
19
18
|
ERC20_ABI,
|
|
20
19
|
ERC721_ABI
|
|
21
20
|
} from "./chunk-WFE6OCYF.js";
|
|
21
|
+
import "./chunk-MJ4YU7RW.js";
|
|
22
22
|
import "./chunk-Q2BVDQ3G.js";
|
|
23
23
|
import {
|
|
24
24
|
CollectibleStatus,
|
|
@@ -54,16 +54,16 @@ import {
|
|
|
54
54
|
useMarketplaceConfig,
|
|
55
55
|
useRoyaltyPercentage,
|
|
56
56
|
useTransferTokens
|
|
57
|
-
} from "../../chunk-
|
|
57
|
+
} from "../../chunk-RJK7PUJE.js";
|
|
58
58
|
import "../../chunk-Y7YO5TLE.js";
|
|
59
59
|
import "../../chunk-7NJETFMF.js";
|
|
60
|
-
import "../../chunk-NJ2GXOPW.js";
|
|
61
60
|
import "../../chunk-SBVLWSRZ.js";
|
|
62
|
-
import "../../chunk-
|
|
61
|
+
import "../../chunk-NJ2GXOPW.js";
|
|
63
62
|
import "../../chunk-SPW24Y7I.js";
|
|
64
63
|
import "../../chunk-MCI3KOSQ.js";
|
|
65
64
|
import "../../chunk-3OHM45R3.js";
|
|
66
65
|
import "../../chunk-WFE6OCYF.js";
|
|
66
|
+
import "../../chunk-MJ4YU7RW.js";
|
|
67
67
|
import "../../chunk-Q2BVDQ3G.js";
|
|
68
68
|
import "../../chunk-GZG2QO64.js";
|
|
69
69
|
import "../../chunk-NII6JJGH.js";
|
package/dist/react/index.js
CHANGED
|
@@ -8,10 +8,10 @@ import {
|
|
|
8
8
|
useSellModal,
|
|
9
9
|
useSuccessfulPurchaseModal,
|
|
10
10
|
useTransferModal
|
|
11
|
-
} from "../chunk-
|
|
11
|
+
} from "../chunk-ZZMM3IVS.js";
|
|
12
12
|
import "../chunk-Q57TEA3Z.js";
|
|
13
13
|
import "../chunk-4YU2UPYH.js";
|
|
14
|
-
import "../chunk-
|
|
14
|
+
import "../chunk-RZSZNVEH.js";
|
|
15
15
|
import "../chunk-O642NH7U.js";
|
|
16
16
|
import {
|
|
17
17
|
MarketplaceProvider,
|
|
@@ -70,16 +70,16 @@ import {
|
|
|
70
70
|
useMarketplaceConfig,
|
|
71
71
|
useRoyaltyPercentage,
|
|
72
72
|
useTransferTokens
|
|
73
|
-
} from "../chunk-
|
|
73
|
+
} from "../chunk-RJK7PUJE.js";
|
|
74
74
|
import "../chunk-Y7YO5TLE.js";
|
|
75
75
|
import "../chunk-7NJETFMF.js";
|
|
76
|
-
import "../chunk-NJ2GXOPW.js";
|
|
77
76
|
import "../chunk-SBVLWSRZ.js";
|
|
78
|
-
import "../chunk-
|
|
77
|
+
import "../chunk-NJ2GXOPW.js";
|
|
79
78
|
import "../chunk-SPW24Y7I.js";
|
|
80
79
|
import "../chunk-MCI3KOSQ.js";
|
|
81
80
|
import "../chunk-3OHM45R3.js";
|
|
82
81
|
import "../chunk-WFE6OCYF.js";
|
|
82
|
+
import "../chunk-MJ4YU7RW.js";
|
|
83
83
|
import "../chunk-Q2BVDQ3G.js";
|
|
84
84
|
import {
|
|
85
85
|
getQueryClient
|
|
@@ -11,7 +11,7 @@ type CollectibleCardProps = {
|
|
|
11
11
|
collectionAddress: Hex;
|
|
12
12
|
collectionType?: ContractType;
|
|
13
13
|
lowestListing: CollectibleOrder | undefined;
|
|
14
|
-
onCollectibleClick?: () => void;
|
|
14
|
+
onCollectibleClick?: (tokenId: string) => void;
|
|
15
15
|
onOfferClick?: ({ order }: {
|
|
16
16
|
order?: Order;
|
|
17
17
|
}) => void;
|