@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
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
-
import Link from "next/link";
|
|
4
|
-
import { ArrowRight } from "lucide-react";
|
|
5
|
-
function CreatorAirdropBanner({ href }) {
|
|
6
|
-
return /* @__PURE__ */ jsx("div", { className: "rounded-2xl p-[1.5px] bg-gradient-to-r from-brand-orange to-brand-maeve", children: /* @__PURE__ */ jsxs("section", { className: "rounded-[15px] bg-background px-7 py-8 sm:px-9", children: [
|
|
7
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
|
|
8
|
-
/* @__PURE__ */ jsx("span", { className: "text-xs font-bold uppercase tracking-widest bg-gradient-to-r from-brand-orange to-brand-maeve bg-clip-text text-transparent", children: "Creator's Fund" }),
|
|
9
|
-
/* @__PURE__ */ jsxs("span", { className: "flex items-center gap-1.5 text-xs font-medium text-muted-foreground", children: [
|
|
10
|
-
/* @__PURE__ */ jsx("span", { className: "h-1.5 w-1.5 rounded-full bg-brand-maeve animate-pulse" }),
|
|
11
|
-
"Live"
|
|
12
|
-
] })
|
|
13
|
-
] }),
|
|
14
|
-
/* @__PURE__ */ jsxs("div", { className: "mt-4 flex flex-col sm:flex-row sm:items-center gap-6", children: [
|
|
15
|
-
/* @__PURE__ */ jsxs("div", { className: "flex-1 min-w-0", children: [
|
|
16
|
-
/* @__PURE__ */ jsx("h2", { className: "text-2xl sm:text-3xl font-bold tracking-tight leading-tight text-foreground", children: "Creator's Airdrop" }),
|
|
17
|
-
/* @__PURE__ */ jsx("p", { className: "mt-1.5 text-sm text-muted-foreground leading-relaxed max-w-md", children: "Claim your participation and join the creator's fund distribution." })
|
|
18
|
-
] }),
|
|
19
|
-
/* @__PURE__ */ jsxs(
|
|
20
|
-
Link,
|
|
21
|
-
{
|
|
22
|
-
href,
|
|
23
|
-
className: "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] shrink-0",
|
|
24
|
-
children: [
|
|
25
|
-
"Read More",
|
|
26
|
-
/* @__PURE__ */ jsx(ArrowRight, { className: "h-4 w-4" })
|
|
27
|
-
]
|
|
28
|
-
}
|
|
29
|
-
)
|
|
30
|
-
] })
|
|
31
|
-
] }) });
|
|
32
|
-
}
|
|
33
|
-
export {
|
|
34
|
-
CreatorAirdropBanner
|
|
35
|
-
};
|
|
36
|
-
//# sourceMappingURL=creator-airdrop-banner.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/creator-airdrop-banner.tsx"],"sourcesContent":["\"use client\";\n\nimport Link from \"next/link\";\nimport { ArrowRight } from \"lucide-react\";\n\nexport interface CreatorAirdropBannerProps {\n\n href: string;\n}\n\nexport function CreatorAirdropBanner({ href }: CreatorAirdropBannerProps) {\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 items-center gap-3\">\n <span className=\"text-xs font-bold uppercase tracking-widest bg-gradient-to-r from-brand-orange to-brand-maeve bg-clip-text text-transparent\">\n Creator's Fund\n </span>\n <span className=\"flex items-center gap-1.5 text-xs font-medium text-muted-foreground\">\n <span className=\"h-1.5 w-1.5 rounded-full bg-brand-maeve animate-pulse\" />\n Live\n </span>\n </div>\n\n <div className=\"mt-4 flex flex-col sm:flex-row sm:items-center gap-6\">\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 Creator's Airdrop\n </h2>\n <p className=\"mt-1.5 text-sm text-muted-foreground leading-relaxed max-w-md\">\n Claim your participation and join the creator's fund distribution.\n </p>\n </div>\n\n <Link\n href={href}\n className=\"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] shrink-0\"\n >\n Read More\n <ArrowRight className=\"h-4 w-4\" />\n </Link>\n </div>\n </section>\n </div>\n );\n}\n"],"mappings":";AAeU,cAGA,YAHA;AAbV,OAAO,UAAU;AACjB,SAAS,kBAAkB;AAOpB,SAAS,qBAAqB,EAAE,KAAK,GAA8B;AACxE,SACE,oBAAC,SAAI,WAAU,2EACb,+BAAC,aAAQ,WAAU,kDACjB;AAAA,yBAAC,SAAI,WAAU,2BACb;AAAA,0BAAC,UAAK,WAAU,+HAA8H,4BAE9I;AAAA,MACA,qBAAC,UAAK,WAAU,uEACd;AAAA,4BAAC,UAAK,WAAU,yDAAwD;AAAA,QAAE;AAAA,SAE5E;AAAA,OACF;AAAA,IAEA,qBAAC,SAAI,WAAU,wDACb;AAAA,2BAAC,SAAI,WAAU,kBACb;AAAA,4BAAC,QAAG,WAAU,+EAA8E,+BAE5F;AAAA,QACA,oBAAC,OAAE,WAAU,iEAAgE,gFAE7E;AAAA,SACF;AAAA,MAEA;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA,WAAU;AAAA,UACX;AAAA;AAAA,YAEC,oBAAC,cAAW,WAAU,WAAU;AAAA;AAAA;AAAA,MAClC;AAAA,OACF;AAAA,KACF,GACF;AAEJ;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/portfolio-bento-tile.tsx"],"sourcesContent":["\"use client\";\n\nimport Link from \"next/link\";\nimport { ArrowRight } from \"lucide-react\";\nimport { cn } from \"../utils/cn.js\";\n\nexport interface PortfolioBentoTileProps {\n\n title: string;\n\n href: string;\n\n /** \"default\" flows into whichever column is currently shortest (true\n * masonry, via PortfolioOverview's CSS multi-column container) — each\n * tile keeps its own natural height, nothing stretches to match a\n * sibling. \"wide\" breaks out to full width instead (list-like content\n * such as Activity, which reads better edge-to-edge than column-width). */\n size?: \"default\" | \"wide\";\n children: React.ReactNode;\n className?: string;\n}\n\nexport function PortfolioBentoTile({\n title,\n href,\n size = \"default\",\n children,\n className,\n}: PortfolioBentoTileProps) {\n return (\n <section\n className={cn(\n \"rounded-2xl bg-foreground/[0.04] min-w-0 transition-colors hover:bg-foreground/[0.07]\",\n \"mb-4 break-inside-avoid\",\n size === \"wide\" && \"[column-span:all]\",\n className,\n )}\n >\n <div className=\"flex items-center justify-between gap-3 px-4 pt-4 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-4 pb-4\">{children}</div>\n </section>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAuCQ;AArCR,kBAAiB;AACjB,0BAA2B;AAC3B,gBAAmB;AAkBZ,SAAS,mBAAmB;AAAA,EACjC;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP;AAAA,EACA;AACF,GAA4B;AAC1B,SACE;AAAA,IAAC;AAAA;AAAA,MACC,eAAW;AAAA,QACT;AAAA,QACA;AAAA,QACA,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"]}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
|
|
3
|
-
interface PortfolioBentoTileProps {
|
|
4
|
-
title: string;
|
|
5
|
-
href: string;
|
|
6
|
-
/** "default" flows into whichever column is currently shortest (true
|
|
7
|
-
* masonry, via PortfolioOverview's CSS multi-column container) — each
|
|
8
|
-
* tile keeps its own natural height, nothing stretches to match a
|
|
9
|
-
* sibling. "wide" breaks out to full width instead (list-like content
|
|
10
|
-
* such as Activity, which reads better edge-to-edge than column-width). */
|
|
11
|
-
size?: "default" | "wide";
|
|
12
|
-
children: React.ReactNode;
|
|
13
|
-
className?: string;
|
|
14
|
-
}
|
|
15
|
-
declare function PortfolioBentoTile({ title, href, size, children, className, }: PortfolioBentoTileProps): react_jsx_runtime.JSX.Element;
|
|
16
|
-
|
|
17
|
-
export { PortfolioBentoTile, type PortfolioBentoTileProps };
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
|
|
3
|
-
interface PortfolioBentoTileProps {
|
|
4
|
-
title: string;
|
|
5
|
-
href: string;
|
|
6
|
-
/** "default" flows into whichever column is currently shortest (true
|
|
7
|
-
* masonry, via PortfolioOverview's CSS multi-column container) — each
|
|
8
|
-
* tile keeps its own natural height, nothing stretches to match a
|
|
9
|
-
* sibling. "wide" breaks out to full width instead (list-like content
|
|
10
|
-
* such as Activity, which reads better edge-to-edge than column-width). */
|
|
11
|
-
size?: "default" | "wide";
|
|
12
|
-
children: React.ReactNode;
|
|
13
|
-
className?: string;
|
|
14
|
-
}
|
|
15
|
-
declare function PortfolioBentoTile({ title, href, size, children, className, }: PortfolioBentoTileProps): react_jsx_runtime.JSX.Element;
|
|
16
|
-
|
|
17
|
-
export { PortfolioBentoTile, type PortfolioBentoTileProps };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/portfolio-bento-tile.tsx"],"sourcesContent":["\"use client\";\n\nimport Link from \"next/link\";\nimport { ArrowRight } from \"lucide-react\";\nimport { cn } from \"../utils/cn.js\";\n\nexport interface PortfolioBentoTileProps {\n\n title: string;\n\n href: string;\n\n /** \"default\" flows into whichever column is currently shortest (true\n * masonry, via PortfolioOverview's CSS multi-column container) — each\n * tile keeps its own natural height, nothing stretches to match a\n * sibling. \"wide\" breaks out to full width instead (list-like content\n * such as Activity, which reads better edge-to-edge than column-width). */\n size?: \"default\" | \"wide\";\n children: React.ReactNode;\n className?: string;\n}\n\nexport function PortfolioBentoTile({\n title,\n href,\n size = \"default\",\n children,\n className,\n}: PortfolioBentoTileProps) {\n return (\n <section\n className={cn(\n \"rounded-2xl bg-foreground/[0.04] min-w-0 transition-colors hover:bg-foreground/[0.07]\",\n \"mb-4 break-inside-avoid\",\n size === \"wide\" && \"[column-span:all]\",\n className,\n )}\n >\n <div className=\"flex items-center justify-between gap-3 px-4 pt-4 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-4 pb-4\">{children}</div>\n </section>\n );\n}\n"],"mappings":";AAuCQ,cAGA,YAHA;AArCR,OAAO,UAAU;AACjB,SAAS,kBAAkB;AAC3B,SAAS,UAAU;AAkBZ,SAAS,mBAAmB;AAAA,EACjC;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP;AAAA,EACA;AACF,GAA4B;AAC1B,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA,QACT;AAAA,QACA;AAAA,QACA,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":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/portfolio-overview.tsx"],"sourcesContent":["\"use client\";\n\nimport { cn } from \"../utils/cn.js\";\nimport { PortfolioBentoTile, type PortfolioBentoTileProps } from \"./portfolio-bento-tile.js\";\n\nexport interface PortfolioBentoTileConfig {\n key: string;\n title: string;\n href: string;\n size?: PortfolioBentoTileProps[\"size\"];\n\n isEmpty?: boolean;\n content: React.ReactNode;\n}\n\nexport interface PortfolioOverviewProps {\n tiles: PortfolioBentoTileConfig[];\n\n isEmpty?: boolean;\n emptyState?: React.ReactNode;\n className?: string;\n}\n\nexport function PortfolioOverview({\n tiles,\n isEmpty,\n emptyState,\n className,\n}: PortfolioOverviewProps) {\n if (isEmpty) {\n return <div className={className}>{emptyState}</div>;\n }\n\n const populatedTiles = tiles.filter((t) => !t.isEmpty);\n\n return (\n <div\n className={cn(\n // True masonry: a CSS multi-column container. Each tile keeps its\n // own natural height and flows into whichever column is currently\n // shortest — unlike a grid, nothing stretches to match a taller\n // sibling in the same row, which is what real (unevenly-sized)\n // portfolio content needs. \"wide\" tiles opt out via column-span:\n // all (set on PortfolioBentoTile itself, not here).\n \"columns-1 sm:columns-2 lg:columns-3 gap-4\",\n className,\n )}\n >\n {populatedTiles.map((tile) => (\n <PortfolioBentoTile\n key={tile.key}\n title={tile.title}\n href={tile.href}\n size={tile.size}\n >\n {tile.content}\n </PortfolioBentoTile>\n ))}\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AA8BW;AA5BX,gBAAmB;AACnB,kCAAiE;AAoB1D,SAAS,kBAAkB;AAAA,EAChC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAA2B;AACzB,MAAI,SAAS;AACX,WAAO,4CAAC,SAAI,WAAuB,sBAAW;AAAA,EAChD;AAEA,QAAM,iBAAiB,MAAM,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO;AAErD,SACE;AAAA,IAAC;AAAA;AAAA,MACC,eAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAOT;AAAA,QACA;AAAA,MACF;AAAA,MAEC,yBAAe,IAAI,CAAC,SACnB;AAAA,QAAC;AAAA;AAAA,UAEC,OAAO,KAAK;AAAA,UACZ,MAAM,KAAK;AAAA,UACX,MAAM,KAAK;AAAA,UAEV,eAAK;AAAA;AAAA,QALD,KAAK;AAAA,MAMZ,CACD;AAAA;AAAA,EACH;AAEJ;","names":[]}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import { PortfolioBentoTileProps } from './portfolio-bento-tile.cjs';
|
|
3
|
-
|
|
4
|
-
interface PortfolioBentoTileConfig {
|
|
5
|
-
key: string;
|
|
6
|
-
title: string;
|
|
7
|
-
href: string;
|
|
8
|
-
size?: PortfolioBentoTileProps["size"];
|
|
9
|
-
isEmpty?: boolean;
|
|
10
|
-
content: React.ReactNode;
|
|
11
|
-
}
|
|
12
|
-
interface PortfolioOverviewProps {
|
|
13
|
-
tiles: PortfolioBentoTileConfig[];
|
|
14
|
-
isEmpty?: boolean;
|
|
15
|
-
emptyState?: React.ReactNode;
|
|
16
|
-
className?: string;
|
|
17
|
-
}
|
|
18
|
-
declare function PortfolioOverview({ tiles, isEmpty, emptyState, className, }: PortfolioOverviewProps): react_jsx_runtime.JSX.Element;
|
|
19
|
-
|
|
20
|
-
export { type PortfolioBentoTileConfig, PortfolioOverview, type PortfolioOverviewProps };
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import { PortfolioBentoTileProps } from './portfolio-bento-tile.js';
|
|
3
|
-
|
|
4
|
-
interface PortfolioBentoTileConfig {
|
|
5
|
-
key: string;
|
|
6
|
-
title: string;
|
|
7
|
-
href: string;
|
|
8
|
-
size?: PortfolioBentoTileProps["size"];
|
|
9
|
-
isEmpty?: boolean;
|
|
10
|
-
content: React.ReactNode;
|
|
11
|
-
}
|
|
12
|
-
interface PortfolioOverviewProps {
|
|
13
|
-
tiles: PortfolioBentoTileConfig[];
|
|
14
|
-
isEmpty?: boolean;
|
|
15
|
-
emptyState?: React.ReactNode;
|
|
16
|
-
className?: string;
|
|
17
|
-
}
|
|
18
|
-
declare function PortfolioOverview({ tiles, isEmpty, emptyState, className, }: PortfolioOverviewProps): react_jsx_runtime.JSX.Element;
|
|
19
|
-
|
|
20
|
-
export { type PortfolioBentoTileConfig, PortfolioOverview, type PortfolioOverviewProps };
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { jsx } from "react/jsx-runtime";
|
|
3
|
-
import { cn } from "../utils/cn.js";
|
|
4
|
-
import { PortfolioBentoTile } from "./portfolio-bento-tile.js";
|
|
5
|
-
function PortfolioOverview({
|
|
6
|
-
tiles,
|
|
7
|
-
isEmpty,
|
|
8
|
-
emptyState,
|
|
9
|
-
className
|
|
10
|
-
}) {
|
|
11
|
-
if (isEmpty) {
|
|
12
|
-
return /* @__PURE__ */ jsx("div", { className, children: emptyState });
|
|
13
|
-
}
|
|
14
|
-
const populatedTiles = tiles.filter((t) => !t.isEmpty);
|
|
15
|
-
return /* @__PURE__ */ jsx(
|
|
16
|
-
"div",
|
|
17
|
-
{
|
|
18
|
-
className: cn(
|
|
19
|
-
// True masonry: a CSS multi-column container. Each tile keeps its
|
|
20
|
-
// own natural height and flows into whichever column is currently
|
|
21
|
-
// shortest — unlike a grid, nothing stretches to match a taller
|
|
22
|
-
// sibling in the same row, which is what real (unevenly-sized)
|
|
23
|
-
// portfolio content needs. "wide" tiles opt out via column-span:
|
|
24
|
-
// all (set on PortfolioBentoTile itself, not here).
|
|
25
|
-
"columns-1 sm:columns-2 lg:columns-3 gap-4",
|
|
26
|
-
className
|
|
27
|
-
),
|
|
28
|
-
children: populatedTiles.map((tile) => /* @__PURE__ */ jsx(
|
|
29
|
-
PortfolioBentoTile,
|
|
30
|
-
{
|
|
31
|
-
title: tile.title,
|
|
32
|
-
href: tile.href,
|
|
33
|
-
size: tile.size,
|
|
34
|
-
children: tile.content
|
|
35
|
-
},
|
|
36
|
-
tile.key
|
|
37
|
-
))
|
|
38
|
-
}
|
|
39
|
-
);
|
|
40
|
-
}
|
|
41
|
-
export {
|
|
42
|
-
PortfolioOverview
|
|
43
|
-
};
|
|
44
|
-
//# sourceMappingURL=portfolio-overview.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/portfolio-overview.tsx"],"sourcesContent":["\"use client\";\n\nimport { cn } from \"../utils/cn.js\";\nimport { PortfolioBentoTile, type PortfolioBentoTileProps } from \"./portfolio-bento-tile.js\";\n\nexport interface PortfolioBentoTileConfig {\n key: string;\n title: string;\n href: string;\n size?: PortfolioBentoTileProps[\"size\"];\n\n isEmpty?: boolean;\n content: React.ReactNode;\n}\n\nexport interface PortfolioOverviewProps {\n tiles: PortfolioBentoTileConfig[];\n\n isEmpty?: boolean;\n emptyState?: React.ReactNode;\n className?: string;\n}\n\nexport function PortfolioOverview({\n tiles,\n isEmpty,\n emptyState,\n className,\n}: PortfolioOverviewProps) {\n if (isEmpty) {\n return <div className={className}>{emptyState}</div>;\n }\n\n const populatedTiles = tiles.filter((t) => !t.isEmpty);\n\n return (\n <div\n className={cn(\n // True masonry: a CSS multi-column container. Each tile keeps its\n // own natural height and flows into whichever column is currently\n // shortest — unlike a grid, nothing stretches to match a taller\n // sibling in the same row, which is what real (unevenly-sized)\n // portfolio content needs. \"wide\" tiles opt out via column-span:\n // all (set on PortfolioBentoTile itself, not here).\n \"columns-1 sm:columns-2 lg:columns-3 gap-4\",\n className,\n )}\n >\n {populatedTiles.map((tile) => (\n <PortfolioBentoTile\n key={tile.key}\n title={tile.title}\n href={tile.href}\n size={tile.size}\n >\n {tile.content}\n </PortfolioBentoTile>\n ))}\n </div>\n );\n}\n"],"mappings":";AA8BW;AA5BX,SAAS,UAAU;AACnB,SAAS,0BAAwD;AAoB1D,SAAS,kBAAkB;AAAA,EAChC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAA2B;AACzB,MAAI,SAAS;AACX,WAAO,oBAAC,SAAI,WAAuB,sBAAW;AAAA,EAChD;AAEA,QAAM,iBAAiB,MAAM,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO;AAErD,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAOT;AAAA,QACA;AAAA,MACF;AAAA,MAEC,yBAAe,IAAI,CAAC,SACnB;AAAA,QAAC;AAAA;AAAA,UAEC,OAAO,KAAK;AAAA,UACZ,MAAM,KAAK;AAAA,UACX,MAAM,KAAK;AAAA,UAEV,eAAK;AAAA;AAAA,QALD,KAAK;AAAA,MAMZ,CACD;AAAA;AAAA,EACH;AAEJ;","names":[]}
|