# Table Cell/Slot — Figma Assembly Rules
<!-- figma-assembly.v2
{ "schemaVersion":"figma-assembly.v2", "id":"component.table-cell-slot", "level":"atom", "kind":"published", "aliases":["Table Cell/Slot","table-cell-slot"], "uxSpec":"specs/ux/components/atoms/table-cell-slot.md", "inventoryTarget":"table-cell-slot", "componentKeys":["05b2f3eaca939a9c085afc7793112b81dfdae86e"], "dependencies":[], "optionalDependencies":[], "coveredBy":[] }
-->

Status: active Figma assembly contract.

## Scope

Use this contract for a genuinely custom table body-cell composition that does
not match a narrower `Table Cell/*` component.

## Source Evidence

- Identity and exposed anatomy rechecked read-only on 2026-09-05 at
  [exact node](https://www.figma.com/design/EO9tuCsqwuHL8cZ4Eb2psR/?node-id=18296-100301).
  This confirms the documented owner/reference, not every assembly predicate or runtime token parity.

- Direct Figma evidence:
  node `18296:100301` and child `18296:100385` passed Figma checks; the
  screenshot is `256×60`.

## Required Assembly

- Rule ID: `table.cell.narrowest` — select Text, Link, Badge, Number, Actions,
  Checkbox, Chevron, or None whenever one matches; use Slot only when none does.
- Rule ID: `table.cell.slot-filled` — replace the dashed authoring placeholder
  with actual composed content before the screen is complete.
- Insert custom content through the real Slot child and keep nested components
  as undetached instances with their own contracts.
- Keep the cell's padding and fixed-column states; screen data and repeated-row
  variation remain in the enclosing table composition.

## Verification Checklist

- `table.cell.narrowest`: no narrower mapped cell can represent the content.
- `table.cell.slot-filled`: the dashed placeholder is absent from final frames.
- Nested components remain real instances.
