Skip to content

feat: add data-grid - #1011

Merged
sadmann7 merged 163 commits into
mainfrom
editable-table
Oct 26, 2025
Merged

sadmann7 merged 163 commits into
mainfrom
editable-table

Conversation

@sadmann7

Copy link
Copy Markdown
Owner

No description provided.

Copilot AI review requested due to automatic review settings October 26, 2025 10:21
@vercel

vercel Bot commented Oct 26, 2025 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Preview Comments Updated (UTC)
shadcn-table Ready Ready Preview Comment Oct 26, 2025 10:21am
tablecn Ready Ready Preview Comment Oct 26, 2025 10:21am

Copilot AI 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.

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/_components to lib/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.

Comment thread src/components/ui/sortable.tsx
Comment thread src/components/ui/sortable.tsx
@sadmann7
sadmann7 merged commit 9e107ba into main Oct 26, 2025
7 checks passed
@sadmann7
sadmann7 deleted the editable-table branch October 26, 2025 10:22
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

2 active deployments
Preview – shadcn-table — 60d2c38e Deployed Oct 26, 2025 by vercel[bot]
Preview – tablecn — 60d2c38e Deployed Oct 26, 2025 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants