@neuctra/ui
Version:
A modern, responsive, customizable React UI component library powered by Tailwind CSS and Vite.
60 lines (59 loc) • 1.68 kB
TypeScript
import React, { ReactNode } from "react";
interface Column {
key: string;
label: string;
sortable?: boolean;
icon?: ReactNode;
width?: string | number;
align?: "left" | "center" | "right";
headerClassName?: string;
cellClassName?: string;
render?: (value: any, row: Record<string, any>) => ReactNode;
}
interface TableProps {
columns: Column[];
data: Record<string, any>[];
className?: string;
pagination?: boolean;
rowsPerPage?: number;
colors?: {
headerBg?: string;
headerText?: string;
rowBg?: string;
rowText?: string;
borderColor?: string;
hoverBg?: string;
paginationBg?: string;
paginationText?: string;
evenRowBg?: string;
selectedRowBg?: string;
};
borderRadius?: {
table?: string;
header?: string;
pagination?: string;
};
sortable?: boolean;
defaultSort?: {
column: string;
direction: "asc" | "desc";
};
bodyAlign?: "left" | "center" | "right";
headerAlign?: "left" | "center" | "right";
rowSelection?: {
enabled?: boolean;
onSelect?: (selectedRows: Record<string, any>[]) => void;
selectionColumnWidth?: string;
selectionColumnHeader?: ReactNode;
};
emptyState?: ReactNode;
onRowClick?: (row: Record<string, any>, index: number) => void;
rowClassName?: (row: Record<string, any>, index: number) => string;
cellPadding?: string;
headerCellPadding?: string;
stickyHeader?: boolean;
maxHeight?: string;
scrollShadow?: boolean;
}
export declare const Table: React.FC<TableProps>;
export {};