@medialane/ui 0.97.0 → 0.99.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.
Files changed (73) hide show
  1. package/dist/components/community-rewards-section.cjs +123 -0
  2. package/dist/components/community-rewards-section.cjs.map +1 -0
  3. package/dist/components/community-rewards-section.d.cts +15 -0
  4. package/dist/components/community-rewards-section.d.ts +15 -0
  5. package/dist/components/community-rewards-section.js +89 -0
  6. package/dist/components/community-rewards-section.js.map +1 -0
  7. package/dist/components/creator-airdrop-banner.cjs +79 -0
  8. package/dist/components/creator-airdrop-banner.cjs.map +1 -0
  9. package/dist/components/creator-airdrop-banner.d.cts +9 -0
  10. package/dist/components/creator-airdrop-banner.d.ts +9 -0
  11. package/dist/components/creator-airdrop-banner.js +45 -0
  12. package/dist/components/creator-airdrop-banner.js.map +1 -0
  13. package/dist/components/rewards/badge-shelf.cjs +2 -0
  14. package/dist/components/rewards/badge-shelf.cjs.map +1 -1
  15. package/dist/components/rewards/badge-shelf.d.cts +6 -1
  16. package/dist/components/rewards/badge-shelf.d.ts +6 -1
  17. package/dist/components/rewards/badge-shelf.js +1 -0
  18. package/dist/components/rewards/badge-shelf.js.map +1 -1
  19. package/dist/components/rewards/badge-unlock-toast-content.cjs +49 -0
  20. package/dist/components/rewards/badge-unlock-toast-content.cjs.map +1 -0
  21. package/dist/components/rewards/badge-unlock-toast-content.d.cts +11 -0
  22. package/dist/components/rewards/badge-unlock-toast-content.d.ts +11 -0
  23. package/dist/components/rewards/badge-unlock-toast-content.js +25 -0
  24. package/dist/components/rewards/badge-unlock-toast-content.js.map +1 -0
  25. package/dist/components/rewards/journey-path.cjs +77 -0
  26. package/dist/components/rewards/journey-path.cjs.map +1 -0
  27. package/dist/components/rewards/journey-path.d.cts +26 -0
  28. package/dist/components/rewards/journey-path.d.ts +26 -0
  29. package/dist/components/rewards/journey-path.js +53 -0
  30. package/dist/components/rewards/journey-path.js.map +1 -0
  31. package/dist/components/rewards/level-badge.cjs +1 -3
  32. package/dist/components/rewards/level-badge.cjs.map +1 -1
  33. package/dist/components/rewards/level-badge.d.cts +4 -2
  34. package/dist/components/rewards/level-badge.d.ts +4 -2
  35. package/dist/components/rewards/level-badge.js +1 -3
  36. package/dist/components/rewards/level-badge.js.map +1 -1
  37. package/dist/components/rewards/level-up-celebration.cjs +71 -0
  38. package/dist/components/rewards/level-up-celebration.cjs.map +1 -0
  39. package/dist/components/rewards/level-up-celebration.d.cts +16 -0
  40. package/dist/components/rewards/level-up-celebration.d.ts +16 -0
  41. package/dist/components/rewards/level-up-celebration.js +47 -0
  42. package/dist/components/rewards/level-up-celebration.js.map +1 -0
  43. package/dist/components/rewards/reward-toast.cjs +20 -2
  44. package/dist/components/rewards/reward-toast.cjs.map +1 -1
  45. package/dist/components/rewards/reward-toast.d.cts +6 -2
  46. package/dist/components/rewards/reward-toast.d.ts +6 -2
  47. package/dist/components/rewards/reward-toast.js +20 -2
  48. package/dist/components/rewards/reward-toast.js.map +1 -1
  49. package/dist/components/rewards/use-rewards-celebrations.cjs +70 -0
  50. package/dist/components/rewards/use-rewards-celebrations.cjs.map +1 -0
  51. package/dist/components/rewards/use-rewards-celebrations.d.cts +25 -0
  52. package/dist/components/rewards/use-rewards-celebrations.d.ts +25 -0
  53. package/dist/components/rewards/use-rewards-celebrations.js +46 -0
  54. package/dist/components/rewards/use-rewards-celebrations.js.map +1 -0
  55. package/dist/components/rewards/xp-toast-content.cjs +23 -18
  56. package/dist/components/rewards/xp-toast-content.cjs.map +1 -1
  57. package/dist/components/rewards/xp-toast-content.d.cts +7 -1
  58. package/dist/components/rewards/xp-toast-content.d.ts +7 -1
  59. package/dist/components/rewards/xp-toast-content.js +23 -18
  60. package/dist/components/rewards/xp-toast-content.js.map +1 -1
  61. package/dist/index.cjs +20 -5
  62. package/dist/index.cjs.map +1 -1
  63. package/dist/index.d.cts +7 -2
  64. package/dist/index.d.ts +7 -2
  65. package/dist/index.js +13 -3
  66. package/dist/index.js.map +1 -1
  67. package/package.json +1 -1
  68. package/dist/components/creators-fund-section.cjs +0 -139
  69. package/dist/components/creators-fund-section.cjs.map +0 -1
  70. package/dist/components/creators-fund-section.d.cts +0 -26
  71. package/dist/components/creators-fund-section.d.ts +0 -26
  72. package/dist/components/creators-fund-section.js +0 -105
  73. package/dist/components/creators-fund-section.js.map +0 -1
package/dist/index.d.cts CHANGED
@@ -77,9 +77,10 @@ export { ScoreSummaryCard, ScoreSummaryCardProps } from './components/rewards/sc
77
77
  export { LeaderboardEntryLike, LeaderboardTable, LeaderboardTableProps, LeaderboardWidget, LeaderboardWidgetProps } from './components/rewards/leaderboard-table.cjs';
78
78
  export { LevelLadder, LevelLadderProps } from './components/rewards/level-ladder.cjs';
79
79
  export { XpToastContent, XpToastContentProps } from './components/rewards/xp-toast-content.cjs';
80
- export { createRewardToast } from './components/rewards/reward-toast.cjs';
80
+ export { RewardToastSnapshot, createRewardToast } from './components/rewards/reward-toast.cjs';
81
81
  export { LoadMoreSentinel, LoadMoreSentinelProps } from './components/load-more-sentinel.cjs';
82
- export { CreatorsFundLeaderboardEntry, CreatorsFundSection, CreatorsFundSectionProps } from './components/creators-fund-section.cjs';
82
+ export { CommunityRewardsEntry, CommunityRewardsSection, CommunityRewardsSectionProps } from './components/community-rewards-section.cjs';
83
+ export { CreatorAirdropBanner, CreatorAirdropBannerProps } from './components/creator-airdrop-banner.cjs';
83
84
  export { ActionButton, ActionButtonProps, ActionKey, ToneKey } from './components/action-button.cjs';
84
85
  export { GradientButton, GradientButtonProps } from './components/gradient-button.cjs';
85
86
  export { CoinLaunchPreview, CoinPreviewData } from './components/coin-launch-preview.cjs';
