Unreleased (YYYY-MM-DD)
- "Download Votes CSV" button in the download modal to export a vote matrix as
vote-matrix.csv(#35). Rows are participants, columns are statement IDs, and values are1(agree),-1(disagree),0(pass), or empty (no vote). The modal now also shows a toggle to prefix filenames with today's date (YYYY-MM-DD-), and uses theconversation_idfrom the h5ad file (if present) as a filename prefix. - "Download Data" button in the projection selector panel to export participant metadata as
participants.csv(#33). A confirmation dialog shows participant and column counts before downloading. Includes amanual_paintedcolumn with the color name of any painted group (e.g.Orange, blank if unpainted). FloatingModallegend when viewing an obs-column annotation in the metrics layer (#29).- Shows the column name as the label and colored category swatches for categorical columns; continuous columns show an empty modal (legend to follow).
- Prev/next arrows (and ←/→ keyboard shortcuts) cycle through available obs columns, updating the active annotation.
- X button returns to the groups layer, matching the statement-modal behavior.
- Extended
FloatingModalwith optionaltitleandlegendItemsprops for the annotation rendering path; existing statement rendering is unchanged. - Categorical annotation layers use a dedicated Tableau 20 palette (20 colors) separate from the 10-color painting palette, giving more range without affecting group colors.
- Legend is hidden for columns with >65 categories (e.g. timestamps, UUIDs) — only the column title is shown, matching continuous column behavior.
- Blank category labels are displayed as N/A.
- Prev/next navigation buttons on
FloatingModalfor touch-friendly statement cycling in votes layer mode (#27).- Extracted shared
cycleStatementcallback so keyboard arrow keys and buttons use the same logic. onPrev/onNextare optional injected props — buttons only render when provided, keeping the modal reusable for other contexts.
- Extracted shared