@medialane/ui 0.125.6 → 0.126.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/{portfolio-overview.cjs → portfolio-section-grid.cjs} +19 -24
- package/dist/components/portfolio-section-grid.cjs.map +1 -0
- package/dist/components/portfolio-section-grid.d.cts +21 -0
- package/dist/components/portfolio-section-grid.d.ts +21 -0
- package/dist/components/portfolio-section-grid.js +41 -0
- package/dist/components/portfolio-section-grid.js.map +1 -0
- package/dist/components/{portfolio-bento-tile.cjs → portfolio-section.cjs} +21 -12
- package/dist/components/portfolio-section.cjs.map +1 -0
- package/dist/components/portfolio-section.d.cts +18 -0
- package/dist/components/portfolio-section.d.ts +18 -0
- package/dist/components/{portfolio-bento-tile.js → portfolio-section.js} +17 -8
- package/dist/components/portfolio-section.js.map +1 -0
- package/dist/components/{community-rewards-section.cjs → rewards-section.cjs} +30 -44
- package/dist/components/rewards-section.cjs.map +1 -0
- package/dist/components/rewards-section.d.cts +8 -0
- package/dist/components/rewards-section.d.ts +8 -0
- package/dist/components/rewards-section.js +51 -0
- package/dist/components/rewards-section.js.map +1 -0
- package/dist/index.cjs +9 -12
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -4
- package/dist/index.d.ts +3 -4
- package/dist/index.js +6 -8
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/components/community-rewards-section.cjs.map +0 -1
- package/dist/components/community-rewards-section.d.cts +0 -9
- package/dist/components/community-rewards-section.d.ts +0 -9
- package/dist/components/community-rewards-section.js +0 -65
- package/dist/components/community-rewards-section.js.map +0 -1
- package/dist/components/creator-airdrop-banner.cjs +0 -70
- package/dist/components/creator-airdrop-banner.cjs.map +0 -1
- package/dist/components/creator-airdrop-banner.d.cts +0 -8
- package/dist/components/creator-airdrop-banner.d.ts +0 -8
- package/dist/components/creator-airdrop-banner.js +0 -36
- package/dist/components/creator-airdrop-banner.js.map +0 -1
- package/dist/components/portfolio-bento-tile.cjs.map +0 -1
- package/dist/components/portfolio-bento-tile.d.cts +0 -17
- package/dist/components/portfolio-bento-tile.d.ts +0 -17
- package/dist/components/portfolio-bento-tile.js.map +0 -1
- package/dist/components/portfolio-overview.cjs.map +0 -1
- package/dist/components/portfolio-overview.d.cts +0 -20
- package/dist/components/portfolio-overview.d.ts +0 -20
- package/dist/components/portfolio-overview.js +0 -44
- package/dist/components/portfolio-overview.js.map +0 -1
|
@@ -17,16 +17,16 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
17
17
|
return to;
|
|
18
18
|
};
|
|
19
19
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
20
|
-
var
|
|
21
|
-
__export(
|
|
22
|
-
|
|
20
|
+
var portfolio_section_grid_exports = {};
|
|
21
|
+
__export(portfolio_section_grid_exports, {
|
|
22
|
+
PortfolioSectionGrid: () => PortfolioSectionGrid
|
|
23
23
|
});
|
|
24
|
-
module.exports = __toCommonJS(
|
|
24
|
+
module.exports = __toCommonJS(portfolio_section_grid_exports);
|
|
25
25
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
26
26
|
var import_cn = require("../utils/cn.js");
|
|
27
|
-
var
|
|
28
|
-
function
|
|
29
|
-
|
|
27
|
+
var import_portfolio_section = require("./portfolio-section.js");
|
|
28
|
+
function PortfolioSectionGrid({
|
|
29
|
+
sections,
|
|
30
30
|
isEmpty,
|
|
31
31
|
emptyState,
|
|
32
32
|
className
|
|
@@ -34,35 +34,30 @@ function PortfolioOverview({
|
|
|
34
34
|
if (isEmpty) {
|
|
35
35
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className, children: emptyState });
|
|
36
36
|
}
|
|
37
|
-
const
|
|
37
|
+
const populated = sections.filter((s) => !s.isEmpty);
|
|
38
38
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
39
39
|
"div",
|
|
40
40
|
{
|
|
41
41
|
className: (0, import_cn.cn)(
|
|
42
|
-
|
|
43
|
-
// own natural height and flows into whichever column is currently
|
|
44
|
-
// shortest — unlike a grid, nothing stretches to match a taller
|
|
45
|
-
// sibling in the same row, which is what real (unevenly-sized)
|
|
46
|
-
// portfolio content needs. "wide" tiles opt out via column-span:
|
|
47
|
-
// all (set on PortfolioBentoTile itself, not here).
|
|
48
|
-
"columns-1 sm:columns-2 lg:columns-3 gap-4",
|
|
42
|
+
"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4 items-start",
|
|
49
43
|
className
|
|
50
44
|
),
|
|
51
|
-
children:
|
|
52
|
-
|
|
45
|
+
children: populated.map((section) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
46
|
+
import_portfolio_section.PortfolioSection,
|
|
53
47
|
{
|
|
54
|
-
title:
|
|
55
|
-
href:
|
|
56
|
-
|
|
57
|
-
|
|
48
|
+
title: section.title,
|
|
49
|
+
href: section.href,
|
|
50
|
+
color: section.color,
|
|
51
|
+
size: section.size,
|
|
52
|
+
children: section.content
|
|
58
53
|
},
|
|
59
|
-
|
|
54
|
+
section.key
|
|
60
55
|
))
|
|
61
56
|
}
|
|
62
57
|
);
|
|
63
58
|
}
|
|
64
59
|
// Annotate the CommonJS export names for ESM import in node:
|
|
65
60
|
0 && (module.exports = {
|
|
66
|
-
|
|
61
|
+
PortfolioSectionGrid
|
|
67
62
|
});
|
|
68
|
-
//# sourceMappingURL=portfolio-
|
|
63
|
+
//# sourceMappingURL=portfolio-section-grid.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/components/portfolio-section-grid.tsx"],"sourcesContent":["\"use client\";\n\nimport { cn } from \"../utils/cn.js\";\nimport {\n PortfolioSection,\n type PortfolioSectionProps,\n} from \"./portfolio-section.js\";\n\nexport interface PortfolioSectionConfig {\n key: string;\n title: string;\n href: string;\n color?: PortfolioSectionProps[\"color\"];\n size?: PortfolioSectionProps[\"size\"];\n\n isEmpty?: boolean;\n content: React.ReactNode;\n}\n\nexport interface PortfolioSectionGridProps {\n sections: PortfolioSectionConfig[];\n\n isEmpty?: boolean;\n emptyState?: React.ReactNode;\n className?: string;\n}\n\nexport function PortfolioSectionGrid({\n sections,\n isEmpty,\n emptyState,\n className,\n}: PortfolioSectionGridProps) {\n if (isEmpty) {\n return <div className={className}>{emptyState}</div>;\n }\n\n const populated = sections.filter((s) => !s.isEmpty);\n\n return (\n <div\n className={cn(\n \"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4 items-start\",\n className,\n )}\n >\n {populated.map((section) => (\n <PortfolioSection\n key={section.key}\n title={section.title}\n href={section.href}\n color={section.color}\n size={section.size}\n >\n {section.content}\n </PortfolioSection>\n ))}\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAkCW;AAhCX,gBAAmB;AACnB,+BAGO;AAqBA,SAAS,qBAAqB;AAAA,EACnC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAA8B;AAC5B,MAAI,SAAS;AACX,WAAO,4CAAC,SAAI,WAAuB,sBAAW;AAAA,EAChD;AAEA,QAAM,YAAY,SAAS,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO;AAEnD,SACE;AAAA,IAAC;AAAA;AAAA,MACC,eAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MAEC,oBAAU,IAAI,CAAC,YACd;AAAA,QAAC;AAAA;AAAA,UAEC,OAAO,QAAQ;AAAA,UACf,MAAM,QAAQ;AAAA,UACd,OAAO,QAAQ;AAAA,UACf,MAAM,QAAQ;AAAA,UAEb,kBAAQ;AAAA;AAAA,QANJ,QAAQ;AAAA,MAOf,CACD;AAAA;AAAA,EACH;AAEJ;","names":[]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import { PortfolioSectionProps } from './portfolio-section.cjs';
|
|
3
|
+
|
|
4
|
+
interface PortfolioSectionConfig {
|
|
5
|
+
key: string;
|
|
6
|
+
title: string;
|
|
7
|
+
href: string;
|
|
8
|
+
color?: PortfolioSectionProps["color"];
|
|
9
|
+
size?: PortfolioSectionProps["size"];
|
|
10
|
+
isEmpty?: boolean;
|
|
11
|
+
content: React.ReactNode;
|
|
12
|
+
}
|
|
13
|
+
interface PortfolioSectionGridProps {
|
|
14
|
+
sections: PortfolioSectionConfig[];
|
|
15
|
+
isEmpty?: boolean;
|
|
16
|
+
emptyState?: React.ReactNode;
|
|
17
|
+
className?: string;
|
|
18
|
+
}
|
|
19
|
+
declare function PortfolioSectionGrid({ sections, isEmpty, emptyState, className, }: PortfolioSectionGridProps): react_jsx_runtime.JSX.Element;
|
|
20
|
+
|
|
21
|
+
export { type PortfolioSectionConfig, PortfolioSectionGrid, type PortfolioSectionGridProps };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import { PortfolioSectionProps } from './portfolio-section.js';
|
|
3
|
+
|
|
4
|
+
interface PortfolioSectionConfig {
|
|
5
|
+
key: string;
|
|
6
|
+
title: string;
|
|
7
|
+
href: string;
|
|
8
|
+
color?: PortfolioSectionProps["color"];
|
|
9
|
+
size?: PortfolioSectionProps["size"];
|
|
10
|
+
isEmpty?: boolean;
|
|
11
|
+
content: React.ReactNode;
|
|
12
|
+
}
|
|
13
|
+
interface PortfolioSectionGridProps {
|
|
14
|
+
sections: PortfolioSectionConfig[];
|
|
15
|
+
isEmpty?: boolean;
|
|
16
|
+
emptyState?: React.ReactNode;
|
|
17
|
+
className?: string;
|
|
18
|
+
}
|
|
19
|
+
declare function PortfolioSectionGrid({ sections, isEmpty, emptyState, className, }: PortfolioSectionGridProps): react_jsx_runtime.JSX.Element;
|
|
20
|
+
|
|
21
|
+
export { type PortfolioSectionConfig, PortfolioSectionGrid, type PortfolioSectionGridProps };
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import { cn } from "../utils/cn.js";
|
|
4
|
+
import {
|
|
5
|
+
PortfolioSection
|
|
6
|
+
} from "./portfolio-section.js";
|
|
7
|
+
function PortfolioSectionGrid({
|
|
8
|
+
sections,
|
|
9
|
+
isEmpty,
|
|
10
|
+
emptyState,
|
|
11
|
+
className
|
|
12
|
+
}) {
|
|
13
|
+
if (isEmpty) {
|
|
14
|
+
return /* @__PURE__ */ jsx("div", { className, children: emptyState });
|
|
15
|
+
}
|
|
16
|
+
const populated = sections.filter((s) => !s.isEmpty);
|
|
17
|
+
return /* @__PURE__ */ jsx(
|
|
18
|
+
"div",
|
|
19
|
+
{
|
|
20
|
+
className: cn(
|
|
21
|
+
"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4 items-start",
|
|
22
|
+
className
|
|
23
|
+
),
|
|
24
|
+
children: populated.map((section) => /* @__PURE__ */ jsx(
|
|
25
|
+
PortfolioSection,
|
|
26
|
+
{
|
|
27
|
+
title: section.title,
|
|
28
|
+
href: section.href,
|
|
29
|
+
color: section.color,
|
|
30
|
+
size: section.size,
|
|
31
|
+
children: section.content
|
|
32
|
+
},
|
|
33
|
+
section.key
|
|
34
|
+
))
|
|
35
|
+
}
|
|
36
|
+
);
|
|
37
|
+
}
|
|
38
|
+
export {
|
|
39
|
+
PortfolioSectionGrid
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=portfolio-section-grid.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/components/portfolio-section-grid.tsx"],"sourcesContent":["\"use client\";\n\nimport { cn } from \"../utils/cn.js\";\nimport {\n PortfolioSection,\n type PortfolioSectionProps,\n} from \"./portfolio-section.js\";\n\nexport interface PortfolioSectionConfig {\n key: string;\n title: string;\n href: string;\n color?: PortfolioSectionProps[\"color\"];\n size?: PortfolioSectionProps[\"size\"];\n\n isEmpty?: boolean;\n content: React.ReactNode;\n}\n\nexport interface PortfolioSectionGridProps {\n sections: PortfolioSectionConfig[];\n\n isEmpty?: boolean;\n emptyState?: React.ReactNode;\n className?: string;\n}\n\nexport function PortfolioSectionGrid({\n sections,\n isEmpty,\n emptyState,\n className,\n}: PortfolioSectionGridProps) {\n if (isEmpty) {\n return <div className={className}>{emptyState}</div>;\n }\n\n const populated = sections.filter((s) => !s.isEmpty);\n\n return (\n <div\n className={cn(\n \"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4 items-start\",\n className,\n )}\n >\n {populated.map((section) => (\n <PortfolioSection\n key={section.key}\n title={section.title}\n href={section.href}\n color={section.color}\n size={section.size}\n >\n {section.content}\n </PortfolioSection>\n ))}\n </div>\n );\n}\n"],"mappings":";AAkCW;AAhCX,SAAS,UAAU;AACnB;AAAA,EACE;AAAA,OAEK;AAqBA,SAAS,qBAAqB;AAAA,EACnC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAA8B;AAC5B,MAAI,SAAS;AACX,WAAO,oBAAC,SAAI,WAAuB,sBAAW;AAAA,EAChD;AAEA,QAAM,YAAY,SAAS,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO;AAEnD,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MAEC,oBAAU,IAAI,CAAC,YACd;AAAA,QAAC;AAAA;AAAA,UAEC,OAAO,QAAQ;AAAA,UACf,MAAM,QAAQ;AAAA,UACd,OAAO,QAAQ;AAAA,UACf,MAAM,QAAQ;AAAA,UAEb,kBAAQ;AAAA;AAAA,QANJ,QAAQ;AAAA,MAOf,CACD;AAAA;AAAA,EACH;AAEJ;","names":[]}
|
|
@@ -27,18 +27,27 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
27
27
|
mod
|
|
28
28
|
));
|
|
29
29
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
30
|
-
var
|
|
31
|
-
__export(
|
|
32
|
-
|
|
30
|
+
var portfolio_section_exports = {};
|
|
31
|
+
__export(portfolio_section_exports, {
|
|
32
|
+
PortfolioSection: () => PortfolioSection
|
|
33
33
|
});
|
|
34
|
-
module.exports = __toCommonJS(
|
|
34
|
+
module.exports = __toCommonJS(portfolio_section_exports);
|
|
35
35
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
36
36
|
var import_link = __toESM(require("next/link"), 1);
|
|
37
37
|
var import_lucide_react = require("lucide-react");
|
|
38
38
|
var import_cn = require("../utils/cn.js");
|
|
39
|
-
|
|
39
|
+
const BORDER_BY_COLOR = {
|
|
40
|
+
blue: "border-brand-blue/40",
|
|
41
|
+
purple: "border-brand-purple/40",
|
|
42
|
+
rose: "border-brand-rose/40",
|
|
43
|
+
orange: "border-brand-orange/40",
|
|
44
|
+
maeve: "border-brand-maeve/40",
|
|
45
|
+
navy: "border-brand-navy/40"
|
|
46
|
+
};
|
|
47
|
+
function PortfolioSection({
|
|
40
48
|
title,
|
|
41
49
|
href,
|
|
50
|
+
color = "purple",
|
|
42
51
|
size = "default",
|
|
43
52
|
children,
|
|
44
53
|
className
|
|
@@ -47,13 +56,13 @@ function PortfolioBentoTile({
|
|
|
47
56
|
"section",
|
|
48
57
|
{
|
|
49
58
|
className: (0, import_cn.cn)(
|
|
50
|
-
"rounded-2xl
|
|
51
|
-
|
|
52
|
-
size === "wide" && "
|
|
59
|
+
"rounded-2xl border min-w-0",
|
|
60
|
+
BORDER_BY_COLOR[color],
|
|
61
|
+
size === "wide" && "sm:col-span-2 lg:col-span-3",
|
|
53
62
|
className
|
|
54
63
|
),
|
|
55
64
|
children: [
|
|
56
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex items-center justify-between gap-3 px-
|
|
65
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex items-center justify-between gap-3 px-5 pt-5 pb-3", children: [
|
|
57
66
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("h2", { className: "text-sm font-black text-foreground tracking-tight", children: title }),
|
|
58
67
|
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
59
68
|
import_link.default,
|
|
@@ -67,13 +76,13 @@ function PortfolioBentoTile({
|
|
|
67
76
|
}
|
|
68
77
|
)
|
|
69
78
|
] }),
|
|
70
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "px-
|
|
79
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "px-5 pb-5", children })
|
|
71
80
|
]
|
|
72
81
|
}
|
|
73
82
|
);
|
|
74
83
|
}
|
|
75
84
|
// Annotate the CommonJS export names for ESM import in node:
|
|
76
85
|
0 && (module.exports = {
|
|
77
|
-
|
|
86
|
+
PortfolioSection
|
|
78
87
|
});
|
|
79
|
-
//# sourceMappingURL=portfolio-
|
|
88
|
+
//# sourceMappingURL=portfolio-section.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/components/portfolio-section.tsx"],"sourcesContent":["\"use client\";\n\nimport Link from \"next/link\";\nimport { ArrowRight } from \"lucide-react\";\nimport { cn } from \"../utils/cn.js\";\n\nexport type PortfolioSectionColor =\n | \"blue\"\n | \"purple\"\n | \"rose\"\n | \"orange\"\n | \"maeve\"\n | \"navy\";\n\nconst BORDER_BY_COLOR: Record<PortfolioSectionColor, string> = {\n blue: \"border-brand-blue/40\",\n purple: \"border-brand-purple/40\",\n rose: \"border-brand-rose/40\",\n orange: \"border-brand-orange/40\",\n maeve: \"border-brand-maeve/40\",\n navy: \"border-brand-navy/40\",\n};\n\nexport interface PortfolioSectionProps {\n title: string;\n href: string;\n\n /** Which brand color accents this section's hairline border. */\n color?: PortfolioSectionColor;\n\n /** \"default\" sits in the grid alongside its siblings; \"wide\" spans the\n * full row instead — for list-like content (e.g. Activity) that reads\n * better edge-to-edge than column-width. */\n size?: \"default\" | \"wide\";\n children: React.ReactNode;\n className?: string;\n}\n\nexport function PortfolioSection({\n title,\n href,\n color = \"purple\",\n size = \"default\",\n children,\n className,\n}: PortfolioSectionProps) {\n return (\n <section\n className={cn(\n \"rounded-2xl border min-w-0\",\n BORDER_BY_COLOR[color],\n size === \"wide\" && \"sm:col-span-2 lg:col-span-3\",\n className,\n )}\n >\n <div className=\"flex items-center justify-between gap-3 px-5 pt-5 pb-3\">\n <h2 className=\"text-sm font-black text-foreground tracking-tight\">\n {title}\n </h2>\n <Link\n href={href}\n className=\"inline-flex items-center gap-1 text-xs font-medium text-muted-foreground hover:text-foreground transition-colors\"\n >\n See all\n <ArrowRight className=\"h-3 w-3\" />\n </Link>\n </div>\n <div className=\"px-5 pb-5\">{children}</div>\n </section>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAwDQ;AAtDR,kBAAiB;AACjB,0BAA2B;AAC3B,gBAAmB;AAUnB,MAAM,kBAAyD;AAAA,EAC7D,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,MAAM;AACR;AAiBO,SAAS,iBAAiB;AAAA,EAC/B;AAAA,EACA;AAAA,EACA,QAAQ;AAAA,EACR,OAAO;AAAA,EACP;AAAA,EACA;AACF,GAA0B;AACxB,SACE;AAAA,IAAC;AAAA;AAAA,MACC,eAAW;AAAA,QACT;AAAA,QACA,gBAAgB,KAAK;AAAA,QACrB,SAAS,UAAU;AAAA,QACnB;AAAA,MACF;AAAA,MAEA;AAAA,qDAAC,SAAI,WAAU,0DACb;AAAA,sDAAC,QAAG,WAAU,qDACX,iBACH;AAAA,UACA;AAAA,YAAC,YAAAA;AAAA,YAAA;AAAA,cACC;AAAA,cACA,WAAU;AAAA,cACX;AAAA;AAAA,gBAEC,4CAAC,kCAAW,WAAU,WAAU;AAAA;AAAA;AAAA,UAClC;AAAA,WACF;AAAA,QACA,4CAAC,SAAI,WAAU,aAAa,UAAS;AAAA;AAAA;AAAA,EACvC;AAEJ;","names":["Link"]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
|
|
3
|
+
type PortfolioSectionColor = "blue" | "purple" | "rose" | "orange" | "maeve" | "navy";
|
|
4
|
+
interface PortfolioSectionProps {
|
|
5
|
+
title: string;
|
|
6
|
+
href: string;
|
|
7
|
+
/** Which brand color accents this section's hairline border. */
|
|
8
|
+
color?: PortfolioSectionColor;
|
|
9
|
+
/** "default" sits in the grid alongside its siblings; "wide" spans the
|
|
10
|
+
* full row instead — for list-like content (e.g. Activity) that reads
|
|
11
|
+
* better edge-to-edge than column-width. */
|
|
12
|
+
size?: "default" | "wide";
|
|
13
|
+
children: React.ReactNode;
|
|
14
|
+
className?: string;
|
|
15
|
+
}
|
|
16
|
+
declare function PortfolioSection({ title, href, color, size, children, className, }: PortfolioSectionProps): react_jsx_runtime.JSX.Element;
|
|
17
|
+
|
|
18
|
+
export { PortfolioSection, type PortfolioSectionColor, type PortfolioSectionProps };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
|
|
3
|
+
type PortfolioSectionColor = "blue" | "purple" | "rose" | "orange" | "maeve" | "navy";
|
|
4
|
+
interface PortfolioSectionProps {
|
|
5
|
+
title: string;
|
|
6
|
+
href: string;
|
|
7
|
+
/** Which brand color accents this section's hairline border. */
|
|
8
|
+
color?: PortfolioSectionColor;
|
|
9
|
+
/** "default" sits in the grid alongside its siblings; "wide" spans the
|
|
10
|
+
* full row instead — for list-like content (e.g. Activity) that reads
|
|
11
|
+
* better edge-to-edge than column-width. */
|
|
12
|
+
size?: "default" | "wide";
|
|
13
|
+
children: React.ReactNode;
|
|
14
|
+
className?: string;
|
|
15
|
+
}
|
|
16
|
+
declare function PortfolioSection({ title, href, color, size, children, className, }: PortfolioSectionProps): react_jsx_runtime.JSX.Element;
|
|
17
|
+
|
|
18
|
+
export { PortfolioSection, type PortfolioSectionColor, type PortfolioSectionProps };
|
|
@@ -3,9 +3,18 @@ import { jsx, jsxs } from "react/jsx-runtime";
|
|
|
3
3
|
import Link from "next/link";
|
|
4
4
|
import { ArrowRight } from "lucide-react";
|
|
5
5
|
import { cn } from "../utils/cn.js";
|
|
6
|
-
|
|
6
|
+
const BORDER_BY_COLOR = {
|
|
7
|
+
blue: "border-brand-blue/40",
|
|
8
|
+
purple: "border-brand-purple/40",
|
|
9
|
+
rose: "border-brand-rose/40",
|
|
10
|
+
orange: "border-brand-orange/40",
|
|
11
|
+
maeve: "border-brand-maeve/40",
|
|
12
|
+
navy: "border-brand-navy/40"
|
|
13
|
+
};
|
|
14
|
+
function PortfolioSection({
|
|
7
15
|
title,
|
|
8
16
|
href,
|
|
17
|
+
color = "purple",
|
|
9
18
|
size = "default",
|
|
10
19
|
children,
|
|
11
20
|
className
|
|
@@ -14,13 +23,13 @@ function PortfolioBentoTile({
|
|
|
14
23
|
"section",
|
|
15
24
|
{
|
|
16
25
|
className: cn(
|
|
17
|
-
"rounded-2xl
|
|
18
|
-
|
|
19
|
-
size === "wide" && "
|
|
26
|
+
"rounded-2xl border min-w-0",
|
|
27
|
+
BORDER_BY_COLOR[color],
|
|
28
|
+
size === "wide" && "sm:col-span-2 lg:col-span-3",
|
|
20
29
|
className
|
|
21
30
|
),
|
|
22
31
|
children: [
|
|
23
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-3 px-
|
|
32
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between gap-3 px-5 pt-5 pb-3", children: [
|
|
24
33
|
/* @__PURE__ */ jsx("h2", { className: "text-sm font-black text-foreground tracking-tight", children: title }),
|
|
25
34
|
/* @__PURE__ */ jsxs(
|
|
26
35
|
Link,
|
|
@@ -34,12 +43,12 @@ function PortfolioBentoTile({
|
|
|
34
43
|
}
|
|
35
44
|
)
|
|
36
45
|
] }),
|
|
37
|
-
/* @__PURE__ */ jsx("div", { className: "px-
|
|
46
|
+
/* @__PURE__ */ jsx("div", { className: "px-5 pb-5", children })
|
|
38
47
|
]
|
|
39
48
|
}
|
|
40
49
|
);
|
|
41
50
|
}
|
|
42
51
|
export {
|
|
43
|
-
|
|
52
|
+
PortfolioSection
|
|
44
53
|
};
|
|
45
|
-
//# sourceMappingURL=portfolio-
|
|
54
|
+
//# sourceMappingURL=portfolio-section.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/components/portfolio-section.tsx"],"sourcesContent":["\"use client\";\n\nimport Link from \"next/link\";\nimport { ArrowRight } from \"lucide-react\";\nimport { cn } from \"../utils/cn.js\";\n\nexport type PortfolioSectionColor =\n | \"blue\"\n | \"purple\"\n | \"rose\"\n | \"orange\"\n | \"maeve\"\n | \"navy\";\n\nconst BORDER_BY_COLOR: Record<PortfolioSectionColor, string> = {\n blue: \"border-brand-blue/40\",\n purple: \"border-brand-purple/40\",\n rose: \"border-brand-rose/40\",\n orange: \"border-brand-orange/40\",\n maeve: \"border-brand-maeve/40\",\n navy: \"border-brand-navy/40\",\n};\n\nexport interface PortfolioSectionProps {\n title: string;\n href: string;\n\n /** Which brand color accents this section's hairline border. */\n color?: PortfolioSectionColor;\n\n /** \"default\" sits in the grid alongside its siblings; \"wide\" spans the\n * full row instead — for list-like content (e.g. Activity) that reads\n * better edge-to-edge than column-width. */\n size?: \"default\" | \"wide\";\n children: React.ReactNode;\n className?: string;\n}\n\nexport function PortfolioSection({\n title,\n href,\n color = \"purple\",\n size = \"default\",\n children,\n className,\n}: PortfolioSectionProps) {\n return (\n <section\n className={cn(\n \"rounded-2xl border min-w-0\",\n BORDER_BY_COLOR[color],\n size === \"wide\" && \"sm:col-span-2 lg:col-span-3\",\n className,\n )}\n >\n <div className=\"flex items-center justify-between gap-3 px-5 pt-5 pb-3\">\n <h2 className=\"text-sm font-black text-foreground tracking-tight\">\n {title}\n </h2>\n <Link\n href={href}\n className=\"inline-flex items-center gap-1 text-xs font-medium text-muted-foreground hover:text-foreground transition-colors\"\n >\n See all\n <ArrowRight className=\"h-3 w-3\" />\n </Link>\n </div>\n <div className=\"px-5 pb-5\">{children}</div>\n </section>\n );\n}\n"],"mappings":";AAwDQ,cAGA,YAHA;AAtDR,OAAO,UAAU;AACjB,SAAS,kBAAkB;AAC3B,SAAS,UAAU;AAUnB,MAAM,kBAAyD;AAAA,EAC7D,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,MAAM;AACR;AAiBO,SAAS,iBAAiB;AAAA,EAC/B;AAAA,EACA;AAAA,EACA,QAAQ;AAAA,EACR,OAAO;AAAA,EACP;AAAA,EACA;AACF,GAA0B;AACxB,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA,QACT;AAAA,QACA,gBAAgB,KAAK;AAAA,QACrB,SAAS,UAAU;AAAA,QACnB;AAAA,MACF;AAAA,MAEA;AAAA,6BAAC,SAAI,WAAU,0DACb;AAAA,8BAAC,QAAG,WAAU,qDACX,iBACH;AAAA,UACA;AAAA,YAAC;AAAA;AAAA,cACC;AAAA,cACA,WAAU;AAAA,cACX;AAAA;AAAA,gBAEC,oBAAC,cAAW,WAAU,WAAU;AAAA;AAAA;AAAA,UAClC;AAAA,WACF;AAAA,QACA,oBAAC,SAAI,WAAU,aAAa,UAAS;AAAA;AAAA;AAAA,EACvC;AAEJ;","names":[]}
|
|
@@ -27,63 +27,49 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
27
27
|
mod
|
|
28
28
|
));
|
|
29
29
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
30
|
-
var
|
|
31
|
-
__export(
|
|
32
|
-
|
|
30
|
+
var rewards_section_exports = {};
|
|
31
|
+
__export(rewards_section_exports, {
|
|
32
|
+
RewardsSection: () => RewardsSection
|
|
33
33
|
});
|
|
34
|
-
module.exports = __toCommonJS(
|
|
34
|
+
module.exports = __toCommonJS(rewards_section_exports);
|
|
35
35
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
36
36
|
var import_link = __toESM(require("next/link"), 1);
|
|
37
37
|
var import_lucide_react = require("lucide-react");
|
|
38
|
-
const
|
|
38
|
+
const pillars = [
|
|
39
39
|
{
|
|
40
|
-
icon: import_lucide_react.
|
|
41
|
-
label: "
|
|
42
|
-
detail: "
|
|
40
|
+
icon: import_lucide_react.Zap,
|
|
41
|
+
label: "XP",
|
|
42
|
+
detail: "Earned for every mint, trade, and connection you make."
|
|
43
43
|
},
|
|
44
44
|
{
|
|
45
|
-
icon: import_lucide_react.
|
|
46
|
-
label: "
|
|
47
|
-
detail: "
|
|
45
|
+
icon: import_lucide_react.Coins,
|
|
46
|
+
label: "Creator's Fund",
|
|
47
|
+
detail: "Your XP grows your share of the shared pool."
|
|
48
48
|
},
|
|
49
49
|
{
|
|
50
50
|
icon: import_lucide_react.Gift,
|
|
51
|
-
label: "
|
|
52
|
-
detail: "
|
|
51
|
+
label: "Airdrop",
|
|
52
|
+
detail: "Claim your share on-chain, every round."
|
|
53
53
|
}
|
|
54
54
|
];
|
|
55
|
-
function
|
|
55
|
+
function RewardsSection({ rewardsHref }) {
|
|
56
56
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "rounded-2xl p-[1.5px] bg-gradient-to-r from-brand-orange to-brand-maeve", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("section", { className: "rounded-[15px] bg-background px-7 py-8 sm:px-9", children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex flex-col lg:flex-row lg:items-center gap-8 lg:gap-14", children: [
|
|
57
57
|
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex-1 min-w-0", children: [
|
|
58
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("
|
|
59
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("
|
|
60
|
-
/* @__PURE__ */ (0, import_jsx_runtime.
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
}
|
|
72
|
-
),
|
|
73
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
74
|
-
import_link.default,
|
|
75
|
-
{
|
|
76
|
-
href: airdropHref,
|
|
77
|
-
className: "inline-flex items-center gap-1.5 text-sm font-semibold text-muted-foreground hover:text-foreground transition-colors",
|
|
78
|
-
children: [
|
|
79
|
-
"How the fund works",
|
|
80
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_lucide_react.ArrowRight, { className: "h-3.5 w-3.5" })
|
|
81
|
-
]
|
|
82
|
-
}
|
|
83
|
-
)
|
|
84
|
-
] })
|
|
58
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("h2", { className: "text-2xl sm:text-3xl font-bold tracking-tight leading-tight text-foreground", children: "Rewards" }),
|
|
59
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "mt-2 text-sm text-muted-foreground leading-relaxed max-w-md", children: "Every action earns XP. Active members receive a growing share of the Creator's Fund, claimed as an airdrop each round." }),
|
|
60
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
61
|
+
import_link.default,
|
|
62
|
+
{
|
|
63
|
+
href: rewardsHref,
|
|
64
|
+
className: "mt-6 inline-flex items-center justify-center gap-2 rounded-xl bg-gradient-to-r from-brand-orange to-brand-maeve px-6 py-3 text-sm font-semibold text-white transition-all hover:brightness-110 active:scale-[0.98]",
|
|
65
|
+
children: [
|
|
66
|
+
"View your rewards",
|
|
67
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_lucide_react.ArrowRight, { className: "h-4 w-4" })
|
|
68
|
+
]
|
|
69
|
+
}
|
|
70
|
+
)
|
|
85
71
|
] }),
|
|
86
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "flex flex-col gap-4 lg:w-[300px] shrink-0 lg:border-l lg:border-border lg:pl-10", children:
|
|
72
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "flex flex-col gap-4 lg:w-[300px] shrink-0 lg:border-l lg:border-border lg:pl-10", children: pillars.map(({ icon: Icon, label, detail }) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex items-start gap-3.5", children: [
|
|
87
73
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "flex h-9 w-9 items-center justify-center rounded-lg bg-gradient-to-br from-brand-orange/15 to-brand-maeve/15 text-brand-maeve shrink-0", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, { className: "h-4 w-4" }) }),
|
|
88
74
|
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "min-w-0", children: [
|
|
89
75
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "text-sm font-semibold text-foreground", children: label }),
|
|
@@ -94,6 +80,6 @@ function CommunityRewardsSection({ rewardsHref, airdropHref }) {
|
|
|
94
80
|
}
|
|
95
81
|
// Annotate the CommonJS export names for ESM import in node:
|
|
96
82
|
0 && (module.exports = {
|
|
97
|
-
|
|
83
|
+
RewardsSection
|
|
98
84
|
});
|
|
99
|
-
//# sourceMappingURL=
|
|
85
|
+
//# sourceMappingURL=rewards-section.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/components/rewards-section.tsx"],"sourcesContent":["\"use client\";\n\nimport Link from \"next/link\";\nimport { ArrowRight, Zap, Coins, Gift } from \"lucide-react\";\n\nexport interface RewardsSectionProps {\n rewardsHref: string;\n}\n\nconst pillars = [\n {\n icon: Zap,\n label: \"XP\",\n detail: \"Earned for every mint, trade, and connection you make.\",\n },\n {\n icon: Coins,\n label: \"Creator's Fund\",\n detail: \"Your XP grows your share of the shared pool.\",\n },\n {\n icon: Gift,\n label: \"Airdrop\",\n detail: \"Claim your share on-chain, every round.\",\n },\n];\n\nexport function RewardsSection({ rewardsHref }: RewardsSectionProps) {\n return (\n <div className=\"rounded-2xl p-[1.5px] bg-gradient-to-r from-brand-orange to-brand-maeve\">\n <section className=\"rounded-[15px] bg-background px-7 py-8 sm:px-9\">\n <div className=\"flex flex-col lg:flex-row lg:items-center gap-8 lg:gap-14\">\n <div className=\"flex-1 min-w-0\">\n <h2 className=\"text-2xl sm:text-3xl font-bold tracking-tight leading-tight text-foreground\">\n Rewards\n </h2>\n <p className=\"mt-2 text-sm text-muted-foreground leading-relaxed max-w-md\">\n Every action earns XP. Active members receive a growing share of the\n Creator's Fund, claimed as an airdrop each round.\n </p>\n\n <Link\n href={rewardsHref}\n className=\"mt-6 inline-flex items-center justify-center gap-2 rounded-xl bg-gradient-to-r from-brand-orange to-brand-maeve px-6 py-3 text-sm font-semibold text-white transition-all hover:brightness-110 active:scale-[0.98]\"\n >\n View your rewards\n <ArrowRight className=\"h-4 w-4\" />\n </Link>\n </div>\n\n <div className=\"flex flex-col gap-4 lg:w-[300px] shrink-0 lg:border-l lg:border-border lg:pl-10\">\n {pillars.map(({ icon: Icon, label, detail }) => (\n <div key={label} className=\"flex items-start gap-3.5\">\n <div className=\"flex h-9 w-9 items-center justify-center rounded-lg bg-gradient-to-br from-brand-orange/15 to-brand-maeve/15 text-brand-maeve shrink-0\">\n <Icon className=\"h-4 w-4\" />\n </div>\n <div className=\"min-w-0\">\n <p className=\"text-sm font-semibold text-foreground\">{label}</p>\n <p className=\"text-xs text-muted-foreground leading-relaxed\">{detail}</p>\n </div>\n </div>\n ))}\n </div>\n </div>\n </section>\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAiCY;AA/BZ,kBAAiB;AACjB,0BAA6C;AAM7C,MAAM,UAAU;AAAA,EACd;AAAA,IACE,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,EACV;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,EACV;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,EACV;AACF;AAEO,SAAS,eAAe,EAAE,YAAY,GAAwB;AACnE,SACE,4CAAC,SAAI,WAAU,2EACb,sDAAC,aAAQ,WAAU,kDACjB,uDAAC,SAAI,WAAU,6DACb;AAAA,iDAAC,SAAI,WAAU,kBACb;AAAA,kDAAC,QAAG,WAAU,+EAA8E,qBAE5F;AAAA,MACA,4CAAC,OAAE,WAAU,+DAA8D,oIAG3E;AAAA,MAEA;AAAA,QAAC,YAAAA;AAAA,QAAA;AAAA,UACC,MAAM;AAAA,UACN,WAAU;AAAA,UACX;AAAA;AAAA,YAEC,4CAAC,kCAAW,WAAU,WAAU;AAAA;AAAA;AAAA,MAClC;AAAA,OACF;AAAA,IAEA,4CAAC,SAAI,WAAU,mFACZ,kBAAQ,IAAI,CAAC,EAAE,MAAM,MAAM,OAAO,OAAO,MACxC,6CAAC,SAAgB,WAAU,4BACzB;AAAA,kDAAC,SAAI,WAAU,0IACb,sDAAC,QAAK,WAAU,WAAU,GAC5B;AAAA,MACA,6CAAC,SAAI,WAAU,WACb;AAAA,oDAAC,OAAE,WAAU,yCAAyC,iBAAM;AAAA,QAC5D,4CAAC,OAAE,WAAU,iDAAiD,kBAAO;AAAA,SACvE;AAAA,SAPQ,KAQV,CACD,GACH;AAAA,KACF,GACF,GACF;AAEJ;","names":["Link"]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
|
|
3
|
+
interface RewardsSectionProps {
|
|
4
|
+
rewardsHref: string;
|
|
5
|
+
}
|
|
6
|
+
declare function RewardsSection({ rewardsHref }: RewardsSectionProps): react_jsx_runtime.JSX.Element;
|
|
7
|
+
|
|
8
|
+
export { RewardsSection, type RewardsSectionProps };
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
|
|
3
|
+
interface RewardsSectionProps {
|
|
4
|
+
rewardsHref: string;
|
|
5
|
+
}
|
|
6
|
+
declare function RewardsSection({ rewardsHref }: RewardsSectionProps): react_jsx_runtime.JSX.Element;
|
|
7
|
+
|
|
8
|
+
export { RewardsSection, type RewardsSectionProps };
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import Link from "next/link";
|
|
4
|
+
import { ArrowRight, Zap, Coins, Gift } from "lucide-react";
|
|
5
|
+
const pillars = [
|
|
6
|
+
{
|
|
7
|
+
icon: Zap,
|
|
8
|
+
label: "XP",
|
|
9
|
+
detail: "Earned for every mint, trade, and connection you make."
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
icon: Coins,
|
|
13
|
+
label: "Creator's Fund",
|
|
14
|
+
detail: "Your XP grows your share of the shared pool."
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
icon: Gift,
|
|
18
|
+
label: "Airdrop",
|
|
19
|
+
detail: "Claim your share on-chain, every round."
|
|
20
|
+
}
|
|
21
|
+
];
|
|
22
|
+
function RewardsSection({ rewardsHref }) {
|
|
23
|
+
return /* @__PURE__ */ jsx("div", { className: "rounded-2xl p-[1.5px] bg-gradient-to-r from-brand-orange to-brand-maeve", children: /* @__PURE__ */ jsx("section", { className: "rounded-[15px] bg-background px-7 py-8 sm:px-9", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col lg:flex-row lg:items-center gap-8 lg:gap-14", children: [
|
|
24
|
+
/* @__PURE__ */ jsxs("div", { className: "flex-1 min-w-0", children: [
|
|
25
|
+
/* @__PURE__ */ jsx("h2", { className: "text-2xl sm:text-3xl font-bold tracking-tight leading-tight text-foreground", children: "Rewards" }),
|
|
26
|
+
/* @__PURE__ */ jsx("p", { className: "mt-2 text-sm text-muted-foreground leading-relaxed max-w-md", children: "Every action earns XP. Active members receive a growing share of the Creator's Fund, claimed as an airdrop each round." }),
|
|
27
|
+
/* @__PURE__ */ jsxs(
|
|
28
|
+
Link,
|
|
29
|
+
{
|
|
30
|
+
href: rewardsHref,
|
|
31
|
+
className: "mt-6 inline-flex items-center justify-center gap-2 rounded-xl bg-gradient-to-r from-brand-orange to-brand-maeve px-6 py-3 text-sm font-semibold text-white transition-all hover:brightness-110 active:scale-[0.98]",
|
|
32
|
+
children: [
|
|
33
|
+
"View your rewards",
|
|
34
|
+
/* @__PURE__ */ jsx(ArrowRight, { className: "h-4 w-4" })
|
|
35
|
+
]
|
|
36
|
+
}
|
|
37
|
+
)
|
|
38
|
+
] }),
|
|
39
|
+
/* @__PURE__ */ jsx("div", { className: "flex flex-col gap-4 lg:w-[300px] shrink-0 lg:border-l lg:border-border lg:pl-10", children: pillars.map(({ icon: Icon, label, detail }) => /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-3.5", children: [
|
|
40
|
+
/* @__PURE__ */ jsx("div", { className: "flex h-9 w-9 items-center justify-center rounded-lg bg-gradient-to-br from-brand-orange/15 to-brand-maeve/15 text-brand-maeve shrink-0", children: /* @__PURE__ */ jsx(Icon, { className: "h-4 w-4" }) }),
|
|
41
|
+
/* @__PURE__ */ jsxs("div", { className: "min-w-0", children: [
|
|
42
|
+
/* @__PURE__ */ jsx("p", { className: "text-sm font-semibold text-foreground", children: label }),
|
|
43
|
+
/* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground leading-relaxed", children: detail })
|
|
44
|
+
] })
|
|
45
|
+
] }, label)) })
|
|
46
|
+
] }) }) });
|
|
47
|
+
}
|
|
48
|
+
export {
|
|
49
|
+
RewardsSection
|
|
50
|
+
};
|
|
51
|
+
//# sourceMappingURL=rewards-section.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/components/rewards-section.tsx"],"sourcesContent":["\"use client\";\n\nimport Link from \"next/link\";\nimport { ArrowRight, Zap, Coins, Gift } from \"lucide-react\";\n\nexport interface RewardsSectionProps {\n rewardsHref: string;\n}\n\nconst pillars = [\n {\n icon: Zap,\n label: \"XP\",\n detail: \"Earned for every mint, trade, and connection you make.\",\n },\n {\n icon: Coins,\n label: \"Creator's Fund\",\n detail: \"Your XP grows your share of the shared pool.\",\n },\n {\n icon: Gift,\n label: \"Airdrop\",\n detail: \"Claim your share on-chain, every round.\",\n },\n];\n\nexport function RewardsSection({ rewardsHref }: RewardsSectionProps) {\n return (\n <div className=\"rounded-2xl p-[1.5px] bg-gradient-to-r from-brand-orange to-brand-maeve\">\n <section className=\"rounded-[15px] bg-background px-7 py-8 sm:px-9\">\n <div className=\"flex flex-col lg:flex-row lg:items-center gap-8 lg:gap-14\">\n <div className=\"flex-1 min-w-0\">\n <h2 className=\"text-2xl sm:text-3xl font-bold tracking-tight leading-tight text-foreground\">\n Rewards\n </h2>\n <p className=\"mt-2 text-sm text-muted-foreground leading-relaxed max-w-md\">\n Every action earns XP. Active members receive a growing share of the\n Creator's Fund, claimed as an airdrop each round.\n </p>\n\n <Link\n href={rewardsHref}\n className=\"mt-6 inline-flex items-center justify-center gap-2 rounded-xl bg-gradient-to-r from-brand-orange to-brand-maeve px-6 py-3 text-sm font-semibold text-white transition-all hover:brightness-110 active:scale-[0.98]\"\n >\n View your rewards\n <ArrowRight className=\"h-4 w-4\" />\n </Link>\n </div>\n\n <div className=\"flex flex-col gap-4 lg:w-[300px] shrink-0 lg:border-l lg:border-border lg:pl-10\">\n {pillars.map(({ icon: Icon, label, detail }) => (\n <div key={label} className=\"flex items-start gap-3.5\">\n <div className=\"flex h-9 w-9 items-center justify-center rounded-lg bg-gradient-to-br from-brand-orange/15 to-brand-maeve/15 text-brand-maeve shrink-0\">\n <Icon className=\"h-4 w-4\" />\n </div>\n <div className=\"min-w-0\">\n <p className=\"text-sm font-semibold text-foreground\">{label}</p>\n <p className=\"text-xs text-muted-foreground leading-relaxed\">{detail}</p>\n </div>\n </div>\n ))}\n </div>\n </div>\n </section>\n </div>\n );\n}\n"],"mappings":";AAiCY,cAQA,YARA;AA/BZ,OAAO,UAAU;AACjB,SAAS,YAAY,KAAK,OAAO,YAAY;AAM7C,MAAM,UAAU;AAAA,EACd;AAAA,IACE,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,EACV;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,EACV;AAAA,EACA;AAAA,IACE,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,EACV;AACF;AAEO,SAAS,eAAe,EAAE,YAAY,GAAwB;AACnE,SACE,oBAAC,SAAI,WAAU,2EACb,8BAAC,aAAQ,WAAU,kDACjB,+BAAC,SAAI,WAAU,6DACb;AAAA,yBAAC,SAAI,WAAU,kBACb;AAAA,0BAAC,QAAG,WAAU,+EAA8E,qBAE5F;AAAA,MACA,oBAAC,OAAE,WAAU,+DAA8D,oIAG3E;AAAA,MAEA;AAAA,QAAC;AAAA;AAAA,UACC,MAAM;AAAA,UACN,WAAU;AAAA,UACX;AAAA;AAAA,YAEC,oBAAC,cAAW,WAAU,WAAU;AAAA;AAAA;AAAA,MAClC;AAAA,OACF;AAAA,IAEA,oBAAC,SAAI,WAAU,mFACZ,kBAAQ,IAAI,CAAC,EAAE,MAAM,MAAM,OAAO,OAAO,MACxC,qBAAC,SAAgB,WAAU,4BACzB;AAAA,0BAAC,SAAI,WAAU,0IACb,8BAAC,QAAK,WAAU,WAAU,GAC5B;AAAA,MACA,qBAAC,SAAI,WAAU,WACb;AAAA,4BAAC,OAAE,WAAU,yCAAyC,iBAAM;AAAA,QAC5D,oBAAC,OAAE,WAAU,iDAAiD,kBAAO;AAAA,SACvE;AAAA,SAPQ,KAQV,CACD,GACH;AAAA,KACF,GACF,GACF;AAEJ;","names":[]}
|
package/dist/index.cjs
CHANGED
|
@@ -78,9 +78,7 @@ __export(index_exports, {
|
|
|
78
78
|
CollectionFiltersTrigger: () => import_collection_filters.CollectionFiltersTrigger,
|
|
79
79
|
CollectionHeroBanner: () => import_collection_hero_banner.CollectionHeroBanner,
|
|
80
80
|
CollectionTraitsTab: () => import_collection_traits_tab.CollectionTraitsTab,
|
|
81
|
-
CommunityRewardsSection: () => import_community_rewards_section.CommunityRewardsSection,
|
|
82
81
|
CreationRecord: () => import_creation_record.CreationRecord,
|
|
83
|
-
CreatorAirdropBanner: () => import_creator_airdrop_banner.CreatorAirdropBanner,
|
|
84
82
|
CreatorAnalytics: () => import_creator_analytics.CreatorAnalytics,
|
|
85
83
|
CreatorChip: () => import_creator_chip.CreatorChip,
|
|
86
84
|
CreatorScoreInline: () => import_creator_score_inline.CreatorScoreInline,
|
|
@@ -193,13 +191,14 @@ __export(index_exports, {
|
|
|
193
191
|
PopoverContent: () => import_popover.PopoverContent,
|
|
194
192
|
PopoverTrigger: () => import_popover.PopoverTrigger,
|
|
195
193
|
PortfolioActivity: () => import_portfolio_activity.PortfolioActivity,
|
|
196
|
-
PortfolioBentoTile: () => import_portfolio_bento_tile.PortfolioBentoTile,
|
|
197
194
|
PortfolioChipFilter: () => import_portfolio_chip_filter.PortfolioChipFilter,
|
|
198
195
|
PortfolioHeader: () => import_portfolio_header.PortfolioHeader,
|
|
199
|
-
|
|
196
|
+
PortfolioSection: () => import_portfolio_section.PortfolioSection,
|
|
197
|
+
PortfolioSectionGrid: () => import_portfolio_section_grid.PortfolioSectionGrid,
|
|
200
198
|
PriceHistoryChart: () => import_price_history_chart.PriceHistoryChart,
|
|
201
199
|
QUERY_PREFIX: () => import_query_keys.QUERY_PREFIX,
|
|
202
200
|
RemixesTab: () => import_remixes_tab.RemixesTab,
|
|
201
|
+
RewardsSection: () => import_rewards_section.RewardsSection,
|
|
203
202
|
SERVICE_HUES: () => import_launchpad_services.SERVICE_HUES,
|
|
204
203
|
SOCIAL_PLATFORM_META: () => import_ip_templates.SOCIAL_PLATFORM_META,
|
|
205
204
|
SORT_OPTIONS: () => import_collection_filters.SORT_OPTIONS,
|
|
@@ -382,9 +381,9 @@ var import_launchpad_services2 = require("./data/launchpad-services.js");
|
|
|
382
381
|
var import_nav_command_menu = require("./components/nav-command-menu.js");
|
|
383
382
|
var import_nav_shell = require("./components/nav-shell.js");
|
|
384
383
|
var import_portfolio_header = require("./components/portfolio-header.js");
|
|
385
|
-
var
|
|
384
|
+
var import_portfolio_section_grid = require("./components/portfolio-section-grid.js");
|
|
386
385
|
var import_portfolio_counts = require("./utils/portfolio-counts.js");
|
|
387
|
-
var
|
|
386
|
+
var import_portfolio_section = require("./components/portfolio-section.js");
|
|
388
387
|
var import_portfolio_chip_filter = require("./components/portfolio-chip-filter.js");
|
|
389
388
|
var import_service_header = require("./components/service-header.js");
|
|
390
389
|
var import_claim_rail = require("./components/claim-rail.js");
|
|
@@ -400,8 +399,7 @@ var import_badge_catalog = require("./components/rewards/badge-catalog.js");
|
|
|
400
399
|
var import_xp_toast_content = require("./components/rewards/xp-toast-content.js");
|
|
401
400
|
var import_reward_toast = require("./components/rewards/reward-toast.js");
|
|
402
401
|
var import_load_more_sentinel = require("./components/load-more-sentinel.js");
|
|
403
|
-
var
|
|
404
|
-
var import_creator_airdrop_banner = require("./components/creator-airdrop-banner.js");
|
|
402
|
+
var import_rewards_section = require("./components/rewards-section.js");
|
|
405
403
|
var import_action_button = require("./components/action-button.js");
|
|
406
404
|
var import_gradient_button = require("./components/gradient-button.js");
|
|
407
405
|
var import_coin_launch_preview = require("./components/coin-launch-preview.js");
|
|
@@ -527,9 +525,7 @@ var import_dialog = require("./components/dialog.js");
|
|
|
527
525
|
CollectionFiltersTrigger,
|
|
528
526
|
CollectionHeroBanner,
|
|
529
527
|
CollectionTraitsTab,
|
|
530
|
-
CommunityRewardsSection,
|
|
531
528
|
CreationRecord,
|
|
532
|
-
CreatorAirdropBanner,
|
|
533
529
|
CreatorAnalytics,
|
|
534
530
|
CreatorChip,
|
|
535
531
|
CreatorScoreInline,
|
|
@@ -642,13 +638,14 @@ var import_dialog = require("./components/dialog.js");
|
|
|
642
638
|
PopoverContent,
|
|
643
639
|
PopoverTrigger,
|
|
644
640
|
PortfolioActivity,
|
|
645
|
-
PortfolioBentoTile,
|
|
646
641
|
PortfolioChipFilter,
|
|
647
642
|
PortfolioHeader,
|
|
648
|
-
|
|
643
|
+
PortfolioSection,
|
|
644
|
+
PortfolioSectionGrid,
|
|
649
645
|
PriceHistoryChart,
|
|
650
646
|
QUERY_PREFIX,
|
|
651
647
|
RemixesTab,
|
|
648
|
+
RewardsSection,
|
|
652
649
|
SERVICE_HUES,
|
|
653
650
|
SOCIAL_PLATFORM_META,
|
|
654
651
|
SORT_OPTIONS,
|