Repository navigation
feat: add data-grid - #1011
Merged
Merged
feat: add data-grid#1011
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Contributor
There was a problem hiding this comment.
Pull Request Overview
This PR introduces a comprehensive data-grid component with editable cells, virtualization, and keyboard navigation capabilities, alongside several improvements to existing data-table components.
Key Changes:
- Addition of a fully-featured data-grid component with cell editing, search, sorting, and context menu functionality
- Updated keyboard shortcuts for sort and filter menus to use Ctrl/Cmd+Shift+Key combinations
- Refactored Sortable component to use standard React prop patterns instead of forwardRef
- Directory restructuring from
_lib/_componentstolib/components
Reviewed Changes
Copilot reviewed 57 out of 68 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| src/types/data-grid.ts | New type definitions for data-grid features including cells, navigation, and search |
| src/hooks/use-data-grid.tsx | Core hook implementing data-grid state management and keyboard navigation |
| src/components/data-grid/* | Complete set of data-grid components including cells, headers, search, and context menus |
| src/hooks/use-window-size.ts | New hook for responsive window dimension tracking |
| src/lib/data-grid.ts | Helper functions for cell key parsing and row height calculations |
| src/components/data-table/data-table-column-header.tsx | Renamed prop from title to label for consistency |
| src/components/ui/sortable.tsx | Refactored to remove forwardRef and use standard React props |
| src/components/ui/dialog.tsx | Added optional showCloseButton prop for close button control |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
noodleman1991
pushed a commit
to noodleman1991/tablecn
that referenced
this pull request
Mar 12, 2026
* feat: add virtual * feat: add data-grid * refactor: style -> classname * feat: cleanup grid * feat: update cell * feat: add keyboard navigatoin * feat: blur cell * feat: update data-grid * feat: cleanup grid * feat: pass default column * feat: update data-grid * feat: use content-editable * feat: inline edit * feat: save value on input escape key down * feat: append to the end * feat: better input * feat: update data-grid * feat: update data-grid again * chore: clenaup hook and example * refactor: virtualiztin * feat: scroll row on creation * feat: add scroll to row * feat: update data-grid * feat: better grid navigation * feat: cleanup props * feat: add cell selection * feat: better selection * feat: get sorted index * feat: better sorted cell editing * feat: better editing * feat: update data-grid * feat: better selection style * feat: add column-header menu * feat: update data-grid * feat: cleanup demo * feat: better new-row button * refactor: label * feat: update list * feat: update sorting * feat: update header * feat: cleanup header * chore: cleanup logs * chore: sync types * feat: add column variants * refactor: types * feat: stick add row button * feat: bettter editing * feat: update data-grid-wrapper * feat: editable text-cell * feat: cleanup wrapper * feat: add column tooltip * feat: update data-grid * perf: optimize virtualizer * refactor: prop drilling * feat: better rops * feat: grow cells * feat: extend state * feat: add row selection * feat: better select-cell * feat: better measurements * feat: remasure on state change * feat: update deps * feat: better checkbox click * feat: add search * feat: better search-state * feat: better seelction * feat: better search * feat: better selection * feat: update data-slot * feat: add context-menu * feat: better context-menu * refactor: updateData -> updateCells * refactor: updateCells -> updateData * feat: move to next row after edit * feat: better checkbox selection * feat: better checkbox-cell * feat: disable select column navgiation * feat: better cehckbox * feat: add better cell selection and focus restration on context menu * feat: better checkbox-cell * feat: cleanup props * refactor: data-grid hook * refactor: sync * refactor: hook * feat: better edge navigation * feat: use window-size * feat: better states * feat: better row memo to consider focused cells * feat: better rows * feat: better states * chore: cleanup props * feat: preserve context-menu position * refactor: bump deps and remove placehodler * refactor: props * feat: better text-cells * feat: use cell-store * feat: use use-state * feat: add long-text cell * feat: better variatns * feat: better editing * feat: update data-grid * feat: update variants * feat: update cell padding * feat: update data-grid-row * feat: update date-cell * feat: freeze columns * chore: cleanup column-header * feat: better column-pinning * feat: add row-height * refactor: row-height feature -> store * feat: add multi-select-cell * feat: better truncation for multi-select-cell * feat: update multi-select * feat: better multi-select-cell * feat: add column-resizing * feat: better column-header * feat: better header * feat: update columns * feat: better resizing * feat: better row selection * feat: better global-keydown * feat: update slots * feat: update checkbox hitbox * feat: add column-selection * feat: add clear all for multi-select-cell * feat: better search * refactor: updateData -> onDataUpdate * refactor: autoFocus boolean -> boolean or object * refactor: props * feat: focus input on search and add useStore * feat: better search * feat: better memo * feat: restore focus on search close * fix: clear row selection on drag and select cells * feat: update data-slot * feat: pass event * feat: better scroll to row * fix: scroll to row * feat: better date-cell * feat: add row * feat: better tab navigation * feat: better keyboard shortcuts * chore: rebuild registry * feat: memo menus * feat: better menu * feat: optimize use-data-grid * feat: add data-grid-keyboard-shortcuts * feat: update columns * feat: update data-grid-context-menu * feat: better header * feat: update icons * refactor: cell keys * feat: better menus and keyboard shortcuts * feat: capture native context-menu * perf: add data-grid-render-count * perf: memoize tableoptions * refactor: title -> lable * refactor: data-grid * refactor: font-bold -> font-medium * feat: update registry * feat: rebuild registry
anhdd-kuro
pushed a commit
to anhdd-kuro/tablecn
that referenced
this pull request
Apr 8, 2026
* feat: add virtual * feat: add data-grid * refactor: style -> classname * feat: cleanup grid * feat: update cell * feat: add keyboard navigatoin * feat: blur cell * feat: update data-grid * feat: cleanup grid * feat: pass default column * feat: update data-grid * feat: use content-editable * feat: inline edit * feat: save value on input escape key down * feat: append to the end * feat: better input * feat: update data-grid * feat: update data-grid again * chore: clenaup hook and example * refactor: virtualiztin * feat: scroll row on creation * feat: add scroll to row * feat: update data-grid * feat: better grid navigation * feat: cleanup props * feat: add cell selection * feat: better selection * feat: get sorted index * feat: better sorted cell editing * feat: better editing * feat: update data-grid * feat: better selection style * feat: add column-header menu * feat: update data-grid * feat: cleanup demo * feat: better new-row button * refactor: label * feat: update list * feat: update sorting * feat: update header * feat: cleanup header * chore: cleanup logs * chore: sync types * feat: add column variants * refactor: types * feat: stick add row button * feat: bettter editing * feat: update data-grid-wrapper * feat: editable text-cell * feat: cleanup wrapper * feat: add column tooltip * feat: update data-grid * perf: optimize virtualizer * refactor: prop drilling * feat: better rops * feat: grow cells * feat: extend state * feat: add row selection * feat: better select-cell * feat: better measurements * feat: remasure on state change * feat: update deps * feat: better checkbox click * feat: add search * feat: better search-state * feat: better seelction * feat: better search * feat: better selection * feat: update data-slot * feat: add context-menu * feat: better context-menu * refactor: updateData -> updateCells * refactor: updateCells -> updateData * feat: move to next row after edit * feat: better checkbox selection * feat: better checkbox-cell * feat: disable select column navgiation * feat: better cehckbox * feat: add better cell selection and focus restration on context menu * feat: better checkbox-cell * feat: cleanup props * refactor: data-grid hook * refactor: sync * refactor: hook * feat: better edge navigation * feat: use window-size * feat: better states * feat: better row memo to consider focused cells * feat: better rows * feat: better states * chore: cleanup props * feat: preserve context-menu position * refactor: bump deps and remove placehodler * refactor: props * feat: better text-cells * feat: use cell-store * feat: use use-state * feat: add long-text cell * feat: better variatns * feat: better editing * feat: update data-grid * feat: update variants * feat: update cell padding * feat: update data-grid-row * feat: update date-cell * feat: freeze columns * chore: cleanup column-header * feat: better column-pinning * feat: add row-height * refactor: row-height feature -> store * feat: add multi-select-cell * feat: better truncation for multi-select-cell * feat: update multi-select * feat: better multi-select-cell * feat: add column-resizing * feat: better column-header * feat: better header * feat: update columns * feat: better resizing * feat: better row selection * feat: better global-keydown * feat: update slots * feat: update checkbox hitbox * feat: add column-selection * feat: add clear all for multi-select-cell * feat: better search * refactor: updateData -> onDataUpdate * refactor: autoFocus boolean -> boolean or object * refactor: props * feat: focus input on search and add useStore * feat: better search * feat: better memo * feat: restore focus on search close * fix: clear row selection on drag and select cells * feat: update data-slot * feat: pass event * feat: better scroll to row * fix: scroll to row * feat: better date-cell * feat: add row * feat: better tab navigation * feat: better keyboard shortcuts * chore: rebuild registry * feat: memo menus * feat: better menu * feat: optimize use-data-grid * feat: add data-grid-keyboard-shortcuts * feat: update columns * feat: update data-grid-context-menu * feat: better header * feat: update icons * refactor: cell keys * feat: better menus and keyboard shortcuts * feat: capture native context-menu * perf: add data-grid-render-count * perf: memoize tableoptions * refactor: title -> lable * refactor: data-grid * refactor: font-bold -> font-medium * feat: update registry * feat: rebuild registry
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.