@medialane/ui 0.6.0 → 0.8.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/launchpad-services.cjs +166 -129
- package/dist/components/launchpad-services.cjs.map +1 -1
- package/dist/components/launchpad-services.d.cts +30 -9
- package/dist/components/launchpad-services.d.ts +30 -9
- package/dist/components/launchpad-services.js +166 -128
- package/dist/components/launchpad-services.js.map +1 -1
- package/dist/data/launchpad-services.cjs +151 -35
- package/dist/data/launchpad-services.cjs.map +1 -1
- package/dist/data/launchpad-services.d.cts +15 -1
- package/dist/data/launchpad-services.d.ts +15 -1
- package/dist/data/launchpad-services.js +152 -35
- package/dist/data/launchpad-services.js.map +1 -1
- package/dist/index.cjs +8 -5
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -3
- package/dist/index.d.ts +2 -3
- package/dist/index.js +6 -5
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/components/launchpad-grid.cjs +0 -77
- package/dist/components/launchpad-grid.cjs.map +0 -1
- package/dist/components/launchpad-grid.d.cts +0 -20
- package/dist/components/launchpad-grid.d.ts +0 -20
- package/dist/components/launchpad-grid.js +0 -43
- package/dist/components/launchpad-grid.js.map +0 -1
|
@@ -9,16 +9,64 @@ import {
|
|
|
9
9
|
Users,
|
|
10
10
|
RefreshCw,
|
|
11
11
|
Coins,
|
|
12
|
-
TrendingUp
|
|
12
|
+
TrendingUp,
|
|
13
|
+
AtSign,
|
|
14
|
+
FolderInput
|
|
13
15
|
} from "lucide-react";
|
|
16
|
+
const LAUNCHPAD_SERVICE_GROUPS = [
|
|
17
|
+
{
|
|
18
|
+
key: "single-edition",
|
|
19
|
+
title: "Single Edition NFTs",
|
|
20
|
+
badge: "ERC-721",
|
|
21
|
+
tagline: "Publish one-of-one works and group them under your own brand."
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
key: "limited-editions",
|
|
25
|
+
title: "Limited Editions",
|
|
26
|
+
badge: "ERC-1155",
|
|
27
|
+
tagline: "Release your work in numbered multiples collectors can buy and trade."
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
key: "creator-coins",
|
|
31
|
+
title: "Creator Coins",
|
|
32
|
+
tagline: "Launch your own coin with a public liquidity pool you control."
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
key: "collection-drop",
|
|
36
|
+
title: "Collection Drop",
|
|
37
|
+
tagline: "Timed releases with mint windows your community can race to collect."
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
key: "pop-protocol",
|
|
41
|
+
title: "POP Protocol",
|
|
42
|
+
tagline: "Credentials for your events and community \u2014 permanent, non-transferable proof."
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
key: "licensing-remix",
|
|
46
|
+
title: "Licensing & Remix",
|
|
47
|
+
tagline: "Licensed derivatives with attribution and royalties flowing back to you."
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
key: "claims",
|
|
51
|
+
title: "Claims",
|
|
52
|
+
tagline: "Free wins that build your creator profile and bring your existing work onchain."
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
key: "coming-soon",
|
|
56
|
+
title: "Coming soon",
|
|
57
|
+
tagline: "More monetization services on the way."
|
|
58
|
+
}
|
|
59
|
+
];
|
|
14
60
|
const LAUNCHPAD_SERVICE_DEFINITIONS = [
|
|
15
61
|
// ── Create ────────────────────────────────────────────────────────────────
|
|
16
62
|
{
|
|
17
63
|
key: "mint-ip-asset",
|
|
18
|
-
title: "Mint
|
|
19
|
-
subtitle: "Publish
|
|
20
|
-
description: "
|
|
21
|
-
features
|
|
64
|
+
title: "Mint singular NFT",
|
|
65
|
+
subtitle: "Publish your creative work onchain",
|
|
66
|
+
description: "Upload any photo, video, audio, or document and mint it as an IP NFT \u2014 with licensing, provenance, and ownership all locked on-chain.",
|
|
67
|
+
// Apps may override features[0] with their gasless-rail wording (ChipiPay/AVNU).
|
|
68
|
+
features: ["Gasless transactions", "IPFS metadata", "Programmable licensing"],
|
|
69
|
+
example: "e.g. A song, a photo, an ebook, a short film",
|
|
22
70
|
icon: ImagePlus,
|
|
23
71
|
gradient: "from-blue-500/10 via-sky-400/4 to-transparent",
|
|
24
72
|
borderColor: "border-blue-500/20",
|
|
@@ -26,14 +74,16 @@ const LAUNCHPAD_SERVICE_DEFINITIONS = [
|
|
|
26
74
|
buttonColor: "bg-brand-blue hover:bg-brand-blue/90",
|
|
27
75
|
badge: "Create",
|
|
28
76
|
status: "live",
|
|
29
|
-
category: "create"
|
|
77
|
+
category: "create",
|
|
78
|
+
group: "single-edition"
|
|
30
79
|
},
|
|
31
80
|
{
|
|
32
81
|
key: "create-collection",
|
|
33
|
-
title: "Create Collection",
|
|
82
|
+
title: "Create NFT Collection",
|
|
34
83
|
subtitle: "Group your NFTs under a shared identity",
|
|
35
|
-
description: "Deploy a branded ERC-721 collection with its own page
|
|
84
|
+
description: "Deploy a branded ERC-721 collection with its own page and on-chain identity. Add assets to it at any time and share it with collectors.",
|
|
36
85
|
features: ["Factory-deployed ERC-721", "Branded collection page", "Add assets at any time"],
|
|
86
|
+
example: "e.g. A photography portfolio, a music catalog, a comic series",
|
|
37
87
|
icon: Layers,
|
|
38
88
|
gradient: "from-violet-500/10 via-purple-400/4 to-transparent",
|
|
39
89
|
borderColor: "border-violet-500/20",
|
|
@@ -41,14 +91,16 @@ const LAUNCHPAD_SERVICE_DEFINITIONS = [
|
|
|
41
91
|
buttonColor: "bg-brand-purple hover:bg-brand-purple/90",
|
|
42
92
|
badge: "Create",
|
|
43
93
|
status: "live",
|
|
44
|
-
category: "create"
|
|
94
|
+
category: "create",
|
|
95
|
+
group: "single-edition"
|
|
45
96
|
},
|
|
46
97
|
{
|
|
47
98
|
key: "ip-collection-1155",
|
|
48
|
-
title: "
|
|
99
|
+
title: "Limited Editions Collections",
|
|
49
100
|
subtitle: "Deploy a contract for multi-copy NFT releases",
|
|
50
|
-
description: "
|
|
51
|
-
features: ["Multi-edition ERC-1155", "
|
|
101
|
+
description: "Create a collection built for editions \u2014 release music tracks, art prints, or any IP in numbered multiples. Each edition token is tradeable on Medialane.",
|
|
102
|
+
features: ["Multi-edition ERC-1155", "Numbered tokens", "Tradeable on Medialane"],
|
|
103
|
+
example: "e.g. 50 copies of a limited print, a music EP released in 100 editions",
|
|
52
104
|
icon: Layers,
|
|
53
105
|
gradient: "from-violet-500/10 via-purple-400/4 to-transparent",
|
|
54
106
|
borderColor: "border-violet-500/20",
|
|
@@ -56,14 +108,16 @@ const LAUNCHPAD_SERVICE_DEFINITIONS = [
|
|
|
56
108
|
buttonColor: "bg-violet-600 hover:bg-violet-700",
|
|
57
109
|
badge: "Create",
|
|
58
110
|
status: "live",
|
|
59
|
-
category: "create"
|
|
111
|
+
category: "create",
|
|
112
|
+
group: "limited-editions"
|
|
60
113
|
},
|
|
61
114
|
{
|
|
62
115
|
key: "mint-editions",
|
|
63
|
-
title: "Mint
|
|
116
|
+
title: "Mint Limited Edition",
|
|
64
117
|
subtitle: "Add new editions to an existing collection",
|
|
65
|
-
description: "
|
|
118
|
+
description: "Pick one of your Limited Edition contracts, upload artwork, set the supply, and release to collectors \u2014 all in a few clicks.",
|
|
66
119
|
features: ["Choose any edition collection", "Set edition supply", "IPFS metadata"],
|
|
120
|
+
example: "e.g. Drop 25 numbered prints from your art series",
|
|
67
121
|
icon: PlusCircle,
|
|
68
122
|
gradient: "from-fuchsia-500/10 via-violet-400/4 to-transparent",
|
|
69
123
|
borderColor: "border-fuchsia-500/20",
|
|
@@ -71,14 +125,16 @@ const LAUNCHPAD_SERVICE_DEFINITIONS = [
|
|
|
71
125
|
buttonColor: "bg-fuchsia-600 hover:bg-fuchsia-700",
|
|
72
126
|
badge: "Create",
|
|
73
127
|
status: "live",
|
|
74
|
-
category: "create"
|
|
128
|
+
category: "create",
|
|
129
|
+
group: "limited-editions"
|
|
75
130
|
},
|
|
76
131
|
{
|
|
77
132
|
key: "remix-asset",
|
|
78
133
|
title: "Remix Asset",
|
|
79
134
|
subtitle: "Derivative works with on-chain attribution",
|
|
80
|
-
description: "Create a licensed derivative of any
|
|
135
|
+
description: "Create a licensed derivative of any digital asset with full provenance and attribution flowing back to the original creator on-chain.",
|
|
81
136
|
features: ["On-chain attribution", "License-enforced at mint", "Royalties to original creator"],
|
|
137
|
+
example: "e.g. A remix of a song, a derivative artwork inspired by an original",
|
|
82
138
|
icon: GitBranch,
|
|
83
139
|
gradient: "from-rose-500/10 via-pink-400/4 to-transparent",
|
|
84
140
|
borderColor: "border-rose-500/20",
|
|
@@ -86,15 +142,17 @@ const LAUNCHPAD_SERVICE_DEFINITIONS = [
|
|
|
86
142
|
buttonColor: "bg-brand-rose hover:bg-brand-rose/90",
|
|
87
143
|
badge: "Create",
|
|
88
144
|
status: "live",
|
|
89
|
-
category: "create"
|
|
145
|
+
category: "create",
|
|
146
|
+
group: "licensing-remix"
|
|
90
147
|
},
|
|
91
148
|
// ── Launch ────────────────────────────────────────────────────────────────
|
|
92
149
|
{
|
|
93
150
|
key: "pop-protocol",
|
|
94
151
|
title: "POP Protocol",
|
|
95
152
|
subtitle: "Proof-of-participation for events & communities",
|
|
96
|
-
description: "
|
|
153
|
+
description: "Issue soulbound credentials to your community \u2014 one non-transferable badge per wallet, permanently on-chain. No transferring, no faking.",
|
|
97
154
|
features: ["Soulbound \xB7 non-transferable", "One credential per wallet", "Optional allowlist gating"],
|
|
155
|
+
example: "e.g. Hackathon attendance badge, community membership, conference pass",
|
|
98
156
|
icon: Award,
|
|
99
157
|
gradient: "from-emerald-500/10 via-green-400/4 to-transparent",
|
|
100
158
|
borderColor: "border-emerald-500/20",
|
|
@@ -103,14 +161,16 @@ const LAUNCHPAD_SERVICE_DEFINITIONS = [
|
|
|
103
161
|
badge: "Launch",
|
|
104
162
|
browseLinkLabel: "Browse events",
|
|
105
163
|
status: "live",
|
|
106
|
-
category: "launch"
|
|
164
|
+
category: "launch",
|
|
165
|
+
group: "pop-protocol"
|
|
107
166
|
},
|
|
108
167
|
{
|
|
109
168
|
key: "collection-drop",
|
|
110
169
|
title: "Collection Drop",
|
|
111
|
-
subtitle: "
|
|
112
|
-
description: "Launch a
|
|
113
|
-
features: ["
|
|
170
|
+
subtitle: "Timed NFT releases with mint windows",
|
|
171
|
+
description: "Launch a time-gated mint campaign \u2014 set a price, supply cap, start and end time, and let collectors mint directly from your drop page.",
|
|
172
|
+
features: ["Timed mint window", "Price + supply cap", "Branded drop page"],
|
|
173
|
+
example: "e.g. A 48-hour drop of 200 NFTs at 5 USDC each",
|
|
114
174
|
icon: Package,
|
|
115
175
|
gradient: "from-orange-500/10 via-amber-400/4 to-transparent",
|
|
116
176
|
borderColor: "border-orange-500/20",
|
|
@@ -119,7 +179,8 @@ const LAUNCHPAD_SERVICE_DEFINITIONS = [
|
|
|
119
179
|
badge: "Launch",
|
|
120
180
|
browseLinkLabel: "Browse drops",
|
|
121
181
|
status: "live",
|
|
122
|
-
category: "launch"
|
|
182
|
+
category: "launch",
|
|
183
|
+
group: "collection-drop"
|
|
123
184
|
},
|
|
124
185
|
{
|
|
125
186
|
key: "ip-tickets",
|
|
@@ -133,7 +194,8 @@ const LAUNCHPAD_SERVICE_DEFINITIONS = [
|
|
|
133
194
|
iconColor: "text-teal-500",
|
|
134
195
|
badge: "Soon",
|
|
135
196
|
status: "building",
|
|
136
|
-
category: "launch"
|
|
197
|
+
category: "launch",
|
|
198
|
+
group: "coming-soon"
|
|
137
199
|
},
|
|
138
200
|
{
|
|
139
201
|
key: "membership",
|
|
@@ -147,7 +209,8 @@ const LAUNCHPAD_SERVICE_DEFINITIONS = [
|
|
|
147
209
|
iconColor: "text-indigo-400",
|
|
148
210
|
badge: "Soon",
|
|
149
211
|
status: "soon",
|
|
150
|
-
category: "launch"
|
|
212
|
+
category: "launch",
|
|
213
|
+
group: "coming-soon"
|
|
151
214
|
},
|
|
152
215
|
// ── Monetize ─────────────────────────────────────────────────────────────
|
|
153
216
|
{
|
|
@@ -162,7 +225,8 @@ const LAUNCHPAD_SERVICE_DEFINITIONS = [
|
|
|
162
225
|
iconColor: "text-sky-400",
|
|
163
226
|
badge: "Soon",
|
|
164
227
|
status: "soon",
|
|
165
|
-
category: "monetize"
|
|
228
|
+
category: "monetize",
|
|
229
|
+
group: "coming-soon"
|
|
166
230
|
},
|
|
167
231
|
{
|
|
168
232
|
key: "ip-coins",
|
|
@@ -176,24 +240,77 @@ const LAUNCHPAD_SERVICE_DEFINITIONS = [
|
|
|
176
240
|
iconColor: "text-amber-400",
|
|
177
241
|
badge: "Soon",
|
|
178
242
|
status: "soon",
|
|
179
|
-
category: "monetize"
|
|
243
|
+
category: "monetize",
|
|
244
|
+
group: "coming-soon"
|
|
180
245
|
},
|
|
181
246
|
{
|
|
182
247
|
key: "creator-coins",
|
|
183
|
-
title: "Creator
|
|
184
|
-
subtitle: "
|
|
185
|
-
description: "Launch a
|
|
186
|
-
features: ["
|
|
248
|
+
title: "Creator Coin",
|
|
249
|
+
subtitle: "Your own coin, your liquidity",
|
|
250
|
+
description: "Launch a standard ERC-20 coin tied to your creative work, paired with a public Ekubo liquidity pool. You set the supply and allocation \u2014 and you stay in control of the liquidity.",
|
|
251
|
+
features: ["Standard ERC-20", "Public Ekubo pool", "You control the liquidity"],
|
|
187
252
|
icon: TrendingUp,
|
|
188
253
|
gradient: "from-pink-500/6 via-rose-400/2 to-transparent",
|
|
189
|
-
borderColor: "border-pink-500/
|
|
254
|
+
borderColor: "border-pink-500/20",
|
|
190
255
|
iconColor: "text-pink-400",
|
|
256
|
+
buttonColor: "bg-brand-rose hover:bg-brand-rose/90",
|
|
191
257
|
badge: "Soon",
|
|
192
258
|
status: "soon",
|
|
193
|
-
category: "monetize"
|
|
259
|
+
category: "monetize",
|
|
260
|
+
group: "creator-coins"
|
|
261
|
+
},
|
|
262
|
+
// ── Claims ────────────────────────────────────────────────────────────────
|
|
263
|
+
{
|
|
264
|
+
key: "claim-memecoin",
|
|
265
|
+
title: "Claim Memecoin",
|
|
266
|
+
subtitle: "Bring your Starknet coin to Medialane",
|
|
267
|
+
description: "Already launched a coin on Starknet (unrug or partner)? Claim it to add it to Medialane \u2014 reviewed by our team, then live on the Coins page and your profile.",
|
|
268
|
+
features: ["unrug & partner coins", "Team reviewed", "Lists on /coins"],
|
|
269
|
+
icon: Coins,
|
|
270
|
+
gradient: "from-orange-500/10 via-amber-400/4 to-transparent",
|
|
271
|
+
borderColor: "border-orange-500/20",
|
|
272
|
+
iconColor: "text-orange-500",
|
|
273
|
+
buttonColor: "bg-orange-600 hover:bg-orange-700",
|
|
274
|
+
badge: "Claim",
|
|
275
|
+
status: "soon",
|
|
276
|
+
category: "monetize",
|
|
277
|
+
group: "creator-coins"
|
|
278
|
+
},
|
|
279
|
+
{
|
|
280
|
+
key: "claim-username",
|
|
281
|
+
title: "Claim Username",
|
|
282
|
+
subtitle: "Reserve your creator page URL",
|
|
283
|
+
description: "Claim your unique username and get a shareable creator page \u2014 your public portfolio at a clean, memorable URL. Free, and yours.",
|
|
284
|
+
features: ["Free claim", "Shareable creator page", "Your public portfolio"],
|
|
285
|
+
icon: AtSign,
|
|
286
|
+
gradient: "from-violet-500/10 via-purple-400/4 to-transparent",
|
|
287
|
+
borderColor: "border-violet-500/20",
|
|
288
|
+
iconColor: "text-violet-500",
|
|
289
|
+
buttonColor: "bg-brand-purple hover:bg-brand-purple/90",
|
|
290
|
+
badge: "Claim",
|
|
291
|
+
status: "live",
|
|
292
|
+
category: "create",
|
|
293
|
+
group: "claims"
|
|
294
|
+
},
|
|
295
|
+
{
|
|
296
|
+
key: "claim-collection",
|
|
297
|
+
title: "Claim Collection",
|
|
298
|
+
subtitle: "Import an existing Starknet collection",
|
|
299
|
+
description: "Already deployed an ERC-721 collection on Starknet? Claim it to link it to your Medialane profile and give it a branded collection page.",
|
|
300
|
+
features: ["Import existing ERC-721", "Linked to your profile", "Branded collection page"],
|
|
301
|
+
icon: FolderInput,
|
|
302
|
+
gradient: "from-blue-500/10 via-sky-400/4 to-transparent",
|
|
303
|
+
borderColor: "border-blue-500/20",
|
|
304
|
+
iconColor: "text-blue-500",
|
|
305
|
+
buttonColor: "bg-brand-blue hover:bg-brand-blue/90",
|
|
306
|
+
badge: "Claim",
|
|
307
|
+
status: "live",
|
|
308
|
+
category: "create",
|
|
309
|
+
group: "claims"
|
|
194
310
|
}
|
|
195
311
|
];
|
|
196
312
|
export {
|
|
197
|
-
LAUNCHPAD_SERVICE_DEFINITIONS
|
|
313
|
+
LAUNCHPAD_SERVICE_DEFINITIONS,
|
|
314
|
+
LAUNCHPAD_SERVICE_GROUPS
|
|
198
315
|
};
|
|
199
316
|
//# sourceMappingURL=launchpad-services.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/data/launchpad-services.ts"],"sourcesContent":["import type { LucideIcon } from \"lucide-react\";\nimport {\n ImagePlus, Layers, GitBranch,\n Award, Package, PlusCircle,\n Ticket, Users,\n RefreshCw, Coins, TrendingUp,\n} from \"lucide-react\";\n\nexport type ServiceStatus = \"live\" | \"building\" | \"soon\";\nexport type ServiceCategory = \"create\" | \"launch\" | \"monetize\";\n\nexport interface ServiceDefinition {\n key: string;\n title: string;\n subtitle: string;\n description: string;\n features: string[];\n icon: LucideIcon;\n gradient: string;\n borderColor: string;\n iconColor: string;\n buttonColor?: string;\n badge: string;\n status: ServiceStatus;\n category: ServiceCategory;\n /** Secondary browse link label — injected app adds the href */\n browseLinkLabel?: string;\n}\n\nexport const LAUNCHPAD_SERVICE_DEFINITIONS: ServiceDefinition[] = [\n // ── Create ────────────────────────────────────────────────────────────────\n {\n key: \"mint-ip-asset\",\n title: \"Mint IP NFT\",\n subtitle: \"Publish any creative work on Starknet\",\n description:\n \"Turn any photo, video, or audio file into a programmable IP NFT. Gasless, permanent, and immediately tradeable on Medialane.\",\n features: [\"Gasless via ChipiPay\", \"IPFS metadata\", \"Programmable licensing\"],\n icon: ImagePlus,\n gradient: \"from-blue-500/10 via-sky-400/4 to-transparent\",\n borderColor: \"border-blue-500/20\",\n iconColor: \"text-blue-500\",\n buttonColor: \"bg-brand-blue hover:bg-brand-blue/90\",\n badge: \"Create\",\n status: \"live\",\n category: \"create\",\n },\n {\n key: \"create-collection\",\n title: \"Create Collection\",\n subtitle: \"Group your NFTs under a shared identity\",\n description:\n \"Deploy a branded ERC-721 collection with its own page, metadata, and on-chain identity — ready to populate with assets at any time.\",\n features: [\"Factory-deployed ERC-721\", \"Branded collection page\", \"Add assets at any time\"],\n icon: Layers,\n gradient: \"from-violet-500/10 via-purple-400/4 to-transparent\",\n borderColor: \"border-violet-500/20\",\n iconColor: \"text-violet-500\",\n buttonColor: \"bg-brand-purple hover:bg-brand-purple/90\",\n badge: \"Create\",\n status: \"live\",\n category: \"create\",\n },\n {\n key: \"ip-collection-1155\",\n title: \"Edition Collection\",\n subtitle: \"Deploy a contract for multi-copy NFT releases\",\n description:\n \"Launch a collection for music tracks, art prints, or any IP you want to release in multiples. Each edition token is numbered and tradeable on Medialane.\",\n features: [\"Multi-edition ERC-1155\", \"Immutable provenance\", \"Tradeable on Medialane\"],\n icon: Layers,\n gradient: \"from-violet-500/10 via-purple-400/4 to-transparent\",\n borderColor: \"border-violet-500/20\",\n iconColor: \"text-violet-500\",\n buttonColor: \"bg-violet-600 hover:bg-violet-700\",\n badge: \"Create\",\n status: \"live\",\n category: \"create\",\n },\n {\n key: \"mint-editions\",\n title: \"Mint NFT Editions\",\n subtitle: \"Add new editions to an existing collection\",\n description:\n \"Select one of your Edition Collection contracts and mint new token editions into it — set supply, upload artwork, and release to collectors.\",\n features: [\"Choose any edition collection\", \"Set edition supply\", \"IPFS metadata\"],\n icon: PlusCircle,\n gradient: \"from-fuchsia-500/10 via-violet-400/4 to-transparent\",\n borderColor: \"border-fuchsia-500/20\",\n iconColor: \"text-fuchsia-500\",\n buttonColor: \"bg-fuchsia-600 hover:bg-fuchsia-700\",\n badge: \"Create\",\n status: \"live\",\n category: \"create\",\n },\n {\n key: \"remix-asset\",\n title: \"Remix Asset\",\n subtitle: \"Derivative works with on-chain attribution\",\n description:\n \"Create a licensed derivative of any IP asset with full provenance and attribution flowing back to the original creator.\",\n features: [\"On-chain attribution\", \"License-enforced at mint\", \"Royalties to original creator\"],\n icon: GitBranch,\n gradient: \"from-rose-500/10 via-pink-400/4 to-transparent\",\n borderColor: \"border-rose-500/20\",\n iconColor: \"text-rose-500\",\n buttonColor: \"bg-brand-rose hover:bg-brand-rose/90\",\n badge: \"Create\",\n status: \"live\",\n category: \"create\",\n },\n\n // ── Launch ────────────────────────────────────────────────────────────────\n {\n key: \"pop-protocol\",\n title: \"POP Protocol\",\n subtitle: \"Proof-of-participation for events & communities\",\n description:\n \"Give every attendee proof they were there. Issue soulbound credentials to your community — one non-transferable badge per wallet, permanently on-chain. Works for bootcamps, hackathons, and conferences.\",\n features: [\"Soulbound · non-transferable\", \"One credential per wallet\", \"Optional allowlist gating\"],\n icon: Award,\n gradient: \"from-emerald-500/10 via-green-400/4 to-transparent\",\n borderColor: \"border-emerald-500/20\",\n iconColor: \"text-emerald-500\",\n buttonColor: \"bg-green-600 hover:bg-green-700\",\n badge: \"Launch\",\n browseLinkLabel: \"Browse events\",\n status: \"live\",\n category: \"launch\",\n },\n {\n key: \"collection-drop\",\n title: \"Collection Drop\",\n subtitle: \"Limited-edition timed releases\",\n description:\n \"Launch a fixed-supply ERC-721 drop with a defined mint window and per-wallet limit. Set your open date and let your community race to collect.\",\n features: [\"Fixed supply cap\", \"Timed mint window\", \"Free or paid mint\"],\n icon: Package,\n gradient: \"from-orange-500/10 via-amber-400/4 to-transparent\",\n borderColor: \"border-orange-500/20\",\n iconColor: \"text-orange-500\",\n buttonColor: \"bg-orange-600 hover:bg-orange-700\",\n badge: \"Launch\",\n browseLinkLabel: \"Browse drops\",\n status: \"live\",\n category: \"launch\",\n },\n {\n key: \"ip-tickets\",\n title: \"IP Tickets\",\n subtitle: \"Gate real-world experiences with NFTs\",\n description:\n \"Distribute tickets for concerts, workshops, and events. Each ticket is verifiable on-chain proof of attendance.\",\n features: [\"NFT-based event gating\", \"Proof of attendance\", \"Transferable or soulbound\"],\n icon: Ticket,\n gradient: \"from-teal-500/7 via-cyan-400/3 to-transparent\",\n borderColor: \"border-teal-500/15\",\n iconColor: \"text-teal-500\",\n badge: \"Soon\",\n status: \"building\",\n category: \"launch\",\n },\n {\n key: \"membership\",\n title: \"Membership\",\n subtitle: \"Token-gated access passes\",\n description:\n \"Create tiered membership passes that unlock exclusive content, private communities, and experiences for your most loyal fans.\",\n features: [\"Token-gated content\", \"Tiered access levels\", \"Community alignment\"],\n icon: Users,\n gradient: \"from-indigo-500/6 via-violet-400/2 to-transparent\",\n borderColor: \"border-indigo-500/10\",\n iconColor: \"text-indigo-400\",\n badge: \"Soon\",\n status: \"soon\",\n category: \"launch\",\n },\n\n // ── Monetize ─────────────────────────────────────────────────────────────\n {\n key: \"subscriptions\",\n title: \"Subscriptions\",\n subtitle: \"Recurring on-chain revenue\",\n description:\n \"Monthly licensing, creator support tiers, and access passes — all auto-renewed without intermediaries.\",\n features: [\"Recurring revenue\", \"Auto-renewal protocol\", \"No middlemen\"],\n icon: RefreshCw,\n gradient: \"from-sky-500/6 via-blue-400/2 to-transparent\",\n borderColor: \"border-sky-500/10\",\n iconColor: \"text-sky-400\",\n badge: \"Soon\",\n status: \"soon\",\n category: \"monetize\",\n },\n {\n key: \"ip-coins\",\n title: \"IP Coins\",\n subtitle: \"Fractional ownership of intellectual property\",\n description:\n \"Tokenize your IP catalog as fungible tokens. Enable fractional ownership and liquid markets around your creative work.\",\n features: [\"Fungible IP tokens\", \"Fractional ownership\", \"Liquid secondary markets\"],\n icon: Coins,\n gradient: \"from-amber-500/6 via-yellow-400/2 to-transparent\",\n borderColor: \"border-amber-500/10\",\n iconColor: \"text-amber-400\",\n badge: \"Soon\",\n status: \"soon\",\n category: \"monetize\",\n },\n {\n key: \"creator-coins\",\n title: \"Creator Coins\",\n subtitle: \"Personal social token for fans\",\n description:\n \"Launch a social token tied to your creative career. Let fans invest directly in your work — full economic alignment between creator and community.\",\n features: [\"Personal social token\", \"Fan investment\", \"Creator-community alignment\"],\n icon: TrendingUp,\n gradient: \"from-pink-500/6 via-rose-400/2 to-transparent\",\n borderColor: \"border-pink-500/10\",\n iconColor: \"text-pink-400\",\n badge: \"Soon\",\n status: \"soon\",\n category: \"monetize\",\n },\n];\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/data/launchpad-services.ts"],"sourcesContent":["import type { LucideIcon } from \"lucide-react\";\nimport {\n ImagePlus, Layers, GitBranch,\n Award, Package, PlusCircle,\n Ticket, Users,\n RefreshCw, Coins, TrendingUp,\n AtSign, FolderInput,\n} from \"lucide-react\";\n\nexport type ServiceStatus = \"live\" | \"building\" | \"soon\";\nexport type ServiceCategory = \"create\" | \"launch\" | \"monetize\";\n\nexport type ServiceGroup =\n | \"single-edition\"\n | \"limited-editions\"\n | \"creator-coins\"\n | \"collection-drop\"\n | \"pop-protocol\"\n | \"licensing-remix\"\n | \"claims\"\n | \"coming-soon\";\n\nexport interface ServiceGroupDefinition {\n key: ServiceGroup;\n title: string;\n /** One line of plain creator language: what does this group do for my portfolio/revenue? */\n tagline: string;\n /** Optional small chip next to the title (e.g. the token standard) */\n badge?: string;\n}\n\n/** Ordered — launchpad pages render sections in this order. */\nexport const LAUNCHPAD_SERVICE_GROUPS: ServiceGroupDefinition[] = [\n {\n key: \"single-edition\",\n title: \"Single Edition NFTs\",\n badge: \"ERC-721\",\n tagline: \"Publish one-of-one works and group them under your own brand.\",\n },\n {\n key: \"limited-editions\",\n title: \"Limited Editions\",\n badge: \"ERC-1155\",\n tagline: \"Release your work in numbered multiples collectors can buy and trade.\",\n },\n {\n key: \"creator-coins\",\n title: \"Creator Coins\",\n tagline: \"Launch your own coin with a public liquidity pool you control.\",\n },\n {\n key: \"collection-drop\",\n title: \"Collection Drop\",\n tagline: \"Timed releases with mint windows your community can race to collect.\",\n },\n {\n key: \"pop-protocol\",\n title: \"POP Protocol\",\n tagline: \"Credentials for your events and community — permanent, non-transferable proof.\",\n },\n {\n key: \"licensing-remix\",\n title: \"Licensing & Remix\",\n tagline: \"Licensed derivatives with attribution and royalties flowing back to you.\",\n },\n {\n key: \"claims\",\n title: \"Claims\",\n tagline: \"Free wins that build your creator profile and bring your existing work onchain.\",\n },\n {\n key: \"coming-soon\",\n title: \"Coming soon\",\n tagline: \"More monetization services on the way.\",\n },\n];\n\nexport interface ServiceDefinition {\n key: string;\n title: string;\n subtitle: string;\n description: string;\n features: string[];\n icon: LucideIcon;\n gradient: string;\n borderColor: string;\n iconColor: string;\n buttonColor?: string;\n badge: string;\n status: ServiceStatus;\n category: ServiceCategory;\n group: ServiceGroup;\n /** Concrete usage example shown on active cards (italic line). */\n example?: string;\n /** Secondary browse link label — injected app adds the href */\n browseLinkLabel?: string;\n}\n\nexport const LAUNCHPAD_SERVICE_DEFINITIONS: ServiceDefinition[] = [\n // ── Create ────────────────────────────────────────────────────────────────\n {\n key: \"mint-ip-asset\",\n title: \"Mint singular NFT\",\n subtitle: \"Publish your creative work onchain\",\n description:\n \"Upload any photo, video, audio, or document and mint it as an IP NFT — with licensing, provenance, and ownership all locked on-chain.\",\n // Apps may override features[0] with their gasless-rail wording (ChipiPay/AVNU).\n features: [\"Gasless transactions\", \"IPFS metadata\", \"Programmable licensing\"],\n example: \"e.g. A song, a photo, an ebook, a short film\",\n icon: ImagePlus,\n gradient: \"from-blue-500/10 via-sky-400/4 to-transparent\",\n borderColor: \"border-blue-500/20\",\n iconColor: \"text-blue-500\",\n buttonColor: \"bg-brand-blue hover:bg-brand-blue/90\",\n badge: \"Create\",\n status: \"live\",\n category: \"create\",\n group: \"single-edition\",\n },\n {\n key: \"create-collection\",\n title: \"Create NFT Collection\",\n subtitle: \"Group your NFTs under a shared identity\",\n description:\n \"Deploy a branded ERC-721 collection with its own page and on-chain identity. Add assets to it at any time and share it with collectors.\",\n features: [\"Factory-deployed ERC-721\", \"Branded collection page\", \"Add assets at any time\"],\n example: \"e.g. A photography portfolio, a music catalog, a comic series\",\n icon: Layers,\n gradient: \"from-violet-500/10 via-purple-400/4 to-transparent\",\n borderColor: \"border-violet-500/20\",\n iconColor: \"text-violet-500\",\n buttonColor: \"bg-brand-purple hover:bg-brand-purple/90\",\n badge: \"Create\",\n status: \"live\",\n category: \"create\",\n group: \"single-edition\",\n },\n {\n key: \"ip-collection-1155\",\n title: \"Limited Editions Collections\",\n subtitle: \"Deploy a contract for multi-copy NFT releases\",\n description:\n \"Create a collection built for editions — release music tracks, art prints, or any IP in numbered multiples. Each edition token is tradeable on Medialane.\",\n features: [\"Multi-edition ERC-1155\", \"Numbered tokens\", \"Tradeable on Medialane\"],\n example: \"e.g. 50 copies of a limited print, a music EP released in 100 editions\",\n icon: Layers,\n gradient: \"from-violet-500/10 via-purple-400/4 to-transparent\",\n borderColor: \"border-violet-500/20\",\n iconColor: \"text-violet-500\",\n buttonColor: \"bg-violet-600 hover:bg-violet-700\",\n badge: \"Create\",\n status: \"live\",\n category: \"create\",\n group: \"limited-editions\",\n },\n {\n key: \"mint-editions\",\n title: \"Mint Limited Edition\",\n subtitle: \"Add new editions to an existing collection\",\n description:\n \"Pick one of your Limited Edition contracts, upload artwork, set the supply, and release to collectors — all in a few clicks.\",\n features: [\"Choose any edition collection\", \"Set edition supply\", \"IPFS metadata\"],\n example: \"e.g. Drop 25 numbered prints from your art series\",\n icon: PlusCircle,\n gradient: \"from-fuchsia-500/10 via-violet-400/4 to-transparent\",\n borderColor: \"border-fuchsia-500/20\",\n iconColor: \"text-fuchsia-500\",\n buttonColor: \"bg-fuchsia-600 hover:bg-fuchsia-700\",\n badge: \"Create\",\n status: \"live\",\n category: \"create\",\n group: \"limited-editions\",\n },\n {\n key: \"remix-asset\",\n title: \"Remix Asset\",\n subtitle: \"Derivative works with on-chain attribution\",\n description:\n \"Create a licensed derivative of any digital asset with full provenance and attribution flowing back to the original creator on-chain.\",\n features: [\"On-chain attribution\", \"License-enforced at mint\", \"Royalties to original creator\"],\n example: \"e.g. A remix of a song, a derivative artwork inspired by an original\",\n icon: GitBranch,\n gradient: \"from-rose-500/10 via-pink-400/4 to-transparent\",\n borderColor: \"border-rose-500/20\",\n iconColor: \"text-rose-500\",\n buttonColor: \"bg-brand-rose hover:bg-brand-rose/90\",\n badge: \"Create\",\n status: \"live\",\n category: \"create\",\n group: \"licensing-remix\",\n },\n\n // ── Launch ────────────────────────────────────────────────────────────────\n {\n key: \"pop-protocol\",\n title: \"POP Protocol\",\n subtitle: \"Proof-of-participation for events & communities\",\n description:\n \"Issue soulbound credentials to your community — one non-transferable badge per wallet, permanently on-chain. No transferring, no faking.\",\n features: [\"Soulbound · non-transferable\", \"One credential per wallet\", \"Optional allowlist gating\"],\n example: \"e.g. Hackathon attendance badge, community membership, conference pass\",\n icon: Award,\n gradient: \"from-emerald-500/10 via-green-400/4 to-transparent\",\n borderColor: \"border-emerald-500/20\",\n iconColor: \"text-emerald-500\",\n buttonColor: \"bg-green-600 hover:bg-green-700\",\n badge: \"Launch\",\n browseLinkLabel: \"Browse events\",\n status: \"live\",\n category: \"launch\",\n group: \"pop-protocol\",\n },\n {\n key: \"collection-drop\",\n title: \"Collection Drop\",\n subtitle: \"Timed NFT releases with mint windows\",\n description:\n \"Launch a time-gated mint campaign — set a price, supply cap, start and end time, and let collectors mint directly from your drop page.\",\n features: [\"Timed mint window\", \"Price + supply cap\", \"Branded drop page\"],\n example: \"e.g. A 48-hour drop of 200 NFTs at 5 USDC each\",\n icon: Package,\n gradient: \"from-orange-500/10 via-amber-400/4 to-transparent\",\n borderColor: \"border-orange-500/20\",\n iconColor: \"text-orange-500\",\n buttonColor: \"bg-orange-600 hover:bg-orange-700\",\n badge: \"Launch\",\n browseLinkLabel: \"Browse drops\",\n status: \"live\",\n category: \"launch\",\n group: \"collection-drop\",\n },\n {\n key: \"ip-tickets\",\n title: \"IP Tickets\",\n subtitle: \"Gate real-world experiences with NFTs\",\n description:\n \"Distribute tickets for concerts, workshops, and events. Each ticket is verifiable on-chain proof of attendance.\",\n features: [\"NFT-based event gating\", \"Proof of attendance\", \"Transferable or soulbound\"],\n icon: Ticket,\n gradient: \"from-teal-500/7 via-cyan-400/3 to-transparent\",\n borderColor: \"border-teal-500/15\",\n iconColor: \"text-teal-500\",\n badge: \"Soon\",\n status: \"building\",\n category: \"launch\",\n group: \"coming-soon\",\n },\n {\n key: \"membership\",\n title: \"Membership\",\n subtitle: \"Token-gated access passes\",\n description:\n \"Create tiered membership passes that unlock exclusive content, private communities, and experiences for your most loyal fans.\",\n features: [\"Token-gated content\", \"Tiered access levels\", \"Community alignment\"],\n icon: Users,\n gradient: \"from-indigo-500/6 via-violet-400/2 to-transparent\",\n borderColor: \"border-indigo-500/10\",\n iconColor: \"text-indigo-400\",\n badge: \"Soon\",\n status: \"soon\",\n category: \"launch\",\n group: \"coming-soon\",\n },\n\n // ── Monetize ─────────────────────────────────────────────────────────────\n {\n key: \"subscriptions\",\n title: \"Subscriptions\",\n subtitle: \"Recurring on-chain revenue\",\n description:\n \"Monthly licensing, creator support tiers, and access passes — all auto-renewed without intermediaries.\",\n features: [\"Recurring revenue\", \"Auto-renewal protocol\", \"No middlemen\"],\n icon: RefreshCw,\n gradient: \"from-sky-500/6 via-blue-400/2 to-transparent\",\n borderColor: \"border-sky-500/10\",\n iconColor: \"text-sky-400\",\n badge: \"Soon\",\n status: \"soon\",\n category: \"monetize\",\n group: \"coming-soon\",\n },\n {\n key: \"ip-coins\",\n title: \"IP Coins\",\n subtitle: \"Fractional ownership of intellectual property\",\n description:\n \"Tokenize your IP catalog as fungible tokens. Enable fractional ownership and liquid markets around your creative work.\",\n features: [\"Fungible IP tokens\", \"Fractional ownership\", \"Liquid secondary markets\"],\n icon: Coins,\n gradient: \"from-amber-500/6 via-yellow-400/2 to-transparent\",\n borderColor: \"border-amber-500/10\",\n iconColor: \"text-amber-400\",\n badge: \"Soon\",\n status: \"soon\",\n category: \"monetize\",\n group: \"coming-soon\",\n },\n {\n key: \"creator-coins\",\n title: \"Creator Coin\",\n subtitle: \"Your own coin, your liquidity\",\n description:\n \"Launch a standard ERC-20 coin tied to your creative work, paired with a public Ekubo liquidity pool. You set the supply and allocation — and you stay in control of the liquidity.\",\n features: [\"Standard ERC-20\", \"Public Ekubo pool\", \"You control the liquidity\"],\n icon: TrendingUp,\n gradient: \"from-pink-500/6 via-rose-400/2 to-transparent\",\n borderColor: \"border-pink-500/20\",\n iconColor: \"text-pink-400\",\n buttonColor: \"bg-brand-rose hover:bg-brand-rose/90\",\n badge: \"Soon\",\n status: \"soon\",\n category: \"monetize\",\n group: \"creator-coins\",\n },\n\n // ── Claims ────────────────────────────────────────────────────────────────\n {\n key: \"claim-memecoin\",\n title: \"Claim Memecoin\",\n subtitle: \"Bring your Starknet coin to Medialane\",\n description:\n \"Already launched a coin on Starknet (unrug or partner)? Claim it to add it to Medialane — reviewed by our team, then live on the Coins page and your profile.\",\n features: [\"unrug & partner coins\", \"Team reviewed\", \"Lists on /coins\"],\n icon: Coins,\n gradient: \"from-orange-500/10 via-amber-400/4 to-transparent\",\n borderColor: \"border-orange-500/20\",\n iconColor: \"text-orange-500\",\n buttonColor: \"bg-orange-600 hover:bg-orange-700\",\n badge: \"Claim\",\n status: \"soon\",\n category: \"monetize\",\n group: \"creator-coins\",\n },\n {\n key: \"claim-username\",\n title: \"Claim Username\",\n subtitle: \"Reserve your creator page URL\",\n description:\n \"Claim your unique username and get a shareable creator page — your public portfolio at a clean, memorable URL. Free, and yours.\",\n features: [\"Free claim\", \"Shareable creator page\", \"Your public portfolio\"],\n icon: AtSign,\n gradient: \"from-violet-500/10 via-purple-400/4 to-transparent\",\n borderColor: \"border-violet-500/20\",\n iconColor: \"text-violet-500\",\n buttonColor: \"bg-brand-purple hover:bg-brand-purple/90\",\n badge: \"Claim\",\n status: \"live\",\n category: \"create\",\n group: \"claims\",\n },\n {\n key: \"claim-collection\",\n title: \"Claim Collection\",\n subtitle: \"Import an existing Starknet collection\",\n description:\n \"Already deployed an ERC-721 collection on Starknet? Claim it to link it to your Medialane profile and give it a branded collection page.\",\n features: [\"Import existing ERC-721\", \"Linked to your profile\", \"Branded collection page\"],\n icon: FolderInput,\n gradient: \"from-blue-500/10 via-sky-400/4 to-transparent\",\n borderColor: \"border-blue-500/20\",\n iconColor: \"text-blue-500\",\n buttonColor: \"bg-brand-blue hover:bg-brand-blue/90\",\n badge: \"Claim\",\n status: \"live\",\n category: \"create\",\n group: \"claims\",\n },\n];\n"],"mappings":"AACA;AAAA,EACE;AAAA,EAAW;AAAA,EAAQ;AAAA,EACnB;AAAA,EAAO;AAAA,EAAS;AAAA,EAChB;AAAA,EAAQ;AAAA,EACR;AAAA,EAAW;AAAA,EAAO;AAAA,EAClB;AAAA,EAAQ;AAAA,OACH;AAyBA,MAAM,2BAAqD;AAAA,EAChE;AAAA,IACE,KAAK;AAAA,IACL,OAAO;AAAA,IACP,OAAO;AAAA,IACP,SAAS;AAAA,EACX;AAAA,EACA;AAAA,IACE,KAAK;AAAA,IACL,OAAO;AAAA,IACP,OAAO;AAAA,IACP,SAAS;AAAA,EACX;AAAA,EACA;AAAA,IACE,KAAK;AAAA,IACL,OAAO;AAAA,IACP,SAAS;AAAA,EACX;AAAA,EACA;AAAA,IACE,KAAK;AAAA,IACL,OAAO;AAAA,IACP,SAAS;AAAA,EACX;AAAA,EACA;AAAA,IACE,KAAK;AAAA,IACL,OAAO;AAAA,IACP,SAAS;AAAA,EACX;AAAA,EACA;AAAA,IACE,KAAK;AAAA,IACL,OAAO;AAAA,IACP,SAAS;AAAA,EACX;AAAA,EACA;AAAA,IACE,KAAK;AAAA,IACL,OAAO;AAAA,IACP,SAAS;AAAA,EACX;AAAA,EACA;AAAA,IACE,KAAK;AAAA,IACL,OAAO;AAAA,IACP,SAAS;AAAA,EACX;AACF;AAuBO,MAAM,gCAAqD;AAAA;AAAA,EAEhE;AAAA,IACE,KAAK;AAAA,IACL,OAAO;AAAA,IACP,UAAU;AAAA,IACV,aACE;AAAA;AAAA,IAEF,UAAU,CAAC,wBAAwB,iBAAiB,wBAAwB;AAAA,IAC5E,SAAS;AAAA,IACT,MAAM;AAAA,IACN,UAAU;AAAA,IACV,aAAa;AAAA,IACb,WAAW;AAAA,IACX,aAAa;AAAA,IACb,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,KAAK;AAAA,IACL,OAAO;AAAA,IACP,UAAU;AAAA,IACV,aACE;AAAA,IACF,UAAU,CAAC,4BAA4B,2BAA2B,wBAAwB;AAAA,IAC1F,SAAS;AAAA,IACT,MAAM;AAAA,IACN,UAAU;AAAA,IACV,aAAa;AAAA,IACb,WAAW;AAAA,IACX,aAAa;AAAA,IACb,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,KAAK;AAAA,IACL,OAAO;AAAA,IACP,UAAU;AAAA,IACV,aACE;AAAA,IACF,UAAU,CAAC,0BAA0B,mBAAmB,wBAAwB;AAAA,IAChF,SAAS;AAAA,IACT,MAAM;AAAA,IACN,UAAU;AAAA,IACV,aAAa;AAAA,IACb,WAAW;AAAA,IACX,aAAa;AAAA,IACb,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,KAAK;AAAA,IACL,OAAO;AAAA,IACP,UAAU;AAAA,IACV,aACE;AAAA,IACF,UAAU,CAAC,iCAAiC,sBAAsB,eAAe;AAAA,IACjF,SAAS;AAAA,IACT,MAAM;AAAA,IACN,UAAU;AAAA,IACV,aAAa;AAAA,IACb,WAAW;AAAA,IACX,aAAa;AAAA,IACb,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,KAAK;AAAA,IACL,OAAO;AAAA,IACP,UAAU;AAAA,IACV,aACE;AAAA,IACF,UAAU,CAAC,wBAAwB,4BAA4B,+BAA+B;AAAA,IAC9F,SAAS;AAAA,IACT,MAAM;AAAA,IACN,UAAU;AAAA,IACV,aAAa;AAAA,IACb,WAAW;AAAA,IACX,aAAa;AAAA,IACb,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,OAAO;AAAA,EACT;AAAA;AAAA,EAGA;AAAA,IACE,KAAK;AAAA,IACL,OAAO;AAAA,IACP,UAAU;AAAA,IACV,aACE;AAAA,IACF,UAAU,CAAC,mCAAgC,6BAA6B,2BAA2B;AAAA,IACnG,SAAS;AAAA,IACT,MAAM;AAAA,IACN,UAAU;AAAA,IACV,aAAa;AAAA,IACb,WAAW;AAAA,IACX,aAAa;AAAA,IACb,OAAO;AAAA,IACP,iBAAiB;AAAA,IACjB,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,KAAK;AAAA,IACL,OAAO;AAAA,IACP,UAAU;AAAA,IACV,aACE;AAAA,IACF,UAAU,CAAC,qBAAqB,sBAAsB,mBAAmB;AAAA,IACzE,SAAS;AAAA,IACT,MAAM;AAAA,IACN,UAAU;AAAA,IACV,aAAa;AAAA,IACb,WAAW;AAAA,IACX,aAAa;AAAA,IACb,OAAO;AAAA,IACP,iBAAiB;AAAA,IACjB,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,KAAK;AAAA,IACL,OAAO;AAAA,IACP,UAAU;AAAA,IACV,aACE;AAAA,IACF,UAAU,CAAC,0BAA0B,uBAAuB,2BAA2B;AAAA,IACvF,MAAM;AAAA,IACN,UAAU;AAAA,IACV,aAAa;AAAA,IACb,WAAW;AAAA,IACX,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,KAAK;AAAA,IACL,OAAO;AAAA,IACP,UAAU;AAAA,IACV,aACE;AAAA,IACF,UAAU,CAAC,uBAAuB,wBAAwB,qBAAqB;AAAA,IAC/E,MAAM;AAAA,IACN,UAAU;AAAA,IACV,aAAa;AAAA,IACb,WAAW;AAAA,IACX,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,OAAO;AAAA,EACT;AAAA;AAAA,EAGA;AAAA,IACE,KAAK;AAAA,IACL,OAAO;AAAA,IACP,UAAU;AAAA,IACV,aACE;AAAA,IACF,UAAU,CAAC,qBAAqB,yBAAyB,cAAc;AAAA,IACvE,MAAM;AAAA,IACN,UAAU;AAAA,IACV,aAAa;AAAA,IACb,WAAW;AAAA,IACX,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,KAAK;AAAA,IACL,OAAO;AAAA,IACP,UAAU;AAAA,IACV,aACE;AAAA,IACF,UAAU,CAAC,sBAAsB,wBAAwB,0BAA0B;AAAA,IACnF,MAAM;AAAA,IACN,UAAU;AAAA,IACV,aAAa;AAAA,IACb,WAAW;AAAA,IACX,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,KAAK;AAAA,IACL,OAAO;AAAA,IACP,UAAU;AAAA,IACV,aACE;AAAA,IACF,UAAU,CAAC,mBAAmB,qBAAqB,2BAA2B;AAAA,IAC9E,MAAM;AAAA,IACN,UAAU;AAAA,IACV,aAAa;AAAA,IACb,WAAW;AAAA,IACX,aAAa;AAAA,IACb,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,OAAO;AAAA,EACT;AAAA;AAAA,EAGA;AAAA,IACE,KAAK;AAAA,IACL,OAAO;AAAA,IACP,UAAU;AAAA,IACV,aACE;AAAA,IACF,UAAU,CAAC,yBAAyB,iBAAiB,iBAAiB;AAAA,IACtE,MAAM;AAAA,IACN,UAAU;AAAA,IACV,aAAa;AAAA,IACb,WAAW;AAAA,IACX,aAAa;AAAA,IACb,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,KAAK;AAAA,IACL,OAAO;AAAA,IACP,UAAU;AAAA,IACV,aACE;AAAA,IACF,UAAU,CAAC,cAAc,0BAA0B,uBAAuB;AAAA,IAC1E,MAAM;AAAA,IACN,UAAU;AAAA,IACV,aAAa;AAAA,IACb,WAAW;AAAA,IACX,aAAa;AAAA,IACb,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,KAAK;AAAA,IACL,OAAO;AAAA,IACP,UAAU;AAAA,IACV,aACE;AAAA,IACF,UAAU,CAAC,2BAA2B,0BAA0B,yBAAyB;AAAA,IACzF,MAAM;AAAA,IACN,UAAU;AAAA,IACV,aAAa;AAAA,IACb,WAAW;AAAA,IACX,aAAa;AAAA,IACb,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,OAAO;AAAA,EACT;AACF;","names":[]}
|
package/dist/index.cjs
CHANGED
|
@@ -46,8 +46,9 @@ __export(index_exports, {
|
|
|
46
46
|
IpTypeBadge: () => import_ip_type_badge.IpTypeBadge,
|
|
47
47
|
KineticWords: () => import_motion_primitives.KineticWords,
|
|
48
48
|
LAUNCHPAD_SERVICE_DEFINITIONS: () => import_launchpad_services2.LAUNCHPAD_SERVICE_DEFINITIONS,
|
|
49
|
-
|
|
50
|
-
|
|
49
|
+
LAUNCHPAD_SERVICE_GROUPS: () => import_launchpad_services2.LAUNCHPAD_SERVICE_GROUPS,
|
|
50
|
+
LaunchpadGroupedSections: () => import_launchpad_services.LaunchpadGroupedSections,
|
|
51
|
+
LaunchpadServiceCard: () => import_launchpad_services.LaunchpadServiceCard,
|
|
51
52
|
ListingCard: () => import_listing_card.ListingCard,
|
|
52
53
|
ListingCardSkeleton: () => import_listing_card.ListingCardSkeleton,
|
|
53
54
|
MedialaneIcon: () => import_brand_icon.MedialaneIcon,
|
|
@@ -56,6 +57,7 @@ __export(index_exports, {
|
|
|
56
57
|
NavCommandMenu: () => import_nav_command_menu.NavCommandMenu,
|
|
57
58
|
PageContainer: () => import_page_container.PageContainer,
|
|
58
59
|
PortfolioSubnav: () => import_portfolio_subnav.PortfolioSubnav,
|
|
60
|
+
SERVICE_CARD_COLORS: () => import_launchpad_services.SERVICE_CARD_COLORS,
|
|
59
61
|
SPRING: () => import_motion_primitives.SPRING,
|
|
60
62
|
ScrollSection: () => import_scroll_section.ScrollSection,
|
|
61
63
|
ShareButton: () => import_share_button.ShareButton,
|
|
@@ -97,7 +99,6 @@ var import_activity_ticker = require("./components/activity-ticker.js");
|
|
|
97
99
|
var import_listing_card = require("./components/listing-card.js");
|
|
98
100
|
var import_activity_row = require("./components/activity-row.js");
|
|
99
101
|
var import_activity_feed_shell = require("./components/activity-feed-shell.js");
|
|
100
|
-
var import_launchpad_grid = require("./components/launchpad-grid.js");
|
|
101
102
|
var import_cta_card_grid = require("./components/cta-card-grid.js");
|
|
102
103
|
var import_discover_hero = require("./components/discover-hero.js");
|
|
103
104
|
var import_featured_carousel = require("./components/featured-carousel.js");
|
|
@@ -139,8 +140,9 @@ var import_portfolio_counts = require("./utils/portfolio-counts.js");
|
|
|
139
140
|
IpTypeBadge,
|
|
140
141
|
KineticWords,
|
|
141
142
|
LAUNCHPAD_SERVICE_DEFINITIONS,
|
|
142
|
-
|
|
143
|
-
|
|
143
|
+
LAUNCHPAD_SERVICE_GROUPS,
|
|
144
|
+
LaunchpadGroupedSections,
|
|
145
|
+
LaunchpadServiceCard,
|
|
144
146
|
ListingCard,
|
|
145
147
|
ListingCardSkeleton,
|
|
146
148
|
MedialaneIcon,
|
|
@@ -149,6 +151,7 @@ var import_portfolio_counts = require("./utils/portfolio-counts.js");
|
|
|
149
151
|
NavCommandMenu,
|
|
150
152
|
PageContainer,
|
|
151
153
|
PortfolioSubnav,
|
|
154
|
+
SERVICE_CARD_COLORS,
|
|
152
155
|
SPRING,
|
|
153
156
|
ScrollSection,
|
|
154
157
|
ShareButton,
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["// ── Utils ─────────────────────────────────────────────────────────────────────\nexport { cn } from \"./utils/cn.js\";\nexport { formatDisplayPrice } from \"./utils/format.js\";\nexport { shortenAddress } from \"./utils/address.js\";\nexport { ipfsToHttp } from \"./utils/ipfs.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 { BRAND } from \"./data/brand.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 { MedialaneIcon } from \"./components/brand-icon.js\";\nexport type { MedialaneIconProps } from \"./components/brand-icon.js\";\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, RarityTier } from \"./components/token-card.js\";\n\n// ── v0.3 additions ────────────────────────────────────────────────────────────\nexport { timeAgo } 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 {
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["// ── Utils ─────────────────────────────────────────────────────────────────────\nexport { cn } from \"./utils/cn.js\";\nexport { formatDisplayPrice } from \"./utils/format.js\";\nexport { shortenAddress } from \"./utils/address.js\";\nexport { ipfsToHttp } from \"./utils/ipfs.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 { BRAND } from \"./data/brand.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 { MedialaneIcon } from \"./components/brand-icon.js\";\nexport type { MedialaneIconProps } from \"./components/brand-icon.js\";\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, RarityTier } from \"./components/token-card.js\";\n\n// ── v0.3 additions ────────────────────────────────────────────────────────────\nexport { timeAgo } 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 } from \"./components/discover-feed-section.js\";\nexport type { DiscoverFeedSectionProps } from \"./components/discover-feed-section.js\";\n\n// ── Launchpad (grouped sections — single page-UI source since 0.8.0) ─────────\nexport { LaunchpadGroupedSections, LaunchpadServiceCard, SERVICE_CARD_COLORS } from \"./components/launchpad-services.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, ServiceCategory, 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.6.0 additions — portfolio subnav + counts ────────────────────────────\nexport { PortfolioSubnav } from \"./components/portfolio-subnav.js\";\nexport type {\n PortfolioSubnavProps,\n PortfolioNavItem,\n PortfolioNavGroup,\n PortfolioBadgeVariant,\n} from \"./components/portfolio-subnav.js\";\nexport { derivePortfolioCounts } from \"./utils/portfolio-counts.js\";\nexport type { PortfolioCounts, CountableOrder } from \"./utils/portfolio-counts.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;AACA,gBAAmB;AACnB,oBAAmC;AACnC,qBAA+B;AAC/B,kBAA2B;AAG3B,sBAA+C;AAE/C,mBAAsB;AAGtB,2BAA6C;AAG7C,2BAAyD;AAGzD,6BAA+B;AAG/B,wBAA8B;AAE9B,wBAAkC;AAIlC,+BAAyF;AACzF,4BAA8B;AAE9B,4BAA8B;AAE9B,0BAA4B;AAE5B,6BAAuD;AAEvD,wBAA6C;AAI7C,kBAAwB;AACxB,sBAAmD;AAEnD,yBAA+C;AAE/C,6BAA+B;AAE/B,0BAAiD;AAEjD,0BAA4B;AAE5B,iCAAkC;AAElC,2BAA4B;AAI5B,2BAA6B;AAE7B,+BAA2D;AAE3D,wCAAyC;AAEzC,qCAAsC;AAEtC,mCAAoC;AAIpC,gCAAoF;AAEpF,IAAAA,6BAAwE;AAIxE,8BAAkD;AAIlD,8BAAgC;AAOhC,8BAAsC;","names":["import_launchpad_services"]}
|
package/dist/index.d.cts
CHANGED
|
@@ -22,15 +22,14 @@ export { ActivityTicker, ActivityTickerProps } from './components/activity-ticke
|
|
|
22
22
|
export { ListingCard, ListingCardProps, ListingCardSkeleton } from './components/listing-card.cjs';
|
|
23
23
|
export { ActivityRow, ActivityRowProps } from './components/activity-row.cjs';
|
|
24
24
|
export { ActivityFeedShell, ActivityFeedShellProps } from './components/activity-feed-shell.cjs';
|
|
25
|
-
export { FeatureItem, LaunchpadGrid, LaunchpadGridProps } from './components/launchpad-grid.cjs';
|
|
26
25
|
export { CtaCardGrid, CtaCardGridProps, CtaCardItem } from './components/cta-card-grid.cjs';
|
|
27
26
|
export { DiscoverHero, DiscoverHeroProps } from './components/discover-hero.cjs';
|
|
28
27
|
export { FeaturedCarousel, FeaturedCarouselProps, FeaturedCarouselSkeleton } from './components/featured-carousel.cjs';
|
|
29
28
|
export { DiscoverCollectionsStrip, DiscoverCollectionsStripProps } from './components/discover-collections-strip.cjs';
|
|
30
29
|
export { DiscoverCreatorsStrip, DiscoverCreatorsStripProps } from './components/discover-creators-strip.cjs';
|
|
31
30
|
export { DiscoverFeedSection, DiscoverFeedSectionProps } from './components/discover-feed-section.cjs';
|
|
32
|
-
export {
|
|
33
|
-
export { LAUNCHPAD_SERVICE_DEFINITIONS, ServiceCategory, ServiceDefinition, ServiceStatus } from './data/launchpad-services.cjs';
|
|
31
|
+
export { LaunchpadGroupedSections, LaunchpadGroupedSectionsProps, LaunchpadServiceCard, LaunchpadServiceCardProps, SERVICE_CARD_COLORS, ServiceOverride, ServiceOverrides } from './components/launchpad-services.cjs';
|
|
32
|
+
export { LAUNCHPAD_SERVICE_DEFINITIONS, LAUNCHPAD_SERVICE_GROUPS, ServiceCategory, ServiceDefinition, ServiceGroup, ServiceGroupDefinition, ServiceStatus } from './data/launchpad-services.cjs';
|
|
34
33
|
export { NavCommand, NavCommandGroup, NavCommandMenu, NavCommandMenuProps, useNavCommandMenu } from './components/nav-command-menu.cjs';
|
|
35
34
|
export { PortfolioBadgeVariant, PortfolioNavGroup, PortfolioNavItem, PortfolioSubnav, PortfolioSubnavProps } from './components/portfolio-subnav.cjs';
|
|
36
35
|
export { CountableOrder, PortfolioCounts, derivePortfolioCounts } from './utils/portfolio-counts.cjs';
|
package/dist/index.d.ts
CHANGED
|
@@ -22,15 +22,14 @@ export { ActivityTicker, ActivityTickerProps } from './components/activity-ticke
|
|
|
22
22
|
export { ListingCard, ListingCardProps, ListingCardSkeleton } from './components/listing-card.js';
|
|
23
23
|
export { ActivityRow, ActivityRowProps } from './components/activity-row.js';
|
|
24
24
|
export { ActivityFeedShell, ActivityFeedShellProps } from './components/activity-feed-shell.js';
|
|
25
|
-
export { FeatureItem, LaunchpadGrid, LaunchpadGridProps } from './components/launchpad-grid.js';
|
|
26
25
|
export { CtaCardGrid, CtaCardGridProps, CtaCardItem } from './components/cta-card-grid.js';
|
|
27
26
|
export { DiscoverHero, DiscoverHeroProps } from './components/discover-hero.js';
|
|
28
27
|
export { FeaturedCarousel, FeaturedCarouselProps, FeaturedCarouselSkeleton } from './components/featured-carousel.js';
|
|
29
28
|
export { DiscoverCollectionsStrip, DiscoverCollectionsStripProps } from './components/discover-collections-strip.js';
|
|
30
29
|
export { DiscoverCreatorsStrip, DiscoverCreatorsStripProps } from './components/discover-creators-strip.js';
|
|
31
30
|
export { DiscoverFeedSection, DiscoverFeedSectionProps } from './components/discover-feed-section.js';
|
|
32
|
-
export {
|
|
33
|
-
export { LAUNCHPAD_SERVICE_DEFINITIONS, ServiceCategory, ServiceDefinition, ServiceStatus } from './data/launchpad-services.js';
|
|
31
|
+
export { LaunchpadGroupedSections, LaunchpadGroupedSectionsProps, LaunchpadServiceCard, LaunchpadServiceCardProps, SERVICE_CARD_COLORS, ServiceOverride, ServiceOverrides } from './components/launchpad-services.js';
|
|
32
|
+
export { LAUNCHPAD_SERVICE_DEFINITIONS, LAUNCHPAD_SERVICE_GROUPS, ServiceCategory, ServiceDefinition, ServiceGroup, ServiceGroupDefinition, ServiceStatus } from './data/launchpad-services.js';
|
|
34
33
|
export { NavCommand, NavCommandGroup, NavCommandMenu, NavCommandMenuProps, useNavCommandMenu } from './components/nav-command-menu.js';
|
|
35
34
|
export { PortfolioBadgeVariant, PortfolioNavGroup, PortfolioNavItem, PortfolioSubnav, PortfolioSubnavProps } from './components/portfolio-subnav.js';
|
|
36
35
|
export { CountableOrder, PortfolioCounts, derivePortfolioCounts } from './utils/portfolio-counts.js';
|
package/dist/index.js
CHANGED
|
@@ -22,15 +22,14 @@ import { ActivityTicker } from "./components/activity-ticker.js";
|
|
|
22
22
|
import { ListingCard, ListingCardSkeleton } from "./components/listing-card.js";
|
|
23
23
|
import { ActivityRow } from "./components/activity-row.js";
|
|
24
24
|
import { ActivityFeedShell } from "./components/activity-feed-shell.js";
|
|
25
|
-
import { LaunchpadGrid } from "./components/launchpad-grid.js";
|
|
26
25
|
import { CtaCardGrid } from "./components/cta-card-grid.js";
|
|
27
26
|
import { DiscoverHero } from "./components/discover-hero.js";
|
|
28
27
|
import { FeaturedCarousel, FeaturedCarouselSkeleton } from "./components/featured-carousel.js";
|
|
29
28
|
import { DiscoverCollectionsStrip } from "./components/discover-collections-strip.js";
|
|
30
29
|
import { DiscoverCreatorsStrip } from "./components/discover-creators-strip.js";
|
|
31
30
|
import { DiscoverFeedSection } from "./components/discover-feed-section.js";
|
|
32
|
-
import {
|
|
33
|
-
import { LAUNCHPAD_SERVICE_DEFINITIONS } from "./data/launchpad-services.js";
|
|
31
|
+
import { LaunchpadGroupedSections, LaunchpadServiceCard, SERVICE_CARD_COLORS } from "./components/launchpad-services.js";
|
|
32
|
+
import { LAUNCHPAD_SERVICE_DEFINITIONS, LAUNCHPAD_SERVICE_GROUPS } from "./data/launchpad-services.js";
|
|
34
33
|
import { NavCommandMenu, useNavCommandMenu } from "./components/nav-command-menu.js";
|
|
35
34
|
import { PortfolioSubnav } from "./components/portfolio-subnav.js";
|
|
36
35
|
import { derivePortfolioCounts } from "./utils/portfolio-counts.js";
|
|
@@ -63,8 +62,9 @@ export {
|
|
|
63
62
|
IpTypeBadge,
|
|
64
63
|
KineticWords,
|
|
65
64
|
LAUNCHPAD_SERVICE_DEFINITIONS,
|
|
66
|
-
|
|
67
|
-
|
|
65
|
+
LAUNCHPAD_SERVICE_GROUPS,
|
|
66
|
+
LaunchpadGroupedSections,
|
|
67
|
+
LaunchpadServiceCard,
|
|
68
68
|
ListingCard,
|
|
69
69
|
ListingCardSkeleton,
|
|
70
70
|
MedialaneIcon,
|
|
@@ -73,6 +73,7 @@ export {
|
|
|
73
73
|
NavCommandMenu,
|
|
74
74
|
PageContainer,
|
|
75
75
|
PortfolioSubnav,
|
|
76
|
+
SERVICE_CARD_COLORS,
|
|
76
77
|
SPRING,
|
|
77
78
|
ScrollSection,
|
|
78
79
|
ShareButton,
|
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 } from \"./utils/format.js\";\nexport { shortenAddress } from \"./utils/address.js\";\nexport { ipfsToHttp } from \"./utils/ipfs.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 { BRAND } from \"./data/brand.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 { MedialaneIcon } from \"./components/brand-icon.js\";\nexport type { MedialaneIconProps } from \"./components/brand-icon.js\";\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, RarityTier } from \"./components/token-card.js\";\n\n// ── v0.3 additions ────────────────────────────────────────────────────────────\nexport { timeAgo } 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 {
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["// ── Utils ─────────────────────────────────────────────────────────────────────\nexport { cn } from \"./utils/cn.js\";\nexport { formatDisplayPrice } from \"./utils/format.js\";\nexport { shortenAddress } from \"./utils/address.js\";\nexport { ipfsToHttp } from \"./utils/ipfs.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 { BRAND } from \"./data/brand.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 { MedialaneIcon } from \"./components/brand-icon.js\";\nexport type { MedialaneIconProps } from \"./components/brand-icon.js\";\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, RarityTier } from \"./components/token-card.js\";\n\n// ── v0.3 additions ────────────────────────────────────────────────────────────\nexport { timeAgo } 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 } from \"./components/discover-feed-section.js\";\nexport type { DiscoverFeedSectionProps } from \"./components/discover-feed-section.js\";\n\n// ── Launchpad (grouped sections — single page-UI source since 0.8.0) ─────────\nexport { LaunchpadGroupedSections, LaunchpadServiceCard, SERVICE_CARD_COLORS } from \"./components/launchpad-services.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, ServiceCategory, 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.6.0 additions — portfolio subnav + counts ────────────────────────────\nexport { PortfolioSubnav } from \"./components/portfolio-subnav.js\";\nexport type {\n PortfolioSubnavProps,\n PortfolioNavItem,\n PortfolioNavGroup,\n PortfolioBadgeVariant,\n} from \"./components/portfolio-subnav.js\";\nexport { derivePortfolioCounts } from \"./utils/portfolio-counts.js\";\nexport type { PortfolioCounts, CountableOrder } from \"./utils/portfolio-counts.js\";\n"],"mappings":"AACA,SAAS,UAAU;AACnB,SAAS,0BAA0B;AACnC,SAAS,sBAAsB;AAC/B,SAAS,kBAAkB;AAG3B,SAAS,cAAc,wBAAwB;AAE/C,SAAS,aAAa;AAGtB,SAAS,cAAc,sBAAsB;AAG7C,SAAS,aAAa,gBAAgB,mBAAmB;AAGzD,SAAS,sBAAsB;AAG/B,SAAS,qBAAqB;AAE9B,SAAS,yBAAyB;AAIlC,SAAS,YAAY,QAAQ,SAAS,aAAa,cAAc,QAAQ,gBAAgB;AACzF,SAAS,qBAAqB;AAE9B,SAAS,qBAAqB;AAE9B,SAAS,mBAAmB;AAE5B,SAAS,gBAAgB,8BAA8B;AAEvD,SAAS,WAAW,yBAAyB;AAI7C,SAAS,eAAe;AACxB,SAAS,sBAAsB,oBAAoB;AAEnD,SAAS,YAAY,0BAA0B;AAE/C,SAAS,sBAAsB;AAE/B,SAAS,aAAa,2BAA2B;AAEjD,SAAS,mBAAmB;AAE5B,SAAS,yBAAyB;AAElC,SAAS,mBAAmB;AAI5B,SAAS,oBAAoB;AAE7B,SAAS,kBAAkB,gCAAgC;AAE3D,SAAS,gCAAgC;AAEzC,SAAS,6BAA6B;AAEtC,SAAS,2BAA2B;AAIpC,SAAS,0BAA0B,sBAAsB,2BAA2B;AAEpF,SAAS,+BAA+B,gCAAgC;AAIxE,SAAS,gBAAgB,yBAAyB;AAIlD,SAAS,uBAAuB;AAOhC,SAAS,6BAA6B;","names":[]}
|