@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.
Files changed (45) hide show
  1. package/dist/components/{portfolio-overview.cjs → portfolio-section-grid.cjs} +19 -24
  2. package/dist/components/portfolio-section-grid.cjs.map +1 -0
  3. package/dist/components/portfolio-section-grid.d.cts +21 -0
  4. package/dist/components/portfolio-section-grid.d.ts +21 -0
  5. package/dist/components/portfolio-section-grid.js +41 -0
  6. package/dist/components/portfolio-section-grid.js.map +1 -0
  7. package/dist/components/{portfolio-bento-tile.cjs → portfolio-section.cjs} +21 -12
  8. package/dist/components/portfolio-section.cjs.map +1 -0
  9. package/dist/components/portfolio-section.d.cts +18 -0
  10. package/dist/components/portfolio-section.d.ts +18 -0
  11. package/dist/components/{portfolio-bento-tile.js → portfolio-section.js} +17 -8
  12. package/dist/components/portfolio-section.js.map +1 -0
  13. package/dist/components/{community-rewards-section.cjs → rewards-section.cjs} +30 -44
  14. package/dist/components/rewards-section.cjs.map +1 -0
  15. package/dist/components/rewards-section.d.cts +8 -0
  16. package/dist/components/rewards-section.d.ts +8 -0
  17. package/dist/components/rewards-section.js +51 -0
  18. package/dist/components/rewards-section.js.map +1 -0
  19. package/dist/index.cjs +9 -12
  20. package/dist/index.cjs.map +1 -1
  21. package/dist/index.d.cts +3 -4
  22. package/dist/index.d.ts +3 -4
  23. package/dist/index.js +6 -8
  24. package/dist/index.js.map +1 -1
  25. package/package.json +1 -1
  26. package/dist/components/community-rewards-section.cjs.map +0 -1
  27. package/dist/components/community-rewards-section.d.cts +0 -9
  28. package/dist/components/community-rewards-section.d.ts +0 -9
  29. package/dist/components/community-rewards-section.js +0 -65
  30. package/dist/components/community-rewards-section.js.map +0 -1
  31. package/dist/components/creator-airdrop-banner.cjs +0 -70
  32. package/dist/components/creator-airdrop-banner.cjs.map +0 -1
  33. package/dist/components/creator-airdrop-banner.d.cts +0 -8
  34. package/dist/components/creator-airdrop-banner.d.ts +0 -8
  35. package/dist/components/creator-airdrop-banner.js +0 -36
  36. package/dist/components/creator-airdrop-banner.js.map +0 -1
  37. package/dist/components/portfolio-bento-tile.cjs.map +0 -1
  38. package/dist/components/portfolio-bento-tile.d.cts +0 -17
  39. package/dist/components/portfolio-bento-tile.d.ts +0 -17
  40. package/dist/components/portfolio-bento-tile.js.map +0 -1
  41. package/dist/components/portfolio-overview.cjs.map +0 -1
  42. package/dist/components/portfolio-overview.d.cts +0 -20
  43. package/dist/components/portfolio-overview.d.ts +0 -20
  44. package/dist/components/portfolio-overview.js +0 -44
  45. 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 portfolio_overview_exports = {};
