<!-- source-hash: fda76a4590fc216e2e89f36db86ddeba -->
Public API barrel for the `DataTable` compound component. Assembles all sub-components into a single composable primitive, re-exports named pieces, utility hooks, constants, and proxied TanStack Table primitives so consumers need only one import path.

## Key Components

| Export | Description |
|---|---|
| `DataTable` | Compound component (`DataTableRoot` + `Header`, `Body`, `Row`, `Skeleton`, `Empty`, `InfiniteFooter`, `CursorFooter`, `RowCount`) |
| `useDataTable` | Hook to build the TanStack `Table` instance passed to `<DataTable>` |
| `useDataTableContext` | React context accessor for nested sub-components |
| `alignJustify` / `getHideClasses` / `multiSelectFilterFn` | Column layout and filtering utilities |
| `ROW_HEIGHT_DESKTOP` / `ROW_HEIGHT_MOBILE` | Skeleton row height constants |
| TanStack re-exports | `flexRender`, `createColumnHelper`, `getCoreRowModel`, and all standard row model getters |

## Usage Example

```typescript
import {
  DataTable,
  useDataTable,
  createColumnHelper,
  getCoreRowModel,
} from '@/components/data-table'

const col = createColumnHelper<Device>()
const columns = [
  col.accessor('name', { header: 'Name' }),
  col.accessor('status', { header: 'Status' }),
]

function DeviceTable({ data, hasNext, loadNext, isLoading }) {
  const table = useDataTable({
    data,
    columns,
    getCoreRowModel: getCoreRowModel(),
  })

  return (
    <DataTable table={table}>
      <DataTable.Header stickyHeader stickyHeaderOffset="top-[56px]" />
      <DataTable.Body
        loading={isLoading}
        rowHref={d => `/devices/${d.id}`}
      />
      <DataTable.InfiniteFooter
        hasNextPage={hasNext}
        isFetchingNextPage={isLoading}
        onLoadMore={() => loadNext(50)}
      />
    </DataTable>
  )
}
```

> Both compound (`DataTable.Header`) and named (`DataTableHeader`) import styles are supported — use whichever fits your codebase conventions.