function StoriesGrid({ cardStyle = "editorial", onOpen }) { const [filter, setFilter] = useState("Tutto"); const cats = ["Tutto", ...new Set(STORIES.map(s => s.cat))]; const shown = filter === "Tutto" ? STORIES : STORIES.filter(s => s.cat === filter); return (
{cats.map(c => ( ))}
{shown.map((s, i) => )}
); } function Card({ story, variant, index, onOpen }) { const [hover, setHover] = useState(false); const isOverlay = variant === "overlay"; const isCompact = variant === "compact"; return ( { e.preventDefault(); onOpen && onOpen(story); }} onMouseEnter={() => setHover(true)} onMouseLeave={() => setHover(false)} className="card" style={{ display: "block", position: "relative", paddingBottom: isCompact ? 0 : 4, }}> {/* Image */}
{String(index + 1).padStart(2, "0")} · {story.cat}
{isOverlay && (

{story.title}

{story.date} · {story.read}
)}
{!isOverlay && ( <>

{story.title}

{!isCompact && (

{story.dek}

)}
{story.author} {story.date} · {story.read}
)}
); } window.StoriesGrid = StoriesGrid;