# Table

Low-level table primitives.

> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).



<ComponentPreview base="takumi" name="table" />

## Installation [#installation]

<CodeTabs>
  <TabsList>
    <TabsTrigger value="cli">
      Command
    </TabsTrigger>

    <TabsTrigger value="manual">
      Manual
    </TabsTrigger>
  </TabsList>

  <TabsContent value="cli">
    ```bash
    npx shadcn@latest add @pdfcn/takumi/table
    ```
  </TabsContent>

  <TabsContent value="manual">
    <Steps>
      <Step>
        Install the following dependencies:
      </Step>

      ```bash
      npm install takumi-pdf @takumi-rs/helpers
      ```

      <Step>
        Copy and paste the following code into your project.
      </Step>

      <ComponentSource src="registry/bases/takumi/components/table/table.tsx" base="takumi" title="components/pdf/table/table.tsx" />

      <ComponentSource src="registry/bases/takumi/components/theme-provider.tsx" base="takumi" title="components/pdf/theme-provider.tsx" />

      <ComponentSource src="registry/bases/takumi/lib/resolve-color.ts" base="takumi" title="lib/resolve-color.ts" />

      <ComponentSource src="registry/bases/takumi/lib/pdf-primitives.tsx" base="takumi" title="lib/pdf-primitives.tsx" />

      <ComponentSource src="registry/bases/takumi/lib/pdf-svg.tsx" base="takumi" title="lib/pdf-svg.tsx" />

      <ComponentSource src="registry/themes/professional.ts" base="takumi" title="lib/pdf-themes/professional.ts" />

      <ComponentSource src="registry/themes/primitives.ts" base="takumi" title="lib/pdf-themes/primitives.ts" />

      <ComponentSource src="registry/types/pdf-themes.ts" base="takumi" title="types/pdf-themes.ts" />

      <ComponentSource src="registry/types/pdf-components.ts" base="takumi" title="types/pdf-components.ts" />

      <Step>
        Update the import paths to match your project setup.
      </Step>
    </Steps>
  </TabsContent>
</CodeTabs>

## Usage [#usage]

```tsx
import {
  Table,
  TableBody,
  TableCell,
  TableHeader,
  TableRow,
  Text,
} from "@/components/pdf/table";
```

```tsx
<Table>
  <TableHeader>
    <TableRow>
      <TableCell>
        <Text>Item</Text>
      </TableCell>
    </TableRow>
  </TableHeader>
</Table>
```

### Variants [#variants]

```tsx
<Table variant="striped" zebraStripe>
  {/* header, body, rows, and cells */}
</Table>
```

## API Reference [#api-reference]

### Table [#table]

| Prop          | Type                                                                                        | Default  |
| ------------- | ------------------------------------------------------------------------------------------- | -------- |
| `variant`     | `'line' \| 'grid' \| 'minimal' \| 'striped' \| 'compact' \| 'bordered' \| 'primary-header'` | `'line'` |
| `zebraStripe` | `boolean`                                                                                   | `false`  |
| `noWrap`      | `boolean`                                                                                   | `false`  |
| `children`    | `ReactNode`                                                                                 | -        |
| `style`       | `Style`                                                                                     | -        |

### TableRow [#tablerow]

| Prop      | Type                                                                                        | Default   |
| --------- | ------------------------------------------------------------------------------------------- | --------- |
| `header`  | `boolean`                                                                                   | `false`   |
| `footer`  | `boolean`                                                                                   | `false`   |
| `stripe`  | `boolean`                                                                                   | `false`   |
| `variant` | `'line' \| 'grid' \| 'minimal' \| 'striped' \| 'compact' \| 'bordered' \| 'primary-header'` | inherited |

### TableCell [#tablecell]

| Prop      | Type                                                                                        | Default   |
| --------- | ------------------------------------------------------------------------------------------- | --------- |
| `header`  | `boolean`                                                                                   | `false`   |
| `footer`  | `boolean`                                                                                   | `false`   |
| `align`   | `'left' \| 'center' \| 'right'`                                                             | `'left'`  |
| `width`   | `string \| number`                                                                          | -         |
| `variant` | `'line' \| 'grid' \| 'minimal' \| 'striped' \| 'compact' \| 'bordered' \| 'primary-header'` | inherited |
