"use client"; import { useState, type ReactNode } from "react"; import "./ticket-card.css"; /** * Ticket Card * An event ticket with a perforated stub. Hover and the stub loosens along its * perforation; click and it tears away, leaving a clean edge and a "torn" mark, * while the main ticket settles. */ type Props = { event: string; venue: string; date: string; time: string; seat: { label: string; value: string }[]; code: string; stubLabel?: string; onTear?: () => void; footer?: ReactNode; }; export function TicketCard({ event, venue, date, time, seat, code, stubLabel = "Admit one", onTear }: Props) { const [torn, setTorn] = useState(false); return (

{date} · {time}

{event}

{venue}

{seat.map((s) => (
{s.label}
{s.value}
))}
); }