Document-processing UI components for Retab — file, OCR, and data viewers, schema builders, dropzones, and extraction blocks, built on shadcn/ui.
A connected control group primitive for buttons, inputs, separators, and text addons.
Bridges the document-source model to the image viewer: imageAnchorToTarget, rotateImageArea, and renderImageSourceOverlay for image_bbox anchors.
Extracted fields linked to a scanned page image — hover to highlight the image_bbox region.
A performant image viewer with native off-thread decode (createImageBitmap), continuous scroll, zoom, rotate, fit-to-width, download, and a per-frame overlay slot. Renders multi-page TIFF scans efficiently: frames decode lazily near the viewport and decoded bitmaps are capped. No useEffect.
A styled text input built on Base UI.
One intake target routes selected files into document, image, and table lanes.
A virtualized listbox interaction primitive for preview, selection, keyboard navigation, and visible-item reporting.
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.
A read-only JSON viewer with theme-aware syntax highlighting and a hover copy button, plus a standalone CopyButton.
A keyboard shortcut display primitive.
An accessible label primitive.
A provider-agnostic layout inspection component for OCR output: normalize Google Document AI, AWS Textract, or Azure Document Intelligence into shared blocks, lines, and words, then review them over the source page with virtualized rows, confidence filtering, and precise overlays.
Projection helpers that convert OCR/layout blocks into segmented-document segments and anchors.
A continuous Markdown viewer forked from the Chenglou Pretext text viewer, with block virtualization and no visible page model.
Audio and video files queued as transcript jobs with per-file thumbnails.
A real button trigger with browser button semantics and a small selected-file queue.
A custom element opens the file dialog while preserving dropzone state.
OCR review for a scanned document: source page, detected text blocks, confidence filtering, and matching polygon overlays. Switch between Google Document AI, AWS Textract, and Azure Document Intelligence output.
A page-axis ribbon: segments drawn as blocks spanning their pages. One vertical lane = a split sidebar; many horizontal rows (consensus + votes) = a partition waterfall. Shared hover/focus/selection + click-to-jump.
A colored page strip that ties a Segment[] to the document; hover/select syncing and click-to-jump.
The source document beside its extracted markdown, synced by page, with a Rendered/Text toggle.
Keyed chunks over a PDF: a legend plus a horizontal page-ribbon waterfall, from the shared segment primitives.
Load and cache PDF.js documents and pages without viewer chrome.
Bridges the document-source model to the PDF viewer: pdfAnchorToTarget and renderPdfSourceOverlay for PDF bbox anchors.
A PDF viewer with toggleable page thumbnails in a viewer navigation rail.
A pdfjs-backed PDF viewer: continuous scroll, controlled or uncontrolled zoom, rotate, fit-to-width, download, a per-page overlay slot for bounding-box citations, a PdfHighlight overlay, and imperative scrollToPage / scrollToPageArea handles for driving source highlights.
PDF-owned page thumbnail navigation for explicit PdfViewer composition: lazy pdfjs thumbnails, active-page highlight, and click-to-jump.
A full canvas trigger that pins dropped files as cards.
A canvas-backed PowerPoint viewer rendered entirely client-side (no server conversion): continuous scroll, zoom, rotate, fit-to-width, download, and a per-slide overlay slot. Slides render lazily near the viewport and renders are serialized.
Prop-driven run cards for each Retab primitive — classify, split, partition, parse, and extract — each framing the source document with that primitive's result over the shared RunCard shell. Presentational: pass the resolved result (category, segments, markdown, or extract fields), so the same cards render a static demo or a live workflow run's per-block result.
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 the page with its category and reasoning; split a mini page rail of color-keyed subdocuments; partition a keyed-chunk legend with an overlap ribbon; parse the page rendered as markdown; extract the page with each field's source box drawn over it. Composes the primitive-run-cards components over sample results.
Slot-level dropzones for checklist-driven packet collection.
Resizable panel primitives using react-resizable-panels.
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.
Controlled JSON Schema editor for building Retab extraction schemas — fields, types, nested objects, arrays, enums, and required flags.
A custom scroll area built on Base UI.
Shared segmented-document model, provider, viewport controller, and anchor navigation for split, partition, source, OCR, and bbox viewers.
React-free hover, focus, selection, and current-page helpers for Segment[] surfaces.
Compact color legend for a Segment[] with shared hover, focus, and selection state.
Vertical page rail for Segment[] documents with current-page following, scroll progress, and page selection.
Selectable list of segments with page ranges and confidence bars.
Shared model + helpers for page-segmented results (partition/split): Segment type, Tableau palette, color map, page-range and confidence helpers.
A responsive application sidebar with menu, rail, and provider primitives.
Providerless sidebar list primitives for embedded viewer and domain sidebars.
Shared sidebar row button styling variants used by app and providerless sidebar primitives.
A loading placeholder with shimmer animation.
A themed toast provider for Sonner.
Pure conversion from document-source anchors to document viewer anchors.