{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "use-data-table",
  "title": "Data table",
  "description": "Creates a typed TanStack table with Familis sorting, filtering, visibility, selection and pagination features.",
  "dependencies": [
    "@tanstack/react-table@^9.2.4"
  ],
  "files": [
    {
      "path": "registry/familis/ui/hooks/use-data-table.ts",
      "content": "\"use client\"\n\nimport {\n  useTable,\n  type RowData,\n  type TableOptions,\n  columnFilteringFeature,\n  columnVisibilityFeature,\n  rowPaginationFeature,\n  rowSelectionFeature,\n  rowSortingFeature,\n  createFilteredRowModel,\n  createPaginatedRowModel,\n  createSortedRowModel,\n  filterFn_includesString,\n  sortFn_alphanumeric,\n  sortFn_text,\n  sortFn_basic,\n  tableFeatures,\n} from \"@tanstack/react-table\"\n\nexport const dataTableFeatures = tableFeatures({\n  columnFilteringFeature,\n  columnVisibilityFeature,\n  rowPaginationFeature,\n  rowSelectionFeature,\n  rowSortingFeature,\n  filteredRowModel: createFilteredRowModel(),\n  paginatedRowModel: createPaginatedRowModel(),\n  sortedRowModel: createSortedRowModel(),\n  filterFns: { includesString: filterFn_includesString },\n  sortFns: { alphanumeric: sortFn_alphanumeric, text: sortFn_text, basic: sortFn_basic },\n})\nexport type DataTableFeatures = typeof dataTableFeatures\n\nexport function useDataTable<TData extends RowData>(\n  options: Omit<TableOptions<DataTableFeatures, TData>, \"features\">,\n) {\n  return useTable({ ...options, features: dataTableFeatures })\n}\n",
      "type": "registry:hook"
    }
  ],
  "meta": {
    "storybookId": "ui-hooks-data-table--default"
  },
  "type": "registry:hook"
}