import clsx from "clsx"; import { Bookmark, Check, ListPlus, MoreHorizontal, Star } from "lucide-react"; import { Reference, Sample } from "./labKit"; import { MediaCard, MediaPlayGlyph } from "../components/ui/MediaCard"; import { MEDIA_BADGE, MEDIA_BAR, MEDIA_HOVER_LAYER, MEDIA_PICTURE, mediaPictureBox, mediaTitleClass, } from "../components/ui/mediaCardStyles"; import { iconButtonClass } from "../components/ui/buttonStyles"; import { HOVER_YIELD } from "../components/ui/reveal"; // The one media card, DECIDED (owner, 2026-09-26/27: anatomy C, shelf density, the preview // C, the Home hero A, list row B, info layout B). Drawn with the real ui/MediaCard and its classes; // hover a card to see its Play and its hover row. The preview panel, the hero and the info page are // live in the app (Plex, Home), not copied here. const BAR_BUTTON = iconButtonClass({ variant: "media", size: "sm" }); function HoverRow({ save = false }: { save?: boolean }) { return (
{[Check, ...(save ? [Bookmark] : []), ListPlus, MoreHorizontal].map((Icon, i) => ( ))}
); } function Picture({ aspect, length, small = false, save = false, }: { aspect: "poster" | "wide"; length: string; small?: boolean; save?: boolean; }) { return (
{length}
); } const score = ( 7.8 ); const plexMeta = (
2003 · {score}
); export function BatchD() { return (
} title={
The Last Samurai, a title long enough to wrap
} meta={plexMeta} />
} title={
A video title
} meta={ <>
A channel
12K views · 3 days ago
} />
} title={
The Last Samurai, cut to one line on a shelf
} meta={plexMeta} />

Bourne is brought out of hiding once again by a reporter who is trying to unveil an operation, an upgrade to a programme, in a series of newspaper columns. Information from the reporter stirs a new set of memories, and Bourne must finally uncover his dark past.

); }