---
name: "@retab"
slug: "retab"
description: "Document-processing UI components for Retab — file, OCR, and data viewers, schema builders, dropzones, and extraction blocks, built on shadcn/ui."
category: "Forms"
tags: ["blocks", "buttons", "cards", "dashboard", "forms", "hooks", "loaders", "media", "mobile", "overlays", "tables"]
framework: "react"
license: null
author: "retab-dev"
website: "https://ui.retab.com"
github: "https://github.com/retab-dev/retab-ui"
registry: "https://ui.retab.com/r/registry.json"
pro: false
pro_url: null
github_stars: 10
component_count: 130
generated_at: "2026-09-05T09:50:59.044Z"
---

# @retab

Document-processing UI components for Retab — file, OCR, and data viewers, schema builders, dropzones, and extraction blocks, built on shadcn/ui.

## Links

- Website: https://ui.retab.com
- GitHub: https://github.com/retab-dev/retab-ui
- Registry JSON: https://ui.retab.com/r/registry.json
- Directory page: https://sh4dcn.vercel.app/registry/retab
- This file: https://sh4dcn.vercel.app/md/retab.md

## Install

```sh
# add the whole registry (shadcn CLI)
npx shadcn@latest add https://ui.retab.com/r/registry.json
pnpm dlx shadcn@latest add https://ui.retab.com/r/registry.json
bunx shadcn@latest add https://ui.retab.com/r/registry.json
# clone the source repo
git clone https://github.com/retab-dev/retab-ui.git
# fetch the raw registry index
curl -s https://ui.retab.com/r/registry.json
```

## Components (130)

