@medialane/ui 0.12.0 → 0.12.1
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-strip.cjs +150 -0
- package/dist/components/launchpad-strip.cjs.map +1 -0
- package/dist/components/launchpad-strip.d.cts +16 -0
- package/dist/components/launchpad-strip.d.ts +16 -0
- package/dist/components/launchpad-strip.js +116 -0
- package/dist/components/launchpad-strip.js.map +1 -0
- package/dist/index.cjs +3 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
"use client";
|
|
3
|
+
var __create = Object.create;
|
|
4
|
+
var __defProp = Object.defineProperty;
|
|
5
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
6
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
8
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
9
|
+
var __export = (target, all) => {
|
|
10
|
+
for (var name in all)
|
|
11
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
12
|
+
};
|
|
13
|
+
var __copyProps = (to, from, except, desc) => {
|
|
14
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
15
|
+
for (let key of __getOwnPropNames(from))
|
|
16
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
17
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
18
|
+
}
|
|
19
|
+
return to;
|
|
20
|
+
};
|
|
21
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
22
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
23
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
24
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
25
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
26
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
27
|
+
mod
|
|
28
|
+
));
|
|
29
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
30
|
+
var launchpad_strip_exports = {};
|
|
31
|
+
__export(launchpad_strip_exports, {
|
|
32
|
+
LaunchpadStrip: () => LaunchpadStrip
|
|
33
|
+
});
|
|
34
|
+
module.exports = __toCommonJS(launchpad_strip_exports);
|
|
35
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
36
|
+
var import_link = __toESM(require("next/link"), 1);
|
|
37
|
+
var import_lucide_react = require("lucide-react");
|
|
38
|
+
var import_scroll_section = require("./scroll-section.js");
|
|
39
|
+
var import_launchpad_services = require("./launchpad-services.js");
|
|
40
|
+
var import_launchpad_services2 = require("../data/launchpad-services.js");
|
|
41
|
+
var import_cn = require("../utils/cn.js");
|
|
42
|
+
const DEF_BY_KEY = Object.fromEntries(import_launchpad_services2.LAUNCHPAD_SERVICE_DEFINITIONS.map((d) => [d.key, d]));
|
|
43
|
+
const STRIP_ORDER = [
|
|
44
|
+
"mint-ip-asset",
|
|
45
|
+
"create-collection",
|
|
46
|
+
"ip-collection-1155",
|
|
47
|
+
"mint-editions",
|
|
48
|
+
"collection-drop",
|
|
49
|
+
"pop-protocol"
|
|
50
|
+
];
|
|
51
|
+
const MARKETPLACE_HUE = {
|
|
52
|
+
text: "text-indigo-600 dark:text-indigo-400",
|
|
53
|
+
solid: "bg-indigo-500",
|
|
54
|
+
border: "border-indigo-500/25",
|
|
55
|
+
pill: "bg-gradient-to-r from-indigo-500 to-blue-600"
|
|
56
|
+
};
|
|
57
|
+
function ServiceCard({ card }) {
|
|
58
|
+
const { icon: Icon, title, blurb, example, cta, hue, href } = card;
|
|
59
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
60
|
+
import_link.default,
|
|
61
|
+
{
|
|
62
|
+
href,
|
|
63
|
+
className: (0, import_cn.cn)(
|
|
64
|
+
"relative rounded-2xl border bg-card overflow-hidden flex flex-col h-full min-h-[280px]",
|
|
65
|
+
"transition-transform active:scale-[0.99]",
|
|
66
|
+
hue.border
|
|
67
|
+
),
|
|
68
|
+
children: [
|
|
69
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { "aria-hidden": true, className: "absolute -right-7 -bottom-9 opacity-[0.04] select-none pointer-events-none", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, { className: "h-36 w-36" }) }),
|
|
70
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "relative flex flex-col flex-1 p-6 gap-3.5", children: [
|
|
71
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "relative w-fit", children: [
|
|
72
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { "aria-hidden": true, className: (0, import_cn.cn)("absolute -inset-3 rounded-full blur-2xl opacity-30", hue.solid) }),
|
|
73
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, { className: (0, import_cn.cn)("relative h-8 w-8", hue.text) })
|
|
74
|
+
] }),
|
|
75
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "space-y-1.5", children: [
|
|
76
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("h3", { className: "text-xl font-black tracking-tight leading-snug", children: title }),
|
|
77
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "text-sm text-muted-foreground leading-relaxed", children: blurb }),
|
|
78
|
+
example && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("p", { className: "text-xs text-muted-foreground/70 italic leading-relaxed", children: [
|
|
79
|
+
"e.g. ",
|
|
80
|
+
example
|
|
81
|
+
] })
|
|
82
|
+
] }),
|
|
83
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "mt-auto pt-1 flex justify-end", children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
84
|
+
"span",
|
|
85
|
+
{
|
|
86
|
+
className: (0, import_cn.cn)(
|
|
87
|
+
"inline-flex items-center gap-2 h-9 px-4 rounded-full",
|
|
88
|
+
"text-sm font-semibold text-white shadow-lg shadow-black/25",
|
|
89
|
+
hue.pill
|
|
90
|
+
),
|
|
91
|
+
children: [
|
|
92
|
+
cta,
|
|
93
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_lucide_react.ArrowRight, { className: "h-3.5 w-3.5" })
|
|
94
|
+
]
|
|
95
|
+
}
|
|
96
|
+
) })
|
|
97
|
+
] })
|
|
98
|
+
]
|
|
99
|
+
}
|
|
100
|
+
);
|
|
101
|
+
}
|
|
102
|
+
function LaunchpadStrip({
|
|
103
|
+
hrefs,
|
|
104
|
+
marketplaceHref,
|
|
105
|
+
launchpadHref = "/launchpad"
|
|
106
|
+
}) {
|
|
107
|
+
const cards = [
|
|
108
|
+
...STRIP_ORDER.flatMap((key) => {
|
|
109
|
+
const def = DEF_BY_KEY[key];
|
|
110
|
+
const href = hrefs[key];
|
|
111
|
+
if (!def || !href) return [];
|
|
112
|
+
return [{
|
|
113
|
+
key,
|
|
114
|
+
href,
|
|
115
|
+
icon: def.icon,
|
|
116
|
+
title: def.title,
|
|
117
|
+
blurb: def.blurb,
|
|
118
|
+
example: def.example,
|
|
119
|
+
cta: def.cta,
|
|
120
|
+
hue: import_launchpad_services.SERVICE_HUES[key] ?? MARKETPLACE_HUE
|
|
121
|
+
}];
|
|
122
|
+
}),
|
|
123
|
+
...marketplaceHref ? [{
|
|
124
|
+
key: "marketplace",
|
|
125
|
+
href: marketplaceHref,
|
|
126
|
+
icon: import_lucide_react.ShoppingBag,
|
|
127
|
+
title: "Marketplace",
|
|
128
|
+
blurb: "Discover and trade works from creators \u2014 gasless, instantly settled.",
|
|
129
|
+
example: "Buy an art print, make an offer on a music track",
|
|
130
|
+
cta: "Browse",
|
|
131
|
+
hue: MARKETPLACE_HUE
|
|
132
|
+
}] : []
|
|
133
|
+
];
|
|
134
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
135
|
+
import_scroll_section.ScrollSection,
|
|
136
|
+
{
|
|
137
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_lucide_react.Rocket, { className: "h-3.5 w-3.5 text-white" }),
|
|
138
|
+
iconBg: "bg-gradient-to-br from-primary to-blue-600 shadow-md shadow-primary/20",
|
|
139
|
+
title: "Launchpad",
|
|
140
|
+
href: launchpadHref,
|
|
141
|
+
linkLabel: "Explore",
|
|
142
|
+
children: cards.map((card) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "w-64 sm:w-72 snap-start shrink-0 flex", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ServiceCard, { card }) }, card.key))
|
|
143
|
+
}
|
|
144
|
+
);
|
|
145
|
+
}
|
|
146
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
147
|
+
0 && (module.exports = {
|
|
148
|
+
LaunchpadStrip
|
|
149
|
+
});
|
|
150
|
+
//# sourceMappingURL=launchpad-strip.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/components/launchpad-strip.tsx"],"sourcesContent":["\"use client\";\n\nimport Link from \"next/link\";\nimport { ShoppingBag, ArrowRight, Rocket } from \"lucide-react\";\nimport type { LucideIcon } from \"lucide-react\";\nimport { ScrollSection } from \"./scroll-section.js\";\nimport { SERVICE_HUES } from \"./launchpad-services.js\";\nimport { LAUNCHPAD_SERVICE_DEFINITIONS } from \"../data/launchpad-services.js\";\nimport { cn } from \"../utils/cn.js\";\n\n/** Homepage launchpad strip — cards derive from the shared launchpad service\n * definitions: creator language, one blurb, one example, one vivid verb pill.\n * No tech chips, no long descriptions. Apps inject only hrefs. */\n\nexport interface LaunchpadStripProps {\n /** Per-service destinations, keyed by service key. Services without an href are skipped. */\n hrefs: Record<string, string>;\n /** Marketplace card destination (omit to hide the marketplace card) */\n marketplaceHref?: string;\n /** \"Explore\" header link */\n launchpadHref?: string;\n}\n\ninterface StripCard {\n key: string;\n href: string;\n icon: LucideIcon;\n title: string;\n blurb: string;\n example?: string;\n cta: string;\n hue: { text: string; solid: string; border: string; pill: string };\n}\n\nconst DEF_BY_KEY = Object.fromEntries(LAUNCHPAD_SERVICE_DEFINITIONS.map((d) => [d.key, d]));\n\n/** Display order on the homepage strip */\nconst STRIP_ORDER = [\n \"mint-ip-asset\",\n \"create-collection\",\n \"ip-collection-1155\",\n \"mint-editions\",\n \"collection-drop\",\n \"pop-protocol\",\n];\n\nconst MARKETPLACE_HUE = {\n text: \"text-indigo-600 dark:text-indigo-400\",\n solid: \"bg-indigo-500\",\n border: \"border-indigo-500/25\",\n pill: \"bg-gradient-to-r from-indigo-500 to-blue-600\",\n};\n\nfunction ServiceCard({ card }: { card: StripCard }) {\n const { icon: Icon, title, blurb, example, cta, hue, href } = card;\n return (\n <Link\n href={href}\n className={cn(\n \"relative rounded-2xl border bg-card overflow-hidden flex flex-col h-full min-h-[280px]\",\n \"transition-transform active:scale-[0.99]\",\n hue.border,\n )}\n >\n {/* Ghosted watermark icon (launchpad card language) */}\n <div aria-hidden className=\"absolute -right-7 -bottom-9 opacity-[0.04] select-none pointer-events-none\">\n <Icon className=\"h-36 w-36\" />\n </div>\n\n <div className=\"relative flex flex-col flex-1 p-6 gap-3.5\">\n <div className=\"relative w-fit\">\n <div aria-hidden className={cn(\"absolute -inset-3 rounded-full blur-2xl opacity-30\", hue.solid)} />\n <Icon className={cn(\"relative h-8 w-8\", hue.text)} />\n </div>\n\n <div className=\"space-y-1.5\">\n <h3 className=\"text-xl font-black tracking-tight leading-snug\">{title}</h3>\n <p className=\"text-sm text-muted-foreground leading-relaxed\">{blurb}</p>\n {example && (\n <p className=\"text-xs text-muted-foreground/70 italic leading-relaxed\">e.g. {example}</p>\n )}\n </div>\n\n <div className=\"mt-auto pt-1 flex justify-end\">\n <span\n className={cn(\n \"inline-flex items-center gap-2 h-9 px-4 rounded-full\",\n \"text-sm font-semibold text-white shadow-lg shadow-black/25\",\n hue.pill,\n )}\n >\n {cta}\n <ArrowRight className=\"h-3.5 w-3.5\" />\n </span>\n </div>\n </div>\n </Link>\n );\n}\n\nexport function LaunchpadStrip({\n hrefs,\n marketplaceHref,\n launchpadHref = \"/launchpad\",\n}: LaunchpadStripProps) {\n const cards: StripCard[] = [\n ...STRIP_ORDER.flatMap((key) => {\n const def = DEF_BY_KEY[key];\n const href = hrefs[key];\n if (!def || !href) return [];\n return [{\n key,\n href,\n icon: def.icon,\n title: def.title,\n blurb: def.blurb,\n example: def.example,\n cta: def.cta,\n hue: SERVICE_HUES[key] ?? MARKETPLACE_HUE,\n }];\n }),\n ...(marketplaceHref\n ? [{\n key: \"marketplace\",\n href: marketplaceHref,\n icon: ShoppingBag,\n title: \"Marketplace\",\n blurb: \"Discover and trade works from creators — gasless, instantly settled.\",\n example: \"Buy an art print, make an offer on a music track\",\n cta: \"Browse\",\n hue: MARKETPLACE_HUE,\n }]\n : []),\n ];\n\n return (\n <ScrollSection\n icon={<Rocket className=\"h-3.5 w-3.5 text-white\" />}\n iconBg=\"bg-gradient-to-br from-primary to-blue-600 shadow-md shadow-primary/20\"\n title=\"Launchpad\"\n href={launchpadHref}\n linkLabel=\"Explore\"\n >\n {cards.map((card) => (\n <div key={card.key} className=\"w-64 sm:w-72 snap-start shrink-0 flex\">\n <ServiceCard card={card} />\n </div>\n ))}\n </ScrollSection>\n );\n}\n"],"mappings":"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","names":["import_launchpad_services","Link"]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
|
|
3
|
+
/** Homepage launchpad strip — cards derive from the shared launchpad service
|
|
4
|
+
* definitions: creator language, one blurb, one example, one vivid verb pill.
|
|
5
|
+
* No tech chips, no long descriptions. Apps inject only hrefs. */
|
|
6
|
+
interface LaunchpadStripProps {
|
|
7
|
+
/** Per-service destinations, keyed by service key. Services without an href are skipped. */
|
|
8
|
+
hrefs: Record<string, string>;
|
|
9
|
+
/** Marketplace card destination (omit to hide the marketplace card) */
|
|
10
|
+
marketplaceHref?: string;
|
|
11
|
+
/** "Explore" header link */
|
|
12
|
+
launchpadHref?: string;
|
|
13
|
+
}
|
|
14
|
+
declare function LaunchpadStrip({ hrefs, marketplaceHref, launchpadHref, }: LaunchpadStripProps): react_jsx_runtime.JSX.Element;
|
|
15
|
+
|
|
16
|
+
export { LaunchpadStrip, type LaunchpadStripProps };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
|
|
3
|
+
/** Homepage launchpad strip — cards derive from the shared launchpad service
|
|
4
|
+
* definitions: creator language, one blurb, one example, one vivid verb pill.
|
|
5
|
+
* No tech chips, no long descriptions. Apps inject only hrefs. */
|
|
6
|
+
interface LaunchpadStripProps {
|
|
7
|
+
/** Per-service destinations, keyed by service key. Services without an href are skipped. */
|
|
8
|
+
hrefs: Record<string, string>;
|
|
9
|
+
/** Marketplace card destination (omit to hide the marketplace card) */
|
|
10
|
+
marketplaceHref?: string;
|
|
11
|
+
/** "Explore" header link */
|
|
12
|
+
launchpadHref?: string;
|
|
13
|
+
}
|
|
14
|
+
declare function LaunchpadStrip({ hrefs, marketplaceHref, launchpadHref, }: LaunchpadStripProps): react_jsx_runtime.JSX.Element;
|
|
15
|
+
|
|
16
|
+
export { LaunchpadStrip, type LaunchpadStripProps };
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import Link from "next/link";
|
|
4
|
+
import { ShoppingBag, ArrowRight, Rocket } from "lucide-react";
|
|
5
|
+
import { ScrollSection } from "./scroll-section.js";
|
|
6
|
+
import { SERVICE_HUES } from "./launchpad-services.js";
|
|
7
|
+
import { LAUNCHPAD_SERVICE_DEFINITIONS } from "../data/launchpad-services.js";
|
|
8
|
+
import { cn } from "../utils/cn.js";
|
|
9
|
+
const DEF_BY_KEY = Object.fromEntries(LAUNCHPAD_SERVICE_DEFINITIONS.map((d) => [d.key, d]));
|
|
10
|
+
const STRIP_ORDER = [
|
|
11
|
+
"mint-ip-asset",
|
|
12
|
+
"create-collection",
|
|
13
|
+
"ip-collection-1155",
|
|
14
|
+
"mint-editions",
|
|
15
|
+
"collection-drop",
|
|
16
|
+
"pop-protocol"
|
|
17
|
+
];
|
|
18
|
+
const MARKETPLACE_HUE = {
|
|
19
|
+
text: "text-indigo-600 dark:text-indigo-400",
|
|
20
|
+
solid: "bg-indigo-500",
|
|
21
|
+
border: "border-indigo-500/25",
|
|
22
|
+
pill: "bg-gradient-to-r from-indigo-500 to-blue-600"
|
|
23
|
+
};
|
|
24
|
+
function ServiceCard({ card }) {
|
|
25
|
+
const { icon: Icon, title, blurb, example, cta, hue, href } = card;
|
|
26
|
+
return /* @__PURE__ */ jsxs(
|
|
27
|
+
Link,
|
|
28
|
+
{
|
|
29
|
+
href,
|
|
30
|
+
className: cn(
|
|
31
|
+
"relative rounded-2xl border bg-card overflow-hidden flex flex-col h-full min-h-[280px]",
|
|
32
|
+
"transition-transform active:scale-[0.99]",
|
|
33
|
+
hue.border
|
|
34
|
+
),
|
|
35
|
+
children: [
|
|
36
|
+
/* @__PURE__ */ jsx("div", { "aria-hidden": true, className: "absolute -right-7 -bottom-9 opacity-[0.04] select-none pointer-events-none", children: /* @__PURE__ */ jsx(Icon, { className: "h-36 w-36" }) }),
|
|
37
|
+
/* @__PURE__ */ jsxs("div", { className: "relative flex flex-col flex-1 p-6 gap-3.5", children: [
|
|
38
|
+
/* @__PURE__ */ jsxs("div", { className: "relative w-fit", children: [
|
|
39
|
+
/* @__PURE__ */ jsx("div", { "aria-hidden": true, className: cn("absolute -inset-3 rounded-full blur-2xl opacity-30", hue.solid) }),
|
|
40
|
+
/* @__PURE__ */ jsx(Icon, { className: cn("relative h-8 w-8", hue.text) })
|
|
41
|
+
] }),
|
|
42
|
+
/* @__PURE__ */ jsxs("div", { className: "space-y-1.5", children: [
|
|
43
|
+
/* @__PURE__ */ jsx("h3", { className: "text-xl font-black tracking-tight leading-snug", children: title }),
|
|
44
|
+
/* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground leading-relaxed", children: blurb }),
|
|
45
|
+
example && /* @__PURE__ */ jsxs("p", { className: "text-xs text-muted-foreground/70 italic leading-relaxed", children: [
|
|
46
|
+
"e.g. ",
|
|
47
|
+
example
|
|
48
|
+
] })
|
|
49
|
+
] }),
|
|
50
|
+
/* @__PURE__ */ jsx("div", { className: "mt-auto pt-1 flex justify-end", children: /* @__PURE__ */ jsxs(
|
|
51
|
+
"span",
|
|
52
|
+
{
|
|
53
|
+
className: cn(
|
|
54
|
+
"inline-flex items-center gap-2 h-9 px-4 rounded-full",
|
|
55
|
+
"text-sm font-semibold text-white shadow-lg shadow-black/25",
|
|
56
|
+
hue.pill
|
|
57
|
+
),
|
|
58
|
+
children: [
|
|
59
|
+
cta,
|
|
60
|
+
/* @__PURE__ */ jsx(ArrowRight, { className: "h-3.5 w-3.5" })
|
|
61
|
+
]
|
|
62
|
+
}
|
|
63
|
+
) })
|
|
64
|
+
] })
|
|
65
|
+
]
|
|
66
|
+
}
|
|
67
|
+
);
|
|
68
|
+
}
|
|
69
|
+
function LaunchpadStrip({
|
|
70
|
+
hrefs,
|
|
71
|
+
marketplaceHref,
|
|
72
|
+
launchpadHref = "/launchpad"
|
|
73
|
+
}) {
|
|
74
|
+
const cards = [
|
|
75
|
+
...STRIP_ORDER.flatMap((key) => {
|
|
76
|
+
const def = DEF_BY_KEY[key];
|
|
77
|
+
const href = hrefs[key];
|
|
78
|
+
if (!def || !href) return [];
|
|
79
|
+
return [{
|
|
80
|
+
key,
|
|
81
|
+
href,
|
|
82
|
+
icon: def.icon,
|
|
83
|
+
title: def.title,
|
|
84
|
+
blurb: def.blurb,
|
|
85
|
+
example: def.example,
|
|
86
|
+
cta: def.cta,
|
|
87
|
+
hue: SERVICE_HUES[key] ?? MARKETPLACE_HUE
|
|
88
|
+
}];
|
|
89
|
+
}),
|
|
90
|
+
...marketplaceHref ? [{
|
|
91
|
+
key: "marketplace",
|
|
92
|
+
href: marketplaceHref,
|
|
93
|
+
icon: ShoppingBag,
|
|
94
|
+
title: "Marketplace",
|
|
95
|
+
blurb: "Discover and trade works from creators \u2014 gasless, instantly settled.",
|
|
96
|
+
example: "Buy an art print, make an offer on a music track",
|
|
97
|
+
cta: "Browse",
|
|
98
|
+
hue: MARKETPLACE_HUE
|
|
99
|
+
}] : []
|
|
100
|
+
];
|
|
101
|
+
return /* @__PURE__ */ jsx(
|
|
102
|
+
ScrollSection,
|
|
103
|
+
{
|
|
104
|
+
icon: /* @__PURE__ */ jsx(Rocket, { className: "h-3.5 w-3.5 text-white" }),
|
|
105
|
+
iconBg: "bg-gradient-to-br from-primary to-blue-600 shadow-md shadow-primary/20",
|
|
106
|
+
title: "Launchpad",
|
|
107
|
+
href: launchpadHref,
|
|
108
|
+
linkLabel: "Explore",
|
|
109
|
+
children: cards.map((card) => /* @__PURE__ */ jsx("div", { className: "w-64 sm:w-72 snap-start shrink-0 flex", children: /* @__PURE__ */ jsx(ServiceCard, { card }) }, card.key))
|
|
110
|
+
}
|
|
111
|
+
);
|
|
112
|
+
}
|
|
113
|
+
export {
|
|
114
|
+
LaunchpadStrip
|
|
115
|
+
};
|
|
116
|
+
//# sourceMappingURL=launchpad-strip.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/components/launchpad-strip.tsx"],"sourcesContent":["\"use client\";\n\nimport Link from \"next/link\";\nimport { ShoppingBag, ArrowRight, Rocket } from \"lucide-react\";\nimport type { LucideIcon } from \"lucide-react\";\nimport { ScrollSection } from \"./scroll-section.js\";\nimport { SERVICE_HUES } from \"./launchpad-services.js\";\nimport { LAUNCHPAD_SERVICE_DEFINITIONS } from \"../data/launchpad-services.js\";\nimport { cn } from \"../utils/cn.js\";\n\n/** Homepage launchpad strip — cards derive from the shared launchpad service\n * definitions: creator language, one blurb, one example, one vivid verb pill.\n * No tech chips, no long descriptions. Apps inject only hrefs. */\n\nexport interface LaunchpadStripProps {\n /** Per-service destinations, keyed by service key. Services without an href are skipped. */\n hrefs: Record<string, string>;\n /** Marketplace card destination (omit to hide the marketplace card) */\n marketplaceHref?: string;\n /** \"Explore\" header link */\n launchpadHref?: string;\n}\n\ninterface StripCard {\n key: string;\n href: string;\n icon: LucideIcon;\n title: string;\n blurb: string;\n example?: string;\n cta: string;\n hue: { text: string; solid: string; border: string; pill: string };\n}\n\nconst DEF_BY_KEY = Object.fromEntries(LAUNCHPAD_SERVICE_DEFINITIONS.map((d) => [d.key, d]));\n\n/** Display order on the homepage strip */\nconst STRIP_ORDER = [\n \"mint-ip-asset\",\n \"create-collection\",\n \"ip-collection-1155\",\n \"mint-editions\",\n \"collection-drop\",\n \"pop-protocol\",\n];\n\nconst MARKETPLACE_HUE = {\n text: \"text-indigo-600 dark:text-indigo-400\",\n solid: \"bg-indigo-500\",\n border: \"border-indigo-500/25\",\n pill: \"bg-gradient-to-r from-indigo-500 to-blue-600\",\n};\n\nfunction ServiceCard({ card }: { card: StripCard }) {\n const { icon: Icon, title, blurb, example, cta, hue, href } = card;\n return (\n <Link\n href={href}\n className={cn(\n \"relative rounded-2xl border bg-card overflow-hidden flex flex-col h-full min-h-[280px]\",\n \"transition-transform active:scale-[0.99]\",\n hue.border,\n )}\n >\n {/* Ghosted watermark icon (launchpad card language) */}\n <div aria-hidden className=\"absolute -right-7 -bottom-9 opacity-[0.04] select-none pointer-events-none\">\n <Icon className=\"h-36 w-36\" />\n </div>\n\n <div className=\"relative flex flex-col flex-1 p-6 gap-3.5\">\n <div className=\"relative w-fit\">\n <div aria-hidden className={cn(\"absolute -inset-3 rounded-full blur-2xl opacity-30\", hue.solid)} />\n <Icon className={cn(\"relative h-8 w-8\", hue.text)} />\n </div>\n\n <div className=\"space-y-1.5\">\n <h3 className=\"text-xl font-black tracking-tight leading-snug\">{title}</h3>\n <p className=\"text-sm text-muted-foreground leading-relaxed\">{blurb}</p>\n {example && (\n <p className=\"text-xs text-muted-foreground/70 italic leading-relaxed\">e.g. {example}</p>\n )}\n </div>\n\n <div className=\"mt-auto pt-1 flex justify-end\">\n <span\n className={cn(\n \"inline-flex items-center gap-2 h-9 px-4 rounded-full\",\n \"text-sm font-semibold text-white shadow-lg shadow-black/25\",\n hue.pill,\n )}\n >\n {cta}\n <ArrowRight className=\"h-3.5 w-3.5\" />\n </span>\n </div>\n </div>\n </Link>\n );\n}\n\nexport function LaunchpadStrip({\n hrefs,\n marketplaceHref,\n launchpadHref = \"/launchpad\",\n}: LaunchpadStripProps) {\n const cards: StripCard[] = [\n ...STRIP_ORDER.flatMap((key) => {\n const def = DEF_BY_KEY[key];\n const href = hrefs[key];\n if (!def || !href) return [];\n return [{\n key,\n href,\n icon: def.icon,\n title: def.title,\n blurb: def.blurb,\n example: def.example,\n cta: def.cta,\n hue: SERVICE_HUES[key] ?? MARKETPLACE_HUE,\n }];\n }),\n ...(marketplaceHref\n ? [{\n key: \"marketplace\",\n href: marketplaceHref,\n icon: ShoppingBag,\n title: \"Marketplace\",\n blurb: \"Discover and trade works from creators — gasless, instantly settled.\",\n example: \"Buy an art print, make an offer on a music track\",\n cta: \"Browse\",\n hue: MARKETPLACE_HUE,\n }]\n : []),\n ];\n\n return (\n <ScrollSection\n icon={<Rocket className=\"h-3.5 w-3.5 text-white\" />}\n iconBg=\"bg-gradient-to-br from-primary to-blue-600 shadow-md shadow-primary/20\"\n title=\"Launchpad\"\n href={launchpadHref}\n linkLabel=\"Explore\"\n >\n {cards.map((card) => (\n <div key={card.key} className=\"w-64 sm:w-72 snap-start shrink-0 flex\">\n <ServiceCard card={card} />\n </div>\n ))}\n </ScrollSection>\n );\n}\n"],"mappings":"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","names":[]}
|
package/dist/index.cjs
CHANGED
|
@@ -52,6 +52,7 @@ __export(index_exports, {
|
|
|
52
52
|
LAUNCHPAD_SERVICE_GROUPS: () => import_launchpad_services2.LAUNCHPAD_SERVICE_GROUPS,
|
|
53
53
|
LaunchpadGroupedSections: () => import_launchpad_services.LaunchpadGroupedSections,
|
|
54
54
|
LaunchpadServiceCard: () => import_launchpad_services.LaunchpadServiceCard,
|
|
55
|
+
LaunchpadStrip: () => import_launchpad_strip.LaunchpadStrip,
|
|
55
56
|
ListingCard: () => import_listing_card.ListingCard,
|
|
56
57
|
ListingCardSkeleton: () => import_listing_card.ListingCardSkeleton,
|
|
57
58
|
MedialaneIcon: () => import_brand_icon.MedialaneIcon,
|
|
@@ -110,6 +111,7 @@ var import_discover_creators_strip = require("./components/discover-creators-str
|
|
|
110
111
|
var import_discover_feed_section = require("./components/discover-feed-section.js");
|
|
111
112
|
var import_activity_card = require("./components/activity-card.js");
|
|
112
113
|
var import_launchpad_services = require("./components/launchpad-services.js");
|
|
114
|
+
var import_launchpad_strip = require("./components/launchpad-strip.js");
|
|
113
115
|
var import_launchpad_services2 = require("./data/launchpad-services.js");
|
|
114
116
|
var import_nav_command_menu = require("./components/nav-command-menu.js");
|
|
115
117
|
var import_portfolio_subnav = require("./components/portfolio-subnav.js");
|
|
@@ -150,6 +152,7 @@ var import_portfolio_counts = require("./utils/portfolio-counts.js");
|
|
|
150
152
|
LAUNCHPAD_SERVICE_GROUPS,
|
|
151
153
|
LaunchpadGroupedSections,
|
|
152
154
|
LaunchpadServiceCard,
|
|
155
|
+
LaunchpadStrip,
|
|
153
156
|
ListingCard,
|
|
154
157
|
ListingCardSkeleton,
|
|
155
158
|
MedialaneIcon,
|
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 { 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\";\nexport { ActivityCard, ActivityCardSkeleton, ACTIVITY_MESSAGES } from \"./components/activity-card.js\";\nexport type { ActivityCardProps } from \"./components/activity-card.js\";\n\n// ── Launchpad (grouped sections — single page-UI source since 0.8.0) ─────────\nexport { LaunchpadGroupedSections, LaunchpadServiceCard, SERVICE_HUES } 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;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;AAEpC,2BAAsE;AAItE,gCAA6E;
|
|
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\";\nexport { ActivityCard, ActivityCardSkeleton, ACTIVITY_MESSAGES } from \"./components/activity-card.js\";\nexport type { ActivityCardProps } from \"./components/activity-card.js\";\n\n// ── Launchpad (grouped sections — single page-UI source since 0.8.0) ─────────\nexport { LaunchpadGroupedSections, LaunchpadServiceCard, SERVICE_HUES } from \"./components/launchpad-services.js\";\nexport { LaunchpadStrip } from \"./components/launchpad-strip.js\";\nexport type { LaunchpadStripProps } from \"./components/launchpad-strip.js\";\nexport type { LaunchpadGroupedSectionsProps, LaunchpadServiceCardProps, ServiceOverride, ServiceOverrides } from \"./components/launchpad-services.js\";\nexport { LAUNCHPAD_SERVICE_DEFINITIONS, LAUNCHPAD_SERVICE_GROUPS } from \"./data/launchpad-services.js\";\nexport type { ServiceDefinition, ServiceStatus, 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;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;AAEpC,2BAAsE;AAItE,gCAA6E;AAC7E,6BAA+B;AAG/B,IAAAA,6BAAwE;AAIxE,8BAAkD;AAIlD,8BAAgC;AAOhC,8BAAsC;","names":["import_launchpad_services"]}
|
package/dist/index.d.cts
CHANGED
|
@@ -30,6 +30,7 @@ export { DiscoverCreatorsStrip, DiscoverCreatorsStripProps } from './components/
|
|
|
30
30
|
export { DiscoverFeedSection, DiscoverFeedSectionProps } from './components/discover-feed-section.cjs';
|
|
31
31
|
export { ACTIVITY_MESSAGES, ActivityCard, ActivityCardProps, ActivityCardSkeleton } from './components/activity-card.cjs';
|
|
32
32
|
export { LaunchpadGroupedSections, LaunchpadGroupedSectionsProps, LaunchpadServiceCard, LaunchpadServiceCardProps, SERVICE_HUES, ServiceOverride, ServiceOverrides } from './components/launchpad-services.cjs';
|
|
33
|
+
export { LaunchpadStrip, LaunchpadStripProps } from './components/launchpad-strip.cjs';
|
|
33
34
|
export { LAUNCHPAD_SERVICE_DEFINITIONS, LAUNCHPAD_SERVICE_GROUPS, ServiceCategory, ServiceDefinition, ServiceGroup, ServiceGroupDefinition, ServiceStatus } from './data/launchpad-services.cjs';
|
|
34
35
|
export { NavCommand, NavCommandGroup, NavCommandMenu, NavCommandMenuProps, useNavCommandMenu } from './components/nav-command-menu.cjs';
|
|
35
36
|
export { PortfolioBadgeVariant, PortfolioNavGroup, PortfolioNavItem, PortfolioSubnav, PortfolioSubnavProps } from './components/portfolio-subnav.cjs';
|
package/dist/index.d.ts
CHANGED
|
@@ -30,6 +30,7 @@ export { DiscoverCreatorsStrip, DiscoverCreatorsStripProps } from './components/
|
|
|
30
30
|
export { DiscoverFeedSection, DiscoverFeedSectionProps } from './components/discover-feed-section.js';
|
|
31
31
|
export { ACTIVITY_MESSAGES, ActivityCard, ActivityCardProps, ActivityCardSkeleton } from './components/activity-card.js';
|
|
32
32
|
export { LaunchpadGroupedSections, LaunchpadGroupedSectionsProps, LaunchpadServiceCard, LaunchpadServiceCardProps, SERVICE_HUES, ServiceOverride, ServiceOverrides } from './components/launchpad-services.js';
|
|
33
|
+
export { LaunchpadStrip, LaunchpadStripProps } from './components/launchpad-strip.js';
|
|
33
34
|
export { LAUNCHPAD_SERVICE_DEFINITIONS, LAUNCHPAD_SERVICE_GROUPS, ServiceCategory, ServiceDefinition, ServiceGroup, ServiceGroupDefinition, ServiceStatus } from './data/launchpad-services.js';
|
|
34
35
|
export { NavCommand, NavCommandGroup, NavCommandMenu, NavCommandMenuProps, useNavCommandMenu } from './components/nav-command-menu.js';
|
|
35
36
|
export { PortfolioBadgeVariant, PortfolioNavGroup, PortfolioNavItem, PortfolioSubnav, PortfolioSubnavProps } from './components/portfolio-subnav.js';
|
package/dist/index.js
CHANGED
|
@@ -30,6 +30,7 @@ import { DiscoverCreatorsStrip } from "./components/discover-creators-strip.js";
|
|
|
30
30
|
import { DiscoverFeedSection } from "./components/discover-feed-section.js";
|
|
31
31
|
import { ActivityCard, ActivityCardSkeleton, ACTIVITY_MESSAGES } from "./components/activity-card.js";
|
|
32
32
|
import { LaunchpadGroupedSections, LaunchpadServiceCard, SERVICE_HUES } from "./components/launchpad-services.js";
|
|
33
|
+
import { LaunchpadStrip } from "./components/launchpad-strip.js";
|
|
33
34
|
import { LAUNCHPAD_SERVICE_DEFINITIONS, LAUNCHPAD_SERVICE_GROUPS } from "./data/launchpad-services.js";
|
|
34
35
|
import { NavCommandMenu, useNavCommandMenu } from "./components/nav-command-menu.js";
|
|
35
36
|
import { PortfolioSubnav } from "./components/portfolio-subnav.js";
|
|
@@ -69,6 +70,7 @@ export {
|
|
|
69
70
|
LAUNCHPAD_SERVICE_GROUPS,
|
|
70
71
|
LaunchpadGroupedSections,
|
|
71
72
|
LaunchpadServiceCard,
|
|
73
|
+
LaunchpadStrip,
|
|
72
74
|
ListingCard,
|
|
73
75
|
ListingCardSkeleton,
|
|
74
76
|
MedialaneIcon,
|
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 { 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\";\nexport { ActivityCard, ActivityCardSkeleton, ACTIVITY_MESSAGES } from \"./components/activity-card.js\";\nexport type { ActivityCardProps } from \"./components/activity-card.js\";\n\n// ── Launchpad (grouped sections — single page-UI source since 0.8.0) ─────────\nexport { LaunchpadGroupedSections, LaunchpadServiceCard, SERVICE_HUES } 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;AAEpC,SAAS,cAAc,sBAAsB,yBAAyB;AAItE,SAAS,0BAA0B,sBAAsB,oBAAoB;
|
|
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\";\nexport { ActivityCard, ActivityCardSkeleton, ACTIVITY_MESSAGES } from \"./components/activity-card.js\";\nexport type { ActivityCardProps } from \"./components/activity-card.js\";\n\n// ── Launchpad (grouped sections — single page-UI source since 0.8.0) ─────────\nexport { LaunchpadGroupedSections, LaunchpadServiceCard, SERVICE_HUES } from \"./components/launchpad-services.js\";\nexport { LaunchpadStrip } from \"./components/launchpad-strip.js\";\nexport type { LaunchpadStripProps } from \"./components/launchpad-strip.js\";\nexport type { LaunchpadGroupedSectionsProps, LaunchpadServiceCardProps, ServiceOverride, ServiceOverrides } from \"./components/launchpad-services.js\";\nexport { LAUNCHPAD_SERVICE_DEFINITIONS, LAUNCHPAD_SERVICE_GROUPS } from \"./data/launchpad-services.js\";\nexport type { ServiceDefinition, ServiceStatus, 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;AAEpC,SAAS,cAAc,sBAAsB,yBAAyB;AAItE,SAAS,0BAA0B,sBAAsB,oBAAoB;AAC7E,SAAS,sBAAsB;AAG/B,SAAS,+BAA+B,gCAAgC;AAIxE,SAAS,gBAAgB,yBAAyB;AAIlD,SAAS,uBAAuB;AAOhC,SAAS,6BAA6B;","names":[]}
|