@@ -88,6 +89,10 @@ export { TokenAmount, TokenAmountProps, TokenGlyph, TokenGlyphProps, TokenSymbol
88
89
  export { StatPill, StatPillProps, StatTile, StatTileProps } from './components/stat-tile.cjs';
89
90
  export { ActionDialog, ActionDialogProps } from './components/action-dialog.cjs';
90
91
  export { HiddenContentBanner } from './components/hidden-content-banner.cjs';
92
+ export { useRewardsCelebrations } from './components/rewards/use-rewards-celebrations.cjs';
93
+ export { LevelUpCelebration, LevelUpCelebrationProps } from './components/rewards/level-up-celebration.cjs';
94
+ export { BadgeUnlockToastContent, BadgeUnlockToastContentProps } from './components/rewards/badge-unlock-toast-content.cjs';
95
+ export { JourneyPath, JourneyPathProps, JourneyStep } from './components/rewards/journey-path.cjs';
91
96
  import 'clsx';
92
97
  import 'react';
93
98
  import 'lucide-react';
package/dist/index.d.ts CHANGED
@@ -77,9 +77,10 @@ export { ScoreSummaryCard, ScoreSummaryCardProps } from './components/rewards/sc
77
77
  export { LeaderboardEntryLike, LeaderboardTable, LeaderboardTableProps, LeaderboardWidget, LeaderboardWidgetProps } from './components/rewards/leaderboard-table.js';
78
78
  export { LevelLadder, LevelLadderProps } from './components/rewards/level-ladder.js';
79
79
  export { XpToastContent, XpToastContentProps } from './components/rewards/xp-toast-content.js';
80
- export { createRewardToast } from './components/rewards/reward-toast.js';
80
+ export { RewardToastSnapshot, createRewardToast } from './components/rewards/reward-toast.js';
81
81
  export { LoadMoreSentinel, LoadMoreSentinelProps } from './components/load-more-sentinel.js';
82
- export { CreatorsFundLeaderboardEntry, CreatorsFundSection, CreatorsFundSectionProps } from './components/creators-fund-section.js';
82
+ export { CommunityRewardsEntry, CommunityRewardsSection, CommunityRewardsSectionProps } from './components/community-rewards-section.js';
83
+ export { CreatorAirdropBanner, CreatorAirdropBannerProps } from './components/creator-airdrop-banner.js';
83
84
  export { ActionButton, ActionButtonProps, ActionKey, ToneKey } from './components/action-button.js';
84
85
  export { GradientButton, GradientButtonProps } from './components/gradient-button.js';
85
86
  export { CoinLaunchPreview, CoinPreviewData } from './components/coin-launch-preview.js';
@@ -88,6 +89,10 @@ export { TokenAmount, TokenAmountProps, TokenGlyph, TokenGlyphProps, TokenSymbol
88
89
  export { StatPill, StatPillProps, StatTile, StatTileProps } from './components/stat-tile.js';
89
90
  export { ActionDialog, ActionDialogProps } from './components/action-dialog.js';
90
91
  export { HiddenContentBanner } from './components/hidden-content-banner.js';
92
+ export { useRewardsCelebrations } from './components/rewards/use-rewards-celebrations.js';
93
+ export { LevelUpCelebration, LevelUpCelebrationProps } from './components/rewards/level-up-celebration.js';
94
+ export { BadgeUnlockToastContent, BadgeUnlockToastContentProps } from './components/rewards/badge-unlock-toast-content.js';
95
+ export { JourneyPath, JourneyPathProps, JourneyStep } from './components/rewards/journey-path.js';
91
96
  import 'clsx';
92
97
  import 'react';
93
98
  import 'lucide-react';
package/dist/index.js CHANGED
@@ -125,7 +125,8 @@ import { LevelLadder } from "./components/rewards/level-ladder.js";
125
125
  import { XpToastContent } from "./components/rewards/xp-toast-content.js";
126
126
  import { createRewardToast } from "./components/rewards/reward-toast.js";
127
127
  import { LoadMoreSentinel } from "./components/load-more-sentinel.js";
128
- import { CreatorsFundSection } from "./components/creators-fund-section.js";
128
+ import { CommunityRewardsSection } from "./components/community-rewards-section.js";
129
+ import { CreatorAirdropBanner } from "./components/creator-airdrop-banner.js";
129
130
  import { ActionButton } from "./components/action-button.js";
130
131
  import { GradientButton } from "./components/gradient-button.js";
131
132
  import { CoinLaunchPreview } from "./components/coin-launch-preview.js";
@@ -134,6 +135,10 @@ import { TokenGlyph, TokenAmount } from "./components/token-glyph.js";
134
135
  import { StatTile, StatPill } from "./components/stat-tile.js";
135
136
  import { ActionDialog } from "./components/action-dialog.js";
136
137
  import { HiddenContentBanner } from "./components/hidden-content-banner.js";
138
+ import { useRewardsCelebrations } from "./components/rewards/use-rewards-celebrations.js";
139
+ import { LevelUpCelebration } from "./components/rewards/level-up-celebration.js";
140
+ import { BadgeUnlockToastContent } from "./components/rewards/badge-unlock-toast-content.js";
141
+ import { JourneyPath } from "./components/rewards/journey-path.js";
137
142
  export {
138
143
  ACTIVITY_MESSAGES,
139
144
  ACTIVITY_TYPE_CONFIG,
@@ -162,6 +167,7 @@ export {
162
167
  AssetUtilityIcons,
163
168
  BRAND,
164
169
  BadgeShelf,
170
+ BadgeUnlockToastContent,
165
171
  ClaimRail,
166
172
  CoinCard,
167
173
  CoinCardSkeleton,
@@ -172,7 +178,8 @@ export {
172
178
  CollectionCardSkeleton,
173
179
  CollectionFiltersBody,
174
180
  CollectionFiltersTrigger,
175
- CreatorsFundSection,
181
+ CommunityRewardsSection,
182
+ CreatorAirdropBanner,
176
183
  CtaCardGrid,
177
184
  CurrencyAmount,
178
185
  CurrencyIcon,
@@ -218,6 +225,7 @@ export {
218
225
  IP_TYPE_DATA_MAP,
219
226
  IP_TYPE_MAP,
220
227
  IpTypeBadge,
228
+ JourneyPath,
221
229
  KineticWords,
222
230
  LAUNCHPAD_SERVICE_DEFINITIONS,
223
231
  LAUNCHPAD_SERVICE_GROUPS,
@@ -232,6 +240,7 @@ export {
232
240
  LeaderboardWidget,
233
241
  LevelBadge,
234
242
  LevelLadder,
243
+ LevelUpCelebration,
235
244
  LicenseTermsBuilder,
236
245
  ListingCard,
237
246
  ListingCardSkeleton,
@@ -298,6 +307,7 @@ export {
298
307
  useIntersectionActive,
299
308
  useLaunchpadFilter,
300
309
  useNavAccountSheet,
301
- useNavCommandMenu
310
+ useNavCommandMenu,
311
+ useRewardsCelebrations
302
312
  };
303
313
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["// ── Utils ─────────────────────────────────────────────────────────────────────\nexport { cn } from \"./utils/cn.js\";\nexport { formatDisplayPrice, parsePriceDisplay } from \"./utils/format.js\";\nexport { shortenAddress } from \"./utils/address.js\";\nexport { ipfsToHttp } from \"./utils/ipfs.js\";\nexport { useIntersectionActive } from \"./utils/use-intersection-active.js\";\nexport { getReadIds, markRead } from \"./utils/notification-storage.js\";\nexport { licenseSummary } from \"./utils/license-summary.js\";\n\n// ── Data (server-safe — no React, safe in Server Components) ──────────────────\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 { BRAND } from \"./data/brand.js\";\nexport { LIVING_RENDER_COLLECTIONS, isLivingRenderCollection } from \"./data/living-render-collections.js\";\n\n// ── Components (client-only — all have \"use client\") ─────────────────────────\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\n// ── v0.2 additions ────────────────────────────────────────────────────────────\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// ── Coin discovery (chain-agnostic; price/data/href injected by the app) ─────\nexport {\n coinKind, formatCoinPrice, formatFdv,\n type CoinKind, type CoinCollectionLike, type CoinPriceLike,\n} from \"./data/coins.js\";\nexport { CoinCard, CoinRow, CoinCardSkeleton, type UseCoinPrice, type CoinTileProps } from \"./components/coin-card.js\";\nexport {\n CoinsExplorer,\n type CoinsExplorerProps, type CoinFilter, type CoinSort, type UseCoins,\n} from \"./components/coins-explorer.js\";\n\n// ── v0.3 additions ────────────────────────────────────────────────────────────\nexport { timeAgo, timeUntil } from \"./utils/time.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 { ActivityRow } from \"./components/activity-row.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\n// ── v0.3.2 additions ─────────────────────────────────────────────────────────\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\n// ── Launchpad (grouped sections — single page-UI source since 0.8.0) ─────────\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 type { LaunchpadGroupedSectionsProps, LaunchpadServiceCardProps, ServiceOverride, ServiceOverrides } 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\n// ── v0.5.0 additions ─────────────────────────────────────────────────────────\nexport { NavCommandMenu, useNavCommandMenu } from \"./components/nav-command-menu.js\";\nexport type { NavCommand, NavCommandGroup, NavCommandMenuProps } from \"./components/nav-command-menu.js\";\n\n// ── v0.62.0 — nav shell (brand trigger + header buttons + account sheet) ─────\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\n// ── v0.59.0 — portfolio shell (two-level nav + header + overview) ────────────\nexport { PortfolioNav } from \"./components/portfolio-nav.js\";\nexport type {\n PortfolioNavProps,\n PortfolioNavSection,\n PortfolioNavChild,\n PortfolioBadgeVariant,\n} from \"./components/portfolio-nav.js\";\nexport { PortfolioHeader } from \"./components/portfolio-header.js\";\nexport type {\n PortfolioHeaderProps,\n PortfolioHeaderScore,\n} from \"./components/portfolio-header.js\";\nexport { PortfolioOverview } from \"./components/portfolio-overview.js\";\nexport type {\n PortfolioOverviewProps,\n PortfolioBentoTileConfig,\n} from \"./components/portfolio-overview.js\";\nexport { derivePortfolioCounts } from \"./utils/portfolio-counts.js\";\nexport type { PortfolioCounts, CountableOrder } from \"./utils/portfolio-counts.js\";\nexport { PortfolioBentoTile } from \"./components/portfolio-bento-tile.js\";\nexport type { PortfolioBentoTileProps } from \"./components/portfolio-bento-tile.js\";\nexport { PortfolioChipFilter } from \"./components/portfolio-chip-filter.js\";\nexport type {\n PortfolioChipFilterProps,\n PortfolioChipFilterOption,\n} from \"./components/portfolio-chip-filter.js\";\n\n// ── v0.22.0 additions — launchpad/claim form template primitives ─────────────\n// Pure-presentation header + rail shared by every launchpad/claim form. The\n// app supplies its own gate, back button, and form logic. Requires the\n// `.btn-border-animated` class (in @medialane/ui/styles) for the form shell.\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\n// ── v0.23.0 additions — slot-based form shell ────────────────────────────────\n// Pure layout (back slot + header + animated-border compartment + 8/4 bento).\n// No auth/router — the app injects its own gate (around children) + back button.\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\n// Rewards score kit (v0.36.0)\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 { LevelLadder } from \"./components/rewards/level-ladder.js\";\nexport type { LevelLadderProps } from \"./components/rewards/level-ladder.js\";\nexport { XpToastContent } from \"./components/rewards/xp-toast-content.js\";\nexport type { XpToastContentProps } from \"./components/rewards/xp-toast-content.js\";\nexport { createRewardToast } from \"./components/rewards/reward-toast.js\";\n\n// ── v0.37.0 additions — infinite-scroll trigger ──────────────────────────────\nexport { LoadMoreSentinel } from \"./components/load-more-sentinel.js\";\nexport type { LoadMoreSentinelProps } from \"./components/load-more-sentinel.js\";\n\n// ── v0.47.0 additions — community rewards section ────────────────────────────\nexport { CreatorsFundSection } from \"./components/creators-fund-section.js\";\nexport type { CreatorsFundSectionProps, CreatorsFundLeaderboardEntry } from \"./components/creators-fund-section.js\";\n\n// ── Design system primitives — action-focus pattern, tokens, data display ────\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 } from \"./components/stat-tile.js\";\nexport type { StatTileProps, StatPillProps } from \"./components/stat-tile.js\";\n\nexport { ActionDialog } from \"./components/action-dialog.js\";\nexport type { ActionDialogProps } from \"./components/action-dialog.js\";\n\nexport { HiddenContentBanner } from \"./components/hidden-content-banner.js\";\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["// ── Utils ─────────────────────────────────────────────────────────────────────\nexport { cn } from \"./utils/cn.js\";\nexport { formatDisplayPrice, parsePriceDisplay } from \"./utils/format.js\";\nexport { shortenAddress } from \"./utils/address.js\";\nexport { ipfsToHttp } from \"./utils/ipfs.js\";\nexport { useIntersectionActive } from \"./utils/use-intersection-active.js\";\nexport { getReadIds, markRead } from \"./utils/notification-storage.js\";\nexport { licenseSummary } from \"./utils/license-summary.js\";\n\n// ── Data (server-safe — no React, safe in Server Components) ──────────────────\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 { BRAND } from \"./data/brand.js\";\nexport { LIVING_RENDER_COLLECTIONS, isLivingRenderCollection } from \"./data/living-render-collections.js\";\n\n// ── Components (client-only — all have \"use client\") ─────────────────────────\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\n// ── v0.2 additions ────────────────────────────────────────────────────────────\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// ── Coin discovery (chain-agnostic; price/data/href injected by the app) ─────\nexport {\n coinKind, formatCoinPrice, formatFdv,\n type CoinKind, type CoinCollectionLike, type CoinPriceLike,\n} from \"./data/coins.js\";\nexport { CoinCard, CoinRow, CoinCardSkeleton, type UseCoinPrice, type CoinTileProps } from \"./components/coin-card.js\";\nexport {\n CoinsExplorer,\n type CoinsExplorerProps, type CoinFilter, type CoinSort, type UseCoins,\n} from \"./components/coins-explorer.js\";\n\n// ── v0.3 additions ────────────────────────────────────────────────────────────\nexport { timeAgo, timeUntil } from \"./utils/time.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 { ActivityRow } from \"./components/activity-row.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\n// ── v0.3.2 additions ─────────────────────────────────────────────────────────\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\n// ── Launchpad (grouped sections — single page-UI source since 0.8.0) ─────────\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 type { LaunchpadGroupedSectionsProps, LaunchpadServiceCardProps, ServiceOverride, ServiceOverrides } 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\n// ── v0.5.0 additions ─────────────────────────────────────────────────────────\nexport { NavCommandMenu, useNavCommandMenu } from \"./components/nav-command-menu.js\";\nexport type { NavCommand, NavCommandGroup, NavCommandMenuProps } from \"./components/nav-command-menu.js\";\n\n// ── v0.62.0 — nav shell (brand trigger + header buttons + account sheet) ─────\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\n// ── v0.59.0 — portfolio shell (two-level nav + header + overview) ────────────\nexport { PortfolioNav } from \"./components/portfolio-nav.js\";\nexport type {\n PortfolioNavProps,\n PortfolioNavSection,\n PortfolioNavChild,\n PortfolioBadgeVariant,\n} from \"./components/portfolio-nav.js\";\nexport { PortfolioHeader } from \"./components/portfolio-header.js\";\nexport type {\n PortfolioHeaderProps,\n PortfolioHeaderScore,\n} from \"./components/portfolio-header.js\";\nexport { PortfolioOverview } from \"./components/portfolio-overview.js\";\nexport type {\n PortfolioOverviewProps,\n PortfolioBentoTileConfig,\n} from \"./components/portfolio-overview.js\";\nexport { derivePortfolioCounts } from \"./utils/portfolio-counts.js\";\nexport type { PortfolioCounts, CountableOrder } from \"./utils/portfolio-counts.js\";\nexport { PortfolioBentoTile } from \"./components/portfolio-bento-tile.js\";\nexport type { PortfolioBentoTileProps } from \"./components/portfolio-bento-tile.js\";\nexport { PortfolioChipFilter } from \"./components/portfolio-chip-filter.js\";\nexport type {\n PortfolioChipFilterProps,\n PortfolioChipFilterOption,\n} from \"./components/portfolio-chip-filter.js\";\n\n// ── v0.22.0 additions — launchpad/claim form template primitives ─────────────\n// Pure-presentation header + rail shared by every launchpad/claim form. The\n// app supplies its own gate, back button, and form logic. Requires the\n// `.btn-border-animated` class (in @medialane/ui/styles) for the form shell.\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\n// ── v0.23.0 additions — slot-based form shell ────────────────────────────────\n// Pure layout (back slot + header + animated-border compartment + 8/4 bento).\n// No auth/router — the app injects its own gate (around children) + back button.\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\n// Rewards score kit (v0.36.0)\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 { LevelLadder } from \"./components/rewards/level-ladder.js\";\nexport type { LevelLadderProps } from \"./components/rewards/level-ladder.js\";\nexport { XpToastContent } from \"./components/rewards/xp-toast-content.js\";\nexport type { XpToastContentProps } from \"./components/rewards/xp-toast-content.js\";\nexport { createRewardToast } from \"./components/rewards/reward-toast.js\";\nexport type { RewardToastSnapshot } from \"./components/rewards/reward-toast.js\";\n\n// ── v0.37.0 additions — infinite-scroll trigger ──────────────────────────────\nexport { LoadMoreSentinel } from \"./components/load-more-sentinel.js\";\nexport type { LoadMoreSentinelProps } from \"./components/load-more-sentinel.js\";\n\n// ── v0.47.0 additions — community rewards section ────────────────────────────\nexport { CommunityRewardsSection } from \"./components/community-rewards-section.js\";\nexport type { CommunityRewardsSectionProps, CommunityRewardsEntry } from \"./components/community-rewards-section.js\";\nexport { CreatorAirdropBanner } from \"./components/creator-airdrop-banner.js\";\nexport type { CreatorAirdropBannerProps } from \"./components/creator-airdrop-banner.js\";\n\n// ── Design system primitives — action-focus pattern, tokens, data display ────\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 } from \"./components/stat-tile.js\";\nexport type { StatTileProps, StatPillProps } from \"./components/stat-tile.js\";\n\nexport { ActionDialog } from \"./components/action-dialog.js\";\nexport type { ActionDialogProps } from \"./components/action-dialog.js\";\n\nexport { HiddenContentBanner } from \"./components/hidden-content-banner.js\";\n\n// ── v0.99.0 additions — rewards UX overhaul ───────────────────────────────────\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 { BadgeUnlockToastContent } from \"./components/rewards/badge-unlock-toast-content.js\";\nexport type { BadgeUnlockToastContentProps } from \"./components/rewards/badge-unlock-toast-content.js\";\nexport { JourneyPath } from \"./components/rewards/journey-path.js\";\nexport type { JourneyPathProps, JourneyStep } from \"./components/rewards/journey-path.js\";\n"],"mappings":"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","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@medialane/ui",
3
- "version": "0.97.0",
3
+ "version": "0.99.0",
4
4
  "description": "Shared UI components for Medialane apps",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -1,139 +0,0 @@
1
- "use strict";
2
- "use client";
3
- var __create = Object.create;
4
- var __defProp = Object.defineProperty;
5
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
- var __getOwnPropNames = Object.getOwnPropertyNames;
7
- var __getProtoOf = Object.getPrototypeOf;
8
- var __hasOwnProp = Object.prototype.hasOwnProperty;
9
- var __export = (target, all) => {
10
- for (var name in all)
11
- __defProp(target, name, { get: all[name], enumerable: true });
12
- };
13
- var __copyProps = (to, from, except, desc) => {
14
- if (from && typeof from === "object" || typeof from === "function") {
15
- for (let key of __getOwnPropNames(from))
16
- if (!__hasOwnProp.call(to, key) && key !== except)
17
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
18
- }
19
- return to;
20
- };
21
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
22
- // If the importer is in node compatibility mode or this is not an ESM
23
- // file that has been converted to a CommonJS file using a Babel-
24
- // compatible transform (i.e. "__esModule" has not been set), then set
25
- // "default" to the CommonJS "module.exports" for node compatibility.
26
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
27
- mod
28
- ));
29
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
30
- var creators_fund_section_exports = {};
31
- __export(creators_fund_section_exports, {
32
- CreatorsFundSection: () => CreatorsFundSection
33
- });
34
- module.exports = __toCommonJS(creators_fund_section_exports);
35
- var import_jsx_runtime = require("react/jsx-runtime");
36
- var import_link = __toESM(require("next/link"), 1);
37
- var import_lucide_react = require("lucide-react");
38
- var import_level_badge = require("./rewards/level-badge.js");
39
- const EARN_ACTIONS = [
40
- { icon: import_lucide_react.Zap, label: "Mint" },
41
- { icon: import_lucide_react.Palette, label: "Create" },
42
- { icon: import_lucide_react.ShoppingBag, label: "Trade" },
43
- { icon: import_lucide_react.MessageSquare, label: "Engage" }
44
- ];
45
- function CreatorsFundSection({
46
- airdropHref,
47
- rewardsHref,
48
- creatorHref,
49
- entries,
50
- isLoading = false
51
- }) {
52
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("section", { className: "rounded-2xl bg-muted/50 dark:bg-card overflow-hidden grid lg:grid-cols-2 max-lg:divide-y lg:divide-x divide-border", children: [
53
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "px-7 py-9 sm:px-9 flex flex-col gap-6", children: [
54
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex items-center gap-2.5", children: [
55
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "text-xs font-bold uppercase tracking-widest text-brand-orange", children: "Creator's Fund" }),
56
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { className: "flex items-center gap-1.5 text-xs font-medium text-muted-foreground", children: [
57
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "h-1.5 w-1.5 rounded-full bg-brand-orange animate-pulse" }),
58
- "Live"
59
- ] })
60
- ] }),
61
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { children: [
62
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("h2", { className: "text-3xl sm:text-4xl font-black tracking-tight leading-tight", children: "The more you create, the bigger your share." }),
63
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "mt-2.5 text-base text-muted-foreground leading-relaxed max-w-md", children: "Every mint, listing, and trade earns XP and levels you up. When the fund pays out, your level decides your share." })
64
- ] }),
65
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "flex flex-wrap gap-x-5 gap-y-2", children: EARN_ACTIONS.map(({ icon: Icon, label }) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
66
- "span",
67
- {
68
- className: "flex items-center gap-1.5 text-sm font-medium text-muted-foreground",
69
- children: [
70
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, { className: "h-3.5 w-3.5 text-brand-orange/70" }),
71
- label
72
- ]
73
- },
74
- label
75
- )) }),
76
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex flex-wrap items-center gap-3", children: [
77
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
78
- import_link.default,
79
- {
80
- href: airdropHref,
81
- className: "inline-flex items-center justify-center gap-2 h-12 px-5 rounded-xl text-sm font-semibold text-white bg-brand-orange hover:brightness-110 active:scale-[0.98] transition-all",
82
- children: [
83
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_lucide_react.Sparkles, { className: "h-4 w-4" }),
84
- "Claim my spot"
85
- ]
86
- }
87
- ),
88
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
89
- import_link.default,
90
- {
91
- href: rewardsHref,
92
- className: "inline-flex items-center gap-1.5 h-12 px-5 rounded-xl text-sm font-semibold text-foreground border border-border hover:border-brand-orange/40 hover:text-brand-orange transition-colors",
93
- children: [
94
- "See my level",
95
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_lucide_react.ArrowRight, { className: "h-3.5 w-3.5" })
96
- ]
97
- }
98
- )
99
- ] }),
100
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "text-xs text-muted-foreground/70", children: "Free to join \xB7 No card required \xB7 Every $1,000 the fund earns gets split among participants" })
101
- ] }),
102
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "px-5 py-6 sm:px-6 flex flex-col", children: [
103
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "text-xs font-semibold text-muted-foreground mb-3", children: "Recently leveled up" }),
104
- !isLoading && entries.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "flex-1 rounded-xl border border-border overflow-hidden", children: entries.slice(0, 5).map((entry) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
105
- import_link.default,
106
- {
107
- href: creatorHref(entry.address),
108
- className: "flex items-center gap-3 border-b border-border/60 bg-card px-3.5 py-3 last:border-b-0 hover:bg-muted/30 transition-colors",
109
- children: [
110
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { className: "min-w-0 flex-1 truncate text-sm font-medium", children: [
111
- entry.address.slice(0, 6),
112
- "\u2026",
113
- entry.address.slice(-4)
114
- ] }),
115
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
116
- import_level_badge.LevelBadge,
117
- {
118
- level: entry.currentLevel,
119
- name: entry.currentLevelName,
120
- badgeColor: entry.badgeColor,
121
- size: "sm"
122
- }
123
- ),
124
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { className: "shrink-0 text-xs text-muted-foreground tabular-nums", children: [
125
- entry.totalXp.toLocaleString(),
126
- " XP"
127
- ] })
128
- ]
129
- },
130
- entry.address
131
- )) }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "flex-1 space-y-2", children: Array.from({ length: 5 }).map((_, i) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "h-[46px] rounded-xl bg-card dark:bg-muted/30 animate-pulse" }, i)) })
132
- ] })
133
- ] });
134
- }
135
- // Annotate the CommonJS export names for ESM import in node:
136
- 0 && (module.exports = {
137
- CreatorsFundSection
138
- });
139
- //# sourceMappingURL=creators-fund-section.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/components/creators-fund-section.tsx"],"sourcesContent":["\"use client\";\n\nimport Link from \"next/link\";\nimport { ArrowRight, Sparkles, Zap, Palette, ShoppingBag, MessageSquare } from \"lucide-react\";\nimport { LevelBadge } from \"./rewards/level-badge.js\";\n\nexport interface CreatorsFundLeaderboardEntry {\n address: string;\n totalXp: number;\n currentLevel: number;\n currentLevelName: string;\n badgeColor: string;\n}\n\nexport interface CreatorsFundSectionProps {\n /** Route of the airdrop claim page. */\n airdropHref: string;\n /** Route of the rewards/leaderboard page. */\n rewardsHref: string;\n creatorHref: (address: string) => string;\n entries: CreatorsFundLeaderboardEntry[];\n isLoading?: boolean;\n}\n\nconst EARN_ACTIONS = [\n { icon: Zap, label: \"Mint\" },\n { icon: Palette, label: \"Create\" },\n { icon: ShoppingBag, label: \"Trade\" },\n { icon: MessageSquare, label: \"Engage\" },\n];\n\n/** Home-page teaser for the Creator's Fund — merges what were two separate,\n * visually near-identical sections (airdrop CTA + community leaderboard)\n * into one. Uses the real level system (LevelBadge) instead of raw XP\n * numbers or a ranked podium — this is participation, not competition, per\n * LeaderboardTable's own convention. */\nexport function CreatorsFundSection({\n airdropHref,\n rewardsHref,\n creatorHref,\n entries,\n isLoading = false,\n}: CreatorsFundSectionProps) {\n return (\n <section className=\"rounded-2xl bg-muted/50 dark:bg-card overflow-hidden grid lg:grid-cols-2 max-lg:divide-y lg:divide-x divide-border\">\n\n {/* Left — pitch + how to earn + CTAs */}\n <div className=\"px-7 py-9 sm:px-9 flex flex-col gap-6\">\n <div className=\"flex items-center gap-2.5\">\n <span className=\"text-xs font-bold uppercase tracking-widest text-brand-orange\">\n Creator&apos;s Fund\n </span>\n <span className=\"flex items-center gap-1.5 text-xs font-medium text-muted-foreground\">\n <span className=\"h-1.5 w-1.5 rounded-full bg-brand-orange animate-pulse\" />\n Live\n </span>\n </div>\n\n <div>\n <h2 className=\"text-3xl sm:text-4xl font-black tracking-tight leading-tight\">\n The more you create, the bigger your share.\n </h2>\n <p className=\"mt-2.5 text-base text-muted-foreground leading-relaxed max-w-md\">\n Every mint, listing, and trade earns XP and levels you up. When\n the fund pays out, your level decides your share.\n </p>\n </div>\n\n {/* How you earn XP */}\n <div className=\"flex flex-wrap gap-x-5 gap-y-2\">\n {EARN_ACTIONS.map(({ icon: Icon, label }) => (\n <span\n key={label}\n className=\"flex items-center gap-1.5 text-sm font-medium text-muted-foreground\"\n >\n <Icon className=\"h-3.5 w-3.5 text-brand-orange/70\" />\n {label}\n </span>\n ))}\n </div>\n\n <div className=\"flex flex-wrap items-center gap-3\">\n <Link\n href={airdropHref}\n className=\"inline-flex items-center justify-center gap-2 h-12 px-5 rounded-xl text-sm font-semibold text-white bg-brand-orange hover:brightness-110 active:scale-[0.98] transition-all\"\n >\n <Sparkles className=\"h-4 w-4\" />\n Claim my spot\n </Link>\n <Link\n href={rewardsHref}\n className=\"inline-flex items-center gap-1.5 h-12 px-5 rounded-xl text-sm font-semibold text-foreground border border-border hover:border-brand-orange/40 hover:text-brand-orange transition-colors\"\n >\n See my level\n <ArrowRight className=\"h-3.5 w-3.5\" />\n </Link>\n </div>\n\n <p className=\"text-xs text-muted-foreground/70\">\n Free to join · No card required · Every $1,000 the fund earns gets split among participants\n </p>\n </div>\n\n {/* Right — community levels, no ranking */}\n <div className=\"px-5 py-6 sm:px-6 flex flex-col\">\n <p className=\"text-xs font-semibold text-muted-foreground mb-3\">Recently leveled up</p>\n {!isLoading && entries.length > 0 ? (\n <div className=\"flex-1 rounded-xl border border-border overflow-hidden\">\n {entries.slice(0, 5).map((entry) => (\n <Link\n key={entry.address}\n href={creatorHref(entry.address)}\n className=\"flex items-center gap-3 border-b border-border/60 bg-card px-3.5 py-3 last:border-b-0 hover:bg-muted/30 transition-colors\"\n >\n <span className=\"min-w-0 flex-1 truncate text-sm font-medium\">\n {entry.address.slice(0, 6)}…{entry.address.slice(-4)}\n </span>\n <LevelBadge\n level={entry.currentLevel}\n name={entry.currentLevelName}\n badgeColor={entry.badgeColor}\n size=\"sm\"\n />\n <span className=\"shrink-0 text-xs text-muted-foreground tabular-nums\">\n {entry.totalXp.toLocaleString()} XP\n </span>\n </Link>\n ))}\n </div>\n ) : (\n <div className=\"flex-1 space-y-2\">\n {Array.from({ length: 5 }).map((_, i) => (\n <div key={i} className=\"h-[46px] rounded-xl bg-card dark:bg-muted/30 animate-pulse\" />\n ))}\n </div>\n )}\n </div>\n </section>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAiDU;AA/CV,kBAAiB;AACjB,0BAA+E;AAC/E,yBAA2B;AAoB3B,MAAM,eAAe;AAAA,EACnB,EAAE,MAAM,yBAAK,OAAO,OAAO;AAAA,EAC3B,EAAE,MAAM,6BAAS,OAAO,SAAS;AAAA,EACjC,EAAE,MAAM,iCAAa,OAAO,QAAQ;AAAA,EACpC,EAAE,MAAM,mCAAe,OAAO,SAAS;AACzC;AAOO,SAAS,oBAAoB;AAAA,EAClC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,YAAY;AACd,GAA6B;AAC3B,SACE,6CAAC,aAAQ,WAAU,sHAGjB;AAAA,iDAAC,SAAI,WAAU,yCACb;AAAA,mDAAC,SAAI,WAAU,6BACb;AAAA,oDAAC,UAAK,WAAU,iEAAgE,4BAEhF;AAAA,QACA,6CAAC,UAAK,WAAU,uEACd;AAAA,sDAAC,UAAK,WAAU,0DAAyD;AAAA,UAAE;AAAA,WAE7E;AAAA,SACF;AAAA,MAEA,6CAAC,SACC;AAAA,oDAAC,QAAG,WAAU,gEAA+D,yDAE7E;AAAA,QACA,4CAAC,OAAE,WAAU,mEAAkE,+HAG/E;AAAA,SACF;AAAA,MAGA,4CAAC,SAAI,WAAU,kCACZ,uBAAa,IAAI,CAAC,EAAE,MAAM,MAAM,MAAM,MACrC;AAAA,QAAC;AAAA;AAAA,UAEC,WAAU;AAAA,UAEV;AAAA,wDAAC,QAAK,WAAU,oCAAmC;AAAA,YAClD;AAAA;AAAA;AAAA,QAJI;AAAA,MAKP,CACD,GACH;AAAA,MAEA,6CAAC,SAAI,WAAU,qCACb;AAAA;AAAA,UAAC,YAAAA;AAAA,UAAA;AAAA,YACC,MAAM;AAAA,YACN,WAAU;AAAA,YAEV;AAAA,0DAAC,gCAAS,WAAU,WAAU;AAAA,cAAE;AAAA;AAAA;AAAA,QAElC;AAAA,QACA;AAAA,UAAC,YAAAA;AAAA,UAAA;AAAA,YACC,MAAM;AAAA,YACN,WAAU;AAAA,YACX;AAAA;AAAA,cAEC,4CAAC,kCAAW,WAAU,eAAc;AAAA;AAAA;AAAA,QACtC;AAAA,SACF;AAAA,MAEA,4CAAC,OAAE,WAAU,oCAAmC,+GAEhD;AAAA,OACF;AAAA,IAGA,6CAAC,SAAI,WAAU,mCACb;AAAA,kDAAC,OAAE,WAAU,oDAAmD,iCAAmB;AAAA,MAClF,CAAC,aAAa,QAAQ,SAAS,IAC9B,4CAAC,SAAI,WAAU,0DACZ,kBAAQ,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,UACxB;AAAA,QAAC,YAAAA;AAAA,QAAA;AAAA,UAEC,MAAM,YAAY,MAAM,OAAO;AAAA,UAC/B,WAAU;AAAA,UAEV;AAAA,yDAAC,UAAK,WAAU,+CACb;AAAA,oBAAM,QAAQ,MAAM,GAAG,CAAC;AAAA,cAAE;AAAA,cAAE,MAAM,QAAQ,MAAM,EAAE;AAAA,eACrD;AAAA,YACA;AAAA,cAAC;AAAA;AAAA,gBACC,OAAO,MAAM;AAAA,gBACb,MAAM,MAAM;AAAA,gBACZ,YAAY,MAAM;AAAA,gBAClB,MAAK;AAAA;AAAA,YACP;AAAA,YACA,6CAAC,UAAK,WAAU,uDACb;AAAA,oBAAM,QAAQ,eAAe;AAAA,cAAE;AAAA,eAClC;AAAA;AAAA;AAAA,QAfK,MAAM;AAAA,MAgBb,CACD,GACH,IAEA,4CAAC,SAAI,WAAU,oBACZ,gBAAM,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,MACjC,4CAAC,SAAY,WAAU,gEAAb,CAA0E,CACrF,GACH;AAAA,OAEJ;AAAA,KACF;AAEJ;","names":["Link"]}
@@ -1,26 +0,0 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
-
3
- interface CreatorsFundLeaderboardEntry {
4
- address: string;
5
- totalXp: number;
6
- currentLevel: number;
7
- currentLevelName: string;
8
- badgeColor: string;
9
- }
10
- interface CreatorsFundSectionProps {
11
- /** Route of the airdrop claim page. */
12
- airdropHref: string;
13
- /** Route of the rewards/leaderboard page. */
14
- rewardsHref: string;
15
- creatorHref: (address: string) => string;
16
- entries: CreatorsFundLeaderboardEntry[];
17
- isLoading?: boolean;
18
- }
19
- /** Home-page teaser for the Creator's Fund — merges what were two separate,
20
- * visually near-identical sections (airdrop CTA + community leaderboard)
21
- * into one. Uses the real level system (LevelBadge) instead of raw XP
22
- * numbers or a ranked podium — this is participation, not competition, per
23
- * LeaderboardTable's own convention. */
24
- declare function CreatorsFundSection({ airdropHref, rewardsHref, creatorHref, entries, isLoading, }: CreatorsFundSectionProps): react_jsx_runtime.JSX.Element;
25
-
26
- export { type CreatorsFundLeaderboardEntry, CreatorsFundSection, type CreatorsFundSectionProps };
@@ -1,26 +0,0 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
-
3
- interface CreatorsFundLeaderboardEntry {
4
- address: string;
5
- totalXp: number;
6
- currentLevel: number;
7
- currentLevelName: string;
8
- badgeColor: string;
9
- }
10
- interface CreatorsFundSectionProps {
11
- /** Route of the airdrop claim page. */
12
- airdropHref: string;
13
- /** Route of the rewards/leaderboard page. */
14
- rewardsHref: string;
15
- creatorHref: (address: string) => string;
16
- entries: CreatorsFundLeaderboardEntry[];
17
- isLoading?: boolean;
18
- }
19
- /** Home-page teaser for the Creator's Fund — merges what were two separate,
20
- * visually near-identical sections (airdrop CTA + community leaderboard)
21
- * into one. Uses the real level system (LevelBadge) instead of raw XP
22
- * numbers or a ranked podium — this is participation, not competition, per
23
- * LeaderboardTable's own convention. */
24
- declare function CreatorsFundSection({ airdropHref, rewardsHref, creatorHref, entries, isLoading, }: CreatorsFundSectionProps): react_jsx_runtime.JSX.Element;
25
-
26
- export { type CreatorsFundLeaderboardEntry, CreatorsFundSection, type CreatorsFundSectionProps };
@@ -1,105 +0,0 @@
1
- "use client";
2
- import { jsx, jsxs } from "react/jsx-runtime";
3
- import Link from "next/link";
4
- import { ArrowRight, Sparkles, Zap, Palette, ShoppingBag, MessageSquare } from "lucide-react";
5
- import { LevelBadge } from "./rewards/level-badge.js";
6
- const EARN_ACTIONS = [
7
- { icon: Zap, label: "Mint" },
8
- { icon: Palette, label: "Create" },
9
- { icon: ShoppingBag, label: "Trade" },
10
- { icon: MessageSquare, label: "Engage" }
11
- ];
12
- function CreatorsFundSection({
13
- airdropHref,
14
- rewardsHref,
15
- creatorHref,
16
- entries,
17
- isLoading = false
18
- }) {
19
- return /* @__PURE__ */ jsxs("section", { className: "rounded-2xl bg-muted/50 dark:bg-card overflow-hidden grid lg:grid-cols-2 max-lg:divide-y lg:divide-x divide-border", children: [
20
- /* @__PURE__ */ jsxs("div", { className: "px-7 py-9 sm:px-9 flex flex-col gap-6", children: [
21
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2.5", children: [
22
- /* @__PURE__ */ jsx("span", { className: "text-xs font-bold uppercase tracking-widest text-brand-orange", children: "Creator's Fund" }),
23
- /* @__PURE__ */ jsxs("span", { className: "flex items-center gap-1.5 text-xs font-medium text-muted-foreground", children: [
24
- /* @__PURE__ */ jsx("span", { className: "h-1.5 w-1.5 rounded-full bg-brand-orange animate-pulse" }),
25
- "Live"
26
- ] })
27
- ] }),
28
- /* @__PURE__ */ jsxs("div", { children: [
29
- /* @__PURE__ */ jsx("h2", { className: "text-3xl sm:text-4xl font-black tracking-tight leading-tight", children: "The more you create, the bigger your share." }),
30
- /* @__PURE__ */ jsx("p", { className: "mt-2.5 text-base text-muted-foreground leading-relaxed max-w-md", children: "Every mint, listing, and trade earns XP and levels you up. When the fund pays out, your level decides your share." })
31
- ] }),
32
- /* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-x-5 gap-y-2", children: EARN_ACTIONS.map(({ icon: Icon, label }) => /* @__PURE__ */ jsxs(
33
- "span",
34
- {
35
- className: "flex items-center gap-1.5 text-sm font-medium text-muted-foreground",
36
- children: [
37
- /* @__PURE__ */ jsx(Icon, { className: "h-3.5 w-3.5 text-brand-orange/70" }),
38
- label
39
- ]
40
- },
41
- label
42
- )) }),
43
- /* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center gap-3", children: [
44
- /* @__PURE__ */ jsxs(
45
- Link,
46
- {
47
- href: airdropHref,
48
- className: "inline-flex items-center justify-center gap-2 h-12 px-5 rounded-xl text-sm font-semibold text-white bg-brand-orange hover:brightness-110 active:scale-[0.98] transition-all",
49
- children: [
50
- /* @__PURE__ */ jsx(Sparkles, { className: "h-4 w-4" }),
51
- "Claim my spot"
52
- ]
53
- }
54
- ),
55
- /* @__PURE__ */ jsxs(
56
- Link,
57
- {
58
- href: rewardsHref,
59
- className: "inline-flex items-center gap-1.5 h-12 px-5 rounded-xl text-sm font-semibold text-foreground border border-border hover:border-brand-orange/40 hover:text-brand-orange transition-colors",
60
- children: [
61
- "See my level",
62
- /* @__PURE__ */ jsx(ArrowRight, { className: "h-3.5 w-3.5" })
63
- ]
64
- }
65
- )
66
- ] }),
67
- /* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground/70", children: "Free to join \xB7 No card required \xB7 Every $1,000 the fund earns gets split among participants" })
68
- ] }),
69
- /* @__PURE__ */ jsxs("div", { className: "px-5 py-6 sm:px-6 flex flex-col", children: [
70
- /* @__PURE__ */ jsx("p", { className: "text-xs font-semibold text-muted-foreground mb-3", children: "Recently leveled up" }),
71
- !isLoading && entries.length > 0 ? /* @__PURE__ */ jsx("div", { className: "flex-1 rounded-xl border border-border overflow-hidden", children: entries.slice(0, 5).map((entry) => /* @__PURE__ */ jsxs(
72
- Link,
73
- {
74
- href: creatorHref(entry.address),
75
- className: "flex items-center gap-3 border-b border-border/60 bg-card px-3.5 py-3 last:border-b-0 hover:bg-muted/30 transition-colors",
76
- children: [
77
- /* @__PURE__ */ jsxs("span", { className: "min-w-0 flex-1 truncate text-sm font-medium", children: [
78
- entry.address.slice(0, 6),
79
- "\u2026",
80
- entry.address.slice(-4)
81
- ] }),
82
- /* @__PURE__ */ jsx(
83
- LevelBadge,
84
- {
85
- level: entry.currentLevel,
86
- name: entry.currentLevelName,
87
- badgeColor: entry.badgeColor,
88
- size: "sm"
89
- }
90
- ),
91
- /* @__PURE__ */ jsxs("span", { className: "shrink-0 text-xs text-muted-foreground tabular-nums", children: [
92
- entry.totalXp.toLocaleString(),
93
- " XP"
94
- ] })
95
- ]
96
- },
97
- entry.address
98
- )) }) : /* @__PURE__ */ jsx("div", { className: "flex-1 space-y-2", children: Array.from({ length: 5 }).map((_, i) => /* @__PURE__ */ jsx("div", { className: "h-[46px] rounded-xl bg-card dark:bg-muted/30 animate-pulse" }, i)) })
99
- ] })
100
- ] });
101
- }
102
- export {
103
- CreatorsFundSection
104
- };
105
- //# sourceMappingURL=creators-fund-section.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/components/creators-fund-section.tsx"],"sourcesContent":["\"use client\";\n\nimport Link from \"next/link\";\nimport { ArrowRight, Sparkles, Zap, Palette, ShoppingBag, MessageSquare } from \"lucide-react\";\nimport { LevelBadge } from \"./rewards/level-badge.js\";\n\nexport interface CreatorsFundLeaderboardEntry {\n address: string;\n totalXp: number;\n currentLevel: number;\n currentLevelName: string;\n badgeColor: string;\n}\n\nexport interface CreatorsFundSectionProps {\n /** Route of the airdrop claim page. */\n airdropHref: string;\n /** Route of the rewards/leaderboard page. */\n rewardsHref: string;\n creatorHref: (address: string) => string;\n entries: CreatorsFundLeaderboardEntry[];\n isLoading?: boolean;\n}\n\nconst EARN_ACTIONS = [\n { icon: Zap, label: \"Mint\" },\n { icon: Palette, label: \"Create\" },\n { icon: ShoppingBag, label: \"Trade\" },\n { icon: MessageSquare, label: \"Engage\" },\n];\n\n/** Home-page teaser for the Creator's Fund — merges what were two separate,\n * visually near-identical sections (airdrop CTA + community leaderboard)\n * into one. Uses the real level system (LevelBadge) instead of raw XP\n * numbers or a ranked podium — this is participation, not competition, per\n * LeaderboardTable's own convention. */\nexport function CreatorsFundSection({\n airdropHref,\n rewardsHref,\n creatorHref,\n entries,\n isLoading = false,\n}: CreatorsFundSectionProps) {\n return (\n <section className=\"rounded-2xl bg-muted/50 dark:bg-card overflow-hidden grid lg:grid-cols-2 max-lg:divide-y lg:divide-x divide-border\">\n\n {/* Left — pitch + how to earn + CTAs */}\n <div className=\"px-7 py-9 sm:px-9 flex flex-col gap-6\">\n <div className=\"flex items-center gap-2.5\">\n <span className=\"text-xs font-bold uppercase tracking-widest text-brand-orange\">\n Creator&apos;s Fund\n </span>\n <span className=\"flex items-center gap-1.5 text-xs font-medium text-muted-foreground\">\n <span className=\"h-1.5 w-1.5 rounded-full bg-brand-orange animate-pulse\" />\n Live\n </span>\n </div>\n\n <div>\n <h2 className=\"text-3xl sm:text-4xl font-black tracking-tight leading-tight\">\n The more you create, the bigger your share.\n </h2>\n <p className=\"mt-2.5 text-base text-muted-foreground leading-relaxed max-w-md\">\n Every mint, listing, and trade earns XP and levels you up. When\n the fund pays out, your level decides your share.\n </p>\n </div>\n\n {/* How you earn XP */}\n <div className=\"flex flex-wrap gap-x-5 gap-y-2\">\n {EARN_ACTIONS.map(({ icon: Icon, label }) => (\n <span\n key={label}\n className=\"flex items-center gap-1.5 text-sm font-medium text-muted-foreground\"\n >\n <Icon className=\"h-3.5 w-3.5 text-brand-orange/70\" />\n {label}\n </span>\n ))}\n </div>\n\n <div className=\"flex flex-wrap items-center gap-3\">\n <Link\n href={airdropHref}\n className=\"inline-flex items-center justify-center gap-2 h-12 px-5 rounded-xl text-sm font-semibold text-white bg-brand-orange hover:brightness-110 active:scale-[0.98] transition-all\"\n >\n <Sparkles className=\"h-4 w-4\" />\n Claim my spot\n </Link>\n <Link\n href={rewardsHref}\n className=\"inline-flex items-center gap-1.5 h-12 px-5 rounded-xl text-sm font-semibold text-foreground border border-border hover:border-brand-orange/40 hover:text-brand-orange transition-colors\"\n >\n See my level\n <ArrowRight className=\"h-3.5 w-3.5\" />\n </Link>\n </div>\n\n <p className=\"text-xs text-muted-foreground/70\">\n Free to join · No card required · Every $1,000 the fund earns gets split among participants\n </p>\n </div>\n\n {/* Right — community levels, no ranking */}\n <div className=\"px-5 py-6 sm:px-6 flex flex-col\">\n <p className=\"text-xs font-semibold text-muted-foreground mb-3\">Recently leveled up</p>\n {!isLoading && entries.length > 0 ? (\n <div className=\"flex-1 rounded-xl border border-border overflow-hidden\">\n {entries.slice(0, 5).map((entry) => (\n <Link\n key={entry.address}\n href={creatorHref(entry.address)}\n className=\"flex items-center gap-3 border-b border-border/60 bg-card px-3.5 py-3 last:border-b-0 hover:bg-muted/30 transition-colors\"\n >\n <span className=\"min-w-0 flex-1 truncate text-sm font-medium\">\n {entry.address.slice(0, 6)}…{entry.address.slice(-4)}\n </span>\n <LevelBadge\n level={entry.currentLevel}\n name={entry.currentLevelName}\n badgeColor={entry.badgeColor}\n size=\"sm\"\n />\n <span className=\"shrink-0 text-xs text-muted-foreground tabular-nums\">\n {entry.totalXp.toLocaleString()} XP\n </span>\n </Link>\n ))}\n </div>\n ) : (\n <div className=\"flex-1 space-y-2\">\n {Array.from({ length: 5 }).map((_, i) => (\n <div key={i} className=\"h-[46px] rounded-xl bg-card dark:bg-muted/30 animate-pulse\" />\n ))}\n </div>\n )}\n </div>\n </section>\n );\n}\n"],"mappings":";AAiDU,cAGA,YAHA;AA/CV,OAAO,UAAU;AACjB,SAAS,YAAY,UAAU,KAAK,SAAS,aAAa,qBAAqB;AAC/E,SAAS,kBAAkB;AAoB3B,MAAM,eAAe;AAAA,EACnB,EAAE,MAAM,KAAK,OAAO,OAAO;AAAA,EAC3B,EAAE,MAAM,SAAS,OAAO,SAAS;AAAA,EACjC,EAAE,MAAM,aAAa,OAAO,QAAQ;AAAA,EACpC,EAAE,MAAM,eAAe,OAAO,SAAS;AACzC;AAOO,SAAS,oBAAoB;AAAA,EAClC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,YAAY;AACd,GAA6B;AAC3B,SACE,qBAAC,aAAQ,WAAU,sHAGjB;AAAA,yBAAC,SAAI,WAAU,yCACb;AAAA,2BAAC,SAAI,WAAU,6BACb;AAAA,4BAAC,UAAK,WAAU,iEAAgE,4BAEhF;AAAA,QACA,qBAAC,UAAK,WAAU,uEACd;AAAA,8BAAC,UAAK,WAAU,0DAAyD;AAAA,UAAE;AAAA,WAE7E;AAAA,SACF;AAAA,MAEA,qBAAC,SACC;AAAA,4BAAC,QAAG,WAAU,gEAA+D,yDAE7E;AAAA,QACA,oBAAC,OAAE,WAAU,mEAAkE,+HAG/E;AAAA,SACF;AAAA,MAGA,oBAAC,SAAI,WAAU,kCACZ,uBAAa,IAAI,CAAC,EAAE,MAAM,MAAM,MAAM,MACrC;AAAA,QAAC;AAAA;AAAA,UAEC,WAAU;AAAA,UAEV;AAAA,gCAAC,QAAK,WAAU,oCAAmC;AAAA,YAClD;AAAA;AAAA;AAAA,QAJI;AAAA,MAKP,CACD,GACH;AAAA,MAEA,qBAAC,SAAI,WAAU,qCACb;AAAA;AAAA,UAAC;AAAA;AAAA,YACC,MAAM;AAAA,YACN,WAAU;AAAA,YAEV;AAAA,kCAAC,YAAS,WAAU,WAAU;AAAA,cAAE;AAAA;AAAA;AAAA,QAElC;AAAA,QACA;AAAA,UAAC;AAAA;AAAA,YACC,MAAM;AAAA,YACN,WAAU;AAAA,YACX;AAAA;AAAA,cAEC,oBAAC,cAAW,WAAU,eAAc;AAAA;AAAA;AAAA,QACtC;AAAA,SACF;AAAA,MAEA,oBAAC,OAAE,WAAU,oCAAmC,+GAEhD;AAAA,OACF;AAAA,IAGA,qBAAC,SAAI,WAAU,mCACb;AAAA,0BAAC,OAAE,WAAU,oDAAmD,iCAAmB;AAAA,MAClF,CAAC,aAAa,QAAQ,SAAS,IAC9B,oBAAC,SAAI,WAAU,0DACZ,kBAAQ,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,UACxB;AAAA,QAAC;AAAA;AAAA,UAEC,MAAM,YAAY,MAAM,OAAO;AAAA,UAC/B,WAAU;AAAA,UAEV;AAAA,iCAAC,UAAK,WAAU,+CACb;AAAA,oBAAM,QAAQ,MAAM,GAAG,CAAC;AAAA,cAAE;AAAA,cAAE,MAAM,QAAQ,MAAM,EAAE;AAAA,eACrD;AAAA,YACA;AAAA,cAAC;AAAA;AAAA,gBACC,OAAO,MAAM;AAAA,gBACb,MAAM,MAAM;AAAA,gBACZ,YAAY,MAAM;AAAA,gBAClB,MAAK;AAAA;AAAA,YACP;AAAA,YACA,qBAAC,UAAK,WAAU,uDACb;AAAA,oBAAM,QAAQ,eAAe;AAAA,cAAE;AAAA,eAClC;AAAA;AAAA;AAAA,QAfK,MAAM;AAAA,MAgBb,CACD,GACH,IAEA,oBAAC,SAAI,WAAU,oBACZ,gBAAM,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,MACjC,oBAAC,SAAY,WAAU,gEAAb,CAA0E,CACrF,GACH;AAAA,OAEJ;AAAA,KACF;AAEJ;","names":[]}