TicketCard
ImplementedSingle ticket card — barcode (Barcode atom), event title, date, venue, seat/tier, status. Real organism; the molecules placeholder twin was de-cataloged.
components/organisms/TicketCard/TicketCard.tsxTicketCard component.
TicketCard
design-system
TicketCard component preview and API reference.
Props
TicketCard
idstring—Unique ticket id, exposed as data-ticket-id.
eventTitlestring—Event name (primary line; first segment of the composed aria-label).
eventImage{ url: string; alt: string }—Thumbnail image source and alt text (48×48).
date{ formatted: string; iso: string }—Display date + machine-readable ISO date; only formatted is rendered (locale-format at call site).
venue{ name: string }—Venue name.
tierstring—Ticket tier label.
seatstring—Optional seat identifier — appended to the metadata line and aria-label.
status'upcoming' | 'used' | 'expired' | 'cancelled' | 'refunded'—Lifecycle status badge (semantic tint tokens per status).
barcodeValuestring—Code-128 barcode payload (rendered decoratively).
onSelect() => void—Whole-card button activation handler.
<TicketCard />Usage
Import
import { TicketCard } from "@epasslive/design-system"Example 1
<TicketCard />Anti-patterns
— Do not wrap TicketCard in an <a>/next/link — it is already a <button>; nesting interactive content is invalid HTML (WCAG 4.1.2). Navigate from onSelect instead
— Do not deep-import — barrel only
— Do not hardcode status colors — pill styling is semantic tint tokens keyed by TicketStatus