Renders the header for a single Kanban board column, handling both expanded and collapsed states with status tags, ticket counts, and optional action buttons. ## Key Components ### `BoardColumnHeaderProps` | Prop | Type | Description | |---|---|---| | `column` | `BoardColumnDef` | Column definition including label, tickets, status key, and optional color | | `collapsed` | `boolean` | Controls collapsed vs. expanded layout (default: `false`) | | `onToggleCollapse` | `() => void` | Callback to toggle column collapse state | | `onAddTicket` | `() => void` | Optional callback to create a new ticket in this column | | `onArchive` | `() => void` | Optional callback to archive resolved tickets | ### `BoardColumnHeader` The main exported component. Renders two distinct layouts: - **Collapsed** — vertical layout with an expand arrow, rotated `TicketStatusTag`, and ticket count - **Expanded** — horizontal layout with the status tag, count, and action buttons (collapse, archive, add) **Status resolution logic:** Uses `resolveTicketStatus` to detect canonical statuses (`ACTIVE`, `RESOLVED`, etc.). Known statuses render with their built-in variant/icon; unrecognized IDs (e.g., custom UUID statuses) fall back to the column's `color` prop. ## Usage Example ```typescript setCollapsed(prev => !prev)} onAddTicket={() => openNewTicketModal()} onArchive={() => archiveResolvedTickets()} /> ``` **Source:** [`board-column-header.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/board-column-header.tsx)