Skip to content

feat(csv-table): interactive grid with sort, selection and copy - #152

Merged
TheGreatAxios merged 1 commit into
mainfrom
cl-11888-make-react-uis-csvtable-an-interactive-compact-grid
Nov 1, 2026
Merged

TheGreatAxios merged 1 commit into
mainfrom
cl-11888-make-react-uis-csvtable-an-interactive-compact-grid

Conversation

@TheGreatAxios

@TheGreatAxios TheGreatAxios commented Oct 31, 2026 •

Copy link
Copy Markdown
Contributor

First of a stack of six for CL-11888; each builds on the one before.

What changed

  • CsvTable gains interactive: sortable headers (numbers sort as numbers, blanks last), a compact density, and a 1,000-row render cap while sort and filter cover every row.
  • Search and filters are driven by the host (query, filters, sort, csvFilterSpecs); the grid draws no controls of its own.
  • Cells select by mouse and keyboard and copy as TSV; a failed copy shows a message that clears when the selection changes.
  • SortableTable shares the new SortHeaderButton.
  • The Selection story's contrast is recorded as unmeasured: the selection outline is one box drawn over the cells, so the sampler can't read the text colour beneath it.

Verified

  • bun run check and bun run build pass on this PR on its own, including the agent references step and the CSV-table a11y sweep.

@linear-code

linear-code Bot commented Oct 31, 2026

Copy link
Copy Markdown

CL-11888

@TheGreatAxios

Copy link
Copy Markdown
Contributor Author

Before and after

Before is the unchanged static mode; after is the new interactive mode (stories, 1200px), plus filtered and sorted, a selection, dark mode and 390px.

BeforeAfter

filtered-sorted

selection

dark

narrow-390

@corbits-triage

corbits-triage Bot commented Oct 31, 2026 •

Copy link
Copy Markdown
Contributor

Triage: Pass

No changes needed from you. A maintainer will review this pull request.

Notes:

  • added code matches a code pattern: src/lib/csv-grid.ts:161 Invented fallback `?? []`; handle the missing value instead., src/ui/csv-table.tsx:468 Invented fallback `?? 0`; handle the missing value instead., src/ui/csv-table.tsx:469 Invented fallback `?? 0`; handle the missing value instead., src/ui/csv-table.tsx:556 Invented fallback `?? 0`; handle the missing value instead., src/ui/csv-table.tsx:422 Invented fallback `?? []`; handle the missing value instead., src/ui/csv-table.tsx:701 Invented fallback `?? []`; handle the missing value instead., src/ui/csv-table.tsx:316 Nested ternary; use if statements or a lookup., src/ui/csv-table.tsx:728 Nested ternary; use if statements or a lookup., src/ui/sort-header-button.tsx:9 Nested ternary; use if statements or a lookup., src/ui/sort-header-button.tsx:40 Nested ternary; use if statements or a lookup.

Triage will approve, label.

@corbits-triage corbits-triage Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Triage requests changes:

  • CI green: required checks are failing

@TheGreatAxios

Copy link
Copy Markdown
Contributor Author

Updated screenshots

After the review fixes: Excel row numbering and name-box ranges, sheet tabs under the status bar, sums over numeric cells.

selection

sheets

resized-column

dark

narrow-390

@corbits-triage corbits-triage Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Triage requests changes:

  • CI green: required checks are failing

@corbits-triage
corbits-triage Bot dismissed stale reviews from themself October 31, 2026 21:08

Nothing triage asked to change still fails, so this request no longer stands.

@TheGreatAxios
TheGreatAxios force-pushed the cl-11888-make-react-uis-csvtable-an-interactive-compact-grid branch from a1b9c73 to d22613c Compare November 1, 2026 00:09
@TheGreatAxios TheGreatAxios changed the title feat(csv-table): interactive compact grid with sort, search and filters feat(csv-table): interactive grid with sort, selection and copy Nov 1, 2026
@TheGreatAxios

Copy link
Copy Markdown
Contributor Author

Screenshots for the stack (#152, #156–#161)

Stories at 1200px, light unless noted; story fixtures only (made-up sample data).

Before (main)After (top of stack)

Selection with the edge-strip outline and status-bar sums:

A fitted then narrowed column:

Sheet tabs:

Dark mode:

390px:

@TheGreatAxios
TheGreatAxios merged commit b93132e into main Nov 1, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant