@medialane/ui 0.259.0 → 0.260.0
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/components/activities-feed.cjs +5 -1
- package/dist/components/activities-feed.cjs.map +1 -1
- package/dist/components/activities-feed.js +5 -1
- package/dist/components/activities-feed.js.map +1 -1
- package/dist/components/activity-feed-shell.cjs +3 -1
- package/dist/components/activity-feed-shell.cjs.map +1 -1
- package/dist/components/activity-feed-shell.js +3 -1
- package/dist/components/activity-feed-shell.js.map +1 -1
- package/dist/components/button.d.cts +1 -1
- package/dist/components/button.d.ts +1 -1
- package/dist/components/coins-explorer.cjs +5 -1
- package/dist/components/coins-explorer.cjs.map +1 -1
- package/dist/components/coins-explorer.js +6 -2
- package/dist/components/coins-explorer.js.map +1 -1
- package/dist/components/comments-section.cjs +2 -2
- package/dist/components/comments-section.cjs.map +1 -1
- package/dist/components/comments-section.js +2 -2
- package/dist/components/comments-section.js.map +1 -1
- package/dist/components/discover-community-section.cjs +5 -1
- package/dist/components/discover-community-section.cjs.map +1 -1
- package/dist/components/discover-community-section.js +5 -1
- package/dist/components/discover-community-section.js.map +1 -1
- package/dist/components/discover-feed-section.cjs +5 -1
- package/dist/components/discover-feed-section.cjs.map +1 -1
- package/dist/components/discover-feed-section.js +5 -1
- package/dist/components/discover-feed-section.js.map +1 -1
- package/dist/components/fast-mint/fast-mint.d.cts +2 -2
- package/dist/components/fast-mint/fast-mint.d.ts +2 -2
- package/dist/components/fast-mint/success-view.cjs +2 -2
- package/dist/components/fast-mint/success-view.cjs.map +1 -1
- package/dist/components/fast-mint/success-view.js +2 -2
- package/dist/components/fast-mint/success-view.js.map +1 -1
- package/dist/components/ip-type-page.cjs +3 -2
- package/dist/components/ip-type-page.cjs.map +1 -1
- package/dist/components/ip-type-page.js +3 -2
- package/dist/components/ip-type-page.js.map +1 -1
- package/dist/components/marketplace-dialog-primitives.cjs +1 -1
- package/dist/components/marketplace-dialog-primitives.cjs.map +1 -1
- package/dist/components/marketplace-dialog-primitives.js +1 -1
- package/dist/components/marketplace-dialog-primitives.js.map +1 -1
- package/dist/components/media-wallet/media-wallet-activity.cjs +5 -1
- package/dist/components/media-wallet/media-wallet-activity.cjs.map +1 -1
- package/dist/components/media-wallet/media-wallet-activity.js +5 -1
- package/dist/components/media-wallet/media-wallet-activity.js.map +1 -1
- package/dist/components/media-wallet/media-wallet-home.cjs +3 -2
- package/dist/components/media-wallet/media-wallet-home.cjs.map +1 -1
- package/dist/components/media-wallet/media-wallet-home.js +3 -2
- package/dist/components/media-wallet/media-wallet-home.js.map +1 -1
- package/dist/components/media-wallet/media-wallet-send.cjs +5 -2
- package/dist/components/media-wallet/media-wallet-send.cjs.map +1 -1
- package/dist/components/media-wallet/media-wallet-send.js +5 -2
- package/dist/components/media-wallet/media-wallet-send.js.map +1 -1
- package/dist/components/media-wallet/success-dialog.cjs +5 -11
- package/dist/components/media-wallet/success-dialog.cjs.map +1 -1
- package/dist/components/media-wallet/success-dialog.js +5 -11
- package/dist/components/media-wallet/success-dialog.js.map +1 -1
- package/dist/components/pop-claim-button.cjs +2 -2
- package/dist/components/pop-claim-button.cjs.map +1 -1
- package/dist/components/pop-claim-button.js +2 -2
- package/dist/components/pop-claim-button.js.map +1 -1
- package/dist/components/pop-manage-page.cjs +3 -2
- package/dist/components/pop-manage-page.cjs.map +1 -1
- package/dist/components/pop-manage-page.js +3 -2
- package/dist/components/pop-manage-page.js.map +1 -1
- package/dist/components/portfolio-sponsorships.cjs +14 -7
- package/dist/components/portfolio-sponsorships.cjs.map +1 -1
- package/dist/components/portfolio-sponsorships.js +14 -7
- package/dist/components/portfolio-sponsorships.js.map +1 -1
- package/dist/components/service-collections-page.cjs +2 -2
- package/dist/components/service-collections-page.cjs.map +1 -1
- package/dist/components/service-collections-page.d.cts +2 -2
- package/dist/components/service-collections-page.d.ts +2 -2
- package/dist/components/service-collections-page.js +2 -2
- package/dist/components/service-collections-page.js.map +1 -1
- package/dist/components/sheet.d.cts +1 -1
- package/dist/components/sheet.d.ts +1 -1
- package/dist/components/sponsorship-offer-page.cjs +4 -4
- package/dist/components/sponsorship-offer-page.cjs.map +1 -1
- package/dist/components/sponsorship-offer-page.js +4 -4
- package/dist/components/sponsorship-offer-page.js.map +1 -1
- package/dist/components/transaction-success.cjs +2 -5
- package/dist/components/transaction-success.cjs.map +1 -1
- package/dist/components/transaction-success.js +3 -6
- package/dist/components/transaction-success.js.map +1 -1
- package/dist/components/transfer-collection-ownership.cjs +2 -5
- package/dist/components/transfer-collection-ownership.cjs.map +1 -1
- package/dist/components/transfer-collection-ownership.js +2 -5
- package/dist/components/transfer-collection-ownership.js.map +1 -1
- package/dist/index.cjs +3 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/utils/empty-messages.cjs +62 -0
- package/dist/utils/empty-messages.cjs.map +1 -0
- package/dist/utils/empty-messages.d.cts +40 -0
- package/dist/utils/empty-messages.d.ts +40 -0
- package/dist/utils/empty-messages.js +38 -0
- package/dist/utils/empty-messages.js.map +1 -0
- package/dist/utils/success-messages.cjs +52 -0
- package/dist/utils/success-messages.cjs.map +1 -1
- package/dist/utils/success-messages.d.cts +27 -0
- package/dist/utils/success-messages.d.ts +27 -0
- package/dist/utils/success-messages.js +52 -0
- package/dist/utils/success-messages.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/sponsorship-offer-page.tsx"],"sourcesContent":["\"use client\";\n\nimport { useEffect, useState } from \"react\";\nimport { Handshake, ImageIcon, Loader2 } from \"lucide-react\";\nimport { formatAmount, getTokenByAddress, normalizeAddress } from \"@medialane/sdk\";\nimport { BackButton } from \"./back-button.js\";\nimport { Button } from \"./button.js\";\nimport Image from \"./image.js\";\nimport { Input } from \"./input.js\";\nimport { useMedialaneApp } from \"./medialane-app.js\";\nimport { FadeIn } from \"./motion-primitives.js\";\nimport { RewardEarned } from \"./rewards/reward-earned.js\";\nimport { ServiceHeader } from \"./service-header.js\";\nimport { TransactionDialog } from \"./transaction-dialog.js\";\nimport { TransactionSuccess } from \"./transaction-success.js\";\nimport { shortenAddress } from \"../utils/address.js\";\nimport { runIntentCalls } from \"../utils/run-intent-calls.js\";\nimport { useImageUrl } from \"../utils/use-image-url.js\";\nimport { useSponsorshipBids, useSponsorshipOffer } from \"../utils/use-sponsorship.js\";\nimport { useToken } from \"../utils/use-tokens.js\";\nimport { useTransaction } from \"../utils/use-transaction.js\";\n\ntype Action = \"bid\" | \"accept\";\n\nconst COPY = {\n bid: { title: \"Place bid\", working: \"Placing your bid…\", done: \"Bid placed!\", description: \"Your bid is now on-chain.\" },\n accept: { title: \"Accept bid\", working: \"Accepting the bid…\", done: \"Bid accepted!\", description: \"The license is minted to the sponsor.\" },\n} as const;\n\nexport function SponsorshipOfferPage({ offerId }: { offerId: string }) {\n const app = useMedialaneApp();\n const walletAddress = app.walletAddress;\n const resolveImage = useImageUrl();\n const { offer, isLoading, mutate: mutateOffer } = useSponsorshipOffer(offerId);\n const { bids, isLoading: bidsLoading, mutate: mutateBids } = useSponsorshipBids(offerId);\n const { token } = useToken(offer?.nftContract ?? \"\", offer?.tokenId ?? \"\");\n const tx = useTransaction();\n const [action, setAction] = useState<Action>(\"bid\");\n const [amount, setAmount] = useState(\"\");\n const [activeSponsor, setActiveSponsor] = useState<string | null>(null);\n\n useEffect(() => {\n if (tx.phase !== \"success\") return;\n setAmount(\"\");\n void Promise.all([mutateOffer(), mutateBids()]);\n }, [tx.phase, mutateOffer, mutateBids]);\n\n if (isLoading) {\n return <div className=\"max-w-3xl mx-auto px-4 pt-24 pb-8 text-center text-sm text-muted-foreground\">Loading offer…</div>;\n }\n if (!offer) {\n return <div className=\"max-w-3xl mx-auto px-4 pt-24 pb-8 text-center text-sm text-muted-foreground\">Offer not found.</div>;\n }\n\n const isOwner = !!walletAddress && normalizeAddress(\"STARKNET\", walletAddress) === normalizeAddress(\"STARKNET\", offer.author);\n const paymentToken = getTokenByAddress(offer.paymentToken);\n const busy = tx.phase === \"preparing\" || tx.phase === \"submitting\" || tx.phase === \"confirming\";\n const name = token?.metadata?.name ?? `Token #${offer.tokenId}`;\n const imageUrl = resolveImage(token?.metadata?.image);\n const minDisplay = paymentToken ? `${formatAmount(offer.minAmount, paymentToken.decimals)} ${paymentToken.symbol}` : offer.minAmount;\n const format = (value: string) => (paymentToken ? `${formatAmount(value, paymentToken.decimals)} ${paymentToken.symbol}` : value);\n\n const placeBid = () => {\n if (!walletAddress || !paymentToken) return;\n setAction(\"bid\");\n void tx.run(async (signer) => {\n const value = BigInt(Math.round(Number(amount) * 10 ** paymentToken.decimals));\n await runIntentCalls(signer, () =>\n app.getClient().api.intents.create(\"sponsorship-bid\", { sponsor: walletAddress, offerId: offer.offerId, amount: value.toString(), paymentToken: offer.paymentToken }),\n );\n });\n };\n\n const acceptBid = (sponsor: string) => {\n if (!walletAddress) return;\n setAction(\"accept\");\n setActiveSponsor(sponsor);\n void tx\n .run(async (signer) => {\n await runIntentCalls(signer, () =>\n app.getClient().api.intents.create(\"sponsorship-bid-accept\", { author: walletAddress, offerId: offer.offerId, sponsor }),\n );\n })\n .finally(() => setActiveSponsor(null));\n };\n\n const copy = COPY[action];\n\n return (\n <div className=\"pb-16\">\n <TransactionDialog tx={tx} title={copy.title} workingLabel={copy.working} firstStepLabel=\"Prepare\">\n <TransactionSuccess\n name={name}\n title={copy.done}\n description={copy.description}\n txHash={tx.txHash}\n actions={[{ label: \"Done\", onClick: tx.reset }]}\n >\n {action === \"bid\" && <RewardEarned actionType=\"place_sponsorship_bid\" />}\n </TransactionSuccess>\n </TransactionDialog>\n\n <section className=\"px-4 pt-10 max-w-3xl mx-auto space-y-6\">\n <BackButton fallbackHref=\"/launchpad/sponsorship\" />\n <FadeIn>\n <ServiceHeader plain icon={<Handshake className=\"h-4 w-4 text-white\" />} title={name} subtitle={offer.open ? \"Open for bids\" : \"Closed\"} />\n </FadeIn>\n\n <FadeIn>\n <div className=\"rounded-2xl border border-border/40 overflow-hidden\">\n <div className=\"relative aspect-square bg-muted/40\">\n {imageUrl ? (\n <Image src={imageUrl} alt={name} fill sizes=\"(min-width: 768px) 768px, 100vw\" className=\"object-cover\" unoptimized />\n ) : (\n <div className=\"h-full w-full flex items-center justify-center\">\n <ImageIcon className=\"h-8 w-8 text-muted-foreground/40\" />\n </div>\n )}\n </div>\n <div className=\"p-5 grid grid-cols-2 sm:grid-cols-4 gap-4 text-sm\">\n <div>\n <p className=\"text-xs text-muted-foreground\">Minimum bid</p>\n <p className=\"font-semibold\">{minDisplay}</p>\n </div>\n <div>\n <p className=\"text-xs text-muted-foreground\">License length</p>\n <p className=\"font-semibold\">{Math.round(Number(offer.duration) / 86400)} days</p>\n </div>\n <div>\n <p className=\"text-xs text-muted-foreground\">Resale royalty</p>\n <p className=\"font-semibold\">{(offer.royaltyBps / 100).toFixed(1)}%</p>\n </div>\n <div>\n <p className=\"text-xs text-muted-foreground\">Owner</p>\n <p className=\"font-semibold\">{shortenAddress(offer.author)}</p>\n </div>\n </div>\n </div>\n </FadeIn>\n\n {!offer.open ? (\n <FadeIn>\n <p className=\"text-sm text-muted-foreground text-center py-6\">This offer is no longer open.</p>\n </FadeIn>\n ) : isOwner ? (\n <FadeIn>\n <div className=\"space-y-3\">\n <p className=\"text-sm font-semibold\">Bids</p>\n {bidsLoading ? (\n <p className=\"text-xs text-muted-foreground\">Loading bids…</p>\n ) : bids.length === 0 ? (\n <p className=\"text-xs text-muted-foreground\">No bids yet.</p>\n ) : (\n <div className=\"space-y-2\">\n {bids.map((bid) => (\n <div key={bid.id} className=\"flex items-center justify-between gap-3 rounded-xl border border-border/30 p-3\">\n <div>\n <p className=\"text-sm font-medium\">{shortenAddress(bid.sponsor)}</p>\n <p className=\"text-xs text-muted-foreground\">{format(bid.amount)}</p>\n </div>\n <Button size=\"sm\" className=\"bg-brand-rose hover:brightness-110 text-white\" disabled={busy} onClick={() => acceptBid(bid.sponsor)}>\n {busy && activeSponsor === bid.sponsor ? <Loader2 className=\"h-3.5 w-3.5 animate-spin\" /> : \"Accept\"}\n </Button>\n </div>\n ))}\n </div>\n )}\n </div>\n </FadeIn>\n ) : (\n <FadeIn>\n <div className=\"space-y-2\">\n <p className=\"text-sm font-semibold\">Place a bid</p>\n <div className=\"flex gap-2\">\n <Input type=\"number\" min={0} step=\"0.01\" placeholder=\"Your bid\" value={amount} onChange={(e) => setAmount(e.target.value)} disabled={busy} />\n <Button className=\"bg-brand-rose hover:brightness-110 text-white shrink-0\" disabled={busy || !walletAddress || !paymentToken || !amount || Number(amount) <= 0} onClick={placeBid}>\n {busy ? <Loader2 className=\"h-4 w-4 animate-spin\" /> : \"Place bid\"}\n </Button>\n </div>\n {!walletAddress && (\n <button type=\"button\" className=\"text-xs text-muted-foreground underline\" onClick={app.onRequireWallet}>\n {app.connectLabel ?? \"Connect\"} to place a bid\n </button>\n )}\n {!paymentToken && <p className=\"text-xs text-destructive\">This offer uses a currency the app does not support yet.</p>}\n <p className=\"text-xs text-muted-foreground\">\n Placing a bid approves the offer's payment token — no funds move until the owner accepts.\n </p>\n </div>\n </FadeIn>\n )}\n </section>\n </div>\n );\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/components/sponsorship-offer-page.tsx"],"sourcesContent":["\"use client\";\n\nimport { useEffect, useState } from \"react\";\nimport { Handshake, ImageIcon, Loader2 } from \"lucide-react\";\nimport { formatAmount, getTokenByAddress, normalizeAddress } from \"@medialane/sdk\";\nimport { BackButton } from \"./back-button.js\";\nimport { Button } from \"./button.js\";\nimport Image from \"./image.js\";\nimport { Input } from \"./input.js\";\nimport { useMedialaneApp } from \"./medialane-app.js\";\nimport { FadeIn } from \"./motion-primitives.js\";\nimport { RewardEarned } from \"./rewards/reward-earned.js\";\nimport { ServiceHeader } from \"./service-header.js\";\nimport { TransactionDialog } from \"./transaction-dialog.js\";\nimport { TransactionSuccess } from \"./transaction-success.js\";\nimport { shortenAddress } from \"../utils/address.js\";\nimport { runIntentCalls } from \"../utils/run-intent-calls.js\";\nimport { useImageUrl } from \"../utils/use-image-url.js\";\nimport { useSponsorshipBids, useSponsorshipOffer } from \"../utils/use-sponsorship.js\";\nimport { useToken } from \"../utils/use-tokens.js\";\nimport { useTransaction } from \"../utils/use-transaction.js\";\nimport { successMessages } from \"../utils/success-messages.js\";\n\ntype Action = \"bid\" | \"accept\";\n\nconst COPY = {\n bid: { title: \"Place bid\", working: \"Placing your bid…\", message: successMessages.bidPlaced() },\n accept: { title: \"Accept bid\", working: \"Accepting the bid…\", message: successMessages.bidAccepted() },\n} as const;\n\nexport function SponsorshipOfferPage({ offerId }: { offerId: string }) {\n const app = useMedialaneApp();\n const walletAddress = app.walletAddress;\n const resolveImage = useImageUrl();\n const { offer, isLoading, mutate: mutateOffer } = useSponsorshipOffer(offerId);\n const { bids, isLoading: bidsLoading, mutate: mutateBids } = useSponsorshipBids(offerId);\n const { token } = useToken(offer?.nftContract ?? \"\", offer?.tokenId ?? \"\");\n const tx = useTransaction();\n const [action, setAction] = useState<Action>(\"bid\");\n const [amount, setAmount] = useState(\"\");\n const [activeSponsor, setActiveSponsor] = useState<string | null>(null);\n\n useEffect(() => {\n if (tx.phase !== \"success\") return;\n setAmount(\"\");\n void Promise.all([mutateOffer(), mutateBids()]);\n }, [tx.phase, mutateOffer, mutateBids]);\n\n if (isLoading) {\n return <div className=\"max-w-3xl mx-auto px-4 pt-24 pb-8 text-center text-sm text-muted-foreground\">Loading offer…</div>;\n }\n if (!offer) {\n return <div className=\"max-w-3xl mx-auto px-4 pt-24 pb-8 text-center text-sm text-muted-foreground\">Offer not found.</div>;\n }\n\n const isOwner = !!walletAddress && normalizeAddress(\"STARKNET\", walletAddress) === normalizeAddress(\"STARKNET\", offer.author);\n const paymentToken = getTokenByAddress(offer.paymentToken);\n const busy = tx.phase === \"preparing\" || tx.phase === \"submitting\" || tx.phase === \"confirming\";\n const name = token?.metadata?.name ?? `Token #${offer.tokenId}`;\n const imageUrl = resolveImage(token?.metadata?.image);\n const minDisplay = paymentToken ? `${formatAmount(offer.minAmount, paymentToken.decimals)} ${paymentToken.symbol}` : offer.minAmount;\n const format = (value: string) => (paymentToken ? `${formatAmount(value, paymentToken.decimals)} ${paymentToken.symbol}` : value);\n\n const placeBid = () => {\n if (!walletAddress || !paymentToken) return;\n setAction(\"bid\");\n void tx.run(async (signer) => {\n const value = BigInt(Math.round(Number(amount) * 10 ** paymentToken.decimals));\n await runIntentCalls(signer, () =>\n app.getClient().api.intents.create(\"sponsorship-bid\", { sponsor: walletAddress, offerId: offer.offerId, amount: value.toString(), paymentToken: offer.paymentToken }),\n );\n });\n };\n\n const acceptBid = (sponsor: string) => {\n if (!walletAddress) return;\n setAction(\"accept\");\n setActiveSponsor(sponsor);\n void tx\n .run(async (signer) => {\n await runIntentCalls(signer, () =>\n app.getClient().api.intents.create(\"sponsorship-bid-accept\", { author: walletAddress, offerId: offer.offerId, sponsor }),\n );\n })\n .finally(() => setActiveSponsor(null));\n };\n\n const copy = COPY[action];\n\n return (\n <div className=\"pb-16\">\n <TransactionDialog tx={tx} title={copy.title} workingLabel={copy.working} firstStepLabel=\"Prepare\">\n <TransactionSuccess\n name={name}\n {...copy.message}\n txHash={tx.txHash}\n actions={[{ label: \"Done\", onClick: tx.reset }]}\n >\n {action === \"bid\" && <RewardEarned actionType=\"place_sponsorship_bid\" />}\n </TransactionSuccess>\n </TransactionDialog>\n\n <section className=\"px-4 pt-10 max-w-3xl mx-auto space-y-6\">\n <BackButton fallbackHref=\"/launchpad/sponsorship\" />\n <FadeIn>\n <ServiceHeader plain icon={<Handshake className=\"h-4 w-4 text-white\" />} title={name} subtitle={offer.open ? \"Open for bids\" : \"Closed\"} />\n </FadeIn>\n\n <FadeIn>\n <div className=\"rounded-2xl border border-border/40 overflow-hidden\">\n <div className=\"relative aspect-square bg-muted/40\">\n {imageUrl ? (\n <Image src={imageUrl} alt={name} fill sizes=\"(min-width: 768px) 768px, 100vw\" className=\"object-cover\" unoptimized />\n ) : (\n <div className=\"h-full w-full flex items-center justify-center\">\n <ImageIcon className=\"h-8 w-8 text-muted-foreground/40\" />\n </div>\n )}\n </div>\n <div className=\"p-5 grid grid-cols-2 sm:grid-cols-4 gap-4 text-sm\">\n <div>\n <p className=\"text-xs text-muted-foreground\">Minimum bid</p>\n <p className=\"font-semibold\">{minDisplay}</p>\n </div>\n <div>\n <p className=\"text-xs text-muted-foreground\">License length</p>\n <p className=\"font-semibold\">{Math.round(Number(offer.duration) / 86400)} days</p>\n </div>\n <div>\n <p className=\"text-xs text-muted-foreground\">Resale royalty</p>\n <p className=\"font-semibold\">{(offer.royaltyBps / 100).toFixed(1)}%</p>\n </div>\n <div>\n <p className=\"text-xs text-muted-foreground\">Owner</p>\n <p className=\"font-semibold\">{shortenAddress(offer.author)}</p>\n </div>\n </div>\n </div>\n </FadeIn>\n\n {!offer.open ? (\n <FadeIn>\n <p className=\"text-sm text-muted-foreground text-center py-6\">This offer is no longer open.</p>\n </FadeIn>\n ) : isOwner ? (\n <FadeIn>\n <div className=\"space-y-3\">\n <p className=\"text-sm font-semibold\">Bids</p>\n {bidsLoading ? (\n <p className=\"text-xs text-muted-foreground\">Loading bids…</p>\n ) : bids.length === 0 ? (\n <p className=\"text-xs text-muted-foreground\">No bids yet.</p>\n ) : (\n <div className=\"space-y-2\">\n {bids.map((bid) => (\n <div key={bid.id} className=\"flex items-center justify-between gap-3 rounded-xl border border-border/30 p-3\">\n <div>\n <p className=\"text-sm font-medium\">{shortenAddress(bid.sponsor)}</p>\n <p className=\"text-xs text-muted-foreground\">{format(bid.amount)}</p>\n </div>\n <Button size=\"sm\" className=\"bg-brand-rose hover:brightness-110 text-white\" disabled={busy} onClick={() => acceptBid(bid.sponsor)}>\n {busy && activeSponsor === bid.sponsor ? <Loader2 className=\"h-3.5 w-3.5 animate-spin\" /> : \"Accept\"}\n </Button>\n </div>\n ))}\n </div>\n )}\n </div>\n </FadeIn>\n ) : (\n <FadeIn>\n <div className=\"space-y-2\">\n <p className=\"text-sm font-semibold\">Place a bid</p>\n <div className=\"flex gap-2\">\n <Input type=\"number\" min={0} step=\"0.01\" placeholder=\"Your bid\" value={amount} onChange={(e) => setAmount(e.target.value)} disabled={busy} />\n <Button className=\"bg-brand-rose hover:brightness-110 text-white shrink-0\" disabled={busy || !walletAddress || !paymentToken || !amount || Number(amount) <= 0} onClick={placeBid}>\n {busy ? <Loader2 className=\"h-4 w-4 animate-spin\" /> : \"Place bid\"}\n </Button>\n </div>\n {!walletAddress && (\n <button type=\"button\" className=\"text-xs text-muted-foreground underline\" onClick={app.onRequireWallet}>\n {app.connectLabel ?? \"Connect\"} to place a bid\n </button>\n )}\n {!paymentToken && <p className=\"text-xs text-destructive\">This offer uses a currency the app does not support yet.</p>}\n <p className=\"text-xs text-muted-foreground\">\n Placing a bid approves the offer's payment token — no funds move until the owner accepts.\n </p>\n </div>\n </FadeIn>\n )}\n </section>\n </div>\n );\n}\n"],"mappings":"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","names":[]}
|
|
@@ -42,11 +42,8 @@ var import_explorer_url = require("../utils/explorer-url.js");
|
|
|
42
42
|
function TransactionSuccess({ name, image, title, description, txHash, actions, children }) {
|
|
43
43
|
const shown = actions.filter((a) => !!a);
|
|
44
44
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex w-full flex-col items-center gap-6 py-2 text-center", children: [
|
|
45
|
-
/* @__PURE__ */ (0, import_jsx_runtime.
|
|
46
|
-
|
|
47
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "absolute -bottom-2 -right-2 flex h-9 w-9 items-center justify-center rounded-full bg-emerald-500 text-white ring-4 ring-background", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_lucide_react.Check, { className: "h-5 w-5", strokeWidth: 3 }) })
|
|
48
|
-
] }),
|
|
49
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "w-full min-w-0 space-y-1", children: [
|
|
45
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "relative h-40 w-40 overflow-hidden rounded-3xl border border-border bg-muted shadow-lg", children: image ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_image.default, { src: image, alt: name, fill: true, sizes: "160px", unoptimized: true, className: "object-cover" }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "flex h-full w-full items-center justify-center text-muted-foreground/40", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_lucide_react.ImageIcon, { className: "h-10 w-10" }) }) }),
|
|
46
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { role: "status", className: "w-full min-w-0 space-y-1", children: [
|
|
50
47
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "line-clamp-2 break-words text-xl font-bold", children: name }),
|
|
51
48
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "font-medium", children: title }),
|
|
52
49
|
description && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "break-words text-sm text-muted-foreground", children: description }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/transaction-success.tsx"],"sourcesContent":["\"use client\";\n\nimport type { ReactNode } from \"react\";\nimport {
|
|
1
|
+
{"version":3,"sources":["../../src/components/transaction-success.tsx"],"sourcesContent":["\"use client\";\n\nimport type { ReactNode } from \"react\";\nimport { ImageIcon } from \"lucide-react\";\nimport Link from \"./link.js\";\nimport Image from \"./image.js\";\nimport { Button } from \"./button.js\";\nimport { MarketplaceTxLink } from \"./marketplace-dialog-primitives.js\";\nimport { EXPLORER_URL } from \"../utils/explorer-url.js\";\n\nexport interface TransactionSuccessAction {\n label: string;\n href?: string;\n onClick?: () => void;\n}\n\nexport interface TransactionSuccessProps {\n name: string;\n image?: string | null;\n title: string;\n description?: ReactNode;\n txHash?: string | null;\n actions: Array<TransactionSuccessAction | undefined>;\n children?: ReactNode;\n}\n\nexport function TransactionSuccess({ name, image, title, description, txHash, actions, children }: TransactionSuccessProps) {\n const shown = actions.filter((a): a is TransactionSuccessAction => !!a);\n return (\n <div className=\"flex w-full flex-col items-center gap-6 py-2 text-center\">\n <div className=\"relative h-40 w-40 overflow-hidden rounded-3xl border border-border bg-muted shadow-lg\">\n {image ? (\n <Image src={image} alt={name} fill sizes=\"160px\" unoptimized className=\"object-cover\" />\n ) : (\n <div className=\"flex h-full w-full items-center justify-center text-muted-foreground/40\">\n <ImageIcon className=\"h-10 w-10\" />\n </div>\n )}\n </div>\n\n <div role=\"status\" className=\"w-full min-w-0 space-y-1\">\n <p className=\"line-clamp-2 break-words text-xl font-bold\">{name}</p>\n <p className=\"font-medium\">{title}</p>\n {description && <div className=\"break-words text-sm text-muted-foreground\">{description}</div>}\n {txHash && <MarketplaceTxLink txHash={txHash} explorerUrl={EXPLORER_URL} className=\"pt-1\" />}\n </div>\n\n <div className=\"flex w-full flex-col gap-2\">\n {shown.map((action, i) => (\n <Button key={action.label} asChild={!!action.href} variant={i === 0 ? \"default\" : \"outline\"} className=\"w-full\" onClick={action.onClick}>\n {action.href ? <Link href={action.href}>{action.label}</Link> : action.label}\n </Button>\n ))}\n </div>\n\n {children}\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAgCU;AA7BV,0BAA0B;AAC1B,kBAAiB;AACjB,mBAAkB;AAClB,oBAAuB;AACvB,2CAAkC;AAClC,0BAA6B;AAkBtB,SAAS,mBAAmB,EAAE,MAAM,OAAO,OAAO,aAAa,QAAQ,SAAS,SAAS,GAA4B;AAC1H,QAAM,QAAQ,QAAQ,OAAO,CAAC,MAAqC,CAAC,CAAC,CAAC;AACtE,SACE,6CAAC,SAAI,WAAU,4DACb;AAAA,gDAAC,SAAI,WAAU,0FACZ,kBACC,4CAAC,aAAAA,SAAA,EAAM,KAAK,OAAO,KAAK,MAAM,MAAI,MAAC,OAAM,SAAQ,aAAW,MAAC,WAAU,gBAAe,IAEtF,4CAAC,SAAI,WAAU,2EACb,sDAAC,iCAAU,WAAU,aAAY,GACnC,GAEJ;AAAA,IAEA,6CAAC,SAAI,MAAK,UAAS,WAAU,4BAC3B;AAAA,kDAAC,OAAE,WAAU,8CAA8C,gBAAK;AAAA,MAChE,4CAAC,OAAE,WAAU,eAAe,iBAAM;AAAA,MACjC,eAAe,4CAAC,SAAI,WAAU,6CAA6C,uBAAY;AAAA,MACvF,UAAU,4CAAC,0DAAkB,QAAgB,aAAa,kCAAc,WAAU,QAAO;AAAA,OAC5F;AAAA,IAEA,4CAAC,SAAI,WAAU,8BACZ,gBAAM,IAAI,CAAC,QAAQ,MAClB,4CAAC,wBAA0B,SAAS,CAAC,CAAC,OAAO,MAAM,SAAS,MAAM,IAAI,YAAY,WAAW,WAAU,UAAS,SAAS,OAAO,SAC7H,iBAAO,OAAO,4CAAC,YAAAC,SAAA,EAAK,MAAM,OAAO,MAAO,iBAAO,OAAM,IAAU,OAAO,SAD5D,OAAO,KAEpB,CACD,GACH;AAAA,IAEC;AAAA,KACH;AAEJ;","names":["Image","Link"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
-
import {
|
|
3
|
+
import { ImageIcon } from "lucide-react";
|
|
4
4
|
import Link from "./link.js";
|
|
5
5
|
import Image from "./image.js";
|
|
6
6
|
import { Button } from "./button.js";
|
|
@@ -9,11 +9,8 @@ import { EXPLORER_URL } from "../utils/explorer-url.js";
|
|
|
9
9
|
function TransactionSuccess({ name, image, title, description, txHash, actions, children }) {
|
|
10
10
|
const shown = actions.filter((a) => !!a);
|
|
11
11
|
return /* @__PURE__ */ jsxs("div", { className: "flex w-full flex-col items-center gap-6 py-2 text-center", children: [
|
|
12
|
-
/* @__PURE__ */
|
|
13
|
-
|
|
14
|
-
/* @__PURE__ */ jsx("span", { className: "absolute -bottom-2 -right-2 flex h-9 w-9 items-center justify-center rounded-full bg-emerald-500 text-white ring-4 ring-background", children: /* @__PURE__ */ jsx(Check, { className: "h-5 w-5", strokeWidth: 3 }) })
|
|
15
|
-
] }),
|
|
16
|
-
/* @__PURE__ */ jsxs("div", { className: "w-full min-w-0 space-y-1", children: [
|
|
12
|
+
/* @__PURE__ */ jsx("div", { className: "relative h-40 w-40 overflow-hidden rounded-3xl border border-border bg-muted shadow-lg", children: image ? /* @__PURE__ */ jsx(Image, { src: image, alt: name, fill: true, sizes: "160px", unoptimized: true, className: "object-cover" }) : /* @__PURE__ */ jsx("div", { className: "flex h-full w-full items-center justify-center text-muted-foreground/40", children: /* @__PURE__ */ jsx(ImageIcon, { className: "h-10 w-10" }) }) }),
|
|
13
|
+
/* @__PURE__ */ jsxs("div", { role: "status", className: "w-full min-w-0 space-y-1", children: [
|
|
17
14
|
/* @__PURE__ */ jsx("p", { className: "line-clamp-2 break-words text-xl font-bold", children: name }),
|
|
18
15
|
/* @__PURE__ */ jsx("p", { className: "font-medium", children: title }),
|
|
19
16
|
description && /* @__PURE__ */ jsx("div", { className: "break-words text-sm text-muted-foreground", children: description }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/transaction-success.tsx"],"sourcesContent":["\"use client\";\n\nimport type { ReactNode } from \"react\";\nimport {
|
|
1
|
+
{"version":3,"sources":["../../src/components/transaction-success.tsx"],"sourcesContent":["\"use client\";\n\nimport type { ReactNode } from \"react\";\nimport { ImageIcon } from \"lucide-react\";\nimport Link from \"./link.js\";\nimport Image from \"./image.js\";\nimport { Button } from \"./button.js\";\nimport { MarketplaceTxLink } from \"./marketplace-dialog-primitives.js\";\nimport { EXPLORER_URL } from \"../utils/explorer-url.js\";\n\nexport interface TransactionSuccessAction {\n label: string;\n href?: string;\n onClick?: () => void;\n}\n\nexport interface TransactionSuccessProps {\n name: string;\n image?: string | null;\n title: string;\n description?: ReactNode;\n txHash?: string | null;\n actions: Array<TransactionSuccessAction | undefined>;\n children?: ReactNode;\n}\n\nexport function TransactionSuccess({ name, image, title, description, txHash, actions, children }: TransactionSuccessProps) {\n const shown = actions.filter((a): a is TransactionSuccessAction => !!a);\n return (\n <div className=\"flex w-full flex-col items-center gap-6 py-2 text-center\">\n <div className=\"relative h-40 w-40 overflow-hidden rounded-3xl border border-border bg-muted shadow-lg\">\n {image ? (\n <Image src={image} alt={name} fill sizes=\"160px\" unoptimized className=\"object-cover\" />\n ) : (\n <div className=\"flex h-full w-full items-center justify-center text-muted-foreground/40\">\n <ImageIcon className=\"h-10 w-10\" />\n </div>\n )}\n </div>\n\n <div role=\"status\" className=\"w-full min-w-0 space-y-1\">\n <p className=\"line-clamp-2 break-words text-xl font-bold\">{name}</p>\n <p className=\"font-medium\">{title}</p>\n {description && <div className=\"break-words text-sm text-muted-foreground\">{description}</div>}\n {txHash && <MarketplaceTxLink txHash={txHash} explorerUrl={EXPLORER_URL} className=\"pt-1\" />}\n </div>\n\n <div className=\"flex w-full flex-col gap-2\">\n {shown.map((action, i) => (\n <Button key={action.label} asChild={!!action.href} variant={i === 0 ? \"default\" : \"outline\"} className=\"w-full\" onClick={action.onClick}>\n {action.href ? <Link href={action.href}>{action.label}</Link> : action.label}\n </Button>\n ))}\n </div>\n\n {children}\n </div>\n );\n}\n"],"mappings":";AAgCU,cAQJ,YARI;AA7BV,SAAS,iBAAiB;AAC1B,OAAO,UAAU;AACjB,OAAO,WAAW;AAClB,SAAS,cAAc;AACvB,SAAS,yBAAyB;AAClC,SAAS,oBAAoB;AAkBtB,SAAS,mBAAmB,EAAE,MAAM,OAAO,OAAO,aAAa,QAAQ,SAAS,SAAS,GAA4B;AAC1H,QAAM,QAAQ,QAAQ,OAAO,CAAC,MAAqC,CAAC,CAAC,CAAC;AACtE,SACE,qBAAC,SAAI,WAAU,4DACb;AAAA,wBAAC,SAAI,WAAU,0FACZ,kBACC,oBAAC,SAAM,KAAK,OAAO,KAAK,MAAM,MAAI,MAAC,OAAM,SAAQ,aAAW,MAAC,WAAU,gBAAe,IAEtF,oBAAC,SAAI,WAAU,2EACb,8BAAC,aAAU,WAAU,aAAY,GACnC,GAEJ;AAAA,IAEA,qBAAC,SAAI,MAAK,UAAS,WAAU,4BAC3B;AAAA,0BAAC,OAAE,WAAU,8CAA8C,gBAAK;AAAA,MAChE,oBAAC,OAAE,WAAU,eAAe,iBAAM;AAAA,MACjC,eAAe,oBAAC,SAAI,WAAU,6CAA6C,uBAAY;AAAA,MACvF,UAAU,oBAAC,qBAAkB,QAAgB,aAAa,cAAc,WAAU,QAAO;AAAA,OAC5F;AAAA,IAEA,oBAAC,SAAI,WAAU,8BACZ,gBAAM,IAAI,CAAC,QAAQ,MAClB,oBAAC,UAA0B,SAAS,CAAC,CAAC,OAAO,MAAM,SAAS,MAAM,IAAI,YAAY,WAAW,WAAU,UAAS,SAAS,OAAO,SAC7H,iBAAO,OAAO,oBAAC,QAAK,MAAM,OAAO,MAAO,iBAAO,OAAM,IAAU,OAAO,SAD5D,OAAO,KAEpB,CACD,GACH;AAAA,IAEC;AAAA,KACH;AAEJ;","names":[]}
|
|
@@ -36,6 +36,7 @@ var import_transaction_dialog = require("./transaction-dialog.js");
|
|
|
36
36
|
var import_transaction_success = require("./transaction-success.js");
|
|
37
37
|
var import_address = require("../utils/address.js");
|
|
38
38
|
var import_run_intent_calls = require("../utils/run-intent-calls.js");
|
|
39
|
+
var import_success_messages = require("../utils/success-messages.js");
|
|
39
40
|
var import_use_transaction = require("../utils/use-transaction.js");
|
|
40
41
|
function TransferCollectionOwnership({ collectionId, currentOwner, collectionName, onTransferred }) {
|
|
41
42
|
const app = (0, import_medialane_app.useMedialaneApp)();
|
|
@@ -120,11 +121,7 @@ function TransferCollectionOwnership({ collectionId, currentOwner, collectionNam
|
|
|
120
121
|
import_transaction_success.TransactionSuccess,
|
|
121
122
|
{
|
|
122
123
|
name: collectionName ?? "Collection",
|
|
123
|
-
|
|
124
|
-
description: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { className: "tabular-nums", children: [
|
|
125
|
-
"New owner: ",
|
|
126
|
-
(0, import_address.shortenAddress)(trimmed)
|
|
127
|
-
] }),
|
|
124
|
+
...import_success_messages.successMessages.ownershipTransferred({ name: collectionName ?? "the collection", to: (0, import_address.shortenAddress)(trimmed) }),
|
|
128
125
|
txHash: tx.txHash,
|
|
129
126
|
actions: [{ label: "Done", onClick: tx.reset }]
|
|
130
127
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/transfer-collection-ownership.tsx"],"sourcesContent":["\"use client\";\n\nimport { useState } from \"react\";\nimport { UserRoundCog } from \"lucide-react\";\nimport { normalizeAddress } from \"@medialane/sdk\";\nimport { Button } from \"./button.js\";\nimport { Dialog, DialogContent, DialogDescription, DialogTitle } from \"./dialog.js\";\nimport { Input } from \"./input.js\";\nimport { Label } from \"./label.js\";\nimport { MarketplaceConfirmStep } from \"./marketplace-dialog-primitives.js\";\nimport { useMedialaneApp } from \"./medialane-app.js\";\nimport { TransactionDialog } from \"./transaction-dialog.js\";\nimport { TransactionSuccess } from \"./transaction-success.js\";\nimport { shortenAddress } from \"../utils/address.js\";\nimport { runIntentCalls } from \"../utils/run-intent-calls.js\";\nimport { useTransaction } from \"../utils/use-transaction.js\";\n\nexport interface TransferCollectionOwnershipProps {\n collectionId: string;\n currentOwner: string;\n collectionName?: string | null;\n onTransferred?: () => void;\n}\n\nexport function TransferCollectionOwnership({ collectionId, currentOwner, collectionName, onTransferred }: TransferCollectionOwnershipProps) {\n const app = useMedialaneApp();\n const tx = useTransaction();\n const [open, setOpen] = useState(false);\n const [confirming, setConfirming] = useState(false);\n const [newOwner, setNewOwner] = useState(\"\");\n\n const trimmed = newOwner.trim();\n const isValid = /^0x[0-9a-fA-F]{1,64}$/.test(trimmed);\n const wouldNoop = isValid && normalizeAddress(\"STARKNET\", trimmed) === normalizeAddress(\"STARKNET\", currentOwner);\n\n const close = () => {\n setOpen(false);\n setConfirming(false);\n };\n\n const transfer = () => {\n close();\n void tx\n .run(async (signer) => {\n await runIntentCalls(signer, () =>\n app.getClient().api.intents.create(\"transfer-collection-ownership\", { owner: signer.address, collectionId: String(collectionId), newOwner: trimmed }),\n );\n })\n .then((ok) => {\n if (ok) onTransferred?.();\n });\n };\n\n return (\n <>\n <Button variant=\"outline\" size=\"sm\" className=\"gap-2\" onClick={() => { setNewOwner(\"\"); setOpen(true); }}>\n <UserRoundCog className=\"h-4 w-4\" />\n Transfer ownership\n </Button>\n\n <Dialog open={open} onOpenChange={(next) => { if (!next) close(); }}>\n <DialogContent className=\"max-w-[calc(100%-6px)] sm:max-w-md p-0 overflow-hidden gap-0 rounded-2xl\">\n <DialogTitle className=\"sr-only\">Transfer ownership of {collectionName ?? \"collection\"}</DialogTitle>\n <DialogDescription className=\"sr-only\">Transfer the on-chain owner of this collection. Existing tokens are unaffected.</DialogDescription>\n\n {confirming ? (\n <MarketplaceConfirmStep\n description={`Transfer ownership to ${shortenAddress(trimmed)}?`}\n secondaryLabel=\"Back\"\n onSecondary={() => setConfirming(false)}\n primaryLabel=\"Transfer ownership\"\n onPrimary={transfer}\n primaryIcon={<UserRoundCog className=\"h-4 w-4\" />}\n />\n ) : (\n <div className=\"p-6 space-y-4\">\n <div className=\"flex items-center gap-2\">\n <UserRoundCog className=\"h-5 w-5\" />\n <p className=\"font-bold text-lg\">Transfer collection ownership</p>\n </div>\n <p className=\"text-sm text-muted-foreground\">\n The new owner will control minting and future ownership transfers for this collection. Existing tokens are unaffected.\n </p>\n <div className=\"space-y-2\">\n <Label htmlFor=\"new-owner\">New owner address</Label>\n <Input\n id=\"new-owner\"\n placeholder=\"0x…\"\n value={newOwner}\n onChange={(e) => setNewOwner(e.target.value)}\n className=\"tabular-nums text-sm\"\n spellCheck={false}\n autoComplete=\"off\"\n />\n {trimmed && !isValid && <p className=\"text-xs text-red-500\">Not a valid Starknet address.</p>}\n {wouldNoop && <p className=\"text-xs text-amber-500\">This is already the current owner.</p>}\n </div>\n <div className=\"flex gap-2 pt-2\">\n <Button variant=\"ghost\" className=\"flex-1\" onClick={close}>\n Cancel\n </Button>\n <Button className=\"flex-1\" onClick={() => setConfirming(true)} disabled={!isValid || wouldNoop || !app.walletAddress}>\n Continue\n </Button>\n </div>\n </div>\n )}\n </DialogContent>\n </Dialog>\n\n <TransactionDialog tx={tx} title=\"Transfer ownership\" workingLabel=\"Transferring ownership…\" firstStepLabel=\"Prepare transfer\">\n <TransactionSuccess\n name={collectionName ?? \"Collection\"}\n
|
|
1
|
+
{"version":3,"sources":["../../src/components/transfer-collection-ownership.tsx"],"sourcesContent":["\"use client\";\n\nimport { useState } from \"react\";\nimport { UserRoundCog } from \"lucide-react\";\nimport { normalizeAddress } from \"@medialane/sdk\";\nimport { Button } from \"./button.js\";\nimport { Dialog, DialogContent, DialogDescription, DialogTitle } from \"./dialog.js\";\nimport { Input } from \"./input.js\";\nimport { Label } from \"./label.js\";\nimport { MarketplaceConfirmStep } from \"./marketplace-dialog-primitives.js\";\nimport { useMedialaneApp } from \"./medialane-app.js\";\nimport { TransactionDialog } from \"./transaction-dialog.js\";\nimport { TransactionSuccess } from \"./transaction-success.js\";\nimport { shortenAddress } from \"../utils/address.js\";\nimport { runIntentCalls } from \"../utils/run-intent-calls.js\";\nimport { successMessages } from \"../utils/success-messages.js\";\nimport { useTransaction } from \"../utils/use-transaction.js\";\n\nexport interface TransferCollectionOwnershipProps {\n collectionId: string;\n currentOwner: string;\n collectionName?: string | null;\n onTransferred?: () => void;\n}\n\nexport function TransferCollectionOwnership({ collectionId, currentOwner, collectionName, onTransferred }: TransferCollectionOwnershipProps) {\n const app = useMedialaneApp();\n const tx = useTransaction();\n const [open, setOpen] = useState(false);\n const [confirming, setConfirming] = useState(false);\n const [newOwner, setNewOwner] = useState(\"\");\n\n const trimmed = newOwner.trim();\n const isValid = /^0x[0-9a-fA-F]{1,64}$/.test(trimmed);\n const wouldNoop = isValid && normalizeAddress(\"STARKNET\", trimmed) === normalizeAddress(\"STARKNET\", currentOwner);\n\n const close = () => {\n setOpen(false);\n setConfirming(false);\n };\n\n const transfer = () => {\n close();\n void tx\n .run(async (signer) => {\n await runIntentCalls(signer, () =>\n app.getClient().api.intents.create(\"transfer-collection-ownership\", { owner: signer.address, collectionId: String(collectionId), newOwner: trimmed }),\n );\n })\n .then((ok) => {\n if (ok) onTransferred?.();\n });\n };\n\n return (\n <>\n <Button variant=\"outline\" size=\"sm\" className=\"gap-2\" onClick={() => { setNewOwner(\"\"); setOpen(true); }}>\n <UserRoundCog className=\"h-4 w-4\" />\n Transfer ownership\n </Button>\n\n <Dialog open={open} onOpenChange={(next) => { if (!next) close(); }}>\n <DialogContent className=\"max-w-[calc(100%-6px)] sm:max-w-md p-0 overflow-hidden gap-0 rounded-2xl\">\n <DialogTitle className=\"sr-only\">Transfer ownership of {collectionName ?? \"collection\"}</DialogTitle>\n <DialogDescription className=\"sr-only\">Transfer the on-chain owner of this collection. Existing tokens are unaffected.</DialogDescription>\n\n {confirming ? (\n <MarketplaceConfirmStep\n description={`Transfer ownership to ${shortenAddress(trimmed)}?`}\n secondaryLabel=\"Back\"\n onSecondary={() => setConfirming(false)}\n primaryLabel=\"Transfer ownership\"\n onPrimary={transfer}\n primaryIcon={<UserRoundCog className=\"h-4 w-4\" />}\n />\n ) : (\n <div className=\"p-6 space-y-4\">\n <div className=\"flex items-center gap-2\">\n <UserRoundCog className=\"h-5 w-5\" />\n <p className=\"font-bold text-lg\">Transfer collection ownership</p>\n </div>\n <p className=\"text-sm text-muted-foreground\">\n The new owner will control minting and future ownership transfers for this collection. Existing tokens are unaffected.\n </p>\n <div className=\"space-y-2\">\n <Label htmlFor=\"new-owner\">New owner address</Label>\n <Input\n id=\"new-owner\"\n placeholder=\"0x…\"\n value={newOwner}\n onChange={(e) => setNewOwner(e.target.value)}\n className=\"tabular-nums text-sm\"\n spellCheck={false}\n autoComplete=\"off\"\n />\n {trimmed && !isValid && <p className=\"text-xs text-red-500\">Not a valid Starknet address.</p>}\n {wouldNoop && <p className=\"text-xs text-amber-500\">This is already the current owner.</p>}\n </div>\n <div className=\"flex gap-2 pt-2\">\n <Button variant=\"ghost\" className=\"flex-1\" onClick={close}>\n Cancel\n </Button>\n <Button className=\"flex-1\" onClick={() => setConfirming(true)} disabled={!isValid || wouldNoop || !app.walletAddress}>\n Continue\n </Button>\n </div>\n </div>\n )}\n </DialogContent>\n </Dialog>\n\n <TransactionDialog tx={tx} title=\"Transfer ownership\" workingLabel=\"Transferring ownership…\" firstStepLabel=\"Prepare transfer\">\n <TransactionSuccess\n name={collectionName ?? \"Collection\"}\n {...successMessages.ownershipTransferred({ name: collectionName ?? \"the collection\", to: shortenAddress(trimmed) })}\n txHash={tx.txHash}\n actions={[{ label: \"Done\", onClick: tx.reset }]}\n />\n </TransactionDialog>\n </>\n );\n}\n"],"mappings":"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","names":[]}
|
|
@@ -13,6 +13,7 @@ import { TransactionDialog } from "./transaction-dialog.js";
|
|
|
13
13
|
import { TransactionSuccess } from "./transaction-success.js";
|
|
14
14
|
import { shortenAddress } from "../utils/address.js";
|
|
15
15
|
import { runIntentCalls } from "../utils/run-intent-calls.js";
|
|
16
|
+
import { successMessages } from "../utils/success-messages.js";
|
|
16
17
|
import { useTransaction } from "../utils/use-transaction.js";
|
|
17
18
|
function TransferCollectionOwnership({ collectionId, currentOwner, collectionName, onTransferred }) {
|
|
18
19
|
const app = useMedialaneApp();
|
|
@@ -97,11 +98,7 @@ function TransferCollectionOwnership({ collectionId, currentOwner, collectionNam
|
|
|
97
98
|
TransactionSuccess,
|
|
98
99
|
{
|
|
99
100
|
name: collectionName ?? "Collection",
|
|
100
|
-
|
|
101
|
-
description: /* @__PURE__ */ jsxs("span", { className: "tabular-nums", children: [
|
|
102
|
-
"New owner: ",
|
|
103
|
-
shortenAddress(trimmed)
|
|
104
|
-
] }),
|
|
101
|
+
...successMessages.ownershipTransferred({ name: collectionName ?? "the collection", to: shortenAddress(trimmed) }),
|
|
105
102
|
txHash: tx.txHash,
|
|
106
103
|
actions: [{ label: "Done", onClick: tx.reset }]
|
|
107
104
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/transfer-collection-ownership.tsx"],"sourcesContent":["\"use client\";\n\nimport { useState } from \"react\";\nimport { UserRoundCog } from \"lucide-react\";\nimport { normalizeAddress } from \"@medialane/sdk\";\nimport { Button } from \"./button.js\";\nimport { Dialog, DialogContent, DialogDescription, DialogTitle } from \"./dialog.js\";\nimport { Input } from \"./input.js\";\nimport { Label } from \"./label.js\";\nimport { MarketplaceConfirmStep } from \"./marketplace-dialog-primitives.js\";\nimport { useMedialaneApp } from \"./medialane-app.js\";\nimport { TransactionDialog } from \"./transaction-dialog.js\";\nimport { TransactionSuccess } from \"./transaction-success.js\";\nimport { shortenAddress } from \"../utils/address.js\";\nimport { runIntentCalls } from \"../utils/run-intent-calls.js\";\nimport { useTransaction } from \"../utils/use-transaction.js\";\n\nexport interface TransferCollectionOwnershipProps {\n collectionId: string;\n currentOwner: string;\n collectionName?: string | null;\n onTransferred?: () => void;\n}\n\nexport function TransferCollectionOwnership({ collectionId, currentOwner, collectionName, onTransferred }: TransferCollectionOwnershipProps) {\n const app = useMedialaneApp();\n const tx = useTransaction();\n const [open, setOpen] = useState(false);\n const [confirming, setConfirming] = useState(false);\n const [newOwner, setNewOwner] = useState(\"\");\n\n const trimmed = newOwner.trim();\n const isValid = /^0x[0-9a-fA-F]{1,64}$/.test(trimmed);\n const wouldNoop = isValid && normalizeAddress(\"STARKNET\", trimmed) === normalizeAddress(\"STARKNET\", currentOwner);\n\n const close = () => {\n setOpen(false);\n setConfirming(false);\n };\n\n const transfer = () => {\n close();\n void tx\n .run(async (signer) => {\n await runIntentCalls(signer, () =>\n app.getClient().api.intents.create(\"transfer-collection-ownership\", { owner: signer.address, collectionId: String(collectionId), newOwner: trimmed }),\n );\n })\n .then((ok) => {\n if (ok) onTransferred?.();\n });\n };\n\n return (\n <>\n <Button variant=\"outline\" size=\"sm\" className=\"gap-2\" onClick={() => { setNewOwner(\"\"); setOpen(true); }}>\n <UserRoundCog className=\"h-4 w-4\" />\n Transfer ownership\n </Button>\n\n <Dialog open={open} onOpenChange={(next) => { if (!next) close(); }}>\n <DialogContent className=\"max-w-[calc(100%-6px)] sm:max-w-md p-0 overflow-hidden gap-0 rounded-2xl\">\n <DialogTitle className=\"sr-only\">Transfer ownership of {collectionName ?? \"collection\"}</DialogTitle>\n <DialogDescription className=\"sr-only\">Transfer the on-chain owner of this collection. Existing tokens are unaffected.</DialogDescription>\n\n {confirming ? (\n <MarketplaceConfirmStep\n description={`Transfer ownership to ${shortenAddress(trimmed)}?`}\n secondaryLabel=\"Back\"\n onSecondary={() => setConfirming(false)}\n primaryLabel=\"Transfer ownership\"\n onPrimary={transfer}\n primaryIcon={<UserRoundCog className=\"h-4 w-4\" />}\n />\n ) : (\n <div className=\"p-6 space-y-4\">\n <div className=\"flex items-center gap-2\">\n <UserRoundCog className=\"h-5 w-5\" />\n <p className=\"font-bold text-lg\">Transfer collection ownership</p>\n </div>\n <p className=\"text-sm text-muted-foreground\">\n The new owner will control minting and future ownership transfers for this collection. Existing tokens are unaffected.\n </p>\n <div className=\"space-y-2\">\n <Label htmlFor=\"new-owner\">New owner address</Label>\n <Input\n id=\"new-owner\"\n placeholder=\"0x…\"\n value={newOwner}\n onChange={(e) => setNewOwner(e.target.value)}\n className=\"tabular-nums text-sm\"\n spellCheck={false}\n autoComplete=\"off\"\n />\n {trimmed && !isValid && <p className=\"text-xs text-red-500\">Not a valid Starknet address.</p>}\n {wouldNoop && <p className=\"text-xs text-amber-500\">This is already the current owner.</p>}\n </div>\n <div className=\"flex gap-2 pt-2\">\n <Button variant=\"ghost\" className=\"flex-1\" onClick={close}>\n Cancel\n </Button>\n <Button className=\"flex-1\" onClick={() => setConfirming(true)} disabled={!isValid || wouldNoop || !app.walletAddress}>\n Continue\n </Button>\n </div>\n </div>\n )}\n </DialogContent>\n </Dialog>\n\n <TransactionDialog tx={tx} title=\"Transfer ownership\" workingLabel=\"Transferring ownership…\" firstStepLabel=\"Prepare transfer\">\n <TransactionSuccess\n name={collectionName ?? \"Collection\"}\n
|
|
1
|
+
{"version":3,"sources":["../../src/components/transfer-collection-ownership.tsx"],"sourcesContent":["\"use client\";\n\nimport { useState } from \"react\";\nimport { UserRoundCog } from \"lucide-react\";\nimport { normalizeAddress } from \"@medialane/sdk\";\nimport { Button } from \"./button.js\";\nimport { Dialog, DialogContent, DialogDescription, DialogTitle } from \"./dialog.js\";\nimport { Input } from \"./input.js\";\nimport { Label } from \"./label.js\";\nimport { MarketplaceConfirmStep } from \"./marketplace-dialog-primitives.js\";\nimport { useMedialaneApp } from \"./medialane-app.js\";\nimport { TransactionDialog } from \"./transaction-dialog.js\";\nimport { TransactionSuccess } from \"./transaction-success.js\";\nimport { shortenAddress } from \"../utils/address.js\";\nimport { runIntentCalls } from \"../utils/run-intent-calls.js\";\nimport { successMessages } from \"../utils/success-messages.js\";\nimport { useTransaction } from \"../utils/use-transaction.js\";\n\nexport interface TransferCollectionOwnershipProps {\n collectionId: string;\n currentOwner: string;\n collectionName?: string | null;\n onTransferred?: () => void;\n}\n\nexport function TransferCollectionOwnership({ collectionId, currentOwner, collectionName, onTransferred }: TransferCollectionOwnershipProps) {\n const app = useMedialaneApp();\n const tx = useTransaction();\n const [open, setOpen] = useState(false);\n const [confirming, setConfirming] = useState(false);\n const [newOwner, setNewOwner] = useState(\"\");\n\n const trimmed = newOwner.trim();\n const isValid = /^0x[0-9a-fA-F]{1,64}$/.test(trimmed);\n const wouldNoop = isValid && normalizeAddress(\"STARKNET\", trimmed) === normalizeAddress(\"STARKNET\", currentOwner);\n\n const close = () => {\n setOpen(false);\n setConfirming(false);\n };\n\n const transfer = () => {\n close();\n void tx\n .run(async (signer) => {\n await runIntentCalls(signer, () =>\n app.getClient().api.intents.create(\"transfer-collection-ownership\", { owner: signer.address, collectionId: String(collectionId), newOwner: trimmed }),\n );\n })\n .then((ok) => {\n if (ok) onTransferred?.();\n });\n };\n\n return (\n <>\n <Button variant=\"outline\" size=\"sm\" className=\"gap-2\" onClick={() => { setNewOwner(\"\"); setOpen(true); }}>\n <UserRoundCog className=\"h-4 w-4\" />\n Transfer ownership\n </Button>\n\n <Dialog open={open} onOpenChange={(next) => { if (!next) close(); }}>\n <DialogContent className=\"max-w-[calc(100%-6px)] sm:max-w-md p-0 overflow-hidden gap-0 rounded-2xl\">\n <DialogTitle className=\"sr-only\">Transfer ownership of {collectionName ?? \"collection\"}</DialogTitle>\n <DialogDescription className=\"sr-only\">Transfer the on-chain owner of this collection. Existing tokens are unaffected.</DialogDescription>\n\n {confirming ? (\n <MarketplaceConfirmStep\n description={`Transfer ownership to ${shortenAddress(trimmed)}?`}\n secondaryLabel=\"Back\"\n onSecondary={() => setConfirming(false)}\n primaryLabel=\"Transfer ownership\"\n onPrimary={transfer}\n primaryIcon={<UserRoundCog className=\"h-4 w-4\" />}\n />\n ) : (\n <div className=\"p-6 space-y-4\">\n <div className=\"flex items-center gap-2\">\n <UserRoundCog className=\"h-5 w-5\" />\n <p className=\"font-bold text-lg\">Transfer collection ownership</p>\n </div>\n <p className=\"text-sm text-muted-foreground\">\n The new owner will control minting and future ownership transfers for this collection. Existing tokens are unaffected.\n </p>\n <div className=\"space-y-2\">\n <Label htmlFor=\"new-owner\">New owner address</Label>\n <Input\n id=\"new-owner\"\n placeholder=\"0x…\"\n value={newOwner}\n onChange={(e) => setNewOwner(e.target.value)}\n className=\"tabular-nums text-sm\"\n spellCheck={false}\n autoComplete=\"off\"\n />\n {trimmed && !isValid && <p className=\"text-xs text-red-500\">Not a valid Starknet address.</p>}\n {wouldNoop && <p className=\"text-xs text-amber-500\">This is already the current owner.</p>}\n </div>\n <div className=\"flex gap-2 pt-2\">\n <Button variant=\"ghost\" className=\"flex-1\" onClick={close}>\n Cancel\n </Button>\n <Button className=\"flex-1\" onClick={() => setConfirming(true)} disabled={!isValid || wouldNoop || !app.walletAddress}>\n Continue\n </Button>\n </div>\n </div>\n )}\n </DialogContent>\n </Dialog>\n\n <TransactionDialog tx={tx} title=\"Transfer ownership\" workingLabel=\"Transferring ownership…\" firstStepLabel=\"Prepare transfer\">\n <TransactionSuccess\n name={collectionName ?? \"Collection\"}\n {...successMessages.ownershipTransferred({ name: collectionName ?? \"the collection\", to: shortenAddress(trimmed) })}\n txHash={tx.txHash}\n actions={[{ label: \"Done\", onClick: tx.reset }]}\n />\n </TransactionDialog>\n </>\n );\n}\n"],"mappings":"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","names":[]}
|
package/dist/index.cjs
CHANGED
|
@@ -416,6 +416,7 @@ __export(index_exports, {
|
|
|
416
416
|
detectAssetKind: () => import_asset_page.detectAssetKind,
|
|
417
417
|
detectPasskeySupport: () => import_passkey_support.detectPasskeySupport,
|
|
418
418
|
emailCodeReducer: () => import_email_code.emailCodeReducer,
|
|
419
|
+
emptyMessages: () => import_empty_messages.emptyMessages,
|
|
419
420
|
fdvUsd: () => import_coins.fdvUsd,
|
|
420
421
|
feeLabelFor: () => import_self_fund_consent_dialog.feeLabelFor,
|
|
421
422
|
formatActivity: () => import_format_activity.formatActivity,
|
|
@@ -763,6 +764,7 @@ var import_portfolio_cache = require("./utils/portfolio-cache.js");
|
|
|
763
764
|
var import_transaction_dialog = require("./components/transaction-dialog.js");
|
|
764
765
|
var import_transaction_success = require("./components/transaction-success.js");
|
|
765
766
|
var import_success_messages = require("./utils/success-messages.js");
|
|
767
|
+
var import_empty_messages = require("./utils/empty-messages.js");
|
|
766
768
|
var import_medialane_collection_card = require("./components/medialane-collection-card.js");
|
|
767
769
|
var import_token_glyph = require("./components/token-glyph.js");
|
|
768
770
|
var import_stat_tile = require("./components/stat-tile.js");
|
|
@@ -1246,6 +1248,7 @@ var import_asset_accents = require("./utils/asset-accents.js");
|
|
|
1246
1248
|
detectAssetKind,
|
|
1247
1249
|
detectPasskeySupport,
|
|
1248
1250
|
emailCodeReducer,
|
|
1251
|
+
emptyMessages,
|
|
1249
1252
|
fdvUsd,
|
|
1250
1253
|
feeLabelFor,
|
|
1251
1254
|
formatActivity,
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["\nexport { cn } from \"./utils/cn.js\";\nexport { formatDisplayPrice, parsePriceDisplay, isStableCurrency, formatUsd, formatUsdPrice, formatSmallDecimal } from \"./utils/format.js\";\nexport { shortenAddress } from \"./utils/address.js\";\nexport { profileIdentity, type ProfileIdentity, type ProfileIdentitySource } from \"./utils/profile-identity.js\";\nexport { ipfsToHttp, DEFAULT_GATEWAY as PINATA_PUBLIC_GATEWAY } from \"./utils/ipfs.js\";\nexport {\n uploadFileToIpfs,\n FILE_UPLOAD_FAILED,\n uploadJsonToIpfs,\n uploadDirectoryToIpfs,\n pinAssetMetadata,\n uploadFailureToast,\n isUserRejection,\n setUploadDiagnosticsReporter,\n type SignedUploadKind,\n type UploadedIpfsFile,\n type UploadDiagnostics,\n type PinAssetMetadataInput,\n type PinnedAsset,\n} from \"./utils/ipfs-upload.js\";\nexport { useIntersectionActive } from \"./utils/use-intersection-active.js\";\nexport { getReadIds, markRead } from \"./utils/notification-storage.js\";\nexport { licenseSummary } from \"./utils/license-summary.js\";\nexport {\n isBareExecuteFailure,\n isUserRejectedRequest,\n isWrongNetwork,\n assertCorrectNetwork,\n WrongNetworkError,\n} from \"./utils/wallet-error.js\";\nexport {\n describeError,\n UserFacingError,\n NOT_SUBMITTED,\n NETWORK_BUSY,\n CONNECTION_FAILED,\n} from \"./utils/describe-error.js\";\nexport type { ErrorNotice } from \"./utils/describe-error.js\";\n\nexport { IP_TYPE_DATA, IP_TYPE_DATA_MAP } from \"./data/ip-types.js\";\nexport type { IpTypeData } from \"./data/ip-types.js\";\nexport {\n IP_TYPES, LICENSE_TYPES, GEOGRAPHIC_SCOPES, AI_POLICIES,\n DERIVATIVES_OPTIONS, LICENSE_TRAIT_TYPES,\n} from \"./data/ip.js\";\nexport type { IPType, LicenseType } from \"./data/ip.js\";\nexport {\n IP_TEMPLATES, EMBED_PLATFORM_META, SOCIAL_PLATFORM_META, TEMPLATE_TRAIT_TYPES, DOC_UPLOAD,\n} from \"./data/ip-templates.js\";\nexport type { EmbedPlatform, SocialPlatform, TraitSuggestion, IPTemplate, DocUploadConfig } from \"./data/ip-templates.js\";\nexport { IPTypeDisplay } from \"./components/ip-type-display.js\";\nexport { AssetOverviewContent } from \"./components/asset-overview-content.js\";\nexport { AssetLicenseSummary } from \"./components/asset-license-summary.js\";\nexport { AssetMarketsTab } from \"./components/asset-markets-tab.js\";\nexport { ParentAttributionBanner } from \"./components/parent-attribution-banner.js\";\nexport type { ParentBannerProps } from \"./components/parent-attribution-banner.js\";\nexport { AssetMediaColumn, AssetHeaderBlock, AssetOwnerRow } from \"./components/asset-top-sections.js\";\nexport { ExpandableText } from \"./components/expandable-text.js\";\nexport { CollectionHeader, type CollectionHeaderProps } from \"./components/collection-header.js\";\nexport { CreatorHeader, type CreatorHeaderProps, type CreatorHeaderStat } from \"./components/creator-header.js\";\nexport { AssetPage, AssetPageSkeleton, detectAssetKind, type AssetPageProps, type AssetKind, type AssetMarketContext, type AssetMarketActions } from \"./components/asset-page.js\";\nexport { AssetCommentsDialog, type AssetCommentsDialogProps } from \"./components/asset-comments-dialog.js\";\nexport { CollectionPage, canTransferCollectionOwnership, type CollectionPageProps, type CollectionPageSlots, type CollectionMarketActions } from \"./components/collection-page.js\";\nexport { CollectionFiltersDialog, type CollectionFiltersDialogProps } from \"./components/collection-filters-dialog.js\";\nexport { GatedContentHero, GatedContentPanel, type GatedContent, type GatedContentState } from \"./components/gated-content.js\";\nexport { MakeOfferPicker } from \"./components/make-offer-picker.js\";\nexport { ListingCardMenu } from \"./components/listing-card-menu.js\";\nexport { FloatingCommentsButton } from \"./components/floating-comments-button.js\";\nexport { PageBackdrop } from \"./components/media-header.js\";\nexport { useComments, type UseCommentsResult } from \"./utils/use-comments.js\";\nexport { useFullTokenData } from \"./utils/use-full-token-data.js\";\nexport { useAssetMarketState, type AssetMarketState } from \"./utils/asset-market-state.js\";\nexport { assetAttributes, type AssetAttribute } from \"./utils/asset-attributes.js\";\nexport type { AssetOwnerRowProps } from \"./components/asset-top-sections.js\";\nexport { AssetCollectionBar } from \"./components/asset-collection-bar.js\";\nexport type { AssetCollectionBarProps, AssetCollectionBarSibling } from \"./components/asset-collection-bar.js\";\nexport { AssetUtilityIcons } from \"./components/asset-utility-icons.js\";\nexport type { AssetUtilityIconsProps } from \"./components/asset-utility-icons.js\";\nexport { AssetMarketplacePanel } from \"./components/asset-marketplace-panel.js\";\nexport type { AssetMarketplacePanelProps, ApiOrderLike } from \"./components/asset-marketplace-panel.js\";\nexport { BRAND } from \"./data/brand.js\";\nexport { LIVING_RENDER_COLLECTIONS, isLivingRenderCollection } from \"./data/living-render-collections.js\";\n\nexport { CurrencyIcon, CurrencyAmount } from \"./components/currency-icon.js\";\nexport type { CurrencyIconProps, CurrencyAmountProps } from \"./components/currency-icon.js\";\n\nexport { IpTypeBadge, IP_TYPE_CONFIG, IP_TYPE_MAP } from \"./components/ip-type-badge.js\";\nexport type { IpTypeBadgeProps, IpTypeConfig } from \"./components/ip-type-badge.js\";\n\nexport { AddressDisplay } from \"./components/address-display.js\";\nexport type { AddressDisplayProps } from \"./components/address-display.js\";\n\nexport { MedialaneLogoFull } from \"./components/brand-logo.js\";\nexport type { MedialaneLogoFullProps } from \"./components/brand-logo.js\";\n\nexport { MotionCard, FadeIn, Stagger, StaggerItem, KineticWords, SPRING, EASE_OUT } from \"./components/motion-primitives.js\";\nexport { PageContainer } from \"./components/page-container.js\";\nexport type { PageContainerProps } from \"./components/page-container.js\";\nexport { ScrollSection } from \"./components/scroll-section.js\";\nexport type { ScrollSectionProps } from \"./components/scroll-section.js\";\nexport { ShareButton } from \"./components/share-button.js\";\nexport type { ShareButtonProps } from \"./components/share-button.js\";\nexport { CollectionCard, CollectionCardSkeleton } from \"./components/collection-card.js\";\nexport type { CollectionCardProps } from \"./components/collection-card.js\";\nexport { TokenCard, TokenCardSkeleton } from \"./components/token-card.js\";\nexport type { TokenCardProps } from \"./components/token-card.js\";\nexport { AnimatedTokenMedia } from \"./components/animated-token-media.js\";\nexport type { AnimatedTokenMediaProps } from \"./components/animated-token-media.js\";\nexport { ThemeAmbientBackground } from \"./components/theme-ambient-background.js\";\nexport {\n useCollectionFilters, SORT_OPTIONS, CollectionFiltersTrigger, CollectionFiltersBody,\n} from \"./components/collection-filters.js\";\nexport type { TraitSection, CollectionFiltersTriggerProps, CollectionFiltersBodyProps } from \"./components/collection-filters.js\";\nexport {\n DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem,\n DropdownMenuCheckboxItem, DropdownMenuRadioItem, DropdownMenuLabel,\n DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuGroup,\n DropdownMenuPortal, DropdownMenuSub, DropdownMenuSubContent,\n DropdownMenuSubTrigger, DropdownMenuRadioGroup,\n} from \"./components/dropdown-menu.js\";\nexport { AssetCard, AssetCardSkeleton } from \"./components/asset-card.js\";\nexport type { AssetCardProps, AssetCardPrice } from \"./components/asset-card.js\";\nexport { AssetPicker } from \"./components/asset-picker.js\";\nexport type { AssetPickerProps, OwnedAsset } from \"./components/asset-picker.js\";\nexport { AssetSearchPicker } from \"./components/asset-search-picker.js\";\nexport type { AssetSearchPickerProps } from \"./components/asset-search-picker.js\";\nexport { LicenseTermsBuilder, EMPTY_SPONSORSHIP_TERMS, MEDIA_TYPES, DURATION_UNITS, toLicenseMetadata, toDurationDays } from \"./components/license-terms-builder.js\";\nexport type { LicenseTermsBuilderProps, SponsorshipTerms, DurationUnit } from \"./components/license-terms-builder.js\";\n\nexport {\n coinKind, coinKindLabel, coinKindLabelPlural, COIN_KINDS, coinAccentToken, coinServiceIds, isCoinService, formatCoinPrice, coinSupply, formatFdvUsd, fdvUsd,\n type CoinKind, type CoinCollectionLike, type CoinPriceLike,\n} from \"./data/coins.js\";\nexport { CoinGuarantees, type CoinGuaranteesProps, type CoinGuaranteesData } from \"./components/coin-guarantees.js\";\nexport { CoinRow, CoinRowSkeleton, CoinAvatar, COIN_GRID, type UseCoinPrice, type CoinRowProps, type CoinMarketStatus } from \"./components/coin-row.js\";\nexport { orderCoins, type CoinPriceSort } from \"./data/coin-order.js\";\nexport {\n CoinsExplorer,\n type CoinsExplorerProps, type CoinFilter, type CoinSort, type UseCoins, type UsePriceMap, type CoinCounts,\n} from \"./components/coins-explorer.js\";\n\nexport { timeAgo, timeUntil, isExpired } from \"./utils/time.js\";\nexport { toDisplayUrl, toDisplayUrlOrNull, toAbsoluteImageUrl, createImageResolver, type DisplayUrlOptions, type ImageResolver } from \"./utils/ipfs.js\";\nexport { useImageUrl } from \"./utils/use-image-url.js\";\nexport { isSameAddress } from \"./utils/same-address.js\";\nexport { createAppWallet } from \"./utils/app-wallet.js\";\nexport type { AppWalletConfig } from \"./utils/app-wallet.js\";\nexport { detectPasskeySupport } from \"./utils/passkey-support.js\";\nexport type { PasskeySupport } from \"./utils/passkey-support.js\";\nexport { describeWalletFailure, isPasskeyCancelled, passkeyUnsupportedReason } from \"./utils/wallet-failure.js\";\nexport type { PasskeyUnsupportedReason, WalletFailureKind, WalletFailureNotice } from \"./utils/wallet-failure.js\";\nexport {\n RESEND_COOLDOWN_SECONDS,\n canResendCode,\n canVerifyCode,\n emailCodeReducer,\n initialEmailCodeState,\n} from \"./utils/email-code.js\";\nexport type { EmailCodeAction, EmailCodeState, EmailCodeStatus } from \"./utils/email-code.js\";\nexport { useEmailCode } from \"./utils/use-email-code.js\";\nexport type { EmailCode, EmailCodeApi } from \"./utils/use-email-code.js\";\nexport { AccountSection } from \"./components/account/account-section.js\";\nexport type { AccountSectionProps } from \"./components/account/account-section.js\";\nexport { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator } from \"./components/account/input-otp.js\";\nexport { EmailCodeEntry } from \"./components/account/email-code-entry.js\";\nexport type { EmailCodeEntryProps } from \"./components/account/email-code-entry.js\";\nexport { DevicesSection } from \"./components/account/devices-section.js\";\nexport type { DevicesSectionProps } from \"./components/account/devices-section.js\";\nexport { DeviceApprovalDialog } from \"./components/account/device-approval-dialog.js\";\nexport type { DeviceApprovalDialogProps } from \"./components/account/device-approval-dialog.js\";\nexport { GuardianRecoverySection } from \"./components/account/guardian-recovery-section.js\";\nexport type { GuardianRecoverySectionProps } from \"./components/account/guardian-recovery-section.js\";\nexport { AddGuardianDialog } from \"./components/account/add-guardian-dialog.js\";\nexport type { AddGuardianDialogProps } from \"./components/account/add-guardian-dialog.js\";\nexport type { DeviceWallet, GuardianWallet, LoadSealedOwner } from \"./components/account/wallet-types.js\";\nexport { ACTIVITY_TYPE_CONFIG, TYPE_FILTERS } from \"./data/activity.js\";\nexport type { ActivityTypeConfig } from \"./data/activity.js\";\nexport { HeroSlider, HeroSliderSkeleton } from \"./components/hero-slider.js\";\nexport type { HeroSliderProps } from \"./components/hero-slider.js\";\nexport { ActivityTicker } from \"./components/activity-ticker.js\";\nexport type { ActivityTickerProps } from \"./components/activity-ticker.js\";\nexport { ListingCard, ListingCardSkeleton } from \"./components/listing-card.js\";\nexport type { ListingCardProps } from \"./components/listing-card.js\";\nexport {\n MarketplaceTxLink,\n MarketplaceProcessingState,\n MarketplaceSignInGate,\n MarketplaceErrorState,\n MarketplaceDialogHero,\n CurrencyPicker,\n DurationPicker,\n MarketplaceConfirmStep,\n} from \"./components/marketplace-dialog-primitives.js\";\nexport { ActivityRow } from \"./components/activity-row.js\";\nexport { ActivityTimelineRow } from \"./components/activity-timeline-row.js\";\nexport type { ActivityTimelineRowProps } from \"./components/activity-timeline-row.js\";\nexport { DropItemList } from \"./components/drop-item-list.js\";\nexport type { DraftItem } from \"./components/drop-item-list.js\";\nexport { getDefaultClaimWindow, suggestLaunchpadSymbol } from \"./utils/launchpad-defaults.js\";\nexport { DropStatusBadge, DropSupplyProgress } from \"./components/drop/drop-status.js\";\nexport { DropCard, DropGrid, DropGridSkeleton } from \"./components/drop/drop-card.js\";\nexport { DropListing } from \"./components/drop/drop-listing.js\";\nexport { DropFeatures } from \"./components/drop/drop-features.js\";\nexport { MyDrops } from \"./components/drop/my-drops.js\";\nexport { DropTokenLink } from \"./components/drop/drop-token-link.js\";\nexport type { DropPhase } from \"./utils/drop/view.js\";\nexport { DropCreate, DraftSummary } from \"./components/drop/create/drop-create.js\";\nexport { ExclusiveFields } from \"./components/drop/create/exclusive-fields.js\";\nexport { DropPage } from \"./components/drop/page/drop-page.js\";\nexport { DropActionBox } from \"./components/drop/page/drop-action-box.js\";\nexport { DropActivityList } from \"./components/drop/page/drop-activity.js\";\nexport { claimProofFor } from \"./utils/drop/claim-proof.js\";\nexport type { DropSigner } from \"./utils/drop/types.js\";\nexport { MedialaneAppProvider, useMedialaneApp, type MedialaneApp, type CompanionApp, type AssetRef, type ReportTarget, type ReportDialogSlot } from \"./components/medialane-app.js\";\nexport { runIntentCalls } from \"./utils/run-intent-calls.js\";\nexport { GATED_CONTENT_TYPES, GATED_CONTENT_TYPE_FALLBACK } from \"./data/gated-content-types.js\";\nexport type { ContentTypeConfig } from \"./data/gated-content-types.js\";\nexport { CollapsibleSection } from \"./components/collapsible-section.js\";\nexport { useUsdPrices, usdPriceFor } from \"./utils/use-usd-prices.js\";\nexport type { UsdPrices } from \"./utils/use-usd-prices.js\";\nexport { NotificationRow } from \"./components/notification-row.js\";\nexport type { NotificationRowProps } from \"./components/notification-row.js\";\nexport { NOTIFICATION_ICON, NOTIFICATION_COLOR, NOTIFICATION_LABEL } from \"./data/notification-meta.js\";\nexport type { ActivityRowProps } from \"./components/activity-row.js\";\nexport { ActivityFeedShell } from \"./components/activity-feed-shell.js\";\nexport type { ActivityFeedShellProps } from \"./components/activity-feed-shell.js\";\nexport { CtaCardGrid } from \"./components/cta-card-grid.js\";\nexport type { CtaCardGridProps, CtaCardItem } from \"./components/cta-card-grid.js\";\n\nexport { DiscoverHero } from \"./components/discover-hero.js\";\nexport type { DiscoverHeroProps } from \"./components/discover-hero.js\";\nexport { FeaturedCarousel, FeaturedCarouselSkeleton } from \"./components/featured-carousel.js\";\nexport type { FeaturedCarouselProps } from \"./components/featured-carousel.js\";\nexport { DiscoverCollectionsStrip } from \"./components/discover-collections-strip.js\";\nexport type { DiscoverCollectionsStripProps } from \"./components/discover-collections-strip.js\";\nexport { DiscoverFeedSection, DiscoverActivityStrip } from \"./components/discover-feed-section.js\";\nexport type { DiscoverFeedSectionProps, DiscoverActivityStripProps } from \"./components/discover-feed-section.js\";\nexport { ActivityCard, ActivityCardSkeleton, ACTIVITY_MESSAGES } from \"./components/activity-card.js\";\nexport type { ActivityCardProps } from \"./components/activity-card.js\";\n\nexport { LaunchpadGroupedSections, LaunchpadServiceCard, SERVICE_HUES, useLaunchpadFilter } from \"./components/launchpad-services.js\";\nexport { LaunchpadFilterBar } from \"./components/launchpad-filter-bar.js\";\nexport type { LaunchpadFilterBarProps } from \"./components/launchpad-filter-bar.js\";\nexport { LaunchpadStrip } from \"./components/launchpad-strip.js\";\nexport type { LaunchpadStripProps } from \"./components/launchpad-strip.js\";\nexport { LaunchpadCtaBanner } from \"./components/launchpad-cta-banner.js\";\nexport type { LaunchpadCtaBannerProps } from \"./components/launchpad-cta-banner.js\";\nexport type { LaunchpadGroupedSectionsProps, LaunchpadServiceCardProps, ServiceOverride, ServiceOverrides } from \"./components/launchpad-services.js\";\nexport { LAUNCHPAD_ROUTE_OVERRIDES } from \"./components/launchpad-services.js\";\nexport { LAUNCHPAD_SERVICE_DEFINITIONS, LAUNCHPAD_SERVICE_GROUPS } from \"./data/launchpad-services.js\";\nexport type { ServiceDefinition, ServiceStatus, ServiceGroup, ServiceGroupDefinition } from \"./data/launchpad-services.js\";\n\nexport { NavCommandMenu, useNavCommandMenu, relevanceFilter, matchCommands } from \"./components/nav-command-menu.js\";\nexport { SearchPage } from \"./components/search-page.js\";\nexport { PortfolioOrders, type PortfolioOrdersView, type PortfolioOrderActions, type UsePortfolioOrderActions } from \"./components/portfolio-orders.js\";\nexport { PortfolioAssets, type PortfolioAssetActions, type UsePortfolioAssetActions } from \"./components/portfolio-assets.js\";\nexport { PortfolioShell, PORTFOLIO_TABS, type PortfolioTab } from \"./components/portfolio-shell.js\";\nexport { RewardsDashboard, REWARD_ACTION_LABELS } from \"./components/rewards/rewards-dashboard.js\";\nexport { LeaderboardPanel, type LeaderboardPanelProps } from \"./components/rewards/leaderboard-panel.js\";\nexport { CollectionNameClaim } from \"./components/collection-name-claim.js\";\nexport { DiscoverPage, type DiscoverPageProps } from \"./components/discover-page.js\";\nexport { DiscoverCommunitySection } from \"./components/discover-community-section.js\";\nexport { IpTypeNav } from \"./components/ip-type-nav.js\";\nexport { HomePage, type HomePageProps } from \"./components/home-page.js\";\nexport { CreatorsPage } from \"./components/creators-page.js\";\nexport { BackButton } from \"./components/back-button.js\";\nexport { SignInPrompt } from \"./components/sign-in-prompt.js\";\nexport { LaunchpadPage, type LaunchpadPageProps } from \"./components/launchpad-page.js\";\nexport { RemixBrowsePage } from \"./components/remix-browse-page.js\";\nexport { ServiceCollectionsPage } from \"./components/service-collections-page.js\";\nexport { EditionsPage } from \"./components/editions-page.js\";\nexport { DropsPage } from \"./components/drops-page.js\";\nexport { PopMyEventsPage } from \"./components/pop-my-events-page.js\";\nexport { CreatorPage, type CreatorPageProps } from \"./components/creator-page.js\";\nexport { MoreMenu } from \"./components/more-menu.js\";\nexport { LicenseRequestPage } from \"./components/license-request-page.js\";\nexport { orderUsd } from \"./utils/order-usd.js\";\nexport { getSeenOffers, markOffersAsSeen } from \"./utils/seen-offers.js\";\nexport { NAV_ITEMS, navGroups, type NavItemId, type NavGroupSpec } from \"./data/nav-commands.js\";\nexport { ResultThumbnail } from \"./components/result-thumbnail.js\";\nexport type { NavCommand, NavCommandGroup, NavCommandMenuProps } from \"./components/nav-command-menu.js\";\n\nexport {\n NavBrandButton,\n NavIconButton,\n NavWalletTrigger,\n NavAccountSheet,\n useNavAccountSheet,\n} from \"./components/nav-shell.js\";\nexport type {\n NavBrandButtonProps,\n NavIconButtonProps,\n NavWalletTriggerProps,\n NavAccountSheetProps,\n} from \"./components/nav-shell.js\";\n\nexport { PortfolioHeader } from \"./components/portfolio-header.js\";\nexport type {\n PortfolioHeaderProps,\n PortfolioHeaderScore,\n} from \"./components/portfolio-header.js\";\nexport { derivePortfolioCounts } from \"./utils/portfolio-counts.js\";\nexport type { PortfolioCounts, CountableOrder } from \"./utils/portfolio-counts.js\";\nexport { PortfolioSection } from \"./components/portfolio-section.js\";\nexport type {\n PortfolioSectionProps,\n PortfolioSectionColor,\n} from \"./components/portfolio-section.js\";\nexport { PortfolioChipFilter } from \"./components/portfolio-chip-filter.js\";\nexport type {\n PortfolioChipFilterProps,\n PortfolioChipFilterOption,\n} from \"./components/portfolio-chip-filter.js\";\n\nexport { ServiceHeader } from \"./components/service-header.js\";\nexport type { ServiceHeaderProps } from \"./components/service-header.js\";\nexport { ClaimRail } from \"./components/claim-rail.js\";\nexport type { ClaimRailProps } from \"./components/claim-rail.js\";\n\nexport { ServiceFormShell } from \"./components/service-form-shell.js\";\nexport type { ServiceFormShellProps } from \"./components/service-form-shell.js\";\nexport { StepNav } from \"./components/step-nav.js\";\nexport type { StepNavProps, StepNavStep } from \"./components/step-nav.js\";\n\nexport { LevelBadge } from \"./components/rewards/level-badge.js\";\nexport type { LevelBadgeProps } from \"./components/rewards/level-badge.js\";\nexport { XpProgress } from \"./components/rewards/xp-progress.js\";\nexport type { XpProgressProps } from \"./components/rewards/xp-progress.js\";\nexport { BadgeShelf } from \"./components/rewards/badge-shelf.js\";\nexport type { BadgeShelfProps, BadgeShelfBadge } from \"./components/rewards/badge-shelf.js\";\nexport { ScoreSummaryCard } from \"./components/rewards/score-summary-card.js\";\nexport type { ScoreSummaryCardProps } from \"./components/rewards/score-summary-card.js\";\nexport { LeaderboardTable, LeaderboardWidget } from \"./components/rewards/leaderboard-table.js\";\nexport type { LeaderboardTableProps, LeaderboardWidgetProps, LeaderboardEntryLike } from \"./components/rewards/leaderboard-table.js\";\nexport { LevelJourneyList } from \"./components/rewards/level-journey-list.js\";\nexport type { LevelJourneyListProps, LevelJourneyListLevel } from \"./components/rewards/level-journey-list.js\";\nexport { BadgeCatalog } from \"./components/rewards/badge-catalog.js\";\nexport type { BadgeCatalogProps, BadgeCatalogBadge } from \"./components/rewards/badge-catalog.js\";\nexport { XpEarned } from \"./components/rewards/xp-earned.js\";\nexport type { XpEarnedProps } from \"./components/rewards/xp-earned.js\";\nexport { useTransaction } from \"./utils/use-transaction.js\";\nexport type { TransactionPhase } from \"./utils/use-transaction.js\";\nexport { RewardEarned } from \"./components/rewards/reward-earned.js\";\nexport type { RewardEarnedProps, RewardSnapshot } from \"./components/rewards/reward-earned.js\";\n\nexport { LoadMoreSentinel } from \"./components/load-more-sentinel.js\";\nexport { ActivitiesFeed } from \"./components/activities-feed.js\";\nexport type { LoadMoreSentinelProps } from \"./components/load-more-sentinel.js\";\n\nexport { RewardsSection } from \"./components/rewards-section.js\";\nexport type { RewardsSectionProps } from \"./components/rewards-section.js\";\n\nexport { ActionButton } from \"./components/action-button.js\";\nexport type { ActionButtonProps, ActionKey, ToneKey } from \"./components/action-button.js\";\nexport { GradientButton } from \"./components/gradient-button.js\";\nexport type { GradientButtonProps } from \"./components/gradient-button.js\";\n\nexport { CoinLaunchPreview } from \"./components/coin-launch-preview.js\";\nexport type { CoinPreviewData } from \"./components/coin-launch-preview.js\";\nexport { CollectionCreateForm } from \"./components/launchpad/collection-create-form.js\";\nexport type { CollectionCreateFormProps } from \"./components/launchpad/collection-create-form.js\";\nexport { CLUB_PRESET, TICKETS_PRESET, EDITIONS_PRESET, SINGLE_PRESET } from \"./components/launchpad/collection-create-presets.js\";\nexport type { CollectionCreatePreset } from \"./components/launchpad/collection-create-presets.js\";\nexport { TierMintForm } from \"./components/launchpad/tier-mint-form.js\";\nexport type { TierMintFormProps } from \"./components/launchpad/tier-mint-form.js\";\nexport { CLUB_TIER_PRESET, TICKETS_TIER_PRESET } from \"./components/launchpad/tier-mint-presets.js\";\nexport type { TierMintPreset } from \"./components/launchpad/tier-mint-presets.js\";\nexport { SingleEditionMint } from \"./components/launchpad/single-edition-mint.js\";\nexport { CollectionPicker } from \"./components/launchpad/collection-picker.js\";\nexport type { CollectionPickerProps } from \"./components/launchpad/collection-picker.js\";\nexport { EditionMint } from \"./components/launchpad/edition-mint.js\";\nexport { RemixMint } from \"./components/launchpad/remix-mint.js\";\nexport { IpTypePage } from \"./components/ip-type-page.js\";\nexport type { IpTypePageProps } from \"./components/ip-type-page.js\";\nexport { CollectionsPage } from \"./components/collections-page.js\";\nexport { SponsorshipCreate } from \"./components/launchpad/sponsorship-create.js\";\nexport { PopCreate } from \"./components/launchpad/pop-create.js\";\nexport { PopClaimButton } from \"./components/pop-claim-button.js\";\nexport { PopBurnButton } from \"./components/pop-burn-button.js\";\nexport { PopManagePage } from \"./components/pop-manage-page.js\";\nexport { CommentsSection } from \"./components/comments-section.js\";\nexport type { CommentsSectionProps } from \"./components/comments-section.js\";\nexport type { PopBurnButtonProps } from \"./components/pop-burn-button.js\";\nexport { SponsorshipOffersPage } from \"./components/sponsorship-offers-page.js\";\nexport { SponsorshipOfferPage } from \"./components/sponsorship-offer-page.js\";\nexport { PortfolioSponsorships } from \"./components/portfolio-sponsorships.js\";\nexport { TransferCollectionOwnership } from \"./components/transfer-collection-ownership.js\";\nexport type { TransferCollectionOwnershipProps } from \"./components/transfer-collection-ownership.js\";\nexport { CoinCreate } from \"./components/launchpad/coin-create.js\";\nexport type { CoinCreateProps } from \"./components/launchpad/coin-create.js\";\nexport { WalletRequired } from \"./components/wallet-required.js\";\nexport type { WalletRequiredProps } from \"./components/wallet-required.js\";\nexport { ClaimRouteShell } from \"./components/claim-route-shell.js\";\nexport { useLaunchpadImageUpload } from \"./utils/use-launchpad-image-upload.js\";\nexport { invalidatePortfolioCache } from \"./utils/portfolio-cache.js\";\nexport { TransactionDialog } from \"./components/transaction-dialog.js\";\nexport type { TransactionDialogProps } from \"./components/transaction-dialog.js\";\nexport { TransactionSuccess } from \"./components/transaction-success.js\";\nexport type { TransactionSuccessProps, TransactionSuccessAction } from \"./components/transaction-success.js\";\nexport { successMessages } from \"./utils/success-messages.js\";\nexport type { SuccessMessage } from \"./utils/success-messages.js\";\nexport { MedialaneCollectionCard } from \"./components/medialane-collection-card.js\";\nexport type { MedialaneCollectionCardProps } from \"./components/medialane-collection-card.js\";\nexport { TokenGlyph, TokenAmount } from \"./components/token-glyph.js\";\nexport type { TokenGlyphProps, TokenAmountProps, TokenSymbol } from \"./components/token-glyph.js\";\n\nexport { StatTile, StatPill, StatPillRow } from \"./components/stat-tile.js\";\nexport type { StatTileProps, StatPillProps, StatPillRowItem } from \"./components/stat-tile.js\";\n\nexport { ActionDialog } from \"./components/action-dialog.js\";\nexport type { ActionDialogProps } from \"./components/action-dialog.js\";\n\nexport { HiddenContentBanner } from \"./components/hidden-content-banner.js\";\n\nexport { useRewardsCelebrations } from \"./components/rewards/use-rewards-celebrations.js\";\nexport { LevelUpCelebration } from \"./components/rewards/level-up-celebration.js\";\nexport type { LevelUpCelebrationProps } from \"./components/rewards/level-up-celebration.js\";\nexport { BadgeUnlocked } from \"./components/rewards/badge-unlocked.js\";\nexport type { BadgeUnlockedProps } from \"./components/rewards/badge-unlocked.js\";\nexport { JourneyPath } from \"./components/rewards/journey-path.js\";\nexport type { JourneyPathProps, JourneyStep } from \"./components/rewards/journey-path.js\";\n\nexport { Skeleton } from \"./components/skeleton.js\";\nexport { Badge, badgeVariants } from \"./components/badge.js\";\nexport type { BadgeProps } from \"./components/badge.js\";\nexport { Label } from \"./components/label.js\";\nexport { Input } from \"./components/input.js\";\nexport { Switch } from \"./components/switch.js\";\nexport { Checkbox } from \"./components/checkbox.js\";\nexport { Alert, AlertTitle, AlertDescription } from \"./components/alert.js\";\nexport { Tabs, TabsList, TabsTrigger, TabsContent } from \"./components/tabs.js\";\nexport { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent } from \"./components/card.js\";\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent } from \"./components/collapsible.js\";\nexport { Button, buttonVariants } from \"./components/button.js\";\nexport type { ButtonProps } from \"./components/button.js\";\nexport { Popover, PopoverTrigger, PopoverContent, PopoverAnchor } from \"./components/popover.js\";\nexport { HelpIcon } from \"./components/help-icon.js\";\nexport { EmptyOrError } from \"./components/empty-or-error.js\";\nexport { NewCollectionMenu, CollectionTypeChoices, COLLECTION_TYPES } from \"./components/new-collection-menu.js\";\nexport { ExternalLinkField } from \"./components/external-link-field.js\";\nexport { PortfolioCollections } from \"./components/portfolio-collections.js\";\nexport { TabEmptyState } from \"./components/tab-empty-state.js\";\nexport type { TabEmptyStateProps } from \"./components/tab-empty-state.js\";\nexport {\n Select, SelectGroup, SelectValue, SelectTrigger, SelectContent,\n SelectLabel, SelectItem, SelectSeparator, SelectScrollUpButton, SelectScrollDownButton,\n} from \"./components/select.js\";\nexport {\n useFormField, Form, FormItem, FormLabel, FormControl, FormDescription, FormMessage, FormField,\n} from \"./components/form.js\";\nexport { Textarea } from \"./components/textarea.js\";\nexport type { TextareaProps } from \"./components/textarea.js\";\nexport {\n Sheet, SheetPortal, SheetOverlay, SheetTrigger, SheetClose, SheetContent,\n SheetHeader, SheetFooter, SheetTitle, SheetDescription,\n} from \"./components/sheet.js\";\n\nexport { ToggleGroup, Section } from \"./components/create-form-primitives.js\";\nexport { OrderSortControl, sortOrders } from \"./components/order-sort-control.js\";\nexport type { OrderSort } from \"./components/order-sort-control.js\";\nexport { AssetLightbox } from \"./components/asset-lightbox.js\";\nexport type { AssetLightboxProps } from \"./components/asset-lightbox.js\";\nexport { PriceHistoryChart } from \"./components/price-history-chart.js\";\nexport type { PriceHistoryChartProps } from \"./components/price-history-chart.js\";\nexport { NavThemeToggle } from \"./components/nav-theme-toggle.js\";\nexport { JsonLd } from \"./components/json-ld.js\";\nexport type { JsonLdProps } from \"./components/json-ld.js\";\nexport { CreationRecord } from \"./components/creation-record.js\";\nexport type { CreationRecordProps } from \"./components/creation-record.js\";\nexport { ClubOwnerActions } from \"./components/club-owner-actions.js\";\nexport type { ClubOwnerActionsProps } from \"./components/club-owner-actions.js\";\nexport { IPTypeFields } from \"./components/ip-type-fields.js\";\nexport type { IPTypeFieldsProps, MetadataField } from \"./components/ip-type-fields.js\";\n\nexport { FastMint } from \"./components/fast-mint/fast-mint.js\";\nexport { Dropzone } from \"./components/fast-mint/dropzone.js\";\nexport type { DropzoneProps } from \"./components/fast-mint/dropzone.js\";\nexport { SuccessView } from \"./components/fast-mint/success-view.js\";\nexport type { SuccessViewProps } from \"./components/fast-mint/success-view.js\";\nexport type {\n MediaKind, FastMintSigner, MintedAsset, FastMintProps,\n} from \"./components/fast-mint/types.js\";\nexport { readBodyWithCap } from \"./utils/proxy-body.js\";\nexport type { CappedBody } from \"./utils/proxy-body.js\";\nexport {\n formatActivity, formatOrderNotification, formatOfferAcceptedNotification, formatAssetReceivedNotification,\n} from \"./utils/format-activity.js\";\nexport type { FormattedEvent } from \"./utils/format-activity.js\";\n\nexport { queryKeys, queryKeyPrefix, QUERY_PREFIX } from \"./utils/query-keys.js\";\nexport { useCollectionProfile, useCreatorProfile, useCreatorByUsername } from \"./utils/use-profiles.js\";\nexport { useActivities, useActivitiesByAddress } from \"./utils/use-activities.js\";\nexport {\n useCollections, useCollection, useCollectionsByOwner, useCollectionTokens, useNearbyCollectionTokens,\n} from \"./utils/use-collections.js\";\nexport type { CollectionSort } from \"./utils/use-collections.js\";\nexport { CreatorChip } from \"./components/creator-chip.js\";\nexport type { CreatorChipProps } from \"./components/creator-chip.js\";\nexport { CollectionActivityTab } from \"./components/collection-activity-tab.js\";\nexport type { CollectionActivityTabProps } from \"./components/collection-activity-tab.js\";\nexport { CollectionTraitsTab } from \"./components/collection-traits-tab.js\";\nexport type { CollectionTraitsTabProps } from \"./components/collection-traits-tab.js\";\nexport { PortfolioActivity } from \"./components/portfolio-activity.js\";\nexport type { PortfolioActivityProps } from \"./components/portfolio-activity.js\";\nexport { CreatorScoreInline } from \"./components/creator-score-inline.js\";\nexport type { CreatorScoreInlineProps } from \"./components/creator-score-inline.js\";\n\nexport { useMedialaneClient } from \"./utils/use-medialane-client.js\";\n\nexport { MediaWalletOverlay, useMediaWallet } from \"./components/media-wallet/media-wallet-overlay.js\";\nexport type {\n MediaWalletAppProps,\n MediaWalletHeaderIdentity,\n MediaWalletSession,\n MediaWalletView,\n WalletWriteAction,\n WalletWriteStatus,\n} from \"./components/media-wallet/types.js\";\nexport { useCreators } from \"./utils/use-creators.js\";\nexport { useSearch, SEARCH_MIN_LENGTH, type UseSearchOptions } from \"./utils/use-search.js\";\nexport {\n useRewards, useLeaderboard, useRewardsEvents, useRewardsConfig, useRewardsBatch,\n} from \"./utils/use-rewards.js\";\nexport type { UserRewards, LeaderboardEntry, BadgeSummary, LevelSummary } from \"./utils/use-rewards.js\";\n\nexport {\n useOrders, useOrder, useTokenListings, useUserOrders, useCounterOffers,\n useReceivedOffers, useCollectionFloorListings,\n} from \"./utils/use-orders.js\";\nexport { useNotifications } from \"./utils/use-notifications.js\";\nexport type { Notification, NotificationType, NotificationPriority, Announcement } from \"./data/notification.js\";\nexport { useTokenRemixes } from \"./utils/use-remix-offers.js\";\nexport { RemixesTab } from \"./components/remixes-tab.js\";\nexport type { RemixesTabProps } from \"./components/remixes-tab.js\";\n\nexport { OwnerSetupPanel } from \"./components/owner-setup-panel.js\";\nexport { DropCountdown } from \"./components/drop-countdown.js\";\nexport { CreatorAnalytics } from \"./components/creator-analytics.js\";\nexport {\n Dialog, DialogPortal, DialogOverlay, DialogClose, DialogTrigger,\n DialogContent, DialogHeader, DialogFooter, DialogTitle, DialogDescription,\n} from \"./components/dialog.js\";\nexport { SelfFundConsentDialog, feeLabelFor } from \"./components/wallet/self-fund-consent-dialog.js\";\nexport { ExportKeySection, type ExportKeySectionProps } from \"./components/wallet/export-key-section.js\";\nexport { useDrops, useMyDrops, useDrop, useDropMints, useDropFee, useDropFile, useDropChain } from \"./utils/use-drops.js\";\nexport type { DropChainState } from \"./utils/use-drops.js\";\nexport { usePopCollections, useMyPopEvents, usePopClaimStatus } from \"./utils/use-pop.js\";\nexport { usePlatformStats } from \"./utils/use-platform-stats.js\";\nexport { useTokensByIpType } from \"./utils/use-tokens-by-ip-type.js\";\nexport { usePriceMap, useCoinPrice } from \"./utils/use-coin-price.js\";\nexport {\n useSponsorshipOffers, useSponsorshipOffer, useSponsorshipBids, useSponsorshipProposals,\n useSponsorshipProposal, usePendingProposalsForAsset, useSponsorshipLicenses, useMySponsorshipDealCounts,\n} from \"./utils/use-sponsorship.js\";\nexport {\n predictNextMembershipId, predictNextTicketId, useMyClubCollections, useMyTicketCollections,\n useMembershipList, useTicketList, useMembershipOnchain, useTicketOnchain, useIsMemberOf,\n type TierOnchain, type TierListItem,\n} from \"./utils/use-tiers.js\";\nexport { sitemapChunks, sitemapEntries, sitemapIndexXml, type SitemapChunk, type SitemapEntry, type SitemapKind } from \"./utils/sitemap-data.js\";\nexport { useToken, useTokenBalance, useTokenHistory, useTokensByOwner } from \"./utils/use-tokens.js\";\nexport { checkIsOwner } from \"./utils/ownership.js\";\nexport { AssetOwnersPanel } from \"./components/asset-owners-panel.js\";\nexport { AssetUnavailable } from \"./components/asset-unavailable.js\";\nexport { AssetProvenanceTab } from \"./components/asset-provenance-tab.js\";\nexport { ASSET_ACCENTS, type AssetAccent, type AssetAccentName } from \"./utils/asset-accents.js\";\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA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","names":["import_ipfs","import_launchpad_services"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["\nexport { cn } from \"./utils/cn.js\";\nexport { formatDisplayPrice, parsePriceDisplay, isStableCurrency, formatUsd, formatUsdPrice, formatSmallDecimal } from \"./utils/format.js\";\nexport { shortenAddress } from \"./utils/address.js\";\nexport { profileIdentity, type ProfileIdentity, type ProfileIdentitySource } from \"./utils/profile-identity.js\";\nexport { ipfsToHttp, DEFAULT_GATEWAY as PINATA_PUBLIC_GATEWAY } from \"./utils/ipfs.js\";\nexport {\n uploadFileToIpfs,\n FILE_UPLOAD_FAILED,\n uploadJsonToIpfs,\n uploadDirectoryToIpfs,\n pinAssetMetadata,\n uploadFailureToast,\n isUserRejection,\n setUploadDiagnosticsReporter,\n type SignedUploadKind,\n type UploadedIpfsFile,\n type UploadDiagnostics,\n type PinAssetMetadataInput,\n type PinnedAsset,\n} from \"./utils/ipfs-upload.js\";\nexport { useIntersectionActive } from \"./utils/use-intersection-active.js\";\nexport { getReadIds, markRead } from \"./utils/notification-storage.js\";\nexport { licenseSummary } from \"./utils/license-summary.js\";\nexport {\n isBareExecuteFailure,\n isUserRejectedRequest,\n isWrongNetwork,\n assertCorrectNetwork,\n WrongNetworkError,\n} from \"./utils/wallet-error.js\";\nexport {\n describeError,\n UserFacingError,\n NOT_SUBMITTED,\n NETWORK_BUSY,\n CONNECTION_FAILED,\n} from \"./utils/describe-error.js\";\nexport type { ErrorNotice } from \"./utils/describe-error.js\";\n\nexport { IP_TYPE_DATA, IP_TYPE_DATA_MAP } from \"./data/ip-types.js\";\nexport type { IpTypeData } from \"./data/ip-types.js\";\nexport {\n IP_TYPES, LICENSE_TYPES, GEOGRAPHIC_SCOPES, AI_POLICIES,\n DERIVATIVES_OPTIONS, LICENSE_TRAIT_TYPES,\n} from \"./data/ip.js\";\nexport type { IPType, LicenseType } from \"./data/ip.js\";\nexport {\n IP_TEMPLATES, EMBED_PLATFORM_META, SOCIAL_PLATFORM_META, TEMPLATE_TRAIT_TYPES, DOC_UPLOAD,\n} from \"./data/ip-templates.js\";\nexport type { EmbedPlatform, SocialPlatform, TraitSuggestion, IPTemplate, DocUploadConfig } from \"./data/ip-templates.js\";\nexport { IPTypeDisplay } from \"./components/ip-type-display.js\";\nexport { AssetOverviewContent } from \"./components/asset-overview-content.js\";\nexport { AssetLicenseSummary } from \"./components/asset-license-summary.js\";\nexport { AssetMarketsTab } from \"./components/asset-markets-tab.js\";\nexport { ParentAttributionBanner } from \"./components/parent-attribution-banner.js\";\nexport type { ParentBannerProps } from \"./components/parent-attribution-banner.js\";\nexport { AssetMediaColumn, AssetHeaderBlock, AssetOwnerRow } from \"./components/asset-top-sections.js\";\nexport { ExpandableText } from \"./components/expandable-text.js\";\nexport { CollectionHeader, type CollectionHeaderProps } from \"./components/collection-header.js\";\nexport { CreatorHeader, type CreatorHeaderProps, type CreatorHeaderStat } from \"./components/creator-header.js\";\nexport { AssetPage, AssetPageSkeleton, detectAssetKind, type AssetPageProps, type AssetKind, type AssetMarketContext, type AssetMarketActions } from \"./components/asset-page.js\";\nexport { AssetCommentsDialog, type AssetCommentsDialogProps } from \"./components/asset-comments-dialog.js\";\nexport { CollectionPage, canTransferCollectionOwnership, type CollectionPageProps, type CollectionPageSlots, type CollectionMarketActions } from \"./components/collection-page.js\";\nexport { CollectionFiltersDialog, type CollectionFiltersDialogProps } from \"./components/collection-filters-dialog.js\";\nexport { GatedContentHero, GatedContentPanel, type GatedContent, type GatedContentState } from \"./components/gated-content.js\";\nexport { MakeOfferPicker } from \"./components/make-offer-picker.js\";\nexport { ListingCardMenu } from \"./components/listing-card-menu.js\";\nexport { FloatingCommentsButton } from \"./components/floating-comments-button.js\";\nexport { PageBackdrop } from \"./components/media-header.js\";\nexport { useComments, type UseCommentsResult } from \"./utils/use-comments.js\";\nexport { useFullTokenData } from \"./utils/use-full-token-data.js\";\nexport { useAssetMarketState, type AssetMarketState } from \"./utils/asset-market-state.js\";\nexport { assetAttributes, type AssetAttribute } from \"./utils/asset-attributes.js\";\nexport type { AssetOwnerRowProps } from \"./components/asset-top-sections.js\";\nexport { AssetCollectionBar } from \"./components/asset-collection-bar.js\";\nexport type { AssetCollectionBarProps, AssetCollectionBarSibling } from \"./components/asset-collection-bar.js\";\nexport { AssetUtilityIcons } from \"./components/asset-utility-icons.js\";\nexport type { AssetUtilityIconsProps } from \"./components/asset-utility-icons.js\";\nexport { AssetMarketplacePanel } from \"./components/asset-marketplace-panel.js\";\nexport type { AssetMarketplacePanelProps, ApiOrderLike } from \"./components/asset-marketplace-panel.js\";\nexport { BRAND } from \"./data/brand.js\";\nexport { LIVING_RENDER_COLLECTIONS, isLivingRenderCollection } from \"./data/living-render-collections.js\";\n\nexport { CurrencyIcon, CurrencyAmount } from \"./components/currency-icon.js\";\nexport type { CurrencyIconProps, CurrencyAmountProps } from \"./components/currency-icon.js\";\n\nexport { IpTypeBadge, IP_TYPE_CONFIG, IP_TYPE_MAP } from \"./components/ip-type-badge.js\";\nexport type { IpTypeBadgeProps, IpTypeConfig } from \"./components/ip-type-badge.js\";\n\nexport { AddressDisplay } from \"./components/address-display.js\";\nexport type { AddressDisplayProps } from \"./components/address-display.js\";\n\nexport { MedialaneLogoFull } from \"./components/brand-logo.js\";\nexport type { MedialaneLogoFullProps } from \"./components/brand-logo.js\";\n\nexport { MotionCard, FadeIn, Stagger, StaggerItem, KineticWords, SPRING, EASE_OUT } from \"./components/motion-primitives.js\";\nexport { PageContainer } from \"./components/page-container.js\";\nexport type { PageContainerProps } from \"./components/page-container.js\";\nexport { ScrollSection } from \"./components/scroll-section.js\";\nexport type { ScrollSectionProps } from \"./components/scroll-section.js\";\nexport { ShareButton } from \"./components/share-button.js\";\nexport type { ShareButtonProps } from \"./components/share-button.js\";\nexport { CollectionCard, CollectionCardSkeleton } from \"./components/collection-card.js\";\nexport type { CollectionCardProps } from \"./components/collection-card.js\";\nexport { TokenCard, TokenCardSkeleton } from \"./components/token-card.js\";\nexport type { TokenCardProps } from \"./components/token-card.js\";\nexport { AnimatedTokenMedia } from \"./components/animated-token-media.js\";\nexport type { AnimatedTokenMediaProps } from \"./components/animated-token-media.js\";\nexport { ThemeAmbientBackground } from \"./components/theme-ambient-background.js\";\nexport {\n useCollectionFilters, SORT_OPTIONS, CollectionFiltersTrigger, CollectionFiltersBody,\n} from \"./components/collection-filters.js\";\nexport type { TraitSection, CollectionFiltersTriggerProps, CollectionFiltersBodyProps } from \"./components/collection-filters.js\";\nexport {\n DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem,\n DropdownMenuCheckboxItem, DropdownMenuRadioItem, DropdownMenuLabel,\n DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuGroup,\n DropdownMenuPortal, DropdownMenuSub, DropdownMenuSubContent,\n DropdownMenuSubTrigger, DropdownMenuRadioGroup,\n} from \"./components/dropdown-menu.js\";\nexport { AssetCard, AssetCardSkeleton } from \"./components/asset-card.js\";\nexport type { AssetCardProps, AssetCardPrice } from \"./components/asset-card.js\";\nexport { AssetPicker } from \"./components/asset-picker.js\";\nexport type { AssetPickerProps, OwnedAsset } from \"./components/asset-picker.js\";\nexport { AssetSearchPicker } from \"./components/asset-search-picker.js\";\nexport type { AssetSearchPickerProps } from \"./components/asset-search-picker.js\";\nexport { LicenseTermsBuilder, EMPTY_SPONSORSHIP_TERMS, MEDIA_TYPES, DURATION_UNITS, toLicenseMetadata, toDurationDays } from \"./components/license-terms-builder.js\";\nexport type { LicenseTermsBuilderProps, SponsorshipTerms, DurationUnit } from \"./components/license-terms-builder.js\";\n\nexport {\n coinKind, coinKindLabel, coinKindLabelPlural, COIN_KINDS, coinAccentToken, coinServiceIds, isCoinService, formatCoinPrice, coinSupply, formatFdvUsd, fdvUsd,\n type CoinKind, type CoinCollectionLike, type CoinPriceLike,\n} from \"./data/coins.js\";\nexport { CoinGuarantees, type CoinGuaranteesProps, type CoinGuaranteesData } from \"./components/coin-guarantees.js\";\nexport { CoinRow, CoinRowSkeleton, CoinAvatar, COIN_GRID, type UseCoinPrice, type CoinRowProps, type CoinMarketStatus } from \"./components/coin-row.js\";\nexport { orderCoins, type CoinPriceSort } from \"./data/coin-order.js\";\nexport {\n CoinsExplorer,\n type CoinsExplorerProps, type CoinFilter, type CoinSort, type UseCoins, type UsePriceMap, type CoinCounts,\n} from \"./components/coins-explorer.js\";\n\nexport { timeAgo, timeUntil, isExpired } from \"./utils/time.js\";\nexport { toDisplayUrl, toDisplayUrlOrNull, toAbsoluteImageUrl, createImageResolver, type DisplayUrlOptions, type ImageResolver } from \"./utils/ipfs.js\";\nexport { useImageUrl } from \"./utils/use-image-url.js\";\nexport { isSameAddress } from \"./utils/same-address.js\";\nexport { createAppWallet } from \"./utils/app-wallet.js\";\nexport type { AppWalletConfig } from \"./utils/app-wallet.js\";\nexport { detectPasskeySupport } from \"./utils/passkey-support.js\";\nexport type { PasskeySupport } from \"./utils/passkey-support.js\";\nexport { describeWalletFailure, isPasskeyCancelled, passkeyUnsupportedReason } from \"./utils/wallet-failure.js\";\nexport type { PasskeyUnsupportedReason, WalletFailureKind, WalletFailureNotice } from \"./utils/wallet-failure.js\";\nexport {\n RESEND_COOLDOWN_SECONDS,\n canResendCode,\n canVerifyCode,\n emailCodeReducer,\n initialEmailCodeState,\n} from \"./utils/email-code.js\";\nexport type { EmailCodeAction, EmailCodeState, EmailCodeStatus } from \"./utils/email-code.js\";\nexport { useEmailCode } from \"./utils/use-email-code.js\";\nexport type { EmailCode, EmailCodeApi } from \"./utils/use-email-code.js\";\nexport { AccountSection } from \"./components/account/account-section.js\";\nexport type { AccountSectionProps } from \"./components/account/account-section.js\";\nexport { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator } from \"./components/account/input-otp.js\";\nexport { EmailCodeEntry } from \"./components/account/email-code-entry.js\";\nexport type { EmailCodeEntryProps } from \"./components/account/email-code-entry.js\";\nexport { DevicesSection } from \"./components/account/devices-section.js\";\nexport type { DevicesSectionProps } from \"./components/account/devices-section.js\";\nexport { DeviceApprovalDialog } from \"./components/account/device-approval-dialog.js\";\nexport type { DeviceApprovalDialogProps } from \"./components/account/device-approval-dialog.js\";\nexport { GuardianRecoverySection } from \"./components/account/guardian-recovery-section.js\";\nexport type { GuardianRecoverySectionProps } from \"./components/account/guardian-recovery-section.js\";\nexport { AddGuardianDialog } from \"./components/account/add-guardian-dialog.js\";\nexport type { AddGuardianDialogProps } from \"./components/account/add-guardian-dialog.js\";\nexport type { DeviceWallet, GuardianWallet, LoadSealedOwner } from \"./components/account/wallet-types.js\";\nexport { ACTIVITY_TYPE_CONFIG, TYPE_FILTERS } from \"./data/activity.js\";\nexport type { ActivityTypeConfig } from \"./data/activity.js\";\nexport { HeroSlider, HeroSliderSkeleton } from \"./components/hero-slider.js\";\nexport type { HeroSliderProps } from \"./components/hero-slider.js\";\nexport { ActivityTicker } from \"./components/activity-ticker.js\";\nexport type { ActivityTickerProps } from \"./components/activity-ticker.js\";\nexport { ListingCard, ListingCardSkeleton } from \"./components/listing-card.js\";\nexport type { ListingCardProps } from \"./components/listing-card.js\";\nexport {\n MarketplaceTxLink,\n MarketplaceProcessingState,\n MarketplaceSignInGate,\n MarketplaceErrorState,\n MarketplaceDialogHero,\n CurrencyPicker,\n DurationPicker,\n MarketplaceConfirmStep,\n} from \"./components/marketplace-dialog-primitives.js\";\nexport { ActivityRow } from \"./components/activity-row.js\";\nexport { ActivityTimelineRow } from \"./components/activity-timeline-row.js\";\nexport type { ActivityTimelineRowProps } from \"./components/activity-timeline-row.js\";\nexport { DropItemList } from \"./components/drop-item-list.js\";\nexport type { DraftItem } from \"./components/drop-item-list.js\";\nexport { getDefaultClaimWindow, suggestLaunchpadSymbol } from \"./utils/launchpad-defaults.js\";\nexport { DropStatusBadge, DropSupplyProgress } from \"./components/drop/drop-status.js\";\nexport { DropCard, DropGrid, DropGridSkeleton } from \"./components/drop/drop-card.js\";\nexport { DropListing } from \"./components/drop/drop-listing.js\";\nexport { DropFeatures } from \"./components/drop/drop-features.js\";\nexport { MyDrops } from \"./components/drop/my-drops.js\";\nexport { DropTokenLink } from \"./components/drop/drop-token-link.js\";\nexport type { DropPhase } from \"./utils/drop/view.js\";\nexport { DropCreate, DraftSummary } from \"./components/drop/create/drop-create.js\";\nexport { ExclusiveFields } from \"./components/drop/create/exclusive-fields.js\";\nexport { DropPage } from \"./components/drop/page/drop-page.js\";\nexport { DropActionBox } from \"./components/drop/page/drop-action-box.js\";\nexport { DropActivityList } from \"./components/drop/page/drop-activity.js\";\nexport { claimProofFor } from \"./utils/drop/claim-proof.js\";\nexport type { DropSigner } from \"./utils/drop/types.js\";\nexport { MedialaneAppProvider, useMedialaneApp, type MedialaneApp, type CompanionApp, type AssetRef, type ReportTarget, type ReportDialogSlot } from \"./components/medialane-app.js\";\nexport { runIntentCalls } from \"./utils/run-intent-calls.js\";\nexport { GATED_CONTENT_TYPES, GATED_CONTENT_TYPE_FALLBACK } from \"./data/gated-content-types.js\";\nexport type { ContentTypeConfig } from \"./data/gated-content-types.js\";\nexport { CollapsibleSection } from \"./components/collapsible-section.js\";\nexport { useUsdPrices, usdPriceFor } from \"./utils/use-usd-prices.js\";\nexport type { UsdPrices } from \"./utils/use-usd-prices.js\";\nexport { NotificationRow } from \"./components/notification-row.js\";\nexport type { NotificationRowProps } from \"./components/notification-row.js\";\nexport { NOTIFICATION_ICON, NOTIFICATION_COLOR, NOTIFICATION_LABEL } from \"./data/notification-meta.js\";\nexport type { ActivityRowProps } from \"./components/activity-row.js\";\nexport { ActivityFeedShell } from \"./components/activity-feed-shell.js\";\nexport type { ActivityFeedShellProps } from \"./components/activity-feed-shell.js\";\nexport { CtaCardGrid } from \"./components/cta-card-grid.js\";\nexport type { CtaCardGridProps, CtaCardItem } from \"./components/cta-card-grid.js\";\n\nexport { DiscoverHero } from \"./components/discover-hero.js\";\nexport type { DiscoverHeroProps } from \"./components/discover-hero.js\";\nexport { FeaturedCarousel, FeaturedCarouselSkeleton } from \"./components/featured-carousel.js\";\nexport type { FeaturedCarouselProps } from \"./components/featured-carousel.js\";\nexport { DiscoverCollectionsStrip } from \"./components/discover-collections-strip.js\";\nexport type { DiscoverCollectionsStripProps } from \"./components/discover-collections-strip.js\";\nexport { DiscoverFeedSection, DiscoverActivityStrip } from \"./components/discover-feed-section.js\";\nexport type { DiscoverFeedSectionProps, DiscoverActivityStripProps } from \"./components/discover-feed-section.js\";\nexport { ActivityCard, ActivityCardSkeleton, ACTIVITY_MESSAGES } from \"./components/activity-card.js\";\nexport type { ActivityCardProps } from \"./components/activity-card.js\";\n\nexport { LaunchpadGroupedSections, LaunchpadServiceCard, SERVICE_HUES, useLaunchpadFilter } from \"./components/launchpad-services.js\";\nexport { LaunchpadFilterBar } from \"./components/launchpad-filter-bar.js\";\nexport type { LaunchpadFilterBarProps } from \"./components/launchpad-filter-bar.js\";\nexport { LaunchpadStrip } from \"./components/launchpad-strip.js\";\nexport type { LaunchpadStripProps } from \"./components/launchpad-strip.js\";\nexport { LaunchpadCtaBanner } from \"./components/launchpad-cta-banner.js\";\nexport type { LaunchpadCtaBannerProps } from \"./components/launchpad-cta-banner.js\";\nexport type { LaunchpadGroupedSectionsProps, LaunchpadServiceCardProps, ServiceOverride, ServiceOverrides } from \"./components/launchpad-services.js\";\nexport { LAUNCHPAD_ROUTE_OVERRIDES } from \"./components/launchpad-services.js\";\nexport { LAUNCHPAD_SERVICE_DEFINITIONS, LAUNCHPAD_SERVICE_GROUPS } from \"./data/launchpad-services.js\";\nexport type { ServiceDefinition, ServiceStatus, ServiceGroup, ServiceGroupDefinition } from \"./data/launchpad-services.js\";\n\nexport { NavCommandMenu, useNavCommandMenu, relevanceFilter, matchCommands } from \"./components/nav-command-menu.js\";\nexport { SearchPage } from \"./components/search-page.js\";\nexport { PortfolioOrders, type PortfolioOrdersView, type PortfolioOrderActions, type UsePortfolioOrderActions } from \"./components/portfolio-orders.js\";\nexport { PortfolioAssets, type PortfolioAssetActions, type UsePortfolioAssetActions } from \"./components/portfolio-assets.js\";\nexport { PortfolioShell, PORTFOLIO_TABS, type PortfolioTab } from \"./components/portfolio-shell.js\";\nexport { RewardsDashboard, REWARD_ACTION_LABELS } from \"./components/rewards/rewards-dashboard.js\";\nexport { LeaderboardPanel, type LeaderboardPanelProps } from \"./components/rewards/leaderboard-panel.js\";\nexport { CollectionNameClaim } from \"./components/collection-name-claim.js\";\nexport { DiscoverPage, type DiscoverPageProps } from \"./components/discover-page.js\";\nexport { DiscoverCommunitySection } from \"./components/discover-community-section.js\";\nexport { IpTypeNav } from \"./components/ip-type-nav.js\";\nexport { HomePage, type HomePageProps } from \"./components/home-page.js\";\nexport { CreatorsPage } from \"./components/creators-page.js\";\nexport { BackButton } from \"./components/back-button.js\";\nexport { SignInPrompt } from \"./components/sign-in-prompt.js\";\nexport { LaunchpadPage, type LaunchpadPageProps } from \"./components/launchpad-page.js\";\nexport { RemixBrowsePage } from \"./components/remix-browse-page.js\";\nexport { ServiceCollectionsPage } from \"./components/service-collections-page.js\";\nexport { EditionsPage } from \"./components/editions-page.js\";\nexport { DropsPage } from \"./components/drops-page.js\";\nexport { PopMyEventsPage } from \"./components/pop-my-events-page.js\";\nexport { CreatorPage, type CreatorPageProps } from \"./components/creator-page.js\";\nexport { MoreMenu } from \"./components/more-menu.js\";\nexport { LicenseRequestPage } from \"./components/license-request-page.js\";\nexport { orderUsd } from \"./utils/order-usd.js\";\nexport { getSeenOffers, markOffersAsSeen } from \"./utils/seen-offers.js\";\nexport { NAV_ITEMS, navGroups, type NavItemId, type NavGroupSpec } from \"./data/nav-commands.js\";\nexport { ResultThumbnail } from \"./components/result-thumbnail.js\";\nexport type { NavCommand, NavCommandGroup, NavCommandMenuProps } from \"./components/nav-command-menu.js\";\n\nexport {\n NavBrandButton,\n NavIconButton,\n NavWalletTrigger,\n NavAccountSheet,\n useNavAccountSheet,\n} from \"./components/nav-shell.js\";\nexport type {\n NavBrandButtonProps,\n NavIconButtonProps,\n NavWalletTriggerProps,\n NavAccountSheetProps,\n} from \"./components/nav-shell.js\";\n\nexport { PortfolioHeader } from \"./components/portfolio-header.js\";\nexport type {\n PortfolioHeaderProps,\n PortfolioHeaderScore,\n} from \"./components/portfolio-header.js\";\nexport { derivePortfolioCounts } from \"./utils/portfolio-counts.js\";\nexport type { PortfolioCounts, CountableOrder } from \"./utils/portfolio-counts.js\";\nexport { PortfolioSection } from \"./components/portfolio-section.js\";\nexport type {\n PortfolioSectionProps,\n PortfolioSectionColor,\n} from \"./components/portfolio-section.js\";\nexport { PortfolioChipFilter } from \"./components/portfolio-chip-filter.js\";\nexport type {\n PortfolioChipFilterProps,\n PortfolioChipFilterOption,\n} from \"./components/portfolio-chip-filter.js\";\n\nexport { ServiceHeader } from \"./components/service-header.js\";\nexport type { ServiceHeaderProps } from \"./components/service-header.js\";\nexport { ClaimRail } from \"./components/claim-rail.js\";\nexport type { ClaimRailProps } from \"./components/claim-rail.js\";\n\nexport { ServiceFormShell } from \"./components/service-form-shell.js\";\nexport type { ServiceFormShellProps } from \"./components/service-form-shell.js\";\nexport { StepNav } from \"./components/step-nav.js\";\nexport type { StepNavProps, StepNavStep } from \"./components/step-nav.js\";\n\nexport { LevelBadge } from \"./components/rewards/level-badge.js\";\nexport type { LevelBadgeProps } from \"./components/rewards/level-badge.js\";\nexport { XpProgress } from \"./components/rewards/xp-progress.js\";\nexport type { XpProgressProps } from \"./components/rewards/xp-progress.js\";\nexport { BadgeShelf } from \"./components/rewards/badge-shelf.js\";\nexport type { BadgeShelfProps, BadgeShelfBadge } from \"./components/rewards/badge-shelf.js\";\nexport { ScoreSummaryCard } from \"./components/rewards/score-summary-card.js\";\nexport type { ScoreSummaryCardProps } from \"./components/rewards/score-summary-card.js\";\nexport { LeaderboardTable, LeaderboardWidget } from \"./components/rewards/leaderboard-table.js\";\nexport type { LeaderboardTableProps, LeaderboardWidgetProps, LeaderboardEntryLike } from \"./components/rewards/leaderboard-table.js\";\nexport { LevelJourneyList } from \"./components/rewards/level-journey-list.js\";\nexport type { LevelJourneyListProps, LevelJourneyListLevel } from \"./components/rewards/level-journey-list.js\";\nexport { BadgeCatalog } from \"./components/rewards/badge-catalog.js\";\nexport type { BadgeCatalogProps, BadgeCatalogBadge } from \"./components/rewards/badge-catalog.js\";\nexport { XpEarned } from \"./components/rewards/xp-earned.js\";\nexport type { XpEarnedProps } from \"./components/rewards/xp-earned.js\";\nexport { useTransaction } from \"./utils/use-transaction.js\";\nexport type { TransactionPhase } from \"./utils/use-transaction.js\";\nexport { RewardEarned } from \"./components/rewards/reward-earned.js\";\nexport type { RewardEarnedProps, RewardSnapshot } from \"./components/rewards/reward-earned.js\";\n\nexport { LoadMoreSentinel } from \"./components/load-more-sentinel.js\";\nexport { ActivitiesFeed } from \"./components/activities-feed.js\";\nexport type { LoadMoreSentinelProps } from \"./components/load-more-sentinel.js\";\n\nexport { RewardsSection } from \"./components/rewards-section.js\";\nexport type { RewardsSectionProps } from \"./components/rewards-section.js\";\n\nexport { ActionButton } from \"./components/action-button.js\";\nexport type { ActionButtonProps, ActionKey, ToneKey } from \"./components/action-button.js\";\nexport { GradientButton } from \"./components/gradient-button.js\";\nexport type { GradientButtonProps } from \"./components/gradient-button.js\";\n\nexport { CoinLaunchPreview } from \"./components/coin-launch-preview.js\";\nexport type { CoinPreviewData } from \"./components/coin-launch-preview.js\";\nexport { CollectionCreateForm } from \"./components/launchpad/collection-create-form.js\";\nexport type { CollectionCreateFormProps } from \"./components/launchpad/collection-create-form.js\";\nexport { CLUB_PRESET, TICKETS_PRESET, EDITIONS_PRESET, SINGLE_PRESET } from \"./components/launchpad/collection-create-presets.js\";\nexport type { CollectionCreatePreset } from \"./components/launchpad/collection-create-presets.js\";\nexport { TierMintForm } from \"./components/launchpad/tier-mint-form.js\";\nexport type { TierMintFormProps } from \"./components/launchpad/tier-mint-form.js\";\nexport { CLUB_TIER_PRESET, TICKETS_TIER_PRESET } from \"./components/launchpad/tier-mint-presets.js\";\nexport type { TierMintPreset } from \"./components/launchpad/tier-mint-presets.js\";\nexport { SingleEditionMint } from \"./components/launchpad/single-edition-mint.js\";\nexport { CollectionPicker } from \"./components/launchpad/collection-picker.js\";\nexport type { CollectionPickerProps } from \"./components/launchpad/collection-picker.js\";\nexport { EditionMint } from \"./components/launchpad/edition-mint.js\";\nexport { RemixMint } from \"./components/launchpad/remix-mint.js\";\nexport { IpTypePage } from \"./components/ip-type-page.js\";\nexport type { IpTypePageProps } from \"./components/ip-type-page.js\";\nexport { CollectionsPage } from \"./components/collections-page.js\";\nexport { SponsorshipCreate } from \"./components/launchpad/sponsorship-create.js\";\nexport { PopCreate } from \"./components/launchpad/pop-create.js\";\nexport { PopClaimButton } from \"./components/pop-claim-button.js\";\nexport { PopBurnButton } from \"./components/pop-burn-button.js\";\nexport { PopManagePage } from \"./components/pop-manage-page.js\";\nexport { CommentsSection } from \"./components/comments-section.js\";\nexport type { CommentsSectionProps } from \"./components/comments-section.js\";\nexport type { PopBurnButtonProps } from \"./components/pop-burn-button.js\";\nexport { SponsorshipOffersPage } from \"./components/sponsorship-offers-page.js\";\nexport { SponsorshipOfferPage } from \"./components/sponsorship-offer-page.js\";\nexport { PortfolioSponsorships } from \"./components/portfolio-sponsorships.js\";\nexport { TransferCollectionOwnership } from \"./components/transfer-collection-ownership.js\";\nexport type { TransferCollectionOwnershipProps } from \"./components/transfer-collection-ownership.js\";\nexport { CoinCreate } from \"./components/launchpad/coin-create.js\";\nexport type { CoinCreateProps } from \"./components/launchpad/coin-create.js\";\nexport { WalletRequired } from \"./components/wallet-required.js\";\nexport type { WalletRequiredProps } from \"./components/wallet-required.js\";\nexport { ClaimRouteShell } from \"./components/claim-route-shell.js\";\nexport { useLaunchpadImageUpload } from \"./utils/use-launchpad-image-upload.js\";\nexport { invalidatePortfolioCache } from \"./utils/portfolio-cache.js\";\nexport { TransactionDialog } from \"./components/transaction-dialog.js\";\nexport type { TransactionDialogProps } from \"./components/transaction-dialog.js\";\nexport { TransactionSuccess } from \"./components/transaction-success.js\";\nexport type { TransactionSuccessProps, TransactionSuccessAction } from \"./components/transaction-success.js\";\nexport { successMessages } from \"./utils/success-messages.js\";\nexport { emptyMessages } from \"./utils/empty-messages.js\";\nexport type { EmptyMessage } from \"./utils/empty-messages.js\";\nexport type { SuccessMessage } from \"./utils/success-messages.js\";\nexport { MedialaneCollectionCard } from \"./components/medialane-collection-card.js\";\nexport type { MedialaneCollectionCardProps } from \"./components/medialane-collection-card.js\";\nexport { TokenGlyph, TokenAmount } from \"./components/token-glyph.js\";\nexport type { TokenGlyphProps, TokenAmountProps, TokenSymbol } from \"./components/token-glyph.js\";\n\nexport { StatTile, StatPill, StatPillRow } from \"./components/stat-tile.js\";\nexport type { StatTileProps, StatPillProps, StatPillRowItem } from \"./components/stat-tile.js\";\n\nexport { ActionDialog } from \"./components/action-dialog.js\";\nexport type { ActionDialogProps } from \"./components/action-dialog.js\";\n\nexport { HiddenContentBanner } from \"./components/hidden-content-banner.js\";\n\nexport { useRewardsCelebrations } from \"./components/rewards/use-rewards-celebrations.js\";\nexport { LevelUpCelebration } from \"./components/rewards/level-up-celebration.js\";\nexport type { LevelUpCelebrationProps } from \"./components/rewards/level-up-celebration.js\";\nexport { BadgeUnlocked } from \"./components/rewards/badge-unlocked.js\";\nexport type { BadgeUnlockedProps } from \"./components/rewards/badge-unlocked.js\";\nexport { JourneyPath } from \"./components/rewards/journey-path.js\";\nexport type { JourneyPathProps, JourneyStep } from \"./components/rewards/journey-path.js\";\n\nexport { Skeleton } from \"./components/skeleton.js\";\nexport { Badge, badgeVariants } from \"./components/badge.js\";\nexport type { BadgeProps } from \"./components/badge.js\";\nexport { Label } from \"./components/label.js\";\nexport { Input } from \"./components/input.js\";\nexport { Switch } from \"./components/switch.js\";\nexport { Checkbox } from \"./components/checkbox.js\";\nexport { Alert, AlertTitle, AlertDescription } from \"./components/alert.js\";\nexport { Tabs, TabsList, TabsTrigger, TabsContent } from \"./components/tabs.js\";\nexport { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent } from \"./components/card.js\";\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent } from \"./components/collapsible.js\";\nexport { Button, buttonVariants } from \"./components/button.js\";\nexport type { ButtonProps } from \"./components/button.js\";\nexport { Popover, PopoverTrigger, PopoverContent, PopoverAnchor } from \"./components/popover.js\";\nexport { HelpIcon } from \"./components/help-icon.js\";\nexport { EmptyOrError } from \"./components/empty-or-error.js\";\nexport { NewCollectionMenu, CollectionTypeChoices, COLLECTION_TYPES } from \"./components/new-collection-menu.js\";\nexport { ExternalLinkField } from \"./components/external-link-field.js\";\nexport { PortfolioCollections } from \"./components/portfolio-collections.js\";\nexport { TabEmptyState } from \"./components/tab-empty-state.js\";\nexport type { TabEmptyStateProps } from \"./components/tab-empty-state.js\";\nexport {\n Select, SelectGroup, SelectValue, SelectTrigger, SelectContent,\n SelectLabel, SelectItem, SelectSeparator, SelectScrollUpButton, SelectScrollDownButton,\n} from \"./components/select.js\";\nexport {\n useFormField, Form, FormItem, FormLabel, FormControl, FormDescription, FormMessage, FormField,\n} from \"./components/form.js\";\nexport { Textarea } from \"./components/textarea.js\";\nexport type { TextareaProps } from \"./components/textarea.js\";\nexport {\n Sheet, SheetPortal, SheetOverlay, SheetTrigger, SheetClose, SheetContent,\n SheetHeader, SheetFooter, SheetTitle, SheetDescription,\n} from \"./components/sheet.js\";\n\nexport { ToggleGroup, Section } from \"./components/create-form-primitives.js\";\nexport { OrderSortControl, sortOrders } from \"./components/order-sort-control.js\";\nexport type { OrderSort } from \"./components/order-sort-control.js\";\nexport { AssetLightbox } from \"./components/asset-lightbox.js\";\nexport type { AssetLightboxProps } from \"./components/asset-lightbox.js\";\nexport { PriceHistoryChart } from \"./components/price-history-chart.js\";\nexport type { PriceHistoryChartProps } from \"./components/price-history-chart.js\";\nexport { NavThemeToggle } from \"./components/nav-theme-toggle.js\";\nexport { JsonLd } from \"./components/json-ld.js\";\nexport type { JsonLdProps } from \"./components/json-ld.js\";\nexport { CreationRecord } from \"./components/creation-record.js\";\nexport type { CreationRecordProps } from \"./components/creation-record.js\";\nexport { ClubOwnerActions } from \"./components/club-owner-actions.js\";\nexport type { ClubOwnerActionsProps } from \"./components/club-owner-actions.js\";\nexport { IPTypeFields } from \"./components/ip-type-fields.js\";\nexport type { IPTypeFieldsProps, MetadataField } from \"./components/ip-type-fields.js\";\n\nexport { FastMint } from \"./components/fast-mint/fast-mint.js\";\nexport { Dropzone } from \"./components/fast-mint/dropzone.js\";\nexport type { DropzoneProps } from \"./components/fast-mint/dropzone.js\";\nexport { SuccessView } from \"./components/fast-mint/success-view.js\";\nexport type { SuccessViewProps } from \"./components/fast-mint/success-view.js\";\nexport type {\n MediaKind, FastMintSigner, MintedAsset, FastMintProps,\n} from \"./components/fast-mint/types.js\";\nexport { readBodyWithCap } from \"./utils/proxy-body.js\";\nexport type { CappedBody } from \"./utils/proxy-body.js\";\nexport {\n formatActivity, formatOrderNotification, formatOfferAcceptedNotification, formatAssetReceivedNotification,\n} from \"./utils/format-activity.js\";\nexport type { FormattedEvent } from \"./utils/format-activity.js\";\n\nexport { queryKeys, queryKeyPrefix, QUERY_PREFIX } from \"./utils/query-keys.js\";\nexport { useCollectionProfile, useCreatorProfile, useCreatorByUsername } from \"./utils/use-profiles.js\";\nexport { useActivities, useActivitiesByAddress } from \"./utils/use-activities.js\";\nexport {\n useCollections, useCollection, useCollectionsByOwner, useCollectionTokens, useNearbyCollectionTokens,\n} from \"./utils/use-collections.js\";\nexport type { CollectionSort } from \"./utils/use-collections.js\";\nexport { CreatorChip } from \"./components/creator-chip.js\";\nexport type { CreatorChipProps } from \"./components/creator-chip.js\";\nexport { CollectionActivityTab } from \"./components/collection-activity-tab.js\";\nexport type { CollectionActivityTabProps } from \"./components/collection-activity-tab.js\";\nexport { CollectionTraitsTab } from \"./components/collection-traits-tab.js\";\nexport type { CollectionTraitsTabProps } from \"./components/collection-traits-tab.js\";\nexport { PortfolioActivity } from \"./components/portfolio-activity.js\";\nexport type { PortfolioActivityProps } from \"./components/portfolio-activity.js\";\nexport { CreatorScoreInline } from \"./components/creator-score-inline.js\";\nexport type { CreatorScoreInlineProps } from \"./components/creator-score-inline.js\";\n\nexport { useMedialaneClient } from \"./utils/use-medialane-client.js\";\n\nexport { MediaWalletOverlay, useMediaWallet } from \"./components/media-wallet/media-wallet-overlay.js\";\nexport type {\n MediaWalletAppProps,\n MediaWalletHeaderIdentity,\n MediaWalletSession,\n MediaWalletView,\n WalletWriteAction,\n WalletWriteStatus,\n} from \"./components/media-wallet/types.js\";\nexport { useCreators } from \"./utils/use-creators.js\";\nexport { useSearch, SEARCH_MIN_LENGTH, type UseSearchOptions } from \"./utils/use-search.js\";\nexport {\n useRewards, useLeaderboard, useRewardsEvents, useRewardsConfig, useRewardsBatch,\n} from \"./utils/use-rewards.js\";\nexport type { UserRewards, LeaderboardEntry, BadgeSummary, LevelSummary } from \"./utils/use-rewards.js\";\n\nexport {\n useOrders, useOrder, useTokenListings, useUserOrders, useCounterOffers,\n useReceivedOffers, useCollectionFloorListings,\n} from \"./utils/use-orders.js\";\nexport { useNotifications } from \"./utils/use-notifications.js\";\nexport type { Notification, NotificationType, NotificationPriority, Announcement } from \"./data/notification.js\";\nexport { useTokenRemixes } from \"./utils/use-remix-offers.js\";\nexport { RemixesTab } from \"./components/remixes-tab.js\";\nexport type { RemixesTabProps } from \"./components/remixes-tab.js\";\n\nexport { OwnerSetupPanel } from \"./components/owner-setup-panel.js\";\nexport { DropCountdown } from \"./components/drop-countdown.js\";\nexport { CreatorAnalytics } from \"./components/creator-analytics.js\";\nexport {\n Dialog, DialogPortal, DialogOverlay, DialogClose, DialogTrigger,\n DialogContent, DialogHeader, DialogFooter, DialogTitle, DialogDescription,\n} from \"./components/dialog.js\";\nexport { SelfFundConsentDialog, feeLabelFor } from \"./components/wallet/self-fund-consent-dialog.js\";\nexport { ExportKeySection, type ExportKeySectionProps } from \"./components/wallet/export-key-section.js\";\nexport { useDrops, useMyDrops, useDrop, useDropMints, useDropFee, useDropFile, useDropChain } from \"./utils/use-drops.js\";\nexport type { DropChainState } from \"./utils/use-drops.js\";\nexport { usePopCollections, useMyPopEvents, usePopClaimStatus } from \"./utils/use-pop.js\";\nexport { usePlatformStats } from \"./utils/use-platform-stats.js\";\nexport { useTokensByIpType } from \"./utils/use-tokens-by-ip-type.js\";\nexport { usePriceMap, useCoinPrice } from \"./utils/use-coin-price.js\";\nexport {\n useSponsorshipOffers, useSponsorshipOffer, useSponsorshipBids, useSponsorshipProposals,\n useSponsorshipProposal, usePendingProposalsForAsset, useSponsorshipLicenses, useMySponsorshipDealCounts,\n} from \"./utils/use-sponsorship.js\";\nexport {\n predictNextMembershipId, predictNextTicketId, useMyClubCollections, useMyTicketCollections,\n useMembershipList, useTicketList, useMembershipOnchain, useTicketOnchain, useIsMemberOf,\n type TierOnchain, type TierListItem,\n} from \"./utils/use-tiers.js\";\nexport { sitemapChunks, sitemapEntries, sitemapIndexXml, type SitemapChunk, type SitemapEntry, type SitemapKind } from \"./utils/sitemap-data.js\";\nexport { useToken, useTokenBalance, useTokenHistory, useTokensByOwner } from \"./utils/use-tokens.js\";\nexport { checkIsOwner } from \"./utils/ownership.js\";\nexport { AssetOwnersPanel } from \"./components/asset-owners-panel.js\";\nexport { AssetUnavailable } from \"./components/asset-unavailable.js\";\nexport { AssetProvenanceTab } from \"./components/asset-provenance-tab.js\";\nexport { ASSET_ACCENTS, type AssetAccent, type AssetAccentName } from \"./utils/asset-accents.js\";\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA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","names":["import_ipfs","import_launchpad_services"]}
|
package/dist/index.d.cts
CHANGED
|
@@ -201,6 +201,7 @@ export { invalidatePortfolioCache } from './utils/portfolio-cache.cjs';
|
|
|
201
201
|
export { TransactionDialog, TransactionDialogProps } from './components/transaction-dialog.cjs';
|
|
202
202
|
export { TransactionSuccess, TransactionSuccessAction, TransactionSuccessProps } from './components/transaction-success.cjs';
|
|
203
203
|
export { SuccessMessage, successMessages } from './utils/success-messages.cjs';
|
|
204
|
+
export { EmptyMessage, emptyMessages } from './utils/empty-messages.cjs';
|
|
204
205
|
export { MedialaneCollectionCard, MedialaneCollectionCardProps } from './components/medialane-collection-card.cjs';
|
|
205
206
|
export { TokenAmount, TokenAmountProps, TokenGlyph, TokenGlyphProps, TokenSymbol } from './components/token-glyph.cjs';
|
|
206
207
|
export { StatPill, StatPillProps, StatPillRow, StatPillRowItem, StatTile, StatTileProps } from './components/stat-tile.cjs';
|