@medialane/ui 0.164.1 → 0.166.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/button.d.cts +1 -1
- package/dist/components/button.d.ts +1 -1
- package/dist/index.cjs +11 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -2
- package/dist/index.d.ts +3 -2
- package/dist/index.js +12 -2
- package/dist/index.js.map +1 -1
- package/dist/utils/describe-error.cjs +124 -0
- package/dist/utils/describe-error.cjs.map +1 -0
- package/dist/utils/describe-error.d.cts +14 -0
- package/dist/utils/describe-error.d.ts +14 -0
- package/dist/utils/describe-error.js +101 -0
- package/dist/utils/describe-error.js.map +1 -0
- package/dist/utils/wallet-error.cjs +2 -82
- package/dist/utils/wallet-error.cjs.map +1 -1
- package/dist/utils/wallet-error.d.cts +2 -8
- package/dist/utils/wallet-error.d.ts +2 -8
- package/dist/utils/wallet-error.js +1 -81
- package/dist/utils/wallet-error.js.map +1 -1
- package/package.json +3 -3
|
@@ -3,7 +3,7 @@ import * as React from 'react';
|
|
|
3
3
|
import { VariantProps } from 'class-variance-authority';
|
|
4
4
|
|
|
5
5
|
declare const buttonVariants: (props?: ({
|
|
6
|
-
variant?: "
|
|
6
|
+
variant?: "link" | "default" | "destructive" | "outline" | "ghost" | "secondary" | "premium" | "tonal" | "gradient-border" | "gradient-fill" | null | undefined;
|
|
7
7
|
size?: "icon" | "default" | "sm" | "lg" | null | undefined;
|
|
8
8
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
9
9
|
interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
|
|
@@ -3,7 +3,7 @@ import * as React from 'react';
|
|
|
3
3
|
import { VariantProps } from 'class-variance-authority';
|
|
4
4
|
|
|
5
5
|
declare const buttonVariants: (props?: ({
|
|
6
|
-
variant?: "
|
|
6
|
+
variant?: "link" | "default" | "destructive" | "outline" | "ghost" | "secondary" | "premium" | "tonal" | "gradient-border" | "gradient-fill" | null | undefined;
|
|
7
7
|
size?: "icon" | "default" | "sm" | "lg" | null | undefined;
|
|
8
8
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
9
9
|
interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
|
package/dist/index.cjs
CHANGED
|
@@ -154,6 +154,7 @@ __export(index_exports, {
|
|
|
154
154
|
FormMessage: () => import_form.FormMessage,
|
|
155
155
|
GATED_CONTENT_TYPES: () => import_gated_content_types.GATED_CONTENT_TYPES,
|
|
156
156
|
GATED_CONTENT_TYPE_FALLBACK: () => import_gated_content_types.GATED_CONTENT_TYPE_FALLBACK,
|
|
157
|
+
GENERIC: () => import_describe_error.GENERIC,
|
|
157
158
|
GEOGRAPHIC_SCOPES: () => import_ip.GEOGRAPHIC_SCOPES,
|
|
158
159
|
GradientButton: () => import_gradient_button.GradientButton,
|
|
159
160
|
HelpIcon: () => import_help_icon.HelpIcon,
|
|
@@ -205,9 +206,11 @@ __export(index_exports, {
|
|
|
205
206
|
MedialaneCollectionCard: () => import_medialane_collection_card.MedialaneCollectionCard,
|
|
206
207
|
MedialaneLogoFull: () => import_brand_logo.MedialaneLogoFull,
|
|
207
208
|
MotionCard: () => import_motion_primitives.MotionCard,
|
|
209
|
+
NETWORK_BUSY: () => import_describe_error.NETWORK_BUSY,
|
|
208
210
|
NOTIFICATION_COLOR: () => import_notification_meta.NOTIFICATION_COLOR,
|
|
209
211
|
NOTIFICATION_ICON: () => import_notification_meta.NOTIFICATION_ICON,
|
|
210
212
|
NOTIFICATION_LABEL: () => import_notification_meta.NOTIFICATION_LABEL,
|
|
213
|
+
NOT_SUBMITTED: () => import_describe_error.NOT_SUBMITTED,
|
|
211
214
|
NavAccountSheet: () => import_nav_shell.NavAccountSheet,
|
|
212
215
|
NavBrandButton: () => import_nav_shell.NavBrandButton,
|
|
213
216
|
NavCommandMenu: () => import_nav_command_menu.NavCommandMenu,
|
|
@@ -286,6 +289,7 @@ __export(index_exports, {
|
|
|
286
289
|
TokenCard: () => import_token_card.TokenCard,
|
|
287
290
|
TokenCardSkeleton: () => import_token_card.TokenCardSkeleton,
|
|
288
291
|
TokenGlyph: () => import_token_glyph.TokenGlyph,
|
|
292
|
+
UserFacingError: () => import_describe_error.UserFacingError,
|
|
289
293
|
WrongNetworkError: () => import_wallet_error.WrongNetworkError,
|
|
290
294
|
XpEarned: () => import_xp_earned.XpEarned,
|
|
291
295
|
XpProgress: () => import_xp_progress.XpProgress,
|
|
@@ -303,6 +307,7 @@ __export(index_exports, {
|
|
|
303
307
|
coinSupply: () => import_coins.coinSupply,
|
|
304
308
|
createRewardEarned: () => import_reward_earned.createRewardEarned,
|
|
305
309
|
derivePortfolioCounts: () => import_portfolio_counts.derivePortfolioCounts,
|
|
310
|
+
describeError: () => import_describe_error.describeError,
|
|
306
311
|
dropCreateSchema: () => import_drop_create_schema.dropCreateSchema,
|
|
307
312
|
fdvUsd: () => import_coins.fdvUsd,
|
|
308
313
|
feeLabelFor: () => import_self_fund_consent_dialog.feeLabelFor,
|
|
@@ -319,7 +324,6 @@ __export(index_exports, {
|
|
|
319
324
|
getDefaultClaimWindow: () => import_launchpad_defaults.getDefaultClaimWindow,
|
|
320
325
|
getDefaultDropSchedule: () => import_launchpad_defaults.getDefaultDropSchedule,
|
|
321
326
|
getDropStatus: () => import_drop_status.getDropStatus,
|
|
322
|
-
getFriendlyWalletError: () => import_wallet_error.getFriendlyWalletError,
|
|
323
327
|
getReadIds: () => import_notification_storage.getReadIds,
|
|
324
328
|
ipfsToHttp: () => import_ipfs.ipfsToHttp,
|
|
325
329
|
isBareExecuteFailure: () => import_wallet_error.isBareExecuteFailure,
|
|
@@ -401,6 +405,7 @@ var import_use_intersection_active = require("./utils/use-intersection-active.js
|
|
|
401
405
|
var import_notification_storage = require("./utils/notification-storage.js");
|
|
402
406
|
var import_license_summary = require("./utils/license-summary.js");
|
|
403
407
|
var import_wallet_error = require("./utils/wallet-error.js");
|
|
408
|
+
var import_describe_error = require("./utils/describe-error.js");
|
|
404
409
|
var import_ip_types = require("./data/ip-types.js");
|
|
405
410
|
var import_ip = require("./data/ip.js");
|
|
406
411
|
var import_ip_templates = require("./data/ip-templates.js");
|
|
@@ -705,6 +710,7 @@ var import_export_key_section = require("./components/wallet/export-key-section.
|
|
|
705
710
|
FormMessage,
|
|
706
711
|
GATED_CONTENT_TYPES,
|
|
707
712
|
GATED_CONTENT_TYPE_FALLBACK,
|
|
713
|
+
GENERIC,
|
|
708
714
|
GEOGRAPHIC_SCOPES,
|
|
709
715
|
GradientButton,
|
|
710
716
|
HelpIcon,
|
|
@@ -756,9 +762,11 @@ var import_export_key_section = require("./components/wallet/export-key-section.
|
|
|
756
762
|
MedialaneCollectionCard,
|
|
757
763
|
MedialaneLogoFull,
|
|
758
764
|
MotionCard,
|
|
765
|
+
NETWORK_BUSY,
|
|
759
766
|
NOTIFICATION_COLOR,
|
|
760
767
|
NOTIFICATION_ICON,
|
|
761
768
|
NOTIFICATION_LABEL,
|
|
769
|
+
NOT_SUBMITTED,
|
|
762
770
|
NavAccountSheet,
|
|
763
771
|
NavBrandButton,
|
|
764
772
|
NavCommandMenu,
|
|
@@ -837,6 +845,7 @@ var import_export_key_section = require("./components/wallet/export-key-section.
|
|
|
837
845
|
TokenCard,
|
|
838
846
|
TokenCardSkeleton,
|
|
839
847
|
TokenGlyph,
|
|
848
|
+
UserFacingError,
|
|
840
849
|
WrongNetworkError,
|
|
841
850
|
XpEarned,
|
|
842
851
|
XpProgress,
|
|
@@ -854,6 +863,7 @@ var import_export_key_section = require("./components/wallet/export-key-section.
|
|
|
854
863
|
coinSupply,
|
|
855
864
|
createRewardEarned,
|
|
856
865
|
derivePortfolioCounts,
|
|
866
|
+
describeError,
|
|
857
867
|
dropCreateSchema,
|
|
858
868
|
fdvUsd,
|
|
859
869
|
feeLabelFor,
|
|
@@ -870,7 +880,6 @@ var import_export_key_section = require("./components/wallet/export-key-section.
|
|
|
870
880
|
getDefaultClaimWindow,
|
|
871
881
|
getDefaultDropSchedule,
|
|
872
882
|
getDropStatus,
|
|
873
|
-
getFriendlyWalletError,
|
|
874
883
|
getReadIds,
|
|
875
884
|
ipfsToHttp,
|
|
876
885
|
isBareExecuteFailure,
|
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 uploadJsonToIpfs,\n uploadDirectoryToIpfs,\n pinAssetMetadata,\n uploadFailureToast,\n isUserRejection,\n type SignedUploadKind,\n type UploadedIpfsFile,\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 getFriendlyWalletError,\n isBareExecuteFailure,\n isUserRejectedRequest,\n isWrongNetwork,\n assertCorrectNetwork,\n WrongNetworkError,\n} from \"./utils/wallet-error.js\";\nexport type { FriendlyWalletError } from \"./utils/wallet-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, buildEditionStats } from \"./components/asset-top-sections.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 { EmailVerificationGate } from \"./components/email-verification-gate.js\";\nexport type { EmailVerificationGateProps } from \"./components/email-verification-gate.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, type DisplayUrlOptions } from \"./utils/ipfs.js\";\nexport { isSameAddress } from \"./utils/same-address.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 MarketplaceSuccessState,\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 { dropCreateSchema } from \"./data/drop-create-schema.js\";\nexport type { DropCreateFormValues } from \"./data/drop-create-schema.js\";\nexport { getDefaultDropSchedule, getDefaultClaimWindow, suggestLaunchpadSymbol } from \"./utils/launchpad-defaults.js\";\nexport { getDropStatus } from \"./utils/drop-status.js\";\nexport type { DropConditions, DropStatus } from \"./utils/drop-status.js\";\nexport { DropStatusBadge, DropSupplyProgress, DropPriceDisplay } from \"./components/drop-status-display.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 { ExclusiveContentSection } from \"./components/exclusive-content-section.js\";\nexport { DropPreviewCard } from \"./components/drop-preview-card.js\";\nexport type { DropPreviewCardProps } from \"./components/drop-preview-card.js\";\nexport { DropCreateForm } from \"./components/drop-create-form.js\";\nexport type { PaymentTokenOption } from \"./components/drop-create-form.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 { DiscoverCreatorsStrip } from \"./components/discover-creators-strip.js\";\nexport type { DiscoverCreatorsStripProps } from \"./components/discover-creators-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 } from \"./components/nav-command-menu.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 { createRewardEarned } 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 { ActivitiesFeedProps } 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 { 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\";\nexport { CollectionHeroBanner } from \"./components/collection-hero-banner.js\";\nexport type { CollectionHeroBannerProps, CollectionHeroStat } from \"./components/collection-hero-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 { 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 } 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\";\nexport { useCreators } from \"./utils/use-creators.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 { apiFetch, ApiError } from \"./utils/api-fetch.js\";\nexport type { ApiFetchConfig, ApiFetchOptions } from \"./utils/api-fetch.js\";\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\";\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;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 uploadJsonToIpfs,\n uploadDirectoryToIpfs,\n pinAssetMetadata,\n uploadFailureToast,\n isUserRejection,\n type SignedUploadKind,\n type UploadedIpfsFile,\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 GENERIC,\n NETWORK_BUSY,\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, buildEditionStats } from \"./components/asset-top-sections.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 { EmailVerificationGate } from \"./components/email-verification-gate.js\";\nexport type { EmailVerificationGateProps } from \"./components/email-verification-gate.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, type DisplayUrlOptions } from \"./utils/ipfs.js\";\nexport { isSameAddress } from \"./utils/same-address.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 MarketplaceSuccessState,\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 { dropCreateSchema } from \"./data/drop-create-schema.js\";\nexport type { DropCreateFormValues } from \"./data/drop-create-schema.js\";\nexport { getDefaultDropSchedule, getDefaultClaimWindow, suggestLaunchpadSymbol } from \"./utils/launchpad-defaults.js\";\nexport { getDropStatus } from \"./utils/drop-status.js\";\nexport type { DropConditions, DropStatus } from \"./utils/drop-status.js\";\nexport { DropStatusBadge, DropSupplyProgress, DropPriceDisplay } from \"./components/drop-status-display.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 { ExclusiveContentSection } from \"./components/exclusive-content-section.js\";\nexport { DropPreviewCard } from \"./components/drop-preview-card.js\";\nexport type { DropPreviewCardProps } from \"./components/drop-preview-card.js\";\nexport { DropCreateForm } from \"./components/drop-create-form.js\";\nexport type { PaymentTokenOption } from \"./components/drop-create-form.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 { DiscoverCreatorsStrip } from \"./components/discover-creators-strip.js\";\nexport type { DiscoverCreatorsStripProps } from \"./components/discover-creators-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 } from \"./components/nav-command-menu.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 { createRewardEarned } 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 { ActivitiesFeedProps } 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 { 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\";\nexport { CollectionHeroBanner } from \"./components/collection-hero-banner.js\";\nexport type { CollectionHeroBannerProps, CollectionHeroStat } from \"./components/collection-hero-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 { 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 } 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\";\nexport { useCreators } from \"./utils/use-creators.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 { apiFetch, ApiError } from \"./utils/api-fetch.js\";\nexport type { ApiFetchConfig, ApiFetchOptions } from \"./utils/api-fetch.js\";\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\";\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;AA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","names":["import_ipfs","import_launchpad_services"]}
|
package/dist/index.d.cts
CHANGED
|
@@ -7,7 +7,8 @@ export { PinAssetMetadataInput, PinnedAsset, SignedUploadKind, UploadedIpfsFile,
|
|
|
7
7
|
export { useIntersectionActive } from './utils/use-intersection-active.cjs';
|
|
8
8
|
export { getReadIds, markRead } from './utils/notification-storage.cjs';
|
|
9
9
|
export { licenseSummary } from './utils/license-summary.cjs';
|
|
10
|
-
export {
|
|
10
|
+
export { WrongNetworkError, assertCorrectNetwork, isBareExecuteFailure, isUserRejectedRequest, isWrongNetwork } from './utils/wallet-error.cjs';
|
|
11
|
+
export { ErrorNotice, GENERIC, NETWORK_BUSY, NOT_SUBMITTED, describeError } from './utils/describe-error.cjs';
|
|
11
12
|
export { IP_TYPE_DATA, IP_TYPE_DATA_MAP, IpTypeData } from './data/ip-types.cjs';
|
|
12
13
|
export { AI_POLICIES, DERIVATIVES_OPTIONS, GEOGRAPHIC_SCOPES, IPType, IP_TYPES, LICENSE_TRAIT_TYPES, LICENSE_TYPES, LicenseType } from './data/ip.cjs';
|
|
13
14
|
export { DOC_UPLOAD, DocUploadConfig, EMBED_PLATFORM_META, EmbedPlatform, IPTemplate, IP_TEMPLATES, SOCIAL_PLATFORM_META, SocialPlatform, TEMPLATE_TRAIT_TYPES, TraitSuggestion } from './data/ip-templates.cjs';
|
|
@@ -174,8 +175,8 @@ export { CreatorAnalytics } from './components/creator-analytics.cjs';
|
|
|
174
175
|
export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger } from './components/dialog.cjs';
|
|
175
176
|
export { SelfFundConsentDialog, feeLabelFor } from './components/wallet/self-fund-consent-dialog.cjs';
|
|
176
177
|
export { ExportKeySection, ExportKeySectionProps } from './components/wallet/export-key-section.cjs';
|
|
178
|
+
export { UserFacingError } from '@medialane/sdk';
|
|
177
179
|
import 'clsx';
|
|
178
|
-
import '@medialane/sdk';
|
|
179
180
|
import 'react';
|
|
180
181
|
import 'lucide-react';
|
|
181
182
|
import 'react/jsx-runtime';
|
package/dist/index.d.ts
CHANGED
|
@@ -7,7 +7,8 @@ export { PinAssetMetadataInput, PinnedAsset, SignedUploadKind, UploadedIpfsFile,
|
|
|
7
7
|
export { useIntersectionActive } from './utils/use-intersection-active.js';
|
|
8
8
|
export { getReadIds, markRead } from './utils/notification-storage.js';
|
|
9
9
|
export { licenseSummary } from './utils/license-summary.js';
|
|
10
|
-
export {
|
|
10
|
+
export { WrongNetworkError, assertCorrectNetwork, isBareExecuteFailure, isUserRejectedRequest, isWrongNetwork } from './utils/wallet-error.js';
|
|
11
|
+
export { ErrorNotice, GENERIC, NETWORK_BUSY, NOT_SUBMITTED, describeError } from './utils/describe-error.js';
|
|
11
12
|
export { IP_TYPE_DATA, IP_TYPE_DATA_MAP, IpTypeData } from './data/ip-types.js';
|
|
12
13
|
export { AI_POLICIES, DERIVATIVES_OPTIONS, GEOGRAPHIC_SCOPES, IPType, IP_TYPES, LICENSE_TRAIT_TYPES, LICENSE_TYPES, LicenseType } from './data/ip.js';
|
|
13
14
|
export { DOC_UPLOAD, DocUploadConfig, EMBED_PLATFORM_META, EmbedPlatform, IPTemplate, IP_TEMPLATES, SOCIAL_PLATFORM_META, SocialPlatform, TEMPLATE_TRAIT_TYPES, TraitSuggestion } from './data/ip-templates.js';
|
|
@@ -174,8 +175,8 @@ export { CreatorAnalytics } from './components/creator-analytics.js';
|
|
|
174
175
|
export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger } from './components/dialog.js';
|
|
175
176
|
export { SelfFundConsentDialog, feeLabelFor } from './components/wallet/self-fund-consent-dialog.js';
|
|
176
177
|
export { ExportKeySection, ExportKeySectionProps } from './components/wallet/export-key-section.js';
|
|
178
|
+
export { UserFacingError } from '@medialane/sdk';
|
|
177
179
|
import 'clsx';
|
|
178
|
-
import '@medialane/sdk';
|
|
179
180
|
import 'react';
|
|
180
181
|
import 'lucide-react';
|
|
181
182
|
import 'react/jsx-runtime';
|
package/dist/index.js
CHANGED
|
@@ -15,13 +15,19 @@ import { useIntersectionActive } from "./utils/use-intersection-active.js";
|
|
|
15
15
|
import { getReadIds, markRead } from "./utils/notification-storage.js";
|
|
16
16
|
import { licenseSummary } from "./utils/license-summary.js";
|
|
17
17
|
import {
|
|
18
|
-
getFriendlyWalletError,
|
|
19
18
|
isBareExecuteFailure,
|
|
20
19
|
isUserRejectedRequest,
|
|
21
20
|
isWrongNetwork,
|
|
22
21
|
assertCorrectNetwork,
|
|
23
22
|
WrongNetworkError
|
|
24
23
|
} from "./utils/wallet-error.js";
|
|
24
|
+
import {
|
|
25
|
+
describeError,
|
|
26
|
+
UserFacingError,
|
|
27
|
+
NOT_SUBMITTED,
|
|
28
|
+
GENERIC,
|
|
29
|
+
NETWORK_BUSY
|
|
30
|
+
} from "./utils/describe-error.js";
|
|
25
31
|
import { IP_TYPE_DATA, IP_TYPE_DATA_MAP } from "./data/ip-types.js";
|
|
26
32
|
import {
|
|
27
33
|
IP_TYPES,
|
|
@@ -456,6 +462,7 @@ export {
|
|
|
456
462
|
FormMessage,
|
|
457
463
|
GATED_CONTENT_TYPES,
|
|
458
464
|
GATED_CONTENT_TYPE_FALLBACK,
|
|
465
|
+
GENERIC,
|
|
459
466
|
GEOGRAPHIC_SCOPES,
|
|
460
467
|
GradientButton,
|
|
461
468
|
HelpIcon,
|
|
@@ -507,9 +514,11 @@ export {
|
|
|
507
514
|
MedialaneCollectionCard,
|
|
508
515
|
MedialaneLogoFull,
|
|
509
516
|
MotionCard,
|
|
517
|
+
NETWORK_BUSY,
|
|
510
518
|
NOTIFICATION_COLOR,
|
|
511
519
|
NOTIFICATION_ICON,
|
|
512
520
|
NOTIFICATION_LABEL,
|
|
521
|
+
NOT_SUBMITTED,
|
|
513
522
|
NavAccountSheet,
|
|
514
523
|
NavBrandButton,
|
|
515
524
|
NavCommandMenu,
|
|
@@ -588,6 +597,7 @@ export {
|
|
|
588
597
|
TokenCard,
|
|
589
598
|
TokenCardSkeleton,
|
|
590
599
|
TokenGlyph,
|
|
600
|
+
UserFacingError,
|
|
591
601
|
WrongNetworkError,
|
|
592
602
|
XpEarned,
|
|
593
603
|
XpProgress,
|
|
@@ -605,6 +615,7 @@ export {
|
|
|
605
615
|
coinSupply,
|
|
606
616
|
createRewardEarned,
|
|
607
617
|
derivePortfolioCounts,
|
|
618
|
+
describeError,
|
|
608
619
|
dropCreateSchema,
|
|
609
620
|
fdvUsd,
|
|
610
621
|
feeLabelFor,
|
|
@@ -621,7 +632,6 @@ export {
|
|
|
621
632
|
getDefaultClaimWindow,
|
|
622
633
|
getDefaultDropSchedule,
|
|
623
634
|
getDropStatus,
|
|
624
|
-
getFriendlyWalletError,
|
|
625
635
|
getReadIds,
|
|
626
636
|
ipfsToHttp,
|
|
627
637
|
isBareExecuteFailure,
|
package/dist/index.js.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 uploadJsonToIpfs,\n uploadDirectoryToIpfs,\n pinAssetMetadata,\n uploadFailureToast,\n isUserRejection,\n type SignedUploadKind,\n type UploadedIpfsFile,\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 getFriendlyWalletError,\n isBareExecuteFailure,\n isUserRejectedRequest,\n isWrongNetwork,\n assertCorrectNetwork,\n WrongNetworkError,\n} from \"./utils/wallet-error.js\";\nexport type { FriendlyWalletError } from \"./utils/wallet-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, buildEditionStats } from \"./components/asset-top-sections.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 { EmailVerificationGate } from \"./components/email-verification-gate.js\";\nexport type { EmailVerificationGateProps } from \"./components/email-verification-gate.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, type DisplayUrlOptions } from \"./utils/ipfs.js\";\nexport { isSameAddress } from \"./utils/same-address.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 MarketplaceSuccessState,\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 { dropCreateSchema } from \"./data/drop-create-schema.js\";\nexport type { DropCreateFormValues } from \"./data/drop-create-schema.js\";\nexport { getDefaultDropSchedule, getDefaultClaimWindow, suggestLaunchpadSymbol } from \"./utils/launchpad-defaults.js\";\nexport { getDropStatus } from \"./utils/drop-status.js\";\nexport type { DropConditions, DropStatus } from \"./utils/drop-status.js\";\nexport { DropStatusBadge, DropSupplyProgress, DropPriceDisplay } from \"./components/drop-status-display.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 { ExclusiveContentSection } from \"./components/exclusive-content-section.js\";\nexport { DropPreviewCard } from \"./components/drop-preview-card.js\";\nexport type { DropPreviewCardProps } from \"./components/drop-preview-card.js\";\nexport { DropCreateForm } from \"./components/drop-create-form.js\";\nexport type { PaymentTokenOption } from \"./components/drop-create-form.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 { DiscoverCreatorsStrip } from \"./components/discover-creators-strip.js\";\nexport type { DiscoverCreatorsStripProps } from \"./components/discover-creators-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 } from \"./components/nav-command-menu.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 { createRewardEarned } 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 { ActivitiesFeedProps } 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 { 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\";\nexport { CollectionHeroBanner } from \"./components/collection-hero-banner.js\";\nexport type { CollectionHeroBannerProps, CollectionHeroStat } from \"./components/collection-hero-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 { 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 } 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\";\nexport { useCreators } from \"./utils/use-creators.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 { apiFetch, ApiError } from \"./utils/api-fetch.js\";\nexport type { ApiFetchConfig, ApiFetchOptions } from \"./utils/api-fetch.js\";\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\";\n"],"mappings":"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","names":[]}
|
|
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 uploadJsonToIpfs,\n uploadDirectoryToIpfs,\n pinAssetMetadata,\n uploadFailureToast,\n isUserRejection,\n type SignedUploadKind,\n type UploadedIpfsFile,\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 GENERIC,\n NETWORK_BUSY,\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, buildEditionStats } from \"./components/asset-top-sections.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 { EmailVerificationGate } from \"./components/email-verification-gate.js\";\nexport type { EmailVerificationGateProps } from \"./components/email-verification-gate.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, type DisplayUrlOptions } from \"./utils/ipfs.js\";\nexport { isSameAddress } from \"./utils/same-address.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 MarketplaceSuccessState,\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 { dropCreateSchema } from \"./data/drop-create-schema.js\";\nexport type { DropCreateFormValues } from \"./data/drop-create-schema.js\";\nexport { getDefaultDropSchedule, getDefaultClaimWindow, suggestLaunchpadSymbol } from \"./utils/launchpad-defaults.js\";\nexport { getDropStatus } from \"./utils/drop-status.js\";\nexport type { DropConditions, DropStatus } from \"./utils/drop-status.js\";\nexport { DropStatusBadge, DropSupplyProgress, DropPriceDisplay } from \"./components/drop-status-display.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 { ExclusiveContentSection } from \"./components/exclusive-content-section.js\";\nexport { DropPreviewCard } from \"./components/drop-preview-card.js\";\nexport type { DropPreviewCardProps } from \"./components/drop-preview-card.js\";\nexport { DropCreateForm } from \"./components/drop-create-form.js\";\nexport type { PaymentTokenOption } from \"./components/drop-create-form.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 { DiscoverCreatorsStrip } from \"./components/discover-creators-strip.js\";\nexport type { DiscoverCreatorsStripProps } from \"./components/discover-creators-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 } from \"./components/nav-command-menu.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 { createRewardEarned } 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 { ActivitiesFeedProps } 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 { 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\";\nexport { CollectionHeroBanner } from \"./components/collection-hero-banner.js\";\nexport type { CollectionHeroBannerProps, CollectionHeroStat } from \"./components/collection-hero-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 { 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 } 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\";\nexport { useCreators } from \"./utils/use-creators.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 { apiFetch, ApiError } from \"./utils/api-fetch.js\";\nexport type { ApiFetchConfig, ApiFetchOptions } from \"./utils/api-fetch.js\";\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\";\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var describe_error_exports = {};
|
|
20
|
+
__export(describe_error_exports, {
|
|
21
|
+
GENERIC: () => GENERIC,
|
|
22
|
+
NETWORK_BUSY: () => NETWORK_BUSY,
|
|
23
|
+
NOT_SUBMITTED: () => NOT_SUBMITTED,
|
|
24
|
+
UserFacingError: () => import_sdk.UserFacingError,
|
|
25
|
+
describeError: () => describeError
|
|
26
|
+
});
|
|
27
|
+
module.exports = __toCommonJS(describe_error_exports);
|
|
28
|
+
var import_sdk = require("@medialane/sdk");
|
|
29
|
+
var import_wallet_error = require("./wallet-error.js");
|
|
30
|
+
const NOT_SUBMITTED = "Request not completed. Nothing was submitted.";
|
|
31
|
+
const GENERIC = "Something went wrong. Please try again.";
|
|
32
|
+
const NETWORK_BUSY = "The network is busy right now. Nothing was submitted. Please try again in a moment.";
|
|
33
|
+
function isTransientStatus(status) {
|
|
34
|
+
return status === 408 || status === 429 || status >= 500;
|
|
35
|
+
}
|
|
36
|
+
function isTransientNetworkError(text) {
|
|
37
|
+
return /-32001|unable to complete request|service unavailable|temporarily unavailable|rate.?limit|too many requests|gateway time-?out|bad gateway|failed to fetch|fetch failed|network ?error|load failed/i.test(
|
|
38
|
+
text
|
|
39
|
+
);
|
|
40
|
+
}
|
|
41
|
+
function describeError(error, fallback) {
|
|
42
|
+
if (error instanceof import_sdk.PasskeyCancelledError) {
|
|
43
|
+
return {
|
|
44
|
+
title: "Request not completed",
|
|
45
|
+
message: NOT_SUBMITTED,
|
|
46
|
+
description: "Your device did not confirm this request. Nothing was submitted. Try again when you are ready.",
|
|
47
|
+
isUserRejection: true
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
if ((0, import_wallet_error.isBareExecuteFailure)(error)) {
|
|
51
|
+
return {
|
|
52
|
+
title: "Request not completed",
|
|
53
|
+
message: NOT_SUBMITTED,
|
|
54
|
+
description: "Your wallet didn't complete this request. This usually means you closed or declined it, your wallet needs extra verification (like 2FA) before it can sign, or your wallet hit a temporary network hiccup. Nothing was submitted. Try again in a moment.",
|
|
55
|
+
isUserRejection: true
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
if ((0, import_wallet_error.isUserRejectedRequest)(error)) {
|
|
59
|
+
return {
|
|
60
|
+
title: "Request not completed",
|
|
61
|
+
message: NOT_SUBMITTED,
|
|
62
|
+
description: "Your wallet didn't complete this request. You may have closed or declined it, or it may need extra verification before it can sign. Nothing was submitted.",
|
|
63
|
+
isUserRejection: true
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
if (error instanceof import_wallet_error.WrongNetworkError) {
|
|
67
|
+
return {
|
|
68
|
+
title: "Wrong network",
|
|
69
|
+
message: "Your wallet is connected to the wrong network. Nothing was submitted.",
|
|
70
|
+
description: "Switch your wallet to Starknet Mainnet, then try again.",
|
|
71
|
+
isUserRejection: false
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
if (error instanceof import_sdk.UserFacingError) {
|
|
75
|
+
return { title: "Something went wrong", message: error.message, isUserRejection: false };
|
|
76
|
+
}
|
|
77
|
+
if (error instanceof import_sdk.MedialaneApiError) {
|
|
78
|
+
if (error.isAuthored) {
|
|
79
|
+
return { title: "Something went wrong", message: error.message, isUserRejection: false };
|
|
80
|
+
}
|
|
81
|
+
if (isTransientStatus(error.status)) {
|
|
82
|
+
return { title: "Network busy", message: NETWORK_BUSY, isUserRejection: false };
|
|
83
|
+
}
|
|
84
|
+
return { title: "Something went wrong", message: fallback ?? GENERIC, isUserRejection: false };
|
|
85
|
+
}
|
|
86
|
+
const raw = (0, import_wallet_error.collectErrorText)(error);
|
|
87
|
+
if (isTransientNetworkError(raw)) {
|
|
88
|
+
return { title: "Network busy", message: NETWORK_BUSY, isUserRejection: false };
|
|
89
|
+
}
|
|
90
|
+
const lower = raw.toLowerCase();
|
|
91
|
+
if (lower.includes("insufficient") && /balance|allowance|funds/.test(lower)) {
|
|
92
|
+
return {
|
|
93
|
+
title: "Insufficient balance",
|
|
94
|
+
message: "You don't have enough balance to complete this transaction.",
|
|
95
|
+
isUserRejection: false
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
const stack = error instanceof Error && typeof error.stack === "string" ? error.stack.toLowerCase() : "";
|
|
99
|
+
if (lower.includes("validation failure") && (lower.includes("jscontrollererror") || stack.includes("jscontrollererror"))) {
|
|
100
|
+
return {
|
|
101
|
+
title: "Not enough gas",
|
|
102
|
+
message: "Your wallet doesn't have enough STRK (or ETH) to pay for this transaction's gas fee.",
|
|
103
|
+
description: "Add funds to your wallet, then try again.",
|
|
104
|
+
isUserRejection: false
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
if (/unknown_error/i.test(raw) || typeof error === "object" && error !== null && error.code === 163) {
|
|
108
|
+
return {
|
|
109
|
+
title: "Something went wrong",
|
|
110
|
+
message: "Your wallet couldn't complete this transaction. Nothing was submitted. Try again, or try a different wallet or device if it keeps happening.",
|
|
111
|
+
isUserRejection: false
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
return { title: "Something went wrong", message: fallback ?? GENERIC, isUserRejection: false };
|
|
115
|
+
}
|
|
116
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
117
|
+
0 && (module.exports = {
|
|
118
|
+
GENERIC,
|
|
119
|
+
NETWORK_BUSY,
|
|
120
|
+
NOT_SUBMITTED,
|
|
121
|
+
UserFacingError,
|
|
122
|
+
describeError
|
|
123
|
+
});
|
|
124
|
+
//# sourceMappingURL=describe-error.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utils/describe-error.ts"],"sourcesContent":["import { MedialaneApiError, PasskeyCancelledError, UserFacingError } from \"@medialane/sdk\";\nimport {\n WrongNetworkError,\n isBareExecuteFailure,\n isUserRejectedRequest,\n collectErrorText,\n} from \"./wallet-error.js\";\n\nexport const NOT_SUBMITTED = \"Request not completed. Nothing was submitted.\";\nexport const GENERIC = \"Something went wrong. Please try again.\";\nexport const NETWORK_BUSY =\n \"The network is busy right now. Nothing was submitted. Please try again in a moment.\";\n\nexport interface ErrorNotice {\n title: string;\n message: string;\n description?: string;\n isUserRejection: boolean;\n}\n\nfunction isTransientStatus(status: number): boolean {\n return status === 408 || status === 429 || status >= 500;\n}\n\nfunction isTransientNetworkError(text: string): boolean {\n return /-32001|unable to complete request|service unavailable|temporarily unavailable|rate.?limit|too many requests|gateway time-?out|bad gateway|failed to fetch|fetch failed|network ?error|load failed/i.test(\n text,\n );\n}\n\nexport function describeError(error: unknown, fallback?: string): ErrorNotice {\n if (error instanceof PasskeyCancelledError) {\n return {\n title: \"Request not completed\",\n message: NOT_SUBMITTED,\n description: \"Your device did not confirm this request. Nothing was submitted. Try again when you are ready.\",\n isUserRejection: true,\n };\n }\n\n if (isBareExecuteFailure(error)) {\n return {\n title: \"Request not completed\",\n message: NOT_SUBMITTED,\n description: \"Your wallet didn't complete this request. This usually means you closed or declined it, your wallet needs extra verification (like 2FA) before it can sign, or your wallet hit a temporary network hiccup. Nothing was submitted. Try again in a moment.\",\n isUserRejection: true,\n };\n }\n\n if (isUserRejectedRequest(error)) {\n return {\n title: \"Request not completed\",\n message: NOT_SUBMITTED,\n description: \"Your wallet didn't complete this request. You may have closed or declined it, or it may need extra verification before it can sign. Nothing was submitted.\",\n isUserRejection: true,\n };\n }\n\n if (error instanceof WrongNetworkError) {\n return {\n title: \"Wrong network\",\n message: \"Your wallet is connected to the wrong network. Nothing was submitted.\",\n description: \"Switch your wallet to Starknet Mainnet, then try again.\",\n isUserRejection: false,\n };\n }\n\n if (error instanceof UserFacingError) {\n return { title: \"Something went wrong\", message: error.message, isUserRejection: false };\n }\n\n if (error instanceof MedialaneApiError) {\n if (error.isAuthored) {\n return { title: \"Something went wrong\", message: error.message, isUserRejection: false };\n }\n if (isTransientStatus(error.status)) {\n return { title: \"Network busy\", message: NETWORK_BUSY, isUserRejection: false };\n }\n return { title: \"Something went wrong\", message: fallback ?? GENERIC, isUserRejection: false };\n }\n\n const raw = collectErrorText(error);\n\n if (isTransientNetworkError(raw)) {\n return { title: \"Network busy\", message: NETWORK_BUSY, isUserRejection: false };\n }\n\n const lower = raw.toLowerCase();\n if (lower.includes(\"insufficient\") && /balance|allowance|funds/.test(lower)) {\n return {\n title: \"Insufficient balance\",\n message: \"You don't have enough balance to complete this transaction.\",\n isUserRejection: false,\n };\n }\n\n const stack = error instanceof Error && typeof error.stack === \"string\" ? error.stack.toLowerCase() : \"\";\n if (lower.includes(\"validation failure\") && (lower.includes(\"jscontrollererror\") || stack.includes(\"jscontrollererror\"))) {\n return {\n title: \"Not enough gas\",\n message: \"Your wallet doesn't have enough STRK (or ETH) to pay for this transaction's gas fee.\",\n description: \"Add funds to your wallet, then try again.\",\n isUserRejection: false,\n };\n }\n\n if (/unknown_error/i.test(raw) || (typeof error === \"object\" && error !== null && (error as { code?: unknown }).code === 163)) {\n return {\n title: \"Something went wrong\",\n message: \"Your wallet couldn't complete this transaction. Nothing was submitted. Try again, or try a different wallet or device if it keeps happening.\",\n isUserRejection: false,\n };\n }\n\n return { title: \"Something went wrong\", message: fallback ?? GENERIC, isUserRejection: false };\n}\n\nexport { UserFacingError };\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAA0E;AAC1E,0BAKO;AAEA,MAAM,gBAAgB;AACtB,MAAM,UAAU;AAChB,MAAM,eACX;AASF,SAAS,kBAAkB,QAAyB;AAClD,SAAO,WAAW,OAAO,WAAW,OAAO,UAAU;AACvD;AAEA,SAAS,wBAAwB,MAAuB;AACtD,SAAO,qMAAqM;AAAA,IAC1M;AAAA,EACF;AACF;AAEO,SAAS,cAAc,OAAgB,UAAgC;AAC5E,MAAI,iBAAiB,kCAAuB;AAC1C,WAAO;AAAA,MACL,OAAO;AAAA,MACP,SAAS;AAAA,MACT,aAAa;AAAA,MACb,iBAAiB;AAAA,IACnB;AAAA,EACF;AAEA,UAAI,0CAAqB,KAAK,GAAG;AAC/B,WAAO;AAAA,MACL,OAAO;AAAA,MACP,SAAS;AAAA,MACT,aAAa;AAAA,MACb,iBAAiB;AAAA,IACnB;AAAA,EACF;AAEA,UAAI,2CAAsB,KAAK,GAAG;AAChC,WAAO;AAAA,MACL,OAAO;AAAA,MACP,SAAS;AAAA,MACT,aAAa;AAAA,MACb,iBAAiB;AAAA,IACnB;AAAA,EACF;AAEA,MAAI,iBAAiB,uCAAmB;AACtC,WAAO;AAAA,MACL,OAAO;AAAA,MACP,SAAS;AAAA,MACT,aAAa;AAAA,MACb,iBAAiB;AAAA,IACnB;AAAA,EACF;AAEA,MAAI,iBAAiB,4BAAiB;AACpC,WAAO,EAAE,OAAO,wBAAwB,SAAS,MAAM,SAAS,iBAAiB,MAAM;AAAA,EACzF;AAEA,MAAI,iBAAiB,8BAAmB;AACtC,QAAI,MAAM,YAAY;AACpB,aAAO,EAAE,OAAO,wBAAwB,SAAS,MAAM,SAAS,iBAAiB,MAAM;AAAA,IACzF;AACA,QAAI,kBAAkB,MAAM,MAAM,GAAG;AACnC,aAAO,EAAE,OAAO,gBAAgB,SAAS,cAAc,iBAAiB,MAAM;AAAA,IAChF;AACA,WAAO,EAAE,OAAO,wBAAwB,SAAS,YAAY,SAAS,iBAAiB,MAAM;AAAA,EAC/F;AAEA,QAAM,UAAM,sCAAiB,KAAK;AAElC,MAAI,wBAAwB,GAAG,GAAG;AAChC,WAAO,EAAE,OAAO,gBAAgB,SAAS,cAAc,iBAAiB,MAAM;AAAA,EAChF;AAEA,QAAM,QAAQ,IAAI,YAAY;AAC9B,MAAI,MAAM,SAAS,cAAc,KAAK,0BAA0B,KAAK,KAAK,GAAG;AAC3E,WAAO;AAAA,MACL,OAAO;AAAA,MACP,SAAS;AAAA,MACT,iBAAiB;AAAA,IACnB;AAAA,EACF;AAEA,QAAM,QAAQ,iBAAiB,SAAS,OAAO,MAAM,UAAU,WAAW,MAAM,MAAM,YAAY,IAAI;AACtG,MAAI,MAAM,SAAS,oBAAoB,MAAM,MAAM,SAAS,mBAAmB,KAAK,MAAM,SAAS,mBAAmB,IAAI;AACxH,WAAO;AAAA,MACL,OAAO;AAAA,MACP,SAAS;AAAA,MACT,aAAa;AAAA,MACb,iBAAiB;AAAA,IACnB;AAAA,EACF;AAEA,MAAI,iBAAiB,KAAK,GAAG,KAAM,OAAO,UAAU,YAAY,UAAU,QAAS,MAA6B,SAAS,KAAM;AAC7H,WAAO;AAAA,MACL,OAAO;AAAA,MACP,SAAS;AAAA,MACT,iBAAiB;AAAA,IACnB;AAAA,EACF;AAEA,SAAO,EAAE,OAAO,wBAAwB,SAAS,YAAY,SAAS,iBAAiB,MAAM;AAC/F;","names":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export { UserFacingError } from '@medialane/sdk';
|
|
2
|
+
|
|
3
|
+
declare const NOT_SUBMITTED = "Request not completed. Nothing was submitted.";
|
|
4
|
+
declare const GENERIC = "Something went wrong. Please try again.";
|
|
5
|
+
declare const NETWORK_BUSY = "The network is busy right now. Nothing was submitted. Please try again in a moment.";
|
|
6
|
+
interface ErrorNotice {
|
|
7
|
+
title: string;
|
|
8
|
+
message: string;
|
|
9
|
+
description?: string;
|
|
10
|
+
isUserRejection: boolean;
|
|
11
|
+
}
|
|
12
|
+
declare function describeError(error: unknown, fallback?: string): ErrorNotice;
|
|
13
|
+
|
|
14
|
+
export { type ErrorNotice, GENERIC, NETWORK_BUSY, NOT_SUBMITTED, describeError };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export { UserFacingError } from '@medialane/sdk';
|
|
2
|
+
|
|
3
|
+
declare const NOT_SUBMITTED = "Request not completed. Nothing was submitted.";
|
|
4
|
+
declare const GENERIC = "Something went wrong. Please try again.";
|
|
5
|
+
declare const NETWORK_BUSY = "The network is busy right now. Nothing was submitted. Please try again in a moment.";
|
|
6
|
+
interface ErrorNotice {
|
|
7
|
+
title: string;
|
|
8
|
+
message: string;
|
|
9
|
+
description?: string;
|
|
10
|
+
isUserRejection: boolean;
|
|
11
|
+
}
|
|
12
|
+
declare function describeError(error: unknown, fallback?: string): ErrorNotice;
|
|
13
|
+
|
|
14
|
+
export { type ErrorNotice, GENERIC, NETWORK_BUSY, NOT_SUBMITTED, describeError };
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { MedialaneApiError, PasskeyCancelledError, UserFacingError } from "@medialane/sdk";
|
|
2
|
+
import {
|
|
3
|
+
WrongNetworkError,
|
|
4
|
+
isBareExecuteFailure,
|
|
5
|
+
isUserRejectedRequest,
|
|
6
|
+
collectErrorText
|
|
7
|
+
} from "./wallet-error.js";
|
|
8
|
+
const NOT_SUBMITTED = "Request not completed. Nothing was submitted.";
|
|
9
|
+
const GENERIC = "Something went wrong. Please try again.";
|
|
10
|
+
const NETWORK_BUSY = "The network is busy right now. Nothing was submitted. Please try again in a moment.";
|
|
11
|
+
function isTransientStatus(status) {
|
|
12
|
+
return status === 408 || status === 429 || status >= 500;
|
|
13
|
+
}
|
|
14
|
+
function isTransientNetworkError(text) {
|
|
15
|
+
return /-32001|unable to complete request|service unavailable|temporarily unavailable|rate.?limit|too many requests|gateway time-?out|bad gateway|failed to fetch|fetch failed|network ?error|load failed/i.test(
|
|
16
|
+
text
|
|
17
|
+
);
|
|
18
|
+
}
|
|
19
|
+
function describeError(error, fallback) {
|
|
20
|
+
if (error instanceof PasskeyCancelledError) {
|
|
21
|
+
return {
|
|
22
|
+
title: "Request not completed",
|
|
23
|
+
message: NOT_SUBMITTED,
|
|
24
|
+
description: "Your device did not confirm this request. Nothing was submitted. Try again when you are ready.",
|
|
25
|
+
isUserRejection: true
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
if (isBareExecuteFailure(error)) {
|
|
29
|
+
return {
|
|
30
|
+
title: "Request not completed",
|
|
31
|
+
message: NOT_SUBMITTED,
|
|
32
|
+
description: "Your wallet didn't complete this request. This usually means you closed or declined it, your wallet needs extra verification (like 2FA) before it can sign, or your wallet hit a temporary network hiccup. Nothing was submitted. Try again in a moment.",
|
|
33
|
+
isUserRejection: true
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
if (isUserRejectedRequest(error)) {
|
|
37
|
+
return {
|
|
38
|
+
title: "Request not completed",
|
|
39
|
+
message: NOT_SUBMITTED,
|
|
40
|
+
description: "Your wallet didn't complete this request. You may have closed or declined it, or it may need extra verification before it can sign. Nothing was submitted.",
|
|
41
|
+
isUserRejection: true
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
if (error instanceof WrongNetworkError) {
|
|
45
|
+
return {
|
|
46
|
+
title: "Wrong network",
|
|
47
|
+
message: "Your wallet is connected to the wrong network. Nothing was submitted.",
|
|
48
|
+
description: "Switch your wallet to Starknet Mainnet, then try again.",
|
|
49
|
+
isUserRejection: false
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
if (error instanceof UserFacingError) {
|
|
53
|
+
return { title: "Something went wrong", message: error.message, isUserRejection: false };
|
|
54
|
+
}
|
|
55
|
+
if (error instanceof MedialaneApiError) {
|
|
56
|
+
if (error.isAuthored) {
|
|
57
|
+
return { title: "Something went wrong", message: error.message, isUserRejection: false };
|
|
58
|
+
}
|
|
59
|
+
if (isTransientStatus(error.status)) {
|
|
60
|
+
return { title: "Network busy", message: NETWORK_BUSY, isUserRejection: false };
|
|
61
|
+
}
|
|
62
|
+
return { title: "Something went wrong", message: fallback ?? GENERIC, isUserRejection: false };
|
|
63
|
+
}
|
|
64
|
+
const raw = collectErrorText(error);
|
|
65
|
+
if (isTransientNetworkError(raw)) {
|
|
66
|
+
return { title: "Network busy", message: NETWORK_BUSY, isUserRejection: false };
|
|
67
|
+
}
|
|
68
|
+
const lower = raw.toLowerCase();
|
|
69
|
+
if (lower.includes("insufficient") && /balance|allowance|funds/.test(lower)) {
|
|
70
|
+
return {
|
|
71
|
+
title: "Insufficient balance",
|
|
72
|
+
message: "You don't have enough balance to complete this transaction.",
|
|
73
|
+
isUserRejection: false
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
const stack = error instanceof Error && typeof error.stack === "string" ? error.stack.toLowerCase() : "";
|
|
77
|
+
if (lower.includes("validation failure") && (lower.includes("jscontrollererror") || stack.includes("jscontrollererror"))) {
|
|
78
|
+
return {
|
|
79
|
+
title: "Not enough gas",
|
|
80
|
+
message: "Your wallet doesn't have enough STRK (or ETH) to pay for this transaction's gas fee.",
|
|
81
|
+
description: "Add funds to your wallet, then try again.",
|
|
82
|
+
isUserRejection: false
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
if (/unknown_error/i.test(raw) || typeof error === "object" && error !== null && error.code === 163) {
|
|
86
|
+
return {
|
|
87
|
+
title: "Something went wrong",
|
|
88
|
+
message: "Your wallet couldn't complete this transaction. Nothing was submitted. Try again, or try a different wallet or device if it keeps happening.",
|
|
89
|
+
isUserRejection: false
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
return { title: "Something went wrong", message: fallback ?? GENERIC, isUserRejection: false };
|
|
93
|
+
}
|
|
94
|
+
export {
|
|
95
|
+
GENERIC,
|
|
96
|
+
NETWORK_BUSY,
|
|
97
|
+
NOT_SUBMITTED,
|
|
98
|
+
UserFacingError,
|
|
99
|
+
describeError
|
|
100
|
+
};
|
|
101
|
+
//# sourceMappingURL=describe-error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utils/describe-error.ts"],"sourcesContent":["import { MedialaneApiError, PasskeyCancelledError, UserFacingError } from \"@medialane/sdk\";\nimport {\n WrongNetworkError,\n isBareExecuteFailure,\n isUserRejectedRequest,\n collectErrorText,\n} from \"./wallet-error.js\";\n\nexport const NOT_SUBMITTED = \"Request not completed. Nothing was submitted.\";\nexport const GENERIC = \"Something went wrong. Please try again.\";\nexport const NETWORK_BUSY =\n \"The network is busy right now. Nothing was submitted. Please try again in a moment.\";\n\nexport interface ErrorNotice {\n title: string;\n message: string;\n description?: string;\n isUserRejection: boolean;\n}\n\nfunction isTransientStatus(status: number): boolean {\n return status === 408 || status === 429 || status >= 500;\n}\n\nfunction isTransientNetworkError(text: string): boolean {\n return /-32001|unable to complete request|service unavailable|temporarily unavailable|rate.?limit|too many requests|gateway time-?out|bad gateway|failed to fetch|fetch failed|network ?error|load failed/i.test(\n text,\n );\n}\n\nexport function describeError(error: unknown, fallback?: string): ErrorNotice {\n if (error instanceof PasskeyCancelledError) {\n return {\n title: \"Request not completed\",\n message: NOT_SUBMITTED,\n description: \"Your device did not confirm this request. Nothing was submitted. Try again when you are ready.\",\n isUserRejection: true,\n };\n }\n\n if (isBareExecuteFailure(error)) {\n return {\n title: \"Request not completed\",\n message: NOT_SUBMITTED,\n description: \"Your wallet didn't complete this request. This usually means you closed or declined it, your wallet needs extra verification (like 2FA) before it can sign, or your wallet hit a temporary network hiccup. Nothing was submitted. Try again in a moment.\",\n isUserRejection: true,\n };\n }\n\n if (isUserRejectedRequest(error)) {\n return {\n title: \"Request not completed\",\n message: NOT_SUBMITTED,\n description: \"Your wallet didn't complete this request. You may have closed or declined it, or it may need extra verification before it can sign. Nothing was submitted.\",\n isUserRejection: true,\n };\n }\n\n if (error instanceof WrongNetworkError) {\n return {\n title: \"Wrong network\",\n message: \"Your wallet is connected to the wrong network. Nothing was submitted.\",\n description: \"Switch your wallet to Starknet Mainnet, then try again.\",\n isUserRejection: false,\n };\n }\n\n if (error instanceof UserFacingError) {\n return { title: \"Something went wrong\", message: error.message, isUserRejection: false };\n }\n\n if (error instanceof MedialaneApiError) {\n if (error.isAuthored) {\n return { title: \"Something went wrong\", message: error.message, isUserRejection: false };\n }\n if (isTransientStatus(error.status)) {\n return { title: \"Network busy\", message: NETWORK_BUSY, isUserRejection: false };\n }\n return { title: \"Something went wrong\", message: fallback ?? GENERIC, isUserRejection: false };\n }\n\n const raw = collectErrorText(error);\n\n if (isTransientNetworkError(raw)) {\n return { title: \"Network busy\", message: NETWORK_BUSY, isUserRejection: false };\n }\n\n const lower = raw.toLowerCase();\n if (lower.includes(\"insufficient\") && /balance|allowance|funds/.test(lower)) {\n return {\n title: \"Insufficient balance\",\n message: \"You don't have enough balance to complete this transaction.\",\n isUserRejection: false,\n };\n }\n\n const stack = error instanceof Error && typeof error.stack === \"string\" ? error.stack.toLowerCase() : \"\";\n if (lower.includes(\"validation failure\") && (lower.includes(\"jscontrollererror\") || stack.includes(\"jscontrollererror\"))) {\n return {\n title: \"Not enough gas\",\n message: \"Your wallet doesn't have enough STRK (or ETH) to pay for this transaction's gas fee.\",\n description: \"Add funds to your wallet, then try again.\",\n isUserRejection: false,\n };\n }\n\n if (/unknown_error/i.test(raw) || (typeof error === \"object\" && error !== null && (error as { code?: unknown }).code === 163)) {\n return {\n title: \"Something went wrong\",\n message: \"Your wallet couldn't complete this transaction. Nothing was submitted. Try again, or try a different wallet or device if it keeps happening.\",\n isUserRejection: false,\n };\n }\n\n return { title: \"Something went wrong\", message: fallback ?? GENERIC, isUserRejection: false };\n}\n\nexport { UserFacingError };\n"],"mappings":"AAAA,SAAS,mBAAmB,uBAAuB,uBAAuB;AAC1E;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEA,MAAM,gBAAgB;AACtB,MAAM,UAAU;AAChB,MAAM,eACX;AASF,SAAS,kBAAkB,QAAyB;AAClD,SAAO,WAAW,OAAO,WAAW,OAAO,UAAU;AACvD;AAEA,SAAS,wBAAwB,MAAuB;AACtD,SAAO,qMAAqM;AAAA,IAC1M;AAAA,EACF;AACF;AAEO,SAAS,cAAc,OAAgB,UAAgC;AAC5E,MAAI,iBAAiB,uBAAuB;AAC1C,WAAO;AAAA,MACL,OAAO;AAAA,MACP,SAAS;AAAA,MACT,aAAa;AAAA,MACb,iBAAiB;AAAA,IACnB;AAAA,EACF;AAEA,MAAI,qBAAqB,KAAK,GAAG;AAC/B,WAAO;AAAA,MACL,OAAO;AAAA,MACP,SAAS;AAAA,MACT,aAAa;AAAA,MACb,iBAAiB;AAAA,IACnB;AAAA,EACF;AAEA,MAAI,sBAAsB,KAAK,GAAG;AAChC,WAAO;AAAA,MACL,OAAO;AAAA,MACP,SAAS;AAAA,MACT,aAAa;AAAA,MACb,iBAAiB;AAAA,IACnB;AAAA,EACF;AAEA,MAAI,iBAAiB,mBAAmB;AACtC,WAAO;AAAA,MACL,OAAO;AAAA,MACP,SAAS;AAAA,MACT,aAAa;AAAA,MACb,iBAAiB;AAAA,IACnB;AAAA,EACF;AAEA,MAAI,iBAAiB,iBAAiB;AACpC,WAAO,EAAE,OAAO,wBAAwB,SAAS,MAAM,SAAS,iBAAiB,MAAM;AAAA,EACzF;AAEA,MAAI,iBAAiB,mBAAmB;AACtC,QAAI,MAAM,YAAY;AACpB,aAAO,EAAE,OAAO,wBAAwB,SAAS,MAAM,SAAS,iBAAiB,MAAM;AAAA,IACzF;AACA,QAAI,kBAAkB,MAAM,MAAM,GAAG;AACnC,aAAO,EAAE,OAAO,gBAAgB,SAAS,cAAc,iBAAiB,MAAM;AAAA,IAChF;AACA,WAAO,EAAE,OAAO,wBAAwB,SAAS,YAAY,SAAS,iBAAiB,MAAM;AAAA,EAC/F;AAEA,QAAM,MAAM,iBAAiB,KAAK;AAElC,MAAI,wBAAwB,GAAG,GAAG;AAChC,WAAO,EAAE,OAAO,gBAAgB,SAAS,cAAc,iBAAiB,MAAM;AAAA,EAChF;AAEA,QAAM,QAAQ,IAAI,YAAY;AAC9B,MAAI,MAAM,SAAS,cAAc,KAAK,0BAA0B,KAAK,KAAK,GAAG;AAC3E,WAAO;AAAA,MACL,OAAO;AAAA,MACP,SAAS;AAAA,MACT,iBAAiB;AAAA,IACnB;AAAA,EACF;AAEA,QAAM,QAAQ,iBAAiB,SAAS,OAAO,MAAM,UAAU,WAAW,MAAM,MAAM,YAAY,IAAI;AACtG,MAAI,MAAM,SAAS,oBAAoB,MAAM,MAAM,SAAS,mBAAmB,KAAK,MAAM,SAAS,mBAAmB,IAAI;AACxH,WAAO;AAAA,MACL,OAAO;AAAA,MACP,SAAS;AAAA,MACT,aAAa;AAAA,MACb,iBAAiB;AAAA,IACnB;AAAA,EACF;AAEA,MAAI,iBAAiB,KAAK,GAAG,KAAM,OAAO,UAAU,YAAY,UAAU,QAAS,MAA6B,SAAS,KAAM;AAC7H,WAAO;AAAA,MACL,OAAO;AAAA,MACP,SAAS;AAAA,MACT,iBAAiB;AAAA,IACnB;AAAA,EACF;AAEA,SAAO,EAAE,OAAO,wBAAwB,SAAS,YAAY,SAAS,iBAAiB,MAAM;AAC/F;","names":[]}
|
|
@@ -20,7 +20,7 @@ var wallet_error_exports = {};
|
|
|
20
20
|
__export(wallet_error_exports, {
|
|
21
21
|
WrongNetworkError: () => WrongNetworkError,
|
|
22
22
|
assertCorrectNetwork: () => assertCorrectNetwork,
|
|
23
|
-
|
|
23
|
+
collectErrorText: () => collectErrorText,
|
|
24
24
|
isBareExecuteFailure: () => isBareExecuteFailure,
|
|
25
25
|
isUserRejectedRequest: () => isUserRejectedRequest,
|
|
26
26
|
isWrongNetwork: () => isWrongNetwork
|
|
@@ -66,91 +66,11 @@ function isUserRejectedRequest(error) {
|
|
|
66
66
|
const text = collectErrorText(error).toLowerCase();
|
|
67
67
|
return text.includes("user_refused_op") || text.includes("user refused") || text.includes("user rejected") || text.includes("user abort") || text.includes("user denied") || text.includes("request rejected") || text.includes("rejected by user") || text.includes("cancelled") || text.includes("canceled") || isBareExecuteFailure(error);
|
|
68
68
|
}
|
|
69
|
-
function isTransientNetworkError(text) {
|
|
70
|
-
return /-32001|unable to complete request|service unavailable|temporarily unavailable|rate.?limit|too many requests|gateway time-?out|bad gateway|failed to fetch|fetch failed|network ?error|load failed|\b50[234]\b|\b429\b/i.test(
|
|
71
|
-
text
|
|
72
|
-
);
|
|
73
|
-
}
|
|
74
|
-
function looksTechnical(text) {
|
|
75
|
-
return /rpc:|jsonrpc|starknet_call|entry_point_selector|contract_address|fetchendpoint|errorhandler|at async|baseerror|"code"\s*:\s*-?\d|https?:\/\//i.test(
|
|
76
|
-
text
|
|
77
|
-
) || text.length > 160;
|
|
78
|
-
}
|
|
79
|
-
function getFriendlyWalletError(error) {
|
|
80
|
-
if (isBareExecuteFailure(error)) {
|
|
81
|
-
return {
|
|
82
|
-
title: "Request not completed",
|
|
83
|
-
message: "Request not completed. Nothing was submitted.",
|
|
84
|
-
description: "Your wallet didn't complete this request. This usually means you closed or declined it, your wallet needs extra verification (like 2FA) before it can sign, or your wallet hit a temporary network hiccup. Nothing was submitted. Try again in a moment.",
|
|
85
|
-
isUserRejection: true
|
|
86
|
-
};
|
|
87
|
-
}
|
|
88
|
-
if (isUserRejectedRequest(error)) {
|
|
89
|
-
return {
|
|
90
|
-
title: "Request not completed",
|
|
91
|
-
message: "Request not completed. Nothing was submitted.",
|
|
92
|
-
description: "Your wallet didn't complete this request. You may have closed or declined it, or your wallet may require extra verification (like 2FA) before it can sign. Check your wallet for details, then try again.",
|
|
93
|
-
isUserRejection: true
|
|
94
|
-
};
|
|
95
|
-
}
|
|
96
|
-
if (error instanceof WrongNetworkError) {
|
|
97
|
-
return {
|
|
98
|
-
title: "Wrong network",
|
|
99
|
-
message: "Your wallet is connected to the wrong network. Nothing was submitted.",
|
|
100
|
-
description: "Switch your wallet to Starknet Mainnet, then try again.",
|
|
101
|
-
isUserRejection: false
|
|
102
|
-
};
|
|
103
|
-
}
|
|
104
|
-
const raw = collectErrorText(error);
|
|
105
|
-
if (isTransientNetworkError(raw)) {
|
|
106
|
-
return {
|
|
107
|
-
title: "Network busy",
|
|
108
|
-
message: "The network is busy right now. Nothing was submitted, and your asset is safe. Please try again in a moment.",
|
|
109
|
-
isUserRejection: false
|
|
110
|
-
};
|
|
111
|
-
}
|
|
112
|
-
const lower = raw.toLowerCase();
|
|
113
|
-
const stack = error instanceof Error && typeof error.stack === "string" ? error.stack.toLowerCase() : "";
|
|
114
|
-
if (lower.includes("validation failure") && (lower.includes("jscontrollererror") || stack.includes("jscontrollererror"))) {
|
|
115
|
-
return {
|
|
116
|
-
title: "Not enough gas",
|
|
117
|
-
message: "Your wallet doesn't have enough STRK (or ETH) to pay for this transaction's gas fee.",
|
|
118
|
-
description: "Add funds to your wallet, then try again.",
|
|
119
|
-
isUserRejection: false
|
|
120
|
-
};
|
|
121
|
-
}
|
|
122
|
-
if (lower.includes("insufficient") && (lower.includes("balance") || lower.includes("allowance") || lower.includes("funds"))) {
|
|
123
|
-
return {
|
|
124
|
-
title: "Insufficient balance",
|
|
125
|
-
message: "You don't have enough balance to complete this transaction.",
|
|
126
|
-
isUserRejection: false
|
|
127
|
-
};
|
|
128
|
-
}
|
|
129
|
-
if (/unknown_error/i.test(raw) || typeof error === "object" && error !== null && error.code === 163) {
|
|
130
|
-
return {
|
|
131
|
-
title: "Something went wrong",
|
|
132
|
-
message: "Your wallet couldn't complete this transaction. Nothing was submitted. Try again, or try a different wallet or device if it keeps happening.",
|
|
133
|
-
isUserRejection: false
|
|
134
|
-
};
|
|
135
|
-
}
|
|
136
|
-
if (!raw || looksTechnical(raw)) {
|
|
137
|
-
return {
|
|
138
|
-
title: "Something went wrong",
|
|
139
|
-
message: "We couldn't complete that action. Please try again in a moment. If it keeps happening, try a different wallet or refresh the page.",
|
|
140
|
-
isUserRejection: false
|
|
141
|
-
};
|
|
142
|
-
}
|
|
143
|
-
return {
|
|
144
|
-
title: "Something went wrong",
|
|
145
|
-
message: raw,
|
|
146
|
-
isUserRejection: false
|
|
147
|
-
};
|
|
148
|
-
}
|
|
149
69
|
// Annotate the CommonJS export names for ESM import in node:
|
|
150
70
|
0 && (module.exports = {
|
|
151
71
|
WrongNetworkError,
|
|
152
72
|
assertCorrectNetwork,
|
|
153
|
-
|
|
73
|
+
collectErrorText,
|
|
154
74
|
isBareExecuteFailure,
|
|
155
75
|
isUserRejectedRequest,
|
|
156
76
|
isWrongNetwork
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/wallet-error.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["../../src/utils/wallet-error.ts"],"sourcesContent":["\nexport class WrongNetworkError extends Error {\n constructor() {\n super(\"Your wallet is connected to the wrong network.\");\n this.name = \"WrongNetworkError\";\n }\n}\n\nexport function isWrongNetwork(\n chainId: bigint | string | undefined,\n expectedChainId: string,\n): boolean {\n return chainId != null && BigInt(chainId).toString() !== expectedChainId;\n}\n\nexport function assertCorrectNetwork(\n chainId: bigint | string | undefined,\n expectedChainId: string,\n): void {\n if (isWrongNetwork(chainId, expectedChainId)) {\n throw new WrongNetworkError();\n }\n}\n\nexport function collectErrorText(error: unknown): string {\n if (!error) return \"\";\n if (typeof error === \"string\") return error;\n if (error instanceof Error) return error.message;\n\n if (typeof error === \"object\") {\n const source = error as Record<string, unknown>;\n const parts: string[] = [];\n\n for (const key of [\"message\", \"name\", \"code\", \"shortMessage\"]) {\n const value = source[key];\n if (value !== undefined) parts.push(String(value));\n }\n\n const messages = source.errorMessages;\n if (messages && typeof messages === \"object\") {\n parts.push(...Object.values(messages).map(String));\n }\n\n return parts.join(\" \");\n }\n\n return String(error);\n}\n\nexport function isBareExecuteFailure(error: unknown): boolean {\n return collectErrorText(error).trim().toLowerCase() === \"execute failed\";\n}\n\nexport function isUserRejectedRequest(error: unknown): boolean {\n const text = collectErrorText(error).toLowerCase();\n return (\n text.includes(\"user_refused_op\") ||\n text.includes(\"user refused\") ||\n text.includes(\"user rejected\") ||\n text.includes(\"user abort\") ||\n text.includes(\"user denied\") ||\n text.includes(\"request rejected\") ||\n text.includes(\"rejected by user\") ||\n text.includes(\"cancelled\") ||\n text.includes(\"canceled\") ||\n isBareExecuteFailure(error)\n );\n}\n\n\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACO,MAAM,0BAA0B,MAAM;AAAA,EAC3C,cAAc;AACZ,UAAM,gDAAgD;AACtD,SAAK,OAAO;AAAA,EACd;AACF;AAEO,SAAS,eACd,SACA,iBACS;AACT,SAAO,WAAW,QAAQ,OAAO,OAAO,EAAE,SAAS,MAAM;AAC3D;AAEO,SAAS,qBACd,SACA,iBACM;AACN,MAAI,eAAe,SAAS,eAAe,GAAG;AAC5C,UAAM,IAAI,kBAAkB;AAAA,EAC9B;AACF;AAEO,SAAS,iBAAiB,OAAwB;AACvD,MAAI,CAAC,MAAO,QAAO;AACnB,MAAI,OAAO,UAAU,SAAU,QAAO;AACtC,MAAI,iBAAiB,MAAO,QAAO,MAAM;AAEzC,MAAI,OAAO,UAAU,UAAU;AAC7B,UAAM,SAAS;AACf,UAAM,QAAkB,CAAC;AAEzB,eAAW,OAAO,CAAC,WAAW,QAAQ,QAAQ,cAAc,GAAG;AAC7D,YAAM,QAAQ,OAAO,GAAG;AACxB,UAAI,UAAU,OAAW,OAAM,KAAK,OAAO,KAAK,CAAC;AAAA,IACnD;AAEA,UAAM,WAAW,OAAO;AACxB,QAAI,YAAY,OAAO,aAAa,UAAU;AAC5C,YAAM,KAAK,GAAG,OAAO,OAAO,QAAQ,EAAE,IAAI,MAAM,CAAC;AAAA,IACnD;AAEA,WAAO,MAAM,KAAK,GAAG;AAAA,EACvB;AAEA,SAAO,OAAO,KAAK;AACrB;AAEO,SAAS,qBAAqB,OAAyB;AAC5D,SAAO,iBAAiB,KAAK,EAAE,KAAK,EAAE,YAAY,MAAM;AAC1D;AAEO,SAAS,sBAAsB,OAAyB;AAC7D,QAAM,OAAO,iBAAiB,KAAK,EAAE,YAAY;AACjD,SACE,KAAK,SAAS,iBAAiB,KAC/B,KAAK,SAAS,cAAc,KAC5B,KAAK,SAAS,eAAe,KAC7B,KAAK,SAAS,YAAY,KAC1B,KAAK,SAAS,aAAa,KAC3B,KAAK,SAAS,kBAAkB,KAChC,KAAK,SAAS,kBAAkB,KAChC,KAAK,SAAS,WAAW,KACzB,KAAK,SAAS,UAAU,KACxB,qBAAqB,KAAK;AAE9B;","names":[]}
|
|
@@ -1,16 +1,10 @@
|
|
|
1
|
-
interface FriendlyWalletError {
|
|
2
|
-
title: string;
|
|
3
|
-
message: string;
|
|
4
|
-
description?: string;
|
|
5
|
-
isUserRejection: boolean;
|
|
6
|
-
}
|
|
7
1
|
declare class WrongNetworkError extends Error {
|
|
8
2
|
constructor();
|
|
9
3
|
}
|
|
10
4
|
declare function isWrongNetwork(chainId: bigint | string | undefined, expectedChainId: string): boolean;
|
|
11
5
|
declare function assertCorrectNetwork(chainId: bigint | string | undefined, expectedChainId: string): void;
|
|
6
|
+
declare function collectErrorText(error: unknown): string;
|
|
12
7
|
declare function isBareExecuteFailure(error: unknown): boolean;
|
|
13
8
|
declare function isUserRejectedRequest(error: unknown): boolean;
|
|
14
|
-
declare function getFriendlyWalletError(error: unknown): FriendlyWalletError;
|
|
15
9
|
|
|
16
|
-
export {
|
|
10
|
+
export { WrongNetworkError, assertCorrectNetwork, collectErrorText, isBareExecuteFailure, isUserRejectedRequest, isWrongNetwork };
|
|
@@ -1,16 +1,10 @@
|
|
|
1
|
-
interface FriendlyWalletError {
|
|
2
|
-
title: string;
|
|
3
|
-
message: string;
|
|
4
|
-
description?: string;
|
|
5
|
-
isUserRejection: boolean;
|
|
6
|
-
}
|
|
7
1
|
declare class WrongNetworkError extends Error {
|
|
8
2
|
constructor();
|
|
9
3
|
}
|
|
10
4
|
declare function isWrongNetwork(chainId: bigint | string | undefined, expectedChainId: string): boolean;
|
|
11
5
|
declare function assertCorrectNetwork(chainId: bigint | string | undefined, expectedChainId: string): void;
|
|
6
|
+
declare function collectErrorText(error: unknown): string;
|
|
12
7
|
declare function isBareExecuteFailure(error: unknown): boolean;
|
|
13
8
|
declare function isUserRejectedRequest(error: unknown): boolean;
|
|
14
|
-
declare function getFriendlyWalletError(error: unknown): FriendlyWalletError;
|
|
15
9
|
|
|
16
|
-
export {
|
|
10
|
+
export { WrongNetworkError, assertCorrectNetwork, collectErrorText, isBareExecuteFailure, isUserRejectedRequest, isWrongNetwork };
|
|
@@ -38,90 +38,10 @@ function isUserRejectedRequest(error) {
|
|
|
38
38
|
const text = collectErrorText(error).toLowerCase();
|
|
39
39
|
return text.includes("user_refused_op") || text.includes("user refused") || text.includes("user rejected") || text.includes("user abort") || text.includes("user denied") || text.includes("request rejected") || text.includes("rejected by user") || text.includes("cancelled") || text.includes("canceled") || isBareExecuteFailure(error);
|
|
40
40
|
}
|
|
41
|
-
function isTransientNetworkError(text) {
|
|
42
|
-
return /-32001|unable to complete request|service unavailable|temporarily unavailable|rate.?limit|too many requests|gateway time-?out|bad gateway|failed to fetch|fetch failed|network ?error|load failed|\b50[234]\b|\b429\b/i.test(
|
|
43
|
-
text
|
|
44
|
-
);
|
|
45
|
-
}
|
|
46
|
-
function looksTechnical(text) {
|
|
47
|
-
return /rpc:|jsonrpc|starknet_call|entry_point_selector|contract_address|fetchendpoint|errorhandler|at async|baseerror|"code"\s*:\s*-?\d|https?:\/\//i.test(
|
|
48
|
-
text
|
|
49
|
-
) || text.length > 160;
|
|
50
|
-
}
|
|
51
|
-
function getFriendlyWalletError(error) {
|
|
52
|
-
if (isBareExecuteFailure(error)) {
|
|
53
|
-
return {
|
|
54
|
-
title: "Request not completed",
|
|
55
|
-
message: "Request not completed. Nothing was submitted.",
|
|
56
|
-
description: "Your wallet didn't complete this request. This usually means you closed or declined it, your wallet needs extra verification (like 2FA) before it can sign, or your wallet hit a temporary network hiccup. Nothing was submitted. Try again in a moment.",
|
|
57
|
-
isUserRejection: true
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
if (isUserRejectedRequest(error)) {
|
|
61
|
-
return {
|
|
62
|
-
title: "Request not completed",
|
|
63
|
-
message: "Request not completed. Nothing was submitted.",
|
|
64
|
-
description: "Your wallet didn't complete this request. You may have closed or declined it, or your wallet may require extra verification (like 2FA) before it can sign. Check your wallet for details, then try again.",
|
|
65
|
-
isUserRejection: true
|
|
66
|
-
};
|
|
67
|
-
}
|
|
68
|
-
if (error instanceof WrongNetworkError) {
|
|
69
|
-
return {
|
|
70
|
-
title: "Wrong network",
|
|
71
|
-
message: "Your wallet is connected to the wrong network. Nothing was submitted.",
|
|
72
|
-
description: "Switch your wallet to Starknet Mainnet, then try again.",
|
|
73
|
-
isUserRejection: false
|
|
74
|
-
};
|
|
75
|
-
}
|
|
76
|
-
const raw = collectErrorText(error);
|
|
77
|
-
if (isTransientNetworkError(raw)) {
|
|
78
|
-
return {
|
|
79
|
-
title: "Network busy",
|
|
80
|
-
message: "The network is busy right now. Nothing was submitted, and your asset is safe. Please try again in a moment.",
|
|
81
|
-
isUserRejection: false
|
|
82
|
-
};
|
|
83
|
-
}
|
|
84
|
-
const lower = raw.toLowerCase();
|
|
85
|
-
const stack = error instanceof Error && typeof error.stack === "string" ? error.stack.toLowerCase() : "";
|
|
86
|
-
if (lower.includes("validation failure") && (lower.includes("jscontrollererror") || stack.includes("jscontrollererror"))) {
|
|
87
|
-
return {
|
|
88
|
-
title: "Not enough gas",
|
|
89
|
-
message: "Your wallet doesn't have enough STRK (or ETH) to pay for this transaction's gas fee.",
|
|
90
|
-
description: "Add funds to your wallet, then try again.",
|
|
91
|
-
isUserRejection: false
|
|
92
|
-
};
|
|
93
|
-
}
|
|
94
|
-
if (lower.includes("insufficient") && (lower.includes("balance") || lower.includes("allowance") || lower.includes("funds"))) {
|
|
95
|
-
return {
|
|
96
|
-
title: "Insufficient balance",
|
|
97
|
-
message: "You don't have enough balance to complete this transaction.",
|
|
98
|
-
isUserRejection: false
|
|
99
|
-
};
|
|
100
|
-
}
|
|
101
|
-
if (/unknown_error/i.test(raw) || typeof error === "object" && error !== null && error.code === 163) {
|
|
102
|
-
return {
|
|
103
|
-
title: "Something went wrong",
|
|
104
|
-
message: "Your wallet couldn't complete this transaction. Nothing was submitted. Try again, or try a different wallet or device if it keeps happening.",
|
|
105
|
-
isUserRejection: false
|
|
106
|
-
};
|
|
107
|
-
}
|
|
108
|
-
if (!raw || looksTechnical(raw)) {
|
|
109
|
-
return {
|
|
110
|
-
title: "Something went wrong",
|
|
111
|
-
message: "We couldn't complete that action. Please try again in a moment. If it keeps happening, try a different wallet or refresh the page.",
|
|
112
|
-
isUserRejection: false
|
|
113
|
-
};
|
|
114
|
-
}
|
|
115
|
-
return {
|
|
116
|
-
title: "Something went wrong",
|
|
117
|
-
message: raw,
|
|
118
|
-
isUserRejection: false
|
|
119
|
-
};
|
|
120
|
-
}
|
|
121
41
|
export {
|
|
122
42
|
WrongNetworkError,
|
|
123
43
|
assertCorrectNetwork,
|
|
124
|
-
|
|
44
|
+
collectErrorText,
|
|
125
45
|
isBareExecuteFailure,
|
|
126
46
|
isUserRejectedRequest,
|
|
127
47
|
isWrongNetwork
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/wallet-error.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["../../src/utils/wallet-error.ts"],"sourcesContent":["\nexport class WrongNetworkError extends Error {\n constructor() {\n super(\"Your wallet is connected to the wrong network.\");\n this.name = \"WrongNetworkError\";\n }\n}\n\nexport function isWrongNetwork(\n chainId: bigint | string | undefined,\n expectedChainId: string,\n): boolean {\n return chainId != null && BigInt(chainId).toString() !== expectedChainId;\n}\n\nexport function assertCorrectNetwork(\n chainId: bigint | string | undefined,\n expectedChainId: string,\n): void {\n if (isWrongNetwork(chainId, expectedChainId)) {\n throw new WrongNetworkError();\n }\n}\n\nexport function collectErrorText(error: unknown): string {\n if (!error) return \"\";\n if (typeof error === \"string\") return error;\n if (error instanceof Error) return error.message;\n\n if (typeof error === \"object\") {\n const source = error as Record<string, unknown>;\n const parts: string[] = [];\n\n for (const key of [\"message\", \"name\", \"code\", \"shortMessage\"]) {\n const value = source[key];\n if (value !== undefined) parts.push(String(value));\n }\n\n const messages = source.errorMessages;\n if (messages && typeof messages === \"object\") {\n parts.push(...Object.values(messages).map(String));\n }\n\n return parts.join(\" \");\n }\n\n return String(error);\n}\n\nexport function isBareExecuteFailure(error: unknown): boolean {\n return collectErrorText(error).trim().toLowerCase() === \"execute failed\";\n}\n\nexport function isUserRejectedRequest(error: unknown): boolean {\n const text = collectErrorText(error).toLowerCase();\n return (\n text.includes(\"user_refused_op\") ||\n text.includes(\"user refused\") ||\n text.includes(\"user rejected\") ||\n text.includes(\"user abort\") ||\n text.includes(\"user denied\") ||\n text.includes(\"request rejected\") ||\n text.includes(\"rejected by user\") ||\n text.includes(\"cancelled\") ||\n text.includes(\"canceled\") ||\n isBareExecuteFailure(error)\n );\n}\n\n\n"],"mappings":"AACO,MAAM,0BAA0B,MAAM;AAAA,EAC3C,cAAc;AACZ,UAAM,gDAAgD;AACtD,SAAK,OAAO;AAAA,EACd;AACF;AAEO,SAAS,eACd,SACA,iBACS;AACT,SAAO,WAAW,QAAQ,OAAO,OAAO,EAAE,SAAS,MAAM;AAC3D;AAEO,SAAS,qBACd,SACA,iBACM;AACN,MAAI,eAAe,SAAS,eAAe,GAAG;AAC5C,UAAM,IAAI,kBAAkB;AAAA,EAC9B;AACF;AAEO,SAAS,iBAAiB,OAAwB;AACvD,MAAI,CAAC,MAAO,QAAO;AACnB,MAAI,OAAO,UAAU,SAAU,QAAO;AACtC,MAAI,iBAAiB,MAAO,QAAO,MAAM;AAEzC,MAAI,OAAO,UAAU,UAAU;AAC7B,UAAM,SAAS;AACf,UAAM,QAAkB,CAAC;AAEzB,eAAW,OAAO,CAAC,WAAW,QAAQ,QAAQ,cAAc,GAAG;AAC7D,YAAM,QAAQ,OAAO,GAAG;AACxB,UAAI,UAAU,OAAW,OAAM,KAAK,OAAO,KAAK,CAAC;AAAA,IACnD;AAEA,UAAM,WAAW,OAAO;AACxB,QAAI,YAAY,OAAO,aAAa,UAAU;AAC5C,YAAM,KAAK,GAAG,OAAO,OAAO,QAAQ,EAAE,IAAI,MAAM,CAAC;AAAA,IACnD;AAEA,WAAO,MAAM,KAAK,GAAG;AAAA,EACvB;AAEA,SAAO,OAAO,KAAK;AACrB;AAEO,SAAS,qBAAqB,OAAyB;AAC5D,SAAO,iBAAiB,KAAK,EAAE,KAAK,EAAE,YAAY,MAAM;AAC1D;AAEO,SAAS,sBAAsB,OAAyB;AAC7D,QAAM,OAAO,iBAAiB,KAAK,EAAE,YAAY;AACjD,SACE,KAAK,SAAS,iBAAiB,KAC/B,KAAK,SAAS,cAAc,KAC5B,KAAK,SAAS,eAAe,KAC7B,KAAK,SAAS,YAAY,KAC1B,KAAK,SAAS,aAAa,KAC3B,KAAK,SAAS,kBAAkB,KAChC,KAAK,SAAS,kBAAkB,KAChC,KAAK,SAAS,WAAW,KACzB,KAAK,SAAS,UAAU,KACxB,qBAAqB,KAAK;AAE9B;","names":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@medialane/ui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.166.0",
|
|
4
4
|
"description": "Shared UI components for Medialane apps",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
"preview": "vite --config preview/vite.config.ts"
|
|
52
52
|
},
|
|
53
53
|
"peerDependencies": {
|
|
54
|
-
"@medialane/sdk": ">=0.
|
|
54
|
+
"@medialane/sdk": ">=0.128.0",
|
|
55
55
|
"@radix-ui/react-checkbox": ">=1.1.0",
|
|
56
56
|
"@radix-ui/react-collapsible": ">=1.1.0",
|
|
57
57
|
"@radix-ui/react-dialog": ">=1.1.0",
|
|
@@ -79,7 +79,7 @@
|
|
|
79
79
|
"zod": "^3.25.0"
|
|
80
80
|
},
|
|
81
81
|
"devDependencies": {
|
|
82
|
-
"@medialane/sdk": "0.
|
|
82
|
+
"@medialane/sdk": "0.128.0",
|
|
83
83
|
"@radix-ui/react-checkbox": "^1.3.8",
|
|
84
84
|
"@radix-ui/react-collapsible": "^1.1.17",
|
|
85
85
|
"@radix-ui/react-dialog": "^1.1.20",
|