@medialane/ui 0.121.0 → 0.122.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-bento-tile.cjs +4 -8
- package/dist/components/portfolio-bento-tile.cjs.map +1 -1
- package/dist/components/portfolio-bento-tile.d.cts +6 -5
- package/dist/components/portfolio-bento-tile.d.ts +6 -5
- package/dist/components/portfolio-bento-tile.js +4 -8
- package/dist/components/portfolio-bento-tile.js.map +1 -1
- package/dist/components/portfolio-overview.cjs +7 -6
- package/dist/components/portfolio-overview.cjs.map +1 -1
- package/dist/components/portfolio-overview.js +7 -6
- package/dist/components/portfolio-overview.js.map +1 -1
- package/package.json +1 -1
|
@@ -36,11 +36,6 @@ 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
|
-
const SIZE_SPAN = {
|
|
40
|
-
default: "",
|
|
41
|
-
wide: "sm:col-span-2",
|
|
42
|
-
large: "sm:col-span-2 sm:row-span-2"
|
|
43
|
-
};
|
|
44
39
|
function PortfolioBentoTile({
|
|
45
40
|
title,
|
|
46
41
|
href,
|
|
@@ -52,8 +47,9 @@ function PortfolioBentoTile({
|
|
|
52
47
|
"section",
|
|
53
48
|
{
|
|
54
49
|
className: (0, import_cn.cn)(
|
|
55
|
-
"rounded-2xl bg-foreground/[0.04] min-w-0
|
|
56
|
-
|
|
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]",
|
|
57
53
|
className
|
|
58
54
|
),
|
|
59
55
|
children: [
|
|
@@ -71,7 +67,7 @@ function PortfolioBentoTile({
|
|
|
71
67
|
}
|
|
72
68
|
)
|
|
73
69
|
] }),
|
|
74
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "px-4 pb-4
|
|
70
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "px-4 pb-4", children })
|
|
75
71
|
]
|
|
76
72
|
}
|
|
77
73
|
);
|
|
@@ -1 +1 @@
|
|
|
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 /**
|
|
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"]}
|
|
@@ -3,11 +3,12 @@ import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
|
3
3
|
interface PortfolioBentoTileProps {
|
|
4
4
|
title: string;
|
|
5
5
|
href: string;
|
|
6
|
-
/**
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
|
|
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";
|
|
11
12
|
children: React.ReactNode;
|
|
12
13
|
className?: string;
|
|
13
14
|
}
|
|
@@ -3,11 +3,12 @@ import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
|
3
3
|
interface PortfolioBentoTileProps {
|
|
4
4
|
title: string;
|
|
5
5
|
href: string;
|
|
6
|
-
/**
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
|
|
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";
|
|
11
12
|
children: React.ReactNode;
|
|
12
13
|
className?: string;
|
|
13
14
|
}
|
|
@@ -3,11 +3,6 @@ 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
|
-
const SIZE_SPAN = {
|
|
7
|
-
default: "",
|
|
8
|
-
wide: "sm:col-span-2",
|
|
9
|
-
large: "sm:col-span-2 sm:row-span-2"
|
|
10
|
-
};
|
|
11
6
|
function PortfolioBentoTile({
|
|
12
7
|
title,
|
|
13
8
|
href,
|
|
@@ -19,8 +14,9 @@ function PortfolioBentoTile({
|
|
|
19
14
|
"section",
|
|
20
15
|
{
|
|
21
16
|
className: cn(
|
|
22
|
-
"rounded-2xl bg-foreground/[0.04] min-w-0
|
|
23
|
-
|
|
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]",
|
|
24
20
|
className
|
|
25
21
|
),
|
|
26
22
|
children: [
|
|
@@ -38,7 +34,7 @@ function PortfolioBentoTile({
|
|
|
38
34
|
}
|
|
39
35
|
)
|
|
40
36
|
] }),
|
|
41
|
-
/* @__PURE__ */ jsx("div", { className: "px-4 pb-4
|
|
37
|
+
/* @__PURE__ */ jsx("div", { className: "px-4 pb-4", children })
|
|
42
38
|
]
|
|
43
39
|
}
|
|
44
40
|
);
|
|
@@ -1 +1 @@
|
|
|
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 /**
|
|
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":[]}
|
|
@@ -39,12 +39,13 @@ function PortfolioOverview({
|
|
|
39
39
|
"div",
|
|
40
40
|
{
|
|
41
41
|
className: (0, import_cn.cn)(
|
|
42
|
-
//
|
|
43
|
-
//
|
|
44
|
-
//
|
|
45
|
-
//
|
|
46
|
-
//
|
|
47
|
-
|
|
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",
|
|
48
49
|
className
|
|
49
50
|
),
|
|
50
51
|
children: populatedTiles.map((tile) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
@@ -1 +1 @@
|
|
|
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 //
|
|
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":[]}
|
|
@@ -16,12 +16,13 @@ function PortfolioOverview({
|
|
|
16
16
|
"div",
|
|
17
17
|
{
|
|
18
18
|
className: cn(
|
|
19
|
-
//
|
|
20
|
-
//
|
|
21
|
-
//
|
|
22
|
-
//
|
|
23
|
-
//
|
|
24
|
-
|
|
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",
|
|
25
26
|
className
|
|
26
27
|
),
|
|
27
28
|
children: populatedTiles.map((tile) => /* @__PURE__ */ jsx(
|
|
@@ -1 +1 @@
|
|
|
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 //
|
|
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":[]}
|