21
- __export(portfolio_overview_exports, {
22
- PortfolioOverview: () => PortfolioOverview
20
+ var portfolio_section_grid_exports = {};
21
+ __export(portfolio_section_grid_exports, {
22
+ PortfolioSectionGrid: () => PortfolioSectionGrid
23
23
  });
24
- module.exports = __toCommonJS(portfolio_overview_exports);
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 import_portfolio_bento_tile = require("./portfolio-bento-tile.js");
28
- function PortfolioOverview({
29
- tiles,
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 populatedTiles = tiles.filter((t) => !t.isEmpty);
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
- // True masonry: a CSS multi-column container. Each tile keeps its
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: populatedTiles.map((tile) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
52
- import_portfolio_bento_tile.PortfolioBentoTile,
45
+ children: populated.map((section) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
46
+ import_portfolio_section.PortfolioSection,
53
47
  {
54
- title: tile.title,
55
- href: tile.href,
56
- size: tile.size,
57
- children: tile.content
48
+ title: section.title,
49
+ href: section.href,
50
+ color: section.color,
51
+ size: section.size,
52
+ children: section.content
58
53
  },
59
- tile.key
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
- PortfolioOverview
61
+ PortfolioSectionGrid
67
62
  });
68
- //# sourceMappingURL=portfolio-overview.cjs.map
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 portfolio_bento_tile_exports = {};
31
- __export(portfolio_bento_tile_exports, {
32
- PortfolioBentoTile: () => PortfolioBentoTile
30
+ var portfolio_section_exports = {};
31
+ __export(portfolio_section_exports, {
32
+ PortfolioSection: () => PortfolioSection
33
33
  });
34
- module.exports = __toCommonJS(portfolio_bento_tile_exports);
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
- function PortfolioBentoTile({
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 bg-foreground/[0.04] min-w-0 transition-colors hover:bg-foreground/[0.07]",
51
- "mb-4 break-inside-avoid",
52
- size === "wide" && "[column-span:all]",
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-4 pt-4 pb-3", children: [
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-4 pb-4", children })
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
- PortfolioBentoTile
86
+ PortfolioSection
78
87
  });
79
- //# sourceMappingURL=portfolio-bento-tile.cjs.map
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
- function PortfolioBentoTile({
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 bg-foreground/[0.04] min-w-0 transition-colors hover:bg-foreground/[0.07]",
18
- "mb-4 break-inside-avoid",
19
- size === "wide" && "[column-span:all]",
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-4 pt-4 pb-3", children: [
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-4 pb-4", children })
46
+ /* @__PURE__ */ jsx("div", { className: "px-5 pb-5", children })
38
47
  ]
39
48
  }
40
49
  );
41
50
  }
42
51
  export {
43
- PortfolioBentoTile
52
+ PortfolioSection
44
53
  };
45
- //# sourceMappingURL=portfolio-bento-tile.js.map
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 community_rewards_section_exports = {};
31
- __export(community_rewards_section_exports, {
32
- CommunityRewardsSection: () => CommunityRewardsSection
30
+ var rewards_section_exports = {};
31
+ __export(rewards_section_exports, {
32
+ RewardsSection: () => RewardsSection
33
33
  });
34
- module.exports = __toCommonJS(community_rewards_section_exports);
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 steps = [
38
+ const pillars = [
39
39
  {
40
- icon: import_lucide_react.PenLine,
41
- label: "Create or trade",
42
- detail: "Mint, license, or sell IP on Medialane."
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.TrendingUp,
46
- label: "Earn a share",
47
- detail: "Every action grows your standing in the pool."
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: "Claim each round",
52
- detail: "Your share is yours to claim, on-chain."
51
+ label: "Airdrop",
52
+ detail: "Claim your share on-chain, every round."
53
53
  }
54
54
  ];
55
- function CommunityRewardsSection({ rewardsHref, airdropHref }) {
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)("span", { className: "text-xs font-bold uppercase tracking-widest text-brand-maeve", children: "Creator's Fund" }),
59
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("h2", { className: "mt-4 text-2xl font-bold tracking-tight leading-tight", children: "How it works" }),
60
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "mt-1.5 text-sm text-muted-foreground leading-relaxed max-w-lg", children: "A share of what Medialane earns is set aside in one public wallet and shared back with the people creating and trading here \u2014 the more you do, the bigger your share, every round." }),
61
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "mt-7 flex flex-wrap items-center gap-x-6 gap-y-3", children: [
62
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
63
- import_link.default,
64
- {
65
- href: rewardsHref,
66
- className: "inline-flex items-center gap-1.5 text-sm font-semibold text-foreground hover:text-brand-maeve transition-colors",
67
- children: [
68
- "See your rewards",
69
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_lucide_react.ArrowRight, { className: "h-3.5 w-3.5" })
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: steps.map(({ icon: Icon, label, detail }) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex items-start gap-3.5", 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
- CommunityRewardsSection
83
+ RewardsSection
98
84
  });
99
- //# sourceMappingURL=community-rewards-section.cjs.map
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&apos;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&apos;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
- PortfolioOverview: () => import_portfolio_overview.PortfolioOverview,
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 import_portfolio_overview = require("./components/portfolio-overview.js");
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 import_portfolio_bento_tile = require("./components/portfolio-bento-tile.js");
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 import_community_rewards_section = require("./components/community-rewards-section.js");
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
- PortfolioOverview,
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,