| name | type | description | install |
| --- | --- | --- | --- |
| viewer-controls | registry:ui | A shared controls row for viewer chrome: title, position, zoom, rotate, download, loading, and extra controls. | `npx shadcn@latest add https://ui.retab.com/r/viewer-controls.json` |
| utils | registry:lib | Shared class name helper used by Retab UI registry components. | `npx shadcn@latest add https://ui.retab.com/r/utils.json` |
| effect-key | registry:lib | Dependency-array key helpers for keyed effect lifecycles. | `npx shadcn@latest add https://ui.retab.com/r/effect-key.json` |
| use-mobile | registry:hook | A media query hook for mobile responsive UI. | `npx shadcn@latest add https://ui.retab.com/r/use-mobile.json` |
| use-mount-effect | registry:hook | A mount-only effect hook for explicit lifecycle escape hatches. | `npx shadcn@latest add https://ui.retab.com/r/use-mount-effect.json` |
| use-keyed-mount-effect | registry:hook | A key-driven post-commit effect hook for library internals. | `npx shadcn@latest add https://ui.retab.com/r/use-keyed-mount-effect.json` |
| use-keyed-layout-effect | registry:hook | A key-driven layout-timed effect hook for DOM measurement and scroll/focus lifecycles. | `npx shadcn@latest add https://ui.retab.com/r/use-keyed-layout-effect.json` |
| alert | registry:ui | A callout for displaying contextual messages. | `npx shadcn@latest add https://ui.retab.com/r/alert.json` |
| alert-dialog | registry:ui | A modal alert dialog for destructive confirmations and blocking decisions. | `npx shadcn@latest add https://ui.retab.com/r/alert-dialog.json` |
| aspect-ratio | registry:ui | A small wrapper for preserving media aspect ratios. | `npx shadcn@latest add https://ui.retab.com/r/aspect-ratio.json` |
| autocomplete | registry:ui | An autocomplete input built on Base UI primitives. | `npx shadcn@latest add https://ui.retab.com/r/autocomplete.json` |
| command | registry:ui | A command menu surface powered by cmdk. | `npx shadcn@latest add https://ui.retab.com/r/command.json` |
| dropzone | registry:ui | A headless file-intake primitive with drag/drop, file input wiring, validation, controlled state, and accessibility prop getters. | `npx shadcn@latest add https://ui.retab.com/r/dropzone.json` |
| file-uploader | registry:ui | A polished Retab document upload area built from the headless Dropzone primitive and File Thumbnail. | `npx shadcn@latest add https://ui.retab.com/r/file-uploader.json` |
| file-size-format | registry:ui | A small byte-size display formatter for file UI components. | `npx shadcn@latest add https://ui.retab.com/r/file-size-format.json` |
| input | registry:ui | A styled text input built on Base UI. | `npx shadcn@latest add https://ui.retab.com/r/input.json` |
| label | registry:ui | An accessible label primitive. | `npx shadcn@latest add https://ui.retab.com/r/label.json` |
| form | registry:ui | React Hook Form field primitives with accessible labels, descriptions, and messages. | `npx shadcn@latest add https://ui.retab.com/r/form.json` |
| data-cell | registry:ui | A lightweight editable cell for scalar document data: text, numbers, booleans, dates, times, and date-times. | `npx shadcn@latest add https://ui.retab.com/r/data-cell.json` |
| calendar | registry:ui | A calendar component built on React DayPicker. | `npx shadcn@latest add https://ui.retab.com/r/calendar.json` |
| group | registry:ui | A connected control group primitive for buttons, inputs, separators, and text addons. | `npx shadcn@latest add https://ui.retab.com/r/group.json` |
| json-inspector | registry:ui | A read-only JSON viewer with theme-aware syntax highlighting and a hover copy button, plus a standalone CopyButton. | `npx shadcn@latest add https://ui.retab.com/r/json-inspector.json` |
| kbd | registry:ui | A keyboard shortcut display primitive. | `npx shadcn@latest add https://ui.retab.com/r/kbd.json` |
| scroll-area | registry:ui | A custom scroll area built on Base UI. | `npx shadcn@latest add https://ui.retab.com/r/scroll-area.json` |
| switch | registry:ui | A two-state toggle switch. | `npx shadcn@latest add https://ui.retab.com/r/switch.json` |
| table | registry:ui | Semantic table primitives for structured data. | `npx shadcn@latest add https://ui.retab.com/r/table.json` |
| textarea | registry:ui | A styled multiline text input. | `npx shadcn@latest add https://ui.retab.com/r/textarea.json` |
| sidebar-row | registry:ui | Shared sidebar row button styling variants used by app and providerless sidebar primitives. | `npx shadcn@latest add https://ui.retab.com/r/sidebar-row.json` |
| sidebar | registry:ui | A responsive application sidebar with menu, rail, and provider primitives. | `npx shadcn@latest add https://ui.retab.com/r/sidebar.json` |
| sidebar-list | registry:ui | Providerless sidebar list primitives for embedded viewer and domain sidebars. | `npx shadcn@latest add https://ui.retab.com/r/sidebar-list.json` |
| skeleton | registry:ui | A loading placeholder with shimmer animation. | `npx shadcn@latest add https://ui.retab.com/r/skeleton.json` |
| sonner | registry:ui | A themed toast provider for Sonner. | `npx shadcn@latest add https://ui.retab.com/r/sonner.json` |
| spinner | registry:ui | A compact loading spinner using Lucide. | `npx shadcn@latest add https://ui.retab.com/r/spinner.json` |
| resizable | registry:ui | Resizable panel primitives using react-resizable-panels. | `npx shadcn@latest add https://ui.retab.com/r/resizable.json` |
| csv | registry:lib | A small, dependency-free RFC 4180-ish CSV/TSV parser returning a header and rectangular rows. | `npx shadcn@latest add https://ui.retab.com/r/csv.json` |
| pdf-document-resource | registry:lib | Load and cache PDF.js documents and pages without viewer chrome. | `npx shadcn@latest add https://ui.retab.com/r/pdf-document-resource.json` |
| docx-document-resource | registry:lib | Load and cache DOCX bytes without viewer chrome. | `npx shadcn@latest add https://ui.retab.com/r/docx-document-resource.json` |
| csv-viewer | registry:ui | A fixed-window virtualized CSV/TSV table: sortable columns, sticky header, row numbers, horizontal scroll. Renders straight from raw rows (no table row model) … | `npx shadcn@latest add https://ui.retab.com/r/csv-viewer.json` |
| pdf-viewer | registry:ui | A pdfjs-backed PDF viewer: continuous scroll, controlled or uncontrolled zoom, rotate, fit-to-width, download, a per-page overlay slot for bounding-box citatio… | `npx shadcn@latest add https://ui.retab.com/r/pdf-viewer.json` |
| docx-viewer | registry:ui | A docx-preview-backed Word viewer: faithful paginated pages, continuous scroll, zoom, fit-to-width, and download. Off-screen pages are skipped via CSS content-… | `npx shadcn@latest add https://ui.retab.com/r/docx-viewer.json` |
| image-viewer | registry:ui | A performant image viewer with native off-thread decode (createImageBitmap), continuous scroll, zoom, rotate, fit-to-width, download, and a per-frame overlay s… | `npx shadcn@latest add https://ui.retab.com/r/image-viewer.json` |
| layout-blocks | registry:ui | A provider-agnostic layout inspection component for OCR output: normalize Google Document AI, AWS Textract, or Azure Document Intelligence into shared blocks, … | `npx shadcn@latest add https://ui.retab.com/r/layout-blocks.json` |
| pptx-viewer | registry:ui | A canvas-backed PowerPoint viewer rendered entirely client-side (no server conversion): continuous scroll, zoom, rotate, fit-to-width, download, and a per-slid… | `npx shadcn@latest add https://ui.retab.com/r/pptx-viewer.json` |
| xlsx-worker-protocol | registry:lib | Typed worker messages, parse limits, and error codes for the XLSX viewer. | `npx shadcn@latest add https://ui.retab.com/r/xlsx-worker-protocol.json` |
| xlsx-workbook | registry:lib | Sparse compact workbook helpers for the XLSX viewer: cell lookup, metadata projection, column labels, and bounded source caching. | `npx shadcn@latest add https://ui.retab.com/r/xlsx-workbook.json` |
| xlsx-sheetjs-flattener | registry:lib | Pure SheetJS-to-compact-sheet flattening helpers for the XLSX viewer worker. | `npx shadcn@latest add https://ui.retab.com/r/xlsx-sheetjs-flattener.json` |
| xlsx-viewer | registry:ui | A fixed-window virtualized Excel/spreadsheet viewer rendered entirely client-side: sheet tabs, zoom, download, formatted values, numeric alignment, sparse work… | `npx shadcn@latest add https://ui.retab.com/r/xlsx-viewer.json` |
| file-viewer | registry:ui | One viewer for any file: detects the type and lazy-loads the matching renderer (PDF, DOCX, XLSX, PPTX, CSV, images) plus inline, virtualized text/code/JSON, Ma… | `npx shadcn@latest add https://ui.retab.com/r/file-viewer.json` |
| file-system | registry:ui | A document workspace over a flat object-store manifest with list, grid, columns, lazy folders, generated thumbnails, and FileViewer previews. | `npx shadcn@latest add https://ui.retab.com/r/file-system.json` |
| file-system-light | registry:ui | A minimal file tree in a ViewerSidebar with FileViewer in the ViewerSurface. | `npx shadcn@latest add https://ui.retab.com/r/file-system-light.json` |
| document-source | registry:lib | Viewer-agnostic model for extraction sources (the Retab /v1/extractions/{id}/sources shape): SourceAnchor union (pdf_bbox, image_bbox, spreadsheet/csv cell, do… | `npx shadcn@latest add https://ui.retab.com/r/document-source.json` |
| pdf-source | registry:ui | Bridges the document-source model to the PDF viewer: pdfAnchorToTarget and renderPdfSourceOverlay for PDF bbox anchors. | `npx shadcn@latest add https://ui.retab.com/r/pdf-source.json` |
| segments | registry:lib | Shared model + helpers for page-segmented results (partition/split): Segment type, Tableau palette, color map, page-range and confidence helpers. | `npx shadcn@latest add https://ui.retab.com/r/segments.json` |
| segment-interaction | registry:lib | React-free hover, focus, selection, and current-page helpers for Segment[] surfaces. | `npx shadcn@latest add https://ui.retab.com/r/segment-interaction.json` |
| use-segment-interaction | registry:ui | Client hook that coordinates hover, focus, and persistent selection across Segment[] surfaces. | `npx shadcn@latest add https://ui.retab.com/r/use-segment-interaction.json` |
| segment-legend | registry:ui | Compact color legend for a Segment[] with shared hover, focus, and selection state. | `npx shadcn@latest add https://ui.retab.com/r/segment-legend.json` |
| segment-sidebar | registry:ui | Selectable list of segments with page ranges and confidence bars. | `npx shadcn@latest add https://ui.retab.com/r/segment-sidebar.json` |
| page-timeline | registry:ui | A colored page strip that ties a Segment[] to the document; hover/select syncing and click-to-jump. | `npx shadcn@latest add https://ui.retab.com/r/page-timeline.json` |
| page-ribbon | registry:ui | A page-axis ribbon: segments drawn as blocks spanning their pages. One vertical lane = a split sidebar; many horizontal rows (consensus + votes) = a partition … | `npx shadcn@latest add https://ui.retab.com/r/page-ribbon.json` |
| segment-page-rail | registry:ui | Vertical page rail for Segment[] documents with current-page following, scroll progress, and page selection. | `npx shadcn@latest add https://ui.retab.com/r/segment-page-rail.json` |
| segmented-document | registry:ui | Shared segmented-document model, provider, viewport controller, and anchor navigation for split, partition, source, OCR, and bbox viewers. | `npx shadcn@latest add https://ui.retab.com/r/segmented-document.json` |
| schema-builder | registry:ui | Controlled JSON Schema editor for building Retab extraction schemas — fields, types, nested objects, arrays, enums, and required flags. | `npx shadcn@latest add https://ui.retab.com/r/schema-builder.json` |
| attachment-sidebar | registry:ui | File attachment navigator built from SidebarList primitives and FileThumbnail. | `npx shadcn@latest add https://ui.retab.com/r/attachment-sidebar.json` |
| email-viewer | registry:ui | Render recursive MIME messages with headers, CID inline resources, nested messages, and File Viewer leaves. | `npx shadcn@latest add https://ui.retab.com/r/email-viewer.json` |
| file-thumbnail-frame | registry:ui | Dependency-free thumbnail frame with a loading shimmer, fade-in, and muted fallback surface. | `npx shadcn@latest add https://ui.retab.com/r/file-thumbnail-frame.json` |
| file-thumbnail | registry:ui | Render complete file thumbnails from browser files, URLs, blobs, text sources, external images, or custom preview content. | `npx shadcn@latest add https://ui.retab.com/r/file-thumbnail.json` |
| run-card | registry:ui | A document run card: a file thumbnail with a status pill, a heading, and a result slot. Composes file-thumbnail; the result rendering is left to its children. | `npx shadcn@latest add https://ui.retab.com/r/run-card.json` |
| ocr-block | registry:block | OCR review for a scanned document: source page, detected text blocks, confidence filtering, and matching polygon overlays. Switch between Google Document AI, A… | `npx shadcn@latest add https://ui.retab.com/r/ocr-block.json` |
| split-viewer-block | registry:block | Named subdocuments over a PDF: a legend header and a vertical page-ribbon sidebar, from the shared segment primitives. | `npx shadcn@latest add https://ui.retab.com/r/split-viewer-block.json` |
| partition-viewer-block | registry:block | Keyed chunks over a PDF: a legend plus a horizontal page-ribbon waterfall, from the shared segment primitives. | `npx shadcn@latest add https://ui.retab.com/r/partition-viewer-block.json` |
| parse-viewer-block | registry:block | The source document beside its extracted markdown, synced by page, with a Rendered/Text toggle. | `npx shadcn@latest add https://ui.retab.com/r/parse-viewer-block.json` |
| edit-viewer-block | registry:block | Detected form fields beside a PDF source document, linked by their bbox — hover or select a field to highlight its region on the page; Preview stamps values ov… | `npx shadcn@latest add https://ui.retab.com/r/edit-viewer-block.json` |
| excel-splitting-viewer-block | registry:block | One Excel workbook fanned out into several clean CSVs — each reconstructed table rendered in the viewer, with a sidebar listing every CSV the splitter emitted,… | `npx shadcn@latest add https://ui.retab.com/r/excel-splitting-viewer-block.json` |
| txt-splitting-viewer-block | registry:block | One plain-text batch file separated into several documents — each carved-out document rendered in the viewer, with a left sidebar listing the source file first… | `npx shadcn@latest add https://ui.retab.com/r/txt-splitting-viewer-block.json` |
| extract-viewer-block | registry:block | Extracted data beside the source PDF, rendered as a JSON form and linked by sources — hover or select a field to highlight where its value came from and scroll… | `npx shadcn@latest add https://ui.retab.com/r/extract-viewer-block.json` |
| sources-viewer-block | registry:block | Every source-backed format in one viewer — PDF/image bbox sources use segmented-document anchors; text, CSV, Excel, and Word use segmented source links with fo… | `npx shadcn@latest add https://ui.retab.com/r/sources-viewer-block.json` |
| json-form-sources-block | registry:block | Extraction rendered as a JSON form beside the source PDF — hover a form field to highlight where its value came from through segmented-document state. | `npx shadcn@latest add https://ui.retab.com/r/json-form-sources-block.json` |
| pdf-viewer-thumbnails | registry:ui | PDF-owned page thumbnail navigation for explicit PdfViewer composition: lazy pdfjs thumbnails, active-page highlight, and click-to-jump. | `npx shadcn@latest add https://ui.retab.com/r/pdf-viewer-thumbnails.json` |
| dropzone-block | registry:block | A file-uploader lab proving the headless dropzone primitive across default, non-button, native-button, controlled, validation-only, custom grid, upload progres… | `npx shadcn@latest add https://ui.retab.com/r/dropzone-block.json` |
| file-system-block | registry:block | A document workspace over a flat object-store manifest with list, grid, columns, generated thumbnails, and persistent file previews. | `npx shadcn@latest add https://ui.retab.com/r/file-system-block.json` |
| fslight-block | registry:block | A purified composition experiment: file tree in a ViewerSidebar, selected source rendered by FileViewer in a ViewerSurface. | `npx shadcn@latest add https://ui.retab.com/r/fslight-block.json` |
| primitive-run-cards | registry:ui | Prop-driven run cards for each Retab primitive — classify, split, partition, parse, and extract — each framing the source document with that primitive's result… | `npx shadcn@latest add https://ui.retab.com/r/primitive-run-cards.json` |
| primitive-cards-block | registry:block | Each Retab primitive's result framed as a run card — a document thumbnail with a status pill and the primitive's output in the card body. Classification shows … | `npx shadcn@latest add https://ui.retab.com/r/primitive-cards-block.json` |
| pdf-thumbnails-block | registry:block | A PDF viewer with toggleable page thumbnails in a viewer navigation rail. | `npx shadcn@latest add https://ui.retab.com/r/pdf-thumbnails-block.json` |
| source-field-list | registry:ui | A field list that drives source-field interaction: hover previews the field location in the viewer, click selects it. | `npx shadcn@latest add https://ui.retab.com/r/source-field-list.json` |
| source-field-link | registry:ui | A field-path adapter over segmented-document anchors. | `npx shadcn@latest add https://ui.retab.com/r/source-field-link.json` |
| document-anchor | registry:ui | Pure document location types used by evidence projection and viewer target adapters. | `npx shadcn@latest add https://ui.retab.com/r/document-anchor.json` |
| document-evidence | registry:ui | Pure projection types for semantic evidence rows that can resolve to document anchors. | `npx shadcn@latest add https://ui.retab.com/r/document-evidence.json` |
| interactive-item-list | registry:ui | A virtualized listbox interaction primitive for preview, selection, keyboard navigation, and visible-item reporting. | `npx shadcn@latest add https://ui.retab.com/r/interactive-item-list.json` |
| source-evidence | registry:ui | Projection helpers that convert document sources, source maps, and source fields into evidence rows with resolved document anchors. | `npx shadcn@latest add https://ui.retab.com/r/source-evidence.json` |
| source-segmented-document | registry:ui | Projection helpers and overlays that convert PDF/image bbox document sources into segmented-document segments, anchors, and active source highlights. | `npx shadcn@latest add https://ui.retab.com/r/source-segmented-document.json` |
| layout-blocks-segmented-document | registry:ui | Projection helpers that convert OCR/layout blocks into segmented-document segments and anchors. | `npx shadcn@latest add https://ui.retab.com/r/layout-blocks-segmented-document.json` |
| source-anchor | registry:ui | Pure conversion from document-source anchors to document viewer anchors. | `npx shadcn@latest add https://ui.retab.com/r/source-anchor.json` |
| image-source | registry:ui | Bridges the document-source model to the image viewer: imageAnchorToTarget, rotateImageArea, and renderImageSourceOverlay for image_bbox anchors. | `npx shadcn@latest add https://ui.retab.com/r/image-source.json` |
| code-viewer | registry:ui | A fixed-line code and log viewer with line numbers, custom virtualization, source-line highlights, retry, zoom, and download. | `npx shadcn@latest add https://ui.retab.com/r/code-viewer.json` |
| text-viewer | registry:ui | A Pretext-powered prose viewer with natural wrapping, custom variable-height virtualization, source-line highlights, retry, zoom, and download. | `npx shadcn@latest add https://ui.retab.com/r/text-viewer.json` |
| text-viewer-chenglou | registry:ui | An imperative Pretext prose viewer that keeps Text Viewer parsing/layout but projects visible rows through a Chenglou-style DOM cache. | `npx shadcn@latest add https://ui.retab.com/r/text-viewer-chenglou.json` |
| markdown-viewer | registry:ui | A continuous Markdown viewer forked from the Chenglou Pretext text viewer, with block virtualization and no visible page model. | `npx shadcn@latest add https://ui.retab.com/r/markdown-viewer.json` |
| text-source | registry:ui | Bridges the document-source model to text viewers: textAnchorToTarget and sourceToTextHighlight for text_span anchors. | `npx shadcn@latest add https://ui.retab.com/r/text-source.json` |
| csv-source | registry:ui | Bridges the document-source model to the CSV viewer: csvAnchorToTarget and sourceToCsvCell for csv_cell anchors. | `npx shadcn@latest add https://ui.retab.com/r/csv-source.json` |
| xlsx-source | registry:ui | Bridges the document-source model to the XLSX viewer: xlsxAnchorToTarget and sourceToXlsxCell for spreadsheet_cell anchors. | `npx shadcn@latest add https://ui.retab.com/r/xlsx-source.json` |
| docx-source | registry:ui | Bridges the document-source model to the DOCX viewer: docxAnchorToTarget and sourceToDocxHighlight for docx_text_span and docx_table_cell anchors. | `npx shadcn@latest add https://ui.retab.com/r/docx-source.json` |
| image-sources-block | registry:block | Extracted fields linked to a scanned page image — hover to highlight the image_bbox region. | `npx shadcn@latest add https://ui.retab.com/r/image-sources-block.json` |
| text-sources-block | registry:block | Values extracted from a log file linked to the lines they came from — hover to highlight a line range. | `npx shadcn@latest add https://ui.retab.com/r/text-sources-block.json` |
| docx-sources-block | registry:block | Values extracted from a Word document linked back to where they came from — hover to highlight the text and scroll to it. | `npx shadcn@latest add https://ui.retab.com/r/docx-sources-block.json` |
| csv-sources-block | registry:block | Extracted values linked to spreadsheet cells — hover to highlight a cell and scroll to it. | `npx shadcn@latest add https://ui.retab.com/r/csv-sources-block.json` |
| xlsx-sources-block | registry:block | Extracted values linked to spreadsheet cells across sheets — hover to switch sheet, highlight the cell, and scroll to it. | `npx shadcn@latest add https://ui.retab.com/r/xlsx-sources-block.json` |
| source-indicator | registry:ui | A floating pill that reports active field source state over a viewer: nothing selected, a located field path, or a field with no source. | `npx shadcn@latest add https://ui.retab.com/r/source-indicator.json` |
| dropzone-file-uploader-example | registry:block | The standard visual file uploader built on the headless dropzone primitive. | `npx shadcn@latest add https://ui.retab.com/r/dropzone-file-uploader-example.json` |
| dropzone-file-viewer-example | registry:block | One upload surface that becomes a file viewer, with the uploaded blob rendered by FileViewer. | `npx shadcn@latest add https://ui.retab.com/r/dropzone-file-viewer-example.json` |
| dropzone-non-button-trigger | registry:block | A custom element opens the file dialog while preserving dropzone state. | `npx shadcn@latest add https://ui.retab.com/r/dropzone-non-button-trigger.json` |
| dropzone-native-button-queue | registry:block | A real button trigger with browser button semantics and a small selected-file queue. | `npx shadcn@latest add https://ui.retab.com/r/dropzone-native-button-queue.json` |
| dropzone-controlled-queue | registry:block | Parent-owned file state with controlled selected files and explicit clear behavior. | `npx shadcn@latest add https://ui.retab.com/r/dropzone-controlled-queue.json` |
| dropzone-validation-only | registry:block | Validate accepted files and rejection details without storing selected files. | `npx shadcn@latest add https://ui.retab.com/r/dropzone-validation-only.json` |
| dropzone-custom-thumbnail-grid | registry:block | Direct useDropzone composition with FileThumbnail previews in a custom grid. | `npx shadcn@latest add https://ui.retab.com/r/dropzone-custom-thumbnail-grid.json` |
| dropzone-media-transcript-queue | registry:block | Audio and video files queued as transcript jobs with per-file thumbnails. | `npx shadcn@latest add https://ui.retab.com/r/dropzone-media-transcript-queue.json` |
| dropzone-upload-progress-queue | registry:block | A dropzone-backed upload queue with per-file loading bars keyed by the admitted file ids. | `npx shadcn@latest add https://ui.retab.com/r/dropzone-upload-progress-queue.json` |
| dropzone-avatar-image-slot | registry:block | A single replaceable image slot with a custom circular preview. | `npx shadcn@latest add https://ui.retab.com/r/dropzone-avatar-image-slot.json` |
| dropzone-spreadsheet-import-card | registry:block | A single spreadsheet upload feeding a mapping workflow. | `npx shadcn@latest add https://ui.retab.com/r/dropzone-spreadsheet-import-card.json` |
| dropzone-evidence-timeline | registry:block | Files become ordered evidence events inside a custom surface. | `npx shadcn@latest add https://ui.retab.com/r/dropzone-evidence-timeline.json` |
| dropzone-comparison-pair-upload | registry:block | Two independent dropzones model original versus revision documents. | `npx shadcn@latest add https://ui.retab.com/r/dropzone-comparison-pair-upload.json` |
| dropzone-intake-router | registry:block | One intake target routes selected files into document, image, and table lanes. | `npx shadcn@latest add https://ui.retab.com/r/dropzone-intake-router.json` |
| dropzone-required-packet-slots | registry:block | Slot-level dropzones for checklist-driven packet collection. | `npx shadcn@latest add https://ui.retab.com/r/dropzone-required-packet-slots.json` |
| dropzone-pinboard-drop-surface | registry:block | A full canvas trigger that pins dropped files as cards. | `npx shadcn@latest add https://ui.retab.com/r/dropzone-pinboard-drop-surface.json` |
| dropzone-disabled-dropzone | registry:block | Disabled input, trigger focus, intake, and drag behavior. | `npx shadcn@latest add https://ui.retab.com/r/dropzone-disabled-dropzone.json` |
| split-consensus-viewer-block | registry:block | A split result with multi-run consensus visible in the sidebar: the page rail stays beside output-level likelihoods and each vote used to build the final split. | `npx shadcn@latest add https://ui.retab.com/r/split-consensus-viewer-block.json` |
| split-consensus-diagram-horizontal-viewer-block | registry:block | A split consensus segment diagram with consolidation, five raw votes, and contested-page density in a wide horizontal sidebar beside the PDF. | `npx shadcn@latest add https://ui.retab.com/r/split-consensus-diagram-horizontal-viewer-block.json` |
| split-consensus-diagram-vertical-viewer-block | registry:block | A split consensus segment diagram with the page axis running vertically for a narrow sidebar beside the PDF. | `npx shadcn@latest add https://ui.retab.com/r/split-consensus-diagram-vertical-viewer-block.json` |
| split-consensus-lukas-viewer-block | registry:block | The split benchmark diagram from Lukas Bjorkland's article, with GT, Split v1, Split v2, the PDF pane, and the same dark metrics table treatment. | `npx shadcn@latest add https://ui.retab.com/r/split-consensus-lukas-viewer-block.json` |
| classify-consensus-viewer-block | registry:block | A classification result with consensus visible in the sidebar: selected category, likelihood, and every vote beside the source document. | `npx shadcn@latest add https://ui.retab.com/r/classify-consensus-viewer-block.json` |

## For AI agents

```text
You are adding components from @retab to a shadcn-compatible project.
1. Read this file (https://sh4dcn.vercel.app/md/retab.md) for the component list.
2. Fetch the machine-readable index: https://ui.retab.com/r/registry.json
3. Install a single component with its install command from the table above.
4. Full structured record: https://sh4dcn.vercel.app/json (library slug: retab).
```
