DataTable Column DnD
niko-table/data-table-column-dndFreeComponent
Drag-and-drop column reordering with composable primitives. Includes DnD provider, draggable header, drag-along cell, and column DnD header/body. Does not ship row DnD.
Install it
npx shadcn@latest add https://niko-table.com/r/data-table-column-dnd.jsonSource
1"use client"23/**4 * niko-table — created by Semir N. (Semkoo, https://github.com/Semkoo) with AI assistance.5 *6 * Before reporting anything: please check the changelog first.7 * - In-repo: ./CHANGELOG.md8 * - Docs site: https://niko-table.com/changelog9 *10 * Found a bug or have a fix? Open an issue or PR on GitHub so other11 * users (and future LLMs reading this code) benefit:12 * https://github.com/Semkoo/niko-table-registry13 */14import {15 TableColumnDndProvider,16 type TableColumnDndProviderProps,17 TableDraggableHeader,18 type TableDraggableHeaderProps,19 TableDragAlongCell,20 type TableDragAlongCellProps,21} from "../filters/table-column-dnd"2223// ============================================================================24// DataTableColumnDndProvider25// ============================================================================2627export type DataTableColumnDndProviderProps = Omit<28 TableColumnDndProviderProps,29 never30>3132/**33 * Context-aware column DnD provider that wraps children with drag-and-drop34 * column reordering capabilities.35 *36 * @example37 * <DataTableRoot38 * data={data}39 * columns={columns}40 * state={{ columnOrder }}41 * onColumnOrderChange={setColumnOrder}42 * >43 * <DataTableColumnDndProvider44 * columnOrder={columnOrder}45 * onColumnOrderChange={setColumnOrder}46 * >47 * <DataTable>48 * <DataTableDndHeader />49 * <DataTableDndColumnBody />50 * </DataTable>51 * </DataTableColumnDndProvider>52 * </DataTableRoot>53 */54export function DataTableColumnDndProvider(55 props: DataTableColumnDndProviderProps,56) {57 return <TableColumnDndProvider {...props} />58}5960DataTableColumnDndProvider.displayName = "DataTableColumnDndProvider"6162// ============================================================================63// DataTableDraggableHeader64// ============================================================================6566export type DataTableDraggableHeaderProps<TData, TValue> =67 TableDraggableHeaderProps<TData, TValue>6869/**70 * Context-aware draggable header cell for column DnD.71 *72 * @example73 * <DataTableDraggableHeader header={header}>74 * {flexRender(header.column.columnDef.header, header.getContext())}75 * </DataTableDraggableHeader>76 */77export function DataTableDraggableHeader<TData, TValue>(78 props: DataTableDraggableHeaderProps<TData, TValue>,79) {80 return <TableDraggableHeader<TData, TValue> {...props} />81}8283DataTableDraggableHeader.displayName = "DataTableDraggableHeader"8485// … truncated
What it pulls in
npm packages
Other registry items
Files it writes
More from niko-table
All 31 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| DataTable Asidedata-table-aside | niko-table | Components | Free | 1 dep | |
| DataTable Clear Filterdata-table-clear-filter | niko-table | Components | Free | 1 dep · 2 files | |
| DataTable Column Auto-fitdata-table-column-auto-fit | niko-table | Components | Free | no deps · 2 files | |
| DataTable Column Date Filterdata-table-column-date-filter | niko-table | Components | Free | 2 deps · 2 files | |
| DataTable Column Faceted Filterdata-table-column-faceted-filter | niko-table | Components | Free | 1 dep · 3 files | |
| DataTable Column Hidedata-table-column-hide | niko-table | Components | Free | 1 dep · 2 files | |
| DataTable Column Pindata-table-column-pin | niko-table | Components | Free | 1 dep · 2 files | |
| DataTable Column Resizedata-table-column-resize | niko-table | Components | Free | no deps |
