"use client";
import type { ReactNode } from "react";
import HeaderLockup from "../../type/HeaderLockup";
import type { HeaderLockupSizeValue } from "../../type/HeaderLockup/HeaderLockup.types";
import Selection from "../Selection";
import type { CardStackViewProps } from "./CardStack.types";
function CardStackHeaderLockup({
title,
description,
justification,
size,
wrapperClassName,
}: {
title: string;
description: ReactNode;
justification: "center" | "left";
size: HeaderLockupSizeValue;
wrapperClassName?: string;
}) {
if (!title && !description) {
return null;
}
return (
{expanded ? (
{cards.map((item) => (
onCardSelect(item.id)}
/>
))}
{addTile ? (
{addTile}
) : null}
) : compactDesktopLayout === "pyramidFive" ? (
<>
{compactCards.map((item) => (
onCardSelect(item.id)}
/>
))}
{addTile}
{/*
lg+: fixed 3 + 2 rows (no flex-wrap on the top row — avoids 2+1+2 when the first row wraps).
md–lg: same shell as the 3-card step — each row is `flex justify-center gap-2` so cards
stay a tight cluster with gap-2 until lg expands to the 3+2 pyramid.
*/}
{compactCards.slice(0, 3).map((item) => (
onCardSelect(item.id)}
/>
))}
{compactCards.length > 3 ? (
{compactCards
.slice(3, compactRecommendedLimit)
.map((item) => (
onCardSelect(item.id)}
/>
))}
) : null}
{compactCards.slice(0, 2).map((item) => (
onCardSelect(item.id)}
/>
))}
{compactCards.slice(2, 4).map((item) => (
onCardSelect(item.id)}
/>
))}
{compactCards[4] ? (
onCardSelect(compactCards[4].id)}
/>
) : null}
{addTile ? (
{addTile}
) : null}
>
) : compactDesktopLayout === "flexWrap" ? (
<>
{compactCards.map((item) => (
onCardSelect(item.id)}
/>
))}
{addTile}
{/* md–lg: pyramid (2 + 1), each row centered; lg+: one centered row (not edge-to-edge in a 2-col grid) */}
{compactCards.length === 3 ? (
<>
{compactCards.slice(0, 2).map((item) => (
onCardSelect(item.id)}
/>
))}
onCardSelect(compactCards[2].id)}
/>
{addTile ? (
{addTile}
) : null}
{compactCards.map((item) => (
onCardSelect(item.id)}
/>
))}
{addTile ? (
) : null}
>
) : (
{compactCards.map((item) => (
onCardSelect(item.id)}
/>
))}
{addTile ? (
{addTile}
) : null}
)}
>
) : (
<>
{/* Compact under 640: single column, up to 5 recommended cards */}
{compactCards.map((item) => (
onCardSelect(item.id)}
/>
))}
{addTile}
{/* Compact 640+: 6-col grid so each card spans 2; second row centered (cols 2–3 and 4–5) */}
{compactCards.map((item, index) => {
const colClass =
index <= 2
? "md:col-span-2"
: index === 3 && compactCards.length === 4
? "md:col-start-3 md:col-span-2"
: index === 3
? "md:col-start-2 md:col-span-2"
: "md:col-start-4 md:col-span-2";
return (
onCardSelect(item.id)}
/>
);
})}
{addTile ? (
{addTile}
) : null}
>
)}
{hasMore ? (
{expanded ? showLessLabel : toggleLabel}
) : null}
);
}