@medialane/ui 0.69.0 → 0.71.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 +11 -11
- package/dist/components/launchpad-services.cjs.map +1 -1
- package/dist/components/launchpad-services.d.cts +2 -0
- package/dist/components/launchpad-services.d.ts +2 -0
- package/dist/components/launchpad-services.js +11 -11
- package/dist/components/launchpad-services.js.map +1 -1
- package/dist/components/launchpad-strip.cjs +4 -4
- package/dist/components/launchpad-strip.cjs.map +1 -1
- package/dist/components/launchpad-strip.js +4 -4
- package/dist/components/launchpad-strip.js.map +1 -1
- package/dist/data/launchpad-services.cjs +6 -83
- package/dist/data/launchpad-services.cjs.map +1 -1
- package/dist/data/launchpad-services.d.cts +6 -10
- package/dist/data/launchpad-services.d.ts +6 -10
- package/dist/data/launchpad-services.js +6 -83
- package/dist/data/launchpad-services.js.map +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -62,20 +62,14 @@ const LAUNCHPAD_SERVICE_DEFINITIONS = [
|
|
|
62
62
|
{
|
|
63
63
|
key: "nfts",
|
|
64
64
|
cta: "Create",
|
|
65
|
-
blurb: "Publish
|
|
66
|
-
title: "
|
|
67
|
-
subtitle: "
|
|
68
|
-
description: "Publish any photo, video, audio, or document
|
|
69
|
-
features: ["One
|
|
65
|
+
blurb: "Publish each work as a single copy in a collection you own.",
|
|
66
|
+
title: "Single Editions",
|
|
67
|
+
subtitle: "Each work is minted once",
|
|
68
|
+
description: "Publish any photo, video, audio, or document, minted once inside your collection. Licensing, provenance, and ownership live on-chain.",
|
|
69
|
+
features: ["One mint per work", "Collections with their own page and name", "You set the license terms"],
|
|
70
70
|
example: "A song, a photo, an ebook, a short film",
|
|
71
71
|
icon: import_lucide_react.ImagePlus,
|
|
72
|
-
gradient: "from-blue-500/10 via-sky-400/4 to-transparent",
|
|
73
|
-
borderColor: "border-blue-500/20",
|
|
74
|
-
iconColor: "text-blue-500",
|
|
75
|
-
buttonColor: "bg-brand-blue hover:bg-brand-blue/90",
|
|
76
|
-
badge: "Create",
|
|
77
72
|
status: "live",
|
|
78
|
-
category: "create",
|
|
79
73
|
group: "nfts"
|
|
80
74
|
},
|
|
81
75
|
{
|
|
@@ -88,13 +82,7 @@ const LAUNCHPAD_SERVICE_DEFINITIONS = [
|
|
|
88
82
|
features: ["Numbered copies, set by you", "Fans collect and trade", "One home for every release"],
|
|
89
83
|
example: "50 copies of a limited print, a music EP in 100 editions",
|
|
90
84
|
icon: import_lucide_react.Layers,
|
|
91
|
-
gradient: "from-violet-500/10 via-purple-400/4 to-transparent",
|
|
92
|
-
borderColor: "border-violet-500/20",
|
|
93
|
-
iconColor: "text-violet-500",
|
|
94
|
-
buttonColor: "bg-brand-purple hover:bg-brand-purple/90",
|
|
95
|
-
badge: "Create",
|
|
96
85
|
status: "live",
|
|
97
|
-
category: "create",
|
|
98
86
|
group: "limited-editions"
|
|
99
87
|
},
|
|
100
88
|
{
|
|
@@ -107,13 +95,7 @@ const LAUNCHPAD_SERVICE_DEFINITIONS = [
|
|
|
107
95
|
features: ["Credit handled automatically", "Royalties flow to the original", "License respected at mint"],
|
|
108
96
|
example: "A remix of a song, an artwork inspired by an original",
|
|
109
97
|
icon: import_lucide_react.GitBranch,
|
|
110
|
-
gradient: "from-rose-500/10 via-pink-400/4 to-transparent",
|
|
111
|
-
borderColor: "border-rose-500/20",
|
|
112
|
-
iconColor: "text-rose-500",
|
|
113
|
-
buttonColor: "bg-brand-rose hover:bg-brand-rose/90",
|
|
114
|
-
badge: "Create",
|
|
115
98
|
status: "live",
|
|
116
|
-
category: "create",
|
|
117
99
|
group: "nfts"
|
|
118
100
|
},
|
|
119
101
|
// ── Launch ────────────────────────────────────────────────────────────────
|
|
@@ -127,14 +109,8 @@ const LAUNCHPAD_SERVICE_DEFINITIONS = [
|
|
|
127
109
|
features: ["Free for your community to claim", "Invite-list gating optional", "Branded claim page to share"],
|
|
128
110
|
example: "Hackathon attendance badge, community membership, conference pass",
|
|
129
111
|
icon: import_lucide_react.Award,
|
|
130
|
-
gradient: "from-emerald-500/10 via-green-400/4 to-transparent",
|
|
131
|
-
borderColor: "border-emerald-500/20",
|
|
132
|
-
iconColor: "text-emerald-500",
|
|
133
|
-
buttonColor: "bg-green-600 hover:bg-green-700",
|
|
134
|
-
badge: "Launch",
|
|
135
112
|
browseLinkLabel: "Browse badges",
|
|
136
113
|
status: "live",
|
|
137
|
-
category: "launch",
|
|
138
114
|
group: "community"
|
|
139
115
|
},
|
|
140
116
|
{
|
|
@@ -147,14 +123,8 @@ const LAUNCHPAD_SERVICE_DEFINITIONS = [
|
|
|
147
123
|
features: ["You set price and supply", "Opens and closes on your schedule", "Branded drop page to share"],
|
|
148
124
|
example: "A 48-hour drop of 200 pieces at 5 USDC each",
|
|
149
125
|
icon: import_lucide_react.Package,
|
|
150
|
-
gradient: "from-orange-500/10 via-amber-400/4 to-transparent",
|
|
151
|
-
borderColor: "border-orange-500/20",
|
|
152
|
-
iconColor: "text-orange-500",
|
|
153
|
-
buttonColor: "bg-orange-600 hover:bg-orange-700",
|
|
154
|
-
badge: "Launch",
|
|
155
126
|
browseLinkLabel: "Browse drops",
|
|
156
127
|
status: "live",
|
|
157
|
-
category: "launch",
|
|
158
128
|
group: "nfts"
|
|
159
129
|
},
|
|
160
130
|
{
|
|
@@ -166,16 +136,10 @@ const LAUNCHPAD_SERVICE_DEFINITIONS = [
|
|
|
166
136
|
description: "Create tickets with their own supply and validity window, then mint them to attendees. Every ticket is verifiable on-chain.",
|
|
167
137
|
features: ["Verifiable at the door", "Supply and validity you set", TICKETS_TRANSFERABLE_FEATURE],
|
|
168
138
|
icon: import_lucide_react.Ticket,
|
|
169
|
-
gradient: "from-teal-500/10 via-cyan-400/4 to-transparent",
|
|
170
|
-
borderColor: "border-teal-500/20",
|
|
171
|
-
iconColor: "text-teal-500",
|
|
172
|
-
buttonColor: "bg-teal-600 hover:bg-teal-700",
|
|
173
|
-
badge: "Launch",
|
|
174
139
|
browseLinkLabel: "Browse tickets",
|
|
175
140
|
// Deployed to Starknet mainnet 2026-07-02 — see
|
|
176
141
|
// medialane-core/docs/deployments.md
|
|
177
142
|
status: "live",
|
|
178
|
-
category: "launch",
|
|
179
143
|
group: "community"
|
|
180
144
|
},
|
|
181
145
|
{
|
|
@@ -187,16 +151,10 @@ const LAUNCHPAD_SERVICE_DEFINITIONS = [
|
|
|
187
151
|
description: "Create a club with an on-chain membership card. Set an entry fee and a member cap, and open or close joining anytime.",
|
|
188
152
|
features: ["On-chain membership card", "Optional entry fee", "Open or close joining anytime"],
|
|
189
153
|
icon: import_lucide_react.Users,
|
|
190
|
-
gradient: "from-indigo-500/10 via-violet-400/4 to-transparent",
|
|
191
|
-
borderColor: "border-indigo-500/20",
|
|
192
|
-
iconColor: "text-indigo-400",
|
|
193
|
-
buttonColor: "bg-indigo-600 hover:bg-indigo-700",
|
|
194
|
-
badge: "Launch",
|
|
195
154
|
browseLinkLabel: "Browse clubs",
|
|
196
155
|
// Deployed to Starknet mainnet 2026-07-02 — see
|
|
197
156
|
// medialane-core/docs/deployments.md
|
|
198
157
|
status: "live",
|
|
199
|
-
category: "launch",
|
|
200
158
|
group: "community"
|
|
201
159
|
},
|
|
202
160
|
{
|
|
@@ -209,16 +167,10 @@ const LAUNCHPAD_SERVICE_DEFINITIONS = [
|
|
|
209
167
|
features: ["Direct settlement", "Owner-verified on-chain", "Open bidding or one invited sponsor"],
|
|
210
168
|
example: "Sponsor a song, an artwork, or a patent for a license",
|
|
211
169
|
icon: import_lucide_react.Handshake,
|
|
212
|
-
gradient: "from-rose-500/10 via-pink-400/4 to-transparent",
|
|
213
|
-
borderColor: "border-rose-500/20",
|
|
214
|
-
iconColor: "text-rose-500",
|
|
215
|
-
buttonColor: "bg-brand-rose hover:bg-brand-rose/90",
|
|
216
|
-
badge: "Launch",
|
|
217
170
|
browseLinkLabel: "Browse offers",
|
|
218
171
|
// Deployed to Starknet mainnet 2026-07-02 — see
|
|
219
172
|
// medialane-core/docs/deployments.md
|
|
220
173
|
status: "live",
|
|
221
|
-
category: "launch",
|
|
222
174
|
group: "community"
|
|
223
175
|
},
|
|
224
176
|
// ── Monetize ─────────────────────────────────────────────────────────────
|
|
@@ -232,13 +184,7 @@ const LAUNCHPAD_SERVICE_DEFINITIONS = [
|
|
|
232
184
|
features: ["Launch in a few clicks", "You keep control of the liquidity", "Traded on a public pool"],
|
|
233
185
|
example: "A fan coin for your channel, a coin for your music project",
|
|
234
186
|
icon: import_lucide_react.TrendingUp,
|
|
235
|
-
gradient: "from-pink-500/6 via-rose-400/2 to-transparent",
|
|
236
|
-
borderColor: "border-pink-500/20",
|
|
237
|
-
iconColor: "text-pink-400",
|
|
238
|
-
buttonColor: "bg-brand-rose hover:bg-brand-rose/90",
|
|
239
|
-
badge: "Launch",
|
|
240
187
|
status: "live",
|
|
241
|
-
category: "monetize",
|
|
242
188
|
group: "coins"
|
|
243
189
|
},
|
|
244
190
|
// ── Claims ────────────────────────────────────────────────────────────────
|
|
@@ -252,13 +198,7 @@ const LAUNCHPAD_SERVICE_DEFINITIONS = [
|
|
|
252
198
|
features: ["Bring a coin you already launched", "Reviewed by our team", "Featured on the Coins page"],
|
|
253
199
|
example: "Your unrug memecoin, listed on your creator profile",
|
|
254
200
|
icon: import_lucide_react.Coins,
|
|
255
|
-
gradient: "from-orange-500/10 via-amber-400/4 to-transparent",
|
|
256
|
-
borderColor: "border-orange-500/20",
|
|
257
|
-
iconColor: "text-orange-500",
|
|
258
|
-
buttonColor: "bg-orange-600 hover:bg-orange-700",
|
|
259
|
-
badge: "Claim",
|
|
260
201
|
status: "live",
|
|
261
|
-
category: "monetize",
|
|
262
202
|
group: "coins"
|
|
263
203
|
},
|
|
264
204
|
{
|
|
@@ -267,17 +207,11 @@ const LAUNCHPAD_SERVICE_DEFINITIONS = [
|
|
|
267
207
|
blurb: "Reserve your name and get your own creator page.",
|
|
268
208
|
title: "Claim Username",
|
|
269
209
|
subtitle: "Reserve your creator page URL",
|
|
270
|
-
description: "Claim your
|
|
210
|
+
description: "Claim your username to get a shareable creator page, your public portfolio at a clean, memorable URL.",
|
|
271
211
|
features: ["Free claim", "Shareable creator page", "Your public portfolio"],
|
|
272
212
|
example: "medialane.io/your-name \u2014 your portfolio at your own name",
|
|
273
213
|
icon: import_lucide_react.AtSign,
|
|
274
|
-
gradient: "from-violet-500/10 via-purple-400/4 to-transparent",
|
|
275
|
-
borderColor: "border-violet-500/20",
|
|
276
|
-
iconColor: "text-violet-500",
|
|
277
|
-
buttonColor: "bg-brand-purple hover:bg-brand-purple/90",
|
|
278
|
-
badge: "Claim",
|
|
279
214
|
status: "live",
|
|
280
|
-
category: "create",
|
|
281
215
|
group: "claims"
|
|
282
216
|
},
|
|
283
217
|
{
|
|
@@ -290,13 +224,7 @@ const LAUNCHPAD_SERVICE_DEFINITIONS = [
|
|
|
290
224
|
features: ["Bring an existing collection", "Linked to your profile", "Branded collection page"],
|
|
291
225
|
example: "A collection you made elsewhere joins your profile",
|
|
292
226
|
icon: import_lucide_react.FolderInput,
|
|
293
|
-
gradient: "from-blue-500/10 via-sky-400/4 to-transparent",
|
|
294
|
-
borderColor: "border-blue-500/20",
|
|
295
|
-
iconColor: "text-blue-500",
|
|
296
|
-
buttonColor: "bg-brand-blue hover:bg-brand-blue/90",
|
|
297
|
-
badge: "Claim",
|
|
298
227
|
status: "live",
|
|
299
|
-
category: "create",
|
|
300
228
|
group: "claims"
|
|
301
229
|
},
|
|
302
230
|
{
|
|
@@ -309,12 +237,7 @@ const LAUNCHPAD_SERVICE_DEFINITIONS = [
|
|
|
309
237
|
features: ["Free claim", "Clean shareable URL", "Easy to remember and share"],
|
|
310
238
|
example: "medialane.io/collections/your-collection",
|
|
311
239
|
icon: import_lucide_react.Link2,
|
|
312
|
-
gradient: "from-pink-500/10 via-rose-400/4 to-transparent",
|
|
313
|
-
borderColor: "border-pink-500/20",
|
|
314
|
-
iconColor: "text-pink-500",
|
|
315
|
-
badge: "Claim",
|
|
316
240
|
status: "live",
|
|
317
|
-
category: "create",
|
|
318
241
|
group: "claims"
|
|
319
242
|
}
|
|
320
243
|
];
|
|
@@ -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,\n Ticket, Users, Handshake,\n Coins, TrendingUp,\n AtSign, FolderInput, Link2,\n} from \"lucide-react\";\nimport { hasCapability } from \"@medialane/sdk\";\n\nconst TICKETS_TRANSFERABLE_FEATURE = hasCapability(\"ip-tickets\", \"transfer\")\n ? \"Freely transferable\"\n : \"Stays with the original holder\";\n\nexport type ServiceStatus = \"live\" | \"building\" | \"soon\";\nexport type ServiceCategory = \"create\" | \"launch\" | \"monetize\";\n\nexport type ServiceGroup =\n | \"nfts\"\n | \"limited-editions\"\n | \"coins\"\n | \"community\"\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 — drives the filter pills and the grid's tag order. */\nexport const LAUNCHPAD_SERVICE_GROUPS: ServiceGroupDefinition[] = [\n {\n key: \"nfts\",\n title: \"NFTs\",\n tagline: \"Singular works, your own collections, timed drops, and remixes.\",\n },\n {\n key: \"limited-editions\",\n title: \"Limited Editions\",\n tagline: \"Numbered copies of your work.\",\n },\n {\n key: \"coins\",\n title: \"Coins\",\n tagline: \"Launch your own coin, or bring one you already made.\",\n },\n {\n key: \"community\",\n title: \"Community\",\n tagline: \"Badges, tickets, memberships, and direct sponsorship.\",\n },\n {\n key: \"claims\",\n title: \"Claims\",\n tagline: \"Reserve your username, your collection's name, or bring in a collection you already made.\",\n },\n {\n key: \"coming-soon\",\n title: \"Coming soon\",\n tagline: \"More ways to earn are 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 /** The ONE creator-language sentence the card shows (no jargon). */\n blurb: string;\n /** Single-verb action label for the card's gradient pill (never repeats the title). */\n cta: string;\n /** Concrete usage example (legacy long-card layout; unused by the 0.9.0 card). */\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: \"nfts\",\n cta: \"Create\",\n blurb: \"Publish one-of-a-kind works and keep them in collections of your own.\",\n title: \"NFTs\",\n subtitle: \"Singular works and your own collections\",\n description:\n \"Publish any photo, video, audio, or document as a one-of-a-kind work inside a collection you own. Licensing, provenance, and ownership live on-chain.\",\n features: [\"One-of-a-kind works\", \"Your own branded collections\", \"You set the license terms\"],\n example: \"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: \"nfts\",\n },\n {\n key: \"limited-editions\",\n cta: \"Mint\",\n blurb: \"Release your work in numbered copies that can be collected and traded.\",\n title: \"Limited Editions\",\n subtitle: \"Numbered copies from a collection you own\",\n description:\n \"Create an editions collection and release each work in as many numbered copies as you choose.\",\n features: [\"Numbered copies, set by you\", \"Fans collect and trade\", \"One home for every release\"],\n example: \"50 copies of a limited print, a music EP 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-brand-purple hover:bg-brand-purple/90\",\n badge: \"Create\",\n status: \"live\",\n category: \"create\",\n group: \"limited-editions\",\n },\n {\n key: \"remix-asset\",\n cta: \"Browse\",\n blurb: \"Create from another work. Credit and royalties are handled automatically.\",\n title: \"Remix Asset\",\n subtitle: \"Derivative works with on-chain attribution\",\n description:\n \"Create a licensed derivative of another work. Attribution and provenance flow back to the original creator.\",\n features: [\"Credit handled automatically\", \"Royalties flow to the original\", \"License respected at mint\"],\n example: \"A remix of a song, an 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: \"nfts\",\n },\n\n // ── Launch ────────────────────────────────────────────────────────────────\n {\n key: \"pop-protocol\",\n cta: \"Create\",\n blurb: \"Badges your community claims and keeps forever.\",\n title: \"POP Protocol\",\n subtitle: \"Proof-of-participation badges for your community\",\n description:\n \"Give out permanent badges. Each person can claim one, and it cannot be transferred or faked.\",\n features: [\"Free for your community to claim\", \"Invite-list gating optional\", \"Branded claim page to share\"],\n example: \"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 badges\",\n status: \"live\",\n category: \"launch\",\n group: \"community\",\n },\n {\n key: \"collection-drop\",\n cta: \"Launch\",\n blurb: \"Release a limited run at a set price and time window.\",\n title: \"Collection Drop\",\n subtitle: \"Timed NFT releases with mint windows\",\n description:\n \"Set a price, a supply, and a start and end time. Collectors mint directly from your drop page.\",\n features: [\"You set price and supply\", \"Opens and closes on your schedule\", \"Branded drop page to share\"],\n example: \"A 48-hour drop of 200 pieces 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: \"nfts\",\n },\n {\n key: \"ip-tickets\",\n cta: \"Create\",\n blurb: \"Create on-chain tickets your audience can hold and trade.\",\n title: \"IP Tickets\",\n subtitle: \"Verifiable tickets, held in the wallet\",\n description:\n \"Create tickets with their own supply and validity window, then mint them to attendees. Every ticket is verifiable on-chain.\",\n features: [\"Verifiable at the door\", \"Supply and validity you set\", TICKETS_TRANSFERABLE_FEATURE],\n icon: Ticket,\n gradient: \"from-teal-500/10 via-cyan-400/4 to-transparent\",\n borderColor: \"border-teal-500/20\",\n iconColor: \"text-teal-500\",\n buttonColor: \"bg-teal-600 hover:bg-teal-700\",\n badge: \"Launch\",\n browseLinkLabel: \"Browse tickets\",\n // Deployed to Starknet mainnet 2026-07-02 — see\n // medialane-core/docs/deployments.md\n status: \"live\",\n category: \"launch\",\n group: \"community\",\n },\n {\n key: \"ip-club\",\n cta: \"Create\",\n blurb: \"Membership passes for your community.\",\n title: \"IP Club\",\n subtitle: \"Membership passes with an on-chain card\",\n description:\n \"Create a club with an on-chain membership card. Set an entry fee and a member cap, and open or close joining anytime.\",\n features: [\"On-chain membership card\", \"Optional entry fee\", \"Open or close joining anytime\"],\n icon: Users,\n gradient: \"from-indigo-500/10 via-violet-400/4 to-transparent\",\n borderColor: \"border-indigo-500/20\",\n iconColor: \"text-indigo-400\",\n buttonColor: \"bg-indigo-600 hover:bg-indigo-700\",\n badge: \"Launch\",\n browseLinkLabel: \"Browse clubs\",\n // Deployed to Starknet mainnet 2026-07-02 — see\n // medialane-core/docs/deployments.md\n status: \"live\",\n category: \"launch\",\n group: \"community\",\n },\n {\n key: \"ip-sponsorship\",\n cta: \"Browse\",\n blurb: \"Let a sponsor back your work directly, for a license in return.\",\n title: \"IP Sponsorship\",\n subtitle: \"Direct sponsorship offers, settled asset-to-asset\",\n description:\n \"Create a sponsorship offer on an asset you own. Sponsors bid, you accept, and they receive a license. Payment settles directly between sponsor and author.\",\n features: [\"Direct settlement\", \"Owner-verified on-chain\", \"Open bidding or one invited sponsor\"],\n example: \"Sponsor a song, an artwork, or a patent for a license\",\n icon: Handshake,\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: \"Launch\",\n browseLinkLabel: \"Browse offers\",\n // Deployed to Starknet mainnet 2026-07-02 — see\n // medialane-core/docs/deployments.md\n status: \"live\",\n category: \"launch\",\n group: \"community\",\n },\n\n // ── Monetize ─────────────────────────────────────────────────────────────\n {\n key: \"creator-coins\",\n cta: \"Launch\",\n blurb: \"Launch your coin in a few clicks and stay in control of it.\",\n title: \"Creator Coin\",\n subtitle: \"Your own coin, your liquidity\",\n description:\n \"Launch your own coin with a public trading pool. You set the supply and allocation and stay in control of the liquidity.\",\n features: [\"Launch in a few clicks\", \"You keep control of the liquidity\", \"Traded on a public pool\"],\n example: \"A fan coin for your channel, a coin for your music project\",\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: \"Launch\",\n status: \"live\",\n category: \"monetize\",\n group: \"coins\",\n },\n\n // ── Claims ────────────────────────────────────────────────────────────────\n {\n key: \"claim-memecoin\",\n cta: \"Claim\",\n blurb: \"Add a coin you already launched to your profile.\",\n title: \"Claim Memecoin\",\n subtitle: \"Bring a coin you already launched\",\n description:\n \"Claim a coin you already launched to list it on the Coins page and your profile. Claims are reviewed before going live.\",\n features: [\"Bring a coin you already launched\", \"Reviewed by our team\", \"Featured on the Coins page\"],\n example: \"Your unrug memecoin, listed on your creator profile\",\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: \"live\",\n category: \"monetize\",\n group: \"coins\",\n },\n {\n key: \"claim-username\",\n cta: \"Claim\",\n blurb: \"Reserve your name and get your own creator page.\",\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 example: \"medialane.io/your-name — your portfolio at your own name\",\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 cta: \"Claim\",\n blurb: \"Made a collection somewhere else? Bring it to your profile.\",\n title: \"Claim Collection\",\n subtitle: \"Bring a collection you already made\",\n description:\n \"Claim a collection you made elsewhere to link it to your profile and give it a branded collection page.\",\n features: [\"Bring an existing collection\", \"Linked to your profile\", \"Branded collection page\"],\n example: \"A collection you made elsewhere joins your profile\",\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 key: \"claim-collection-name\",\n cta: \"Claim\",\n blurb: \"Give your collection a clean, memorable web address of its own.\",\n title: \"Claim Collection Name\",\n subtitle: \"Reserve your collection page URL\",\n description:\n \"Claim a custom name for your collection page and get a clean, shareable URL instead of a long technical address.\",\n features: [\"Free claim\", \"Clean shareable URL\", \"Easy to remember and share\"],\n example: \"medialane.io/collections/your-collection\",\n icon: Link2,\n gradient: \"from-pink-500/10 via-rose-400/4 to-transparent\",\n borderColor: \"border-pink-500/20\",\n iconColor: \"text-pink-500\",\n badge: \"Claim\",\n status: \"live\",\n category: \"create\",\n group: \"claims\",\n },\n];\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,0BAMO;AACP,iBAA8B;AAE9B,MAAM,mCAA+B,0BAAc,cAAc,UAAU,IACvE,wBACA;AAuBG,MAAM,2BAAqD;AAAA,EAChE;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;AA2BO,MAAM,gCAAqD;AAAA;AAAA,EAEhE;AAAA,IACE,KAAK;AAAA,IACL,KAAK;AAAA,IACL,OAAO;AAAA,IACP,OAAO;AAAA,IACP,UAAU;AAAA,IACV,aACE;AAAA,IACF,UAAU,CAAC,uBAAuB,gCAAgC,2BAA2B;AAAA,IAC7F,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,KAAK;AAAA,IACL,OAAO;AAAA,IACP,OAAO;AAAA,IACP,UAAU;AAAA,IACV,aACE;AAAA,IACF,UAAU,CAAC,+BAA+B,0BAA0B,4BAA4B;AAAA,IAChG,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,KAAK;AAAA,IACL,OAAO;AAAA,IACP,OAAO;AAAA,IACP,UAAU;AAAA,IACV,aACE;AAAA,IACF,UAAU,CAAC,gCAAgC,kCAAkC,2BAA2B;AAAA,IACxG,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,KAAK;AAAA,IACL,OAAO;AAAA,IACP,OAAO;AAAA,IACP,UAAU;AAAA,IACV,aACE;AAAA,IACF,UAAU,CAAC,oCAAoC,+BAA+B,6BAA6B;AAAA,IAC3G,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,KAAK;AAAA,IACL,OAAO;AAAA,IACP,OAAO;AAAA,IACP,UAAU;AAAA,IACV,aACE;AAAA,IACF,UAAU,CAAC,4BAA4B,qCAAqC,4BAA4B;AAAA,IACxG,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,KAAK;AAAA,IACL,OAAO;AAAA,IACP,OAAO;AAAA,IACP,UAAU;AAAA,IACV,aACE;AAAA,IACF,UAAU,CAAC,0BAA0B,+BAA+B,4BAA4B;AAAA,IAChG,MAAM;AAAA,IACN,UAAU;AAAA,IACV,aAAa;AAAA,IACb,WAAW;AAAA,IACX,aAAa;AAAA,IACb,OAAO;AAAA,IACP,iBAAiB;AAAA;AAAA;AAAA,IAGjB,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,KAAK;AAAA,IACL,KAAK;AAAA,IACL,OAAO;AAAA,IACP,OAAO;AAAA,IACP,UAAU;AAAA,IACV,aACE;AAAA,IACF,UAAU,CAAC,4BAA4B,sBAAsB,+BAA+B;AAAA,IAC5F,MAAM;AAAA,IACN,UAAU;AAAA,IACV,aAAa;AAAA,IACb,WAAW;AAAA,IACX,aAAa;AAAA,IACb,OAAO;AAAA,IACP,iBAAiB;AAAA;AAAA;AAAA,IAGjB,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,KAAK;AAAA,IACL,KAAK;AAAA,IACL,OAAO;AAAA,IACP,OAAO;AAAA,IACP,UAAU;AAAA,IACV,aACE;AAAA,IACF,UAAU,CAAC,qBAAqB,2BAA2B,qCAAqC;AAAA,IAChG,SAAS;AAAA,IACT,MAAM;AAAA,IACN,UAAU;AAAA,IACV,aAAa;AAAA,IACb,WAAW;AAAA,IACX,aAAa;AAAA,IACb,OAAO;AAAA,IACP,iBAAiB;AAAA;AAAA;AAAA,IAGjB,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,OAAO;AAAA,EACT;AAAA;AAAA,EAGA;AAAA,IACE,KAAK;AAAA,IACL,KAAK;AAAA,IACL,OAAO;AAAA,IACP,OAAO;AAAA,IACP,UAAU;AAAA,IACV,aACE;AAAA,IACF,UAAU,CAAC,0BAA0B,qCAAqC,yBAAyB;AAAA,IACnG,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,KAAK;AAAA,IACL,OAAO;AAAA,IACP,OAAO;AAAA,IACP,UAAU;AAAA,IACV,aACE;AAAA,IACF,UAAU,CAAC,qCAAqC,wBAAwB,4BAA4B;AAAA,IACpG,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,KAAK;AAAA,IACL,OAAO;AAAA,IACP,OAAO;AAAA,IACP,UAAU;AAAA,IACV,aACE;AAAA,IACF,UAAU,CAAC,cAAc,0BAA0B,uBAAuB;AAAA,IAC1E,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,KAAK;AAAA,IACL,OAAO;AAAA,IACP,OAAO;AAAA,IACP,UAAU;AAAA,IACV,aACE;AAAA,IACF,UAAU,CAAC,gCAAgC,0BAA0B,yBAAyB;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,EACA;AAAA,IACE,KAAK;AAAA,IACL,KAAK;AAAA,IACL,OAAO;AAAA,IACP,OAAO;AAAA,IACP,UAAU;AAAA,IACV,aACE;AAAA,IACF,UAAU,CAAC,cAAc,uBAAuB,4BAA4B;AAAA,IAC5E,SAAS;AAAA,IACT,MAAM;AAAA,IACN,UAAU;AAAA,IACV,aAAa;AAAA,IACb,WAAW;AAAA,IACX,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,OAAO;AAAA,EACT;AACF;","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,\n Ticket, Users, Handshake,\n Coins, TrendingUp,\n AtSign, FolderInput, Link2,\n} from \"lucide-react\";\nimport { hasCapability } from \"@medialane/sdk\";\n\nconst TICKETS_TRANSFERABLE_FEATURE = hasCapability(\"ip-tickets\", \"transfer\")\n ? \"Freely transferable\"\n : \"Stays with the original holder\";\n\nexport type ServiceStatus = \"live\" | \"building\" | \"soon\";\n\nexport type ServiceGroup =\n | \"nfts\"\n | \"limited-editions\"\n | \"coins\"\n | \"community\"\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 — drives the filter pills and the grid's tag order. */\nexport const LAUNCHPAD_SERVICE_GROUPS: ServiceGroupDefinition[] = [\n {\n key: \"nfts\",\n title: \"NFTs\",\n tagline: \"Singular works, your own collections, timed drops, and remixes.\",\n },\n {\n key: \"limited-editions\",\n title: \"Limited Editions\",\n tagline: \"Numbered copies of your work.\",\n },\n {\n key: \"coins\",\n title: \"Coins\",\n tagline: \"Launch your own coin, or bring one you already made.\",\n },\n {\n key: \"community\",\n title: \"Community\",\n tagline: \"Badges, tickets, memberships, and direct sponsorship.\",\n },\n {\n key: \"claims\",\n title: \"Claims\",\n tagline: \"Reserve your username, your collection's name, or bring in a collection you already made.\",\n },\n {\n key: \"coming-soon\",\n title: \"Coming soon\",\n tagline: \"More ways to earn are on the way.\",\n },\n];\n\n/** All colors on launchpad surfaces come from the design system: the group\n * accents in `GROUP_SLICES` / `SERVICE_HUES` (brand tokens only). Service\n * definitions carry NO style fields — content only. */\nexport interface ServiceDefinition {\n key: string;\n title: string;\n subtitle: string;\n description: string;\n features: string[];\n icon: LucideIcon;\n status: ServiceStatus;\n group: ServiceGroup;\n /** The ONE creator-language sentence the card shows (no jargon). */\n blurb: string;\n /** Single-verb action label (never repeats the title). */\n cta: string;\n /** Concrete usage example (legacy long-card layout; unused by the current card). */\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: \"nfts\",\n cta: \"Create\",\n blurb: \"Publish each work as a single copy in a collection you own.\",\n title: \"Single Editions\",\n subtitle: \"Each work is minted once\",\n description:\n \"Publish any photo, video, audio, or document, minted once inside your collection. Licensing, provenance, and ownership live on-chain.\",\n features: [\"One mint per work\", \"Collections with their own page and name\", \"You set the license terms\"],\n example: \"A song, a photo, an ebook, a short film\",\n icon: ImagePlus,\n status: \"live\",\n group: \"nfts\",\n },\n {\n key: \"limited-editions\",\n cta: \"Mint\",\n blurb: \"Release your work in numbered copies that can be collected and traded.\",\n title: \"Limited Editions\",\n subtitle: \"Numbered copies from a collection you own\",\n description:\n \"Create an editions collection and release each work in as many numbered copies as you choose.\",\n features: [\"Numbered copies, set by you\", \"Fans collect and trade\", \"One home for every release\"],\n example: \"50 copies of a limited print, a music EP in 100 editions\",\n icon: Layers,\n status: \"live\",\n group: \"limited-editions\",\n },\n {\n key: \"remix-asset\",\n cta: \"Browse\",\n blurb: \"Create from another work. Credit and royalties are handled automatically.\",\n title: \"Remix Asset\",\n subtitle: \"Derivative works with on-chain attribution\",\n description:\n \"Create a licensed derivative of another work. Attribution and provenance flow back to the original creator.\",\n features: [\"Credit handled automatically\", \"Royalties flow to the original\", \"License respected at mint\"],\n example: \"A remix of a song, an artwork inspired by an original\",\n icon: GitBranch,\n status: \"live\",\n group: \"nfts\",\n },\n\n // ── Launch ────────────────────────────────────────────────────────────────\n {\n key: \"pop-protocol\",\n cta: \"Create\",\n blurb: \"Badges your community claims and keeps forever.\",\n title: \"POP Protocol\",\n subtitle: \"Proof-of-participation badges for your community\",\n description:\n \"Give out permanent badges. Each person can claim one, and it cannot be transferred or faked.\",\n features: [\"Free for your community to claim\", \"Invite-list gating optional\", \"Branded claim page to share\"],\n example: \"Hackathon attendance badge, community membership, conference pass\",\n icon: Award,\n browseLinkLabel: \"Browse badges\",\n status: \"live\",\n group: \"community\",\n },\n {\n key: \"collection-drop\",\n cta: \"Launch\",\n blurb: \"Release a limited run at a set price and time window.\",\n title: \"Collection Drop\",\n subtitle: \"Timed NFT releases with mint windows\",\n description:\n \"Set a price, a supply, and a start and end time. Collectors mint directly from your drop page.\",\n features: [\"You set price and supply\", \"Opens and closes on your schedule\", \"Branded drop page to share\"],\n example: \"A 48-hour drop of 200 pieces at 5 USDC each\",\n icon: Package,\n browseLinkLabel: \"Browse drops\",\n status: \"live\",\n group: \"nfts\",\n },\n {\n key: \"ip-tickets\",\n cta: \"Create\",\n blurb: \"Create on-chain tickets your audience can hold and trade.\",\n title: \"IP Tickets\",\n subtitle: \"Verifiable tickets, held in the wallet\",\n description:\n \"Create tickets with their own supply and validity window, then mint them to attendees. Every ticket is verifiable on-chain.\",\n features: [\"Verifiable at the door\", \"Supply and validity you set\", TICKETS_TRANSFERABLE_FEATURE],\n icon: Ticket,\n browseLinkLabel: \"Browse tickets\",\n // Deployed to Starknet mainnet 2026-07-02 — see\n // medialane-core/docs/deployments.md\n status: \"live\",\n group: \"community\",\n },\n {\n key: \"ip-club\",\n cta: \"Create\",\n blurb: \"Membership passes for your community.\",\n title: \"IP Club\",\n subtitle: \"Membership passes with an on-chain card\",\n description:\n \"Create a club with an on-chain membership card. Set an entry fee and a member cap, and open or close joining anytime.\",\n features: [\"On-chain membership card\", \"Optional entry fee\", \"Open or close joining anytime\"],\n icon: Users,\n browseLinkLabel: \"Browse clubs\",\n // Deployed to Starknet mainnet 2026-07-02 — see\n // medialane-core/docs/deployments.md\n status: \"live\",\n group: \"community\",\n },\n {\n key: \"ip-sponsorship\",\n cta: \"Browse\",\n blurb: \"Let a sponsor back your work directly, for a license in return.\",\n title: \"IP Sponsorship\",\n subtitle: \"Direct sponsorship offers, settled asset-to-asset\",\n description:\n \"Create a sponsorship offer on an asset you own. Sponsors bid, you accept, and they receive a license. Payment settles directly between sponsor and author.\",\n features: [\"Direct settlement\", \"Owner-verified on-chain\", \"Open bidding or one invited sponsor\"],\n example: \"Sponsor a song, an artwork, or a patent for a license\",\n icon: Handshake,\n browseLinkLabel: \"Browse offers\",\n // Deployed to Starknet mainnet 2026-07-02 — see\n // medialane-core/docs/deployments.md\n status: \"live\",\n group: \"community\",\n },\n\n // ── Monetize ─────────────────────────────────────────────────────────────\n {\n key: \"creator-coins\",\n cta: \"Launch\",\n blurb: \"Launch your coin in a few clicks and stay in control of it.\",\n title: \"Creator Coin\",\n subtitle: \"Your own coin, your liquidity\",\n description:\n \"Launch your own coin with a public trading pool. You set the supply and allocation and stay in control of the liquidity.\",\n features: [\"Launch in a few clicks\", \"You keep control of the liquidity\", \"Traded on a public pool\"],\n example: \"A fan coin for your channel, a coin for your music project\",\n icon: TrendingUp,\n status: \"live\",\n group: \"coins\",\n },\n\n // ── Claims ────────────────────────────────────────────────────────────────\n {\n key: \"claim-memecoin\",\n cta: \"Claim\",\n blurb: \"Add a coin you already launched to your profile.\",\n title: \"Claim Memecoin\",\n subtitle: \"Bring a coin you already launched\",\n description:\n \"Claim a coin you already launched to list it on the Coins page and your profile. Claims are reviewed before going live.\",\n features: [\"Bring a coin you already launched\", \"Reviewed by our team\", \"Featured on the Coins page\"],\n example: \"Your unrug memecoin, listed on your creator profile\",\n icon: Coins,\n status: \"live\",\n group: \"coins\",\n },\n {\n key: \"claim-username\",\n cta: \"Claim\",\n blurb: \"Reserve your name and get your own creator page.\",\n title: \"Claim Username\",\n subtitle: \"Reserve your creator page URL\",\n description:\n \"Claim your username to get a shareable creator page, your public portfolio at a clean, memorable URL.\",\n features: [\"Free claim\", \"Shareable creator page\", \"Your public portfolio\"],\n example: \"medialane.io/your-name — your portfolio at your own name\",\n icon: AtSign,\n status: \"live\",\n group: \"claims\",\n },\n {\n key: \"claim-collection\",\n cta: \"Claim\",\n blurb: \"Made a collection somewhere else? Bring it to your profile.\",\n title: \"Claim Collection\",\n subtitle: \"Bring a collection you already made\",\n description:\n \"Claim a collection you made elsewhere to link it to your profile and give it a branded collection page.\",\n features: [\"Bring an existing collection\", \"Linked to your profile\", \"Branded collection page\"],\n example: \"A collection you made elsewhere joins your profile\",\n icon: FolderInput,\n status: \"live\",\n group: \"claims\",\n },\n {\n key: \"claim-collection-name\",\n cta: \"Claim\",\n blurb: \"Give your collection a clean, memorable web address of its own.\",\n title: \"Claim Collection Name\",\n subtitle: \"Reserve your collection page URL\",\n description:\n \"Claim a custom name for your collection page and get a clean, shareable URL instead of a long technical address.\",\n features: [\"Free claim\", \"Clean shareable URL\", \"Easy to remember and share\"],\n example: \"medialane.io/collections/your-collection\",\n icon: Link2,\n status: \"live\",\n group: \"claims\",\n },\n];\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,0BAMO;AACP,iBAA8B;AAE9B,MAAM,mCAA+B,0BAAc,cAAc,UAAU,IACvE,wBACA;AAsBG,MAAM,2BAAqD;AAAA,EAChE;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;AAwBO,MAAM,gCAAqD;AAAA;AAAA,EAEhE;AAAA,IACE,KAAK;AAAA,IACL,KAAK;AAAA,IACL,OAAO;AAAA,IACP,OAAO;AAAA,IACP,UAAU;AAAA,IACV,aACE;AAAA,IACF,UAAU,CAAC,qBAAqB,4CAA4C,2BAA2B;AAAA,IACvG,SAAS;AAAA,IACT,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,KAAK;AAAA,IACL,KAAK;AAAA,IACL,OAAO;AAAA,IACP,OAAO;AAAA,IACP,UAAU;AAAA,IACV,aACE;AAAA,IACF,UAAU,CAAC,+BAA+B,0BAA0B,4BAA4B;AAAA,IAChG,SAAS;AAAA,IACT,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,KAAK;AAAA,IACL,KAAK;AAAA,IACL,OAAO;AAAA,IACP,OAAO;AAAA,IACP,UAAU;AAAA,IACV,aACE;AAAA,IACF,UAAU,CAAC,gCAAgC,kCAAkC,2BAA2B;AAAA,IACxG,SAAS;AAAA,IACT,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,EACT;AAAA;AAAA,EAGA;AAAA,IACE,KAAK;AAAA,IACL,KAAK;AAAA,IACL,OAAO;AAAA,IACP,OAAO;AAAA,IACP,UAAU;AAAA,IACV,aACE;AAAA,IACF,UAAU,CAAC,oCAAoC,+BAA+B,6BAA6B;AAAA,IAC3G,SAAS;AAAA,IACT,MAAM;AAAA,IACN,iBAAiB;AAAA,IACjB,QAAQ;AAAA,IACR,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,KAAK;AAAA,IACL,KAAK;AAAA,IACL,OAAO;AAAA,IACP,OAAO;AAAA,IACP,UAAU;AAAA,IACV,aACE;AAAA,IACF,UAAU,CAAC,4BAA4B,qCAAqC,4BAA4B;AAAA,IACxG,SAAS;AAAA,IACT,MAAM;AAAA,IACN,iBAAiB;AAAA,IACjB,QAAQ;AAAA,IACR,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,KAAK;AAAA,IACL,KAAK;AAAA,IACL,OAAO;AAAA,IACP,OAAO;AAAA,IACP,UAAU;AAAA,IACV,aACE;AAAA,IACF,UAAU,CAAC,0BAA0B,+BAA+B,4BAA4B;AAAA,IAChG,MAAM;AAAA,IACN,iBAAiB;AAAA;AAAA;AAAA,IAGjB,QAAQ;AAAA,IACR,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,KAAK;AAAA,IACL,KAAK;AAAA,IACL,OAAO;AAAA,IACP,OAAO;AAAA,IACP,UAAU;AAAA,IACV,aACE;AAAA,IACF,UAAU,CAAC,4BAA4B,sBAAsB,+BAA+B;AAAA,IAC5F,MAAM;AAAA,IACN,iBAAiB;AAAA;AAAA;AAAA,IAGjB,QAAQ;AAAA,IACR,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,KAAK;AAAA,IACL,KAAK;AAAA,IACL,OAAO;AAAA,IACP,OAAO;AAAA,IACP,UAAU;AAAA,IACV,aACE;AAAA,IACF,UAAU,CAAC,qBAAqB,2BAA2B,qCAAqC;AAAA,IAChG,SAAS;AAAA,IACT,MAAM;AAAA,IACN,iBAAiB;AAAA;AAAA;AAAA,IAGjB,QAAQ;AAAA,IACR,OAAO;AAAA,EACT;AAAA;AAAA,EAGA;AAAA,IACE,KAAK;AAAA,IACL,KAAK;AAAA,IACL,OAAO;AAAA,IACP,OAAO;AAAA,IACP,UAAU;AAAA,IACV,aACE;AAAA,IACF,UAAU,CAAC,0BAA0B,qCAAqC,yBAAyB;AAAA,IACnG,SAAS;AAAA,IACT,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,EACT;AAAA;AAAA,EAGA;AAAA,IACE,KAAK;AAAA,IACL,KAAK;AAAA,IACL,OAAO;AAAA,IACP,OAAO;AAAA,IACP,UAAU;AAAA,IACV,aACE;AAAA,IACF,UAAU,CAAC,qCAAqC,wBAAwB,4BAA4B;AAAA,IACpG,SAAS;AAAA,IACT,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,KAAK;AAAA,IACL,KAAK;AAAA,IACL,OAAO;AAAA,IACP,OAAO;AAAA,IACP,UAAU;AAAA,IACV,aACE;AAAA,IACF,UAAU,CAAC,cAAc,0BAA0B,uBAAuB;AAAA,IAC1E,SAAS;AAAA,IACT,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,KAAK;AAAA,IACL,KAAK;AAAA,IACL,OAAO;AAAA,IACP,OAAO;AAAA,IACP,UAAU;AAAA,IACV,aACE;AAAA,IACF,UAAU,CAAC,gCAAgC,0BAA0B,yBAAyB;AAAA,IAC9F,SAAS;AAAA,IACT,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,KAAK;AAAA,IACL,KAAK;AAAA,IACL,OAAO;AAAA,IACP,OAAO;AAAA,IACP,UAAU;AAAA,IACV,aACE;AAAA,IACF,UAAU,CAAC,cAAc,uBAAuB,4BAA4B;AAAA,IAC5E,SAAS;AAAA,IACT,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,EACT;AACF;","names":[]}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { LucideIcon } from 'lucide-react';
|
|
2
2
|
|
|
3
3
|
type ServiceStatus = "live" | "building" | "soon";
|
|
4
|
-
type ServiceCategory = "create" | "launch" | "monetize";
|
|
5
4
|
type ServiceGroup = "nfts" | "limited-editions" | "coins" | "community" | "claims" | "coming-soon";
|
|
6
5
|
interface ServiceGroupDefinition {
|
|
7
6
|
key: ServiceGroup;
|
|
@@ -13,6 +12,9 @@ interface ServiceGroupDefinition {
|
|
|
13
12
|
}
|
|
14
13
|
/** Ordered — drives the filter pills and the grid's tag order. */
|
|
15
14
|
declare const LAUNCHPAD_SERVICE_GROUPS: ServiceGroupDefinition[];
|
|
15
|
+
/** All colors on launchpad surfaces come from the design system: the group
|
|
16
|
+
* accents in `GROUP_SLICES` / `SERVICE_HUES` (brand tokens only). Service
|
|
17
|
+
* definitions carry NO style fields — content only. */
|
|
16
18
|
interface ServiceDefinition {
|
|
17
19
|
key: string;
|
|
18
20
|
title: string;
|
|
@@ -20,23 +22,17 @@ interface ServiceDefinition {
|
|
|
20
22
|
description: string;
|
|
21
23
|
features: string[];
|
|
22
24
|
icon: LucideIcon;
|
|
23
|
-
gradient: string;
|
|
24
|
-
borderColor: string;
|
|
25
|
-
iconColor: string;
|
|
26
|
-
buttonColor?: string;
|
|
27
|
-
badge: string;
|
|
28
25
|
status: ServiceStatus;
|
|
29
|
-
category: ServiceCategory;
|
|
30
26
|
group: ServiceGroup;
|
|
31
27
|
/** The ONE creator-language sentence the card shows (no jargon). */
|
|
32
28
|
blurb: string;
|
|
33
|
-
/** Single-verb action label
|
|
29
|
+
/** Single-verb action label (never repeats the title). */
|
|
34
30
|
cta: string;
|
|
35
|
-
/** Concrete usage example (legacy long-card layout; unused by the
|
|
31
|
+
/** Concrete usage example (legacy long-card layout; unused by the current card). */
|
|
36
32
|
example?: string;
|
|
37
33
|
/** Secondary browse link label — injected app adds the href */
|
|
38
34
|
browseLinkLabel?: string;
|
|
39
35
|
}
|
|
40
36
|
declare const LAUNCHPAD_SERVICE_DEFINITIONS: ServiceDefinition[];
|
|
41
37
|
|
|
42
|
-
export { LAUNCHPAD_SERVICE_DEFINITIONS, LAUNCHPAD_SERVICE_GROUPS, type
|
|
38
|
+
export { LAUNCHPAD_SERVICE_DEFINITIONS, LAUNCHPAD_SERVICE_GROUPS, type ServiceDefinition, type ServiceGroup, type ServiceGroupDefinition, type ServiceStatus };
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { LucideIcon } from 'lucide-react';
|
|
2
2
|
|
|
3
3
|
type ServiceStatus = "live" | "building" | "soon";
|
|
4
|
-
type ServiceCategory = "create" | "launch" | "monetize";
|
|
5
4
|
type ServiceGroup = "nfts" | "limited-editions" | "coins" | "community" | "claims" | "coming-soon";
|
|
6
5
|
interface ServiceGroupDefinition {
|
|
7
6
|
key: ServiceGroup;
|
|
@@ -13,6 +12,9 @@ interface ServiceGroupDefinition {
|
|
|
13
12
|
}
|
|
14
13
|
/** Ordered — drives the filter pills and the grid's tag order. */
|
|
15
14
|
declare const LAUNCHPAD_SERVICE_GROUPS: ServiceGroupDefinition[];
|
|
15
|
+
/** All colors on launchpad surfaces come from the design system: the group
|
|
16
|
+
* accents in `GROUP_SLICES` / `SERVICE_HUES` (brand tokens only). Service
|
|
17
|
+
* definitions carry NO style fields — content only. */
|
|
16
18
|
interface ServiceDefinition {
|
|
17
19
|
key: string;
|
|
18
20
|
title: string;
|
|
@@ -20,23 +22,17 @@ interface ServiceDefinition {
|
|
|
20
22
|
description: string;
|
|
21
23
|
features: string[];
|
|
22
24
|
icon: LucideIcon;
|
|
23
|
-
gradient: string;
|
|
24
|
-
borderColor: string;
|
|
25
|
-
iconColor: string;
|
|
26
|
-
buttonColor?: string;
|
|
27
|
-
badge: string;
|
|
28
25
|
status: ServiceStatus;
|
|
29
|
-
category: ServiceCategory;
|
|
30
26
|
group: ServiceGroup;
|
|
31
27
|
/** The ONE creator-language sentence the card shows (no jargon). */
|
|
32
28
|
blurb: string;
|
|
33
|
-
/** Single-verb action label
|
|
29
|
+
/** Single-verb action label (never repeats the title). */
|
|
34
30
|
cta: string;
|
|
35
|
-
/** Concrete usage example (legacy long-card layout; unused by the
|
|
31
|
+
/** Concrete usage example (legacy long-card layout; unused by the current card). */
|
|
36
32
|
example?: string;
|
|
37
33
|
/** Secondary browse link label — injected app adds the href */
|
|
38
34
|
browseLinkLabel?: string;
|
|
39
35
|
}
|
|
40
36
|
declare const LAUNCHPAD_SERVICE_DEFINITIONS: ServiceDefinition[];
|
|
41
37
|
|
|
42
|
-
export { LAUNCHPAD_SERVICE_DEFINITIONS, LAUNCHPAD_SERVICE_GROUPS, type
|
|
38
|
+
export { LAUNCHPAD_SERVICE_DEFINITIONS, LAUNCHPAD_SERVICE_GROUPS, type ServiceDefinition, type ServiceGroup, type ServiceGroupDefinition, type ServiceStatus };
|
|
@@ -52,20 +52,14 @@ const LAUNCHPAD_SERVICE_DEFINITIONS = [
|
|
|
52
52
|
{
|
|
53
53
|
key: "nfts",
|
|
54
54
|
cta: "Create",
|
|
55
|
-
blurb: "Publish
|
|
56
|
-
title: "
|
|
57
|
-
subtitle: "
|
|
58
|
-
description: "Publish any photo, video, audio, or document
|
|
59
|
-
features: ["One
|
|
55
|
+
blurb: "Publish each work as a single copy in a collection you own.",
|
|
56
|
+
title: "Single Editions",
|
|
57
|
+
subtitle: "Each work is minted once",
|
|
58
|
+
description: "Publish any photo, video, audio, or document, minted once inside your collection. Licensing, provenance, and ownership live on-chain.",
|
|
59
|
+
features: ["One mint per work", "Collections with their own page and name", "You set the license terms"],
|
|
60
60
|
example: "A song, a photo, an ebook, a short film",
|
|
61
61
|
icon: ImagePlus,
|
|
62
|
-
gradient: "from-blue-500/10 via-sky-400/4 to-transparent",
|
|
63
|
-
borderColor: "border-blue-500/20",
|
|
64
|
-
iconColor: "text-blue-500",
|
|
65
|
-
buttonColor: "bg-brand-blue hover:bg-brand-blue/90",
|
|
66
|
-
badge: "Create",
|
|
67
62
|
status: "live",
|
|
68
|
-
category: "create",
|
|
69
63
|
group: "nfts"
|
|
70
64
|
},
|
|
71
65
|
{
|
|
@@ -78,13 +72,7 @@ const LAUNCHPAD_SERVICE_DEFINITIONS = [
|
|
|
78
72
|
features: ["Numbered copies, set by you", "Fans collect and trade", "One home for every release"],
|
|
79
73
|
example: "50 copies of a limited print, a music EP in 100 editions",
|
|
80
74
|
icon: Layers,
|
|
81
|
-
gradient: "from-violet-500/10 via-purple-400/4 to-transparent",
|
|
82
|
-
borderColor: "border-violet-500/20",
|
|
83
|
-
iconColor: "text-violet-500",
|
|
84
|
-
buttonColor: "bg-brand-purple hover:bg-brand-purple/90",
|
|
85
|
-
badge: "Create",
|
|
86
75
|
status: "live",
|
|
87
|
-
category: "create",
|
|
88
76
|
group: "limited-editions"
|
|
89
77
|
},
|
|
90
78
|
{
|
|
@@ -97,13 +85,7 @@ const LAUNCHPAD_SERVICE_DEFINITIONS = [
|
|
|
97
85
|
features: ["Credit handled automatically", "Royalties flow to the original", "License respected at mint"],
|
|
98
86
|
example: "A remix of a song, an artwork inspired by an original",
|
|
99
87
|
icon: GitBranch,
|
|
100
|
-
gradient: "from-rose-500/10 via-pink-400/4 to-transparent",
|
|
101
|
-
borderColor: "border-rose-500/20",
|
|
102
|
-
iconColor: "text-rose-500",
|
|
103
|
-
buttonColor: "bg-brand-rose hover:bg-brand-rose/90",
|
|
104
|
-
badge: "Create",
|
|
105
88
|
status: "live",
|
|
106
|
-
category: "create",
|
|
107
89
|
group: "nfts"
|
|
108
90
|
},
|
|
109
91
|
// ── Launch ────────────────────────────────────────────────────────────────
|
|
@@ -117,14 +99,8 @@ const LAUNCHPAD_SERVICE_DEFINITIONS = [
|
|
|
117
99
|
features: ["Free for your community to claim", "Invite-list gating optional", "Branded claim page to share"],
|
|
118
100
|
example: "Hackathon attendance badge, community membership, conference pass",
|
|
119
101
|
icon: Award,
|
|
120
|
-
gradient: "from-emerald-500/10 via-green-400/4 to-transparent",
|
|
121
|
-
borderColor: "border-emerald-500/20",
|
|
122
|
-
iconColor: "text-emerald-500",
|
|
123
|
-
buttonColor: "bg-green-600 hover:bg-green-700",
|
|
124
|
-
badge: "Launch",
|
|
125
102
|
browseLinkLabel: "Browse badges",
|
|
126
103
|
status: "live",
|
|
127
|
-
category: "launch",
|
|
128
104
|
group: "community"
|
|
129
105
|
},
|
|
130
106
|
{
|
|
@@ -137,14 +113,8 @@ const LAUNCHPAD_SERVICE_DEFINITIONS = [
|
|
|
137
113
|
features: ["You set price and supply", "Opens and closes on your schedule", "Branded drop page to share"],
|
|
138
114
|
example: "A 48-hour drop of 200 pieces at 5 USDC each",
|
|
139
115
|
icon: Package,
|
|
140
|
-
gradient: "from-orange-500/10 via-amber-400/4 to-transparent",
|
|
141
|
-
borderColor: "border-orange-500/20",
|
|
142
|
-
iconColor: "text-orange-500",
|
|
143
|
-
buttonColor: "bg-orange-600 hover:bg-orange-700",
|
|
144
|
-
badge: "Launch",
|
|
145
116
|
browseLinkLabel: "Browse drops",
|
|
146
117
|
status: "live",
|
|
147
|
-
category: "launch",
|
|
148
118
|
group: "nfts"
|
|
149
119
|
},
|
|
150
120
|
{
|
|
@@ -156,16 +126,10 @@ const LAUNCHPAD_SERVICE_DEFINITIONS = [
|
|
|
156
126
|
description: "Create tickets with their own supply and validity window, then mint them to attendees. Every ticket is verifiable on-chain.",
|
|
157
127
|
features: ["Verifiable at the door", "Supply and validity you set", TICKETS_TRANSFERABLE_FEATURE],
|
|
158
128
|
icon: Ticket,
|
|
159
|
-
gradient: "from-teal-500/10 via-cyan-400/4 to-transparent",
|
|
160
|
-
borderColor: "border-teal-500/20",
|
|
161
|
-
iconColor: "text-teal-500",
|
|
162
|
-
buttonColor: "bg-teal-600 hover:bg-teal-700",
|
|
163
|
-
badge: "Launch",
|
|
164
129
|
browseLinkLabel: "Browse tickets",
|
|
165
130
|
// Deployed to Starknet mainnet 2026-07-02 — see
|
|
166
131
|
// medialane-core/docs/deployments.md
|
|
167
132
|
status: "live",
|
|
168
|
-
category: "launch",
|
|
169
133
|
group: "community"
|
|
170
134
|
},
|
|
171
135
|
{
|
|
@@ -177,16 +141,10 @@ const LAUNCHPAD_SERVICE_DEFINITIONS = [
|
|
|
177
141
|
description: "Create a club with an on-chain membership card. Set an entry fee and a member cap, and open or close joining anytime.",
|
|
178
142
|
features: ["On-chain membership card", "Optional entry fee", "Open or close joining anytime"],
|
|
179
143
|
icon: Users,
|
|
180
|
-
gradient: "from-indigo-500/10 via-violet-400/4 to-transparent",
|
|
181
|
-
borderColor: "border-indigo-500/20",
|
|
182
|
-
iconColor: "text-indigo-400",
|
|
183
|
-
buttonColor: "bg-indigo-600 hover:bg-indigo-700",
|
|
184
|
-
badge: "Launch",
|
|
185
144
|
browseLinkLabel: "Browse clubs",
|
|
186
145
|
// Deployed to Starknet mainnet 2026-07-02 — see
|
|
187
146
|
// medialane-core/docs/deployments.md
|
|
188
147
|
status: "live",
|
|
189
|
-
category: "launch",
|
|
190
148
|
group: "community"
|
|
191
149
|
},
|
|
192
150
|
{
|
|
@@ -199,16 +157,10 @@ const LAUNCHPAD_SERVICE_DEFINITIONS = [
|
|
|
199
157
|
features: ["Direct settlement", "Owner-verified on-chain", "Open bidding or one invited sponsor"],
|
|
200
158
|
example: "Sponsor a song, an artwork, or a patent for a license",
|
|
201
159
|
icon: Handshake,
|
|
202
|
-
gradient: "from-rose-500/10 via-pink-400/4 to-transparent",
|
|
203
|
-
borderColor: "border-rose-500/20",
|
|
204
|
-
iconColor: "text-rose-500",
|
|
205
|
-
buttonColor: "bg-brand-rose hover:bg-brand-rose/90",
|
|
206
|
-
badge: "Launch",
|
|
207
160
|
browseLinkLabel: "Browse offers",
|
|
208
161
|
// Deployed to Starknet mainnet 2026-07-02 — see
|
|
209
162
|
// medialane-core/docs/deployments.md
|
|
210
163
|
status: "live",
|
|
211
|
-
category: "launch",
|
|
212
164
|
group: "community"
|
|
213
165
|
},
|
|
214
166
|
// ── Monetize ─────────────────────────────────────────────────────────────
|
|
@@ -222,13 +174,7 @@ const LAUNCHPAD_SERVICE_DEFINITIONS = [
|
|
|
222
174
|
features: ["Launch in a few clicks", "You keep control of the liquidity", "Traded on a public pool"],
|
|
223
175
|
example: "A fan coin for your channel, a coin for your music project",
|
|
224
176
|
icon: TrendingUp,
|
|
225
|
-
gradient: "from-pink-500/6 via-rose-400/2 to-transparent",
|
|
226
|
-
borderColor: "border-pink-500/20",
|
|
227
|
-
iconColor: "text-pink-400",
|
|
228
|
-
buttonColor: "bg-brand-rose hover:bg-brand-rose/90",
|
|
229
|
-
badge: "Launch",
|
|
230
177
|
status: "live",
|
|
231
|
-
category: "monetize",
|
|
232
178
|
group: "coins"
|
|
233
179
|
},
|
|
234
180
|
// ── Claims ────────────────────────────────────────────────────────────────
|
|
@@ -242,13 +188,7 @@ const LAUNCHPAD_SERVICE_DEFINITIONS = [
|
|
|
242
188
|
features: ["Bring a coin you already launched", "Reviewed by our team", "Featured on the Coins page"],
|
|
243
189
|
example: "Your unrug memecoin, listed on your creator profile",
|
|
244
190
|
icon: Coins,
|
|
245
|
-
gradient: "from-orange-500/10 via-amber-400/4 to-transparent",
|
|
246
|
-
borderColor: "border-orange-500/20",
|
|
247
|
-
iconColor: "text-orange-500",
|
|
248
|
-
buttonColor: "bg-orange-600 hover:bg-orange-700",
|
|
249
|
-
badge: "Claim",
|
|
250
191
|
status: "live",
|
|
251
|
-
category: "monetize",
|
|
252
192
|
group: "coins"
|
|
253
193
|
},
|
|
254
194
|
{
|
|
@@ -257,17 +197,11 @@ const LAUNCHPAD_SERVICE_DEFINITIONS = [
|
|
|
257
197
|
blurb: "Reserve your name and get your own creator page.",
|
|
258
198
|
title: "Claim Username",
|
|
259
199
|
subtitle: "Reserve your creator page URL",
|
|
260
|
-
description: "Claim your
|
|
200
|
+
description: "Claim your username to get a shareable creator page, your public portfolio at a clean, memorable URL.",
|
|
261
201
|
features: ["Free claim", "Shareable creator page", "Your public portfolio"],
|
|
262
202
|
example: "medialane.io/your-name \u2014 your portfolio at your own name",
|
|
263
203
|
icon: AtSign,
|
|
264
|
-
gradient: "from-violet-500/10 via-purple-400/4 to-transparent",
|
|
265
|
-
borderColor: "border-violet-500/20",
|
|
266
|
-
iconColor: "text-violet-500",
|
|
267
|
-
buttonColor: "bg-brand-purple hover:bg-brand-purple/90",
|
|
268
|
-
badge: "Claim",
|
|
269
204
|
status: "live",
|
|
270
|
-
category: "create",
|
|
271
205
|
group: "claims"
|
|
272
206
|
},
|
|
273
207
|
{
|
|
@@ -280,13 +214,7 @@ const LAUNCHPAD_SERVICE_DEFINITIONS = [
|
|
|
280
214
|
features: ["Bring an existing collection", "Linked to your profile", "Branded collection page"],
|
|
281
215
|
example: "A collection you made elsewhere joins your profile",
|
|
282
216
|
icon: FolderInput,
|
|
283
|
-
gradient: "from-blue-500/10 via-sky-400/4 to-transparent",
|
|
284
|
-
borderColor: "border-blue-500/20",
|
|
285
|
-
iconColor: "text-blue-500",
|
|
286
|
-
buttonColor: "bg-brand-blue hover:bg-brand-blue/90",
|
|
287
|
-
badge: "Claim",
|
|
288
217
|
status: "live",
|
|
289
|
-
category: "create",
|
|
290
218
|
group: "claims"
|
|
291
219
|
},
|
|
292
220
|
{
|
|
@@ -299,12 +227,7 @@ const LAUNCHPAD_SERVICE_DEFINITIONS = [
|
|
|
299
227
|
features: ["Free claim", "Clean shareable URL", "Easy to remember and share"],
|
|
300
228
|
example: "medialane.io/collections/your-collection",
|
|
301
229
|
icon: Link2,
|
|
302
|
-
gradient: "from-pink-500/10 via-rose-400/4 to-transparent",
|
|
303
|
-
borderColor: "border-pink-500/20",
|
|
304
|
-
iconColor: "text-pink-500",
|
|
305
|
-
badge: "Claim",
|
|
306
230
|
status: "live",
|
|
307
|
-
category: "create",
|
|
308
231
|
group: "claims"
|
|
309
232
|
}
|
|
310
233
|
];
|