Components
Every exported component, by package, the chart types included. Each has a page with its purpose, when to use it, what it works with, live variants and its API.
@elabs-ai/components-ui
Foundation + app UI (Button, Card, Dialog, Tabs, AppShell, …). 445 exports.
Convenience composition: Provider → Root(form) → title/description → Fields → Error → Submit.
A hierarchical list with expand and collapse, single or multiple selection and full keyboard navigation.
@elabs-ai/components-data
TanStack DataTable, FilterBar, SearchInput, FacetFilter, ColumnPicker. 27 exports.
TanStack-backed data grid with sorting, filtering, pagination and a render-prop toolbar.
The spreadsheet-grade preset of DataTable (interaction="grid"): one tab stop, arrow keys across header and body cells, Excel-style cell ranges (drag, Shift, Ctrl/⌘), Ctrl/⌘+A, and Ctrl/⌘+C copies what the cells display as tab-separated text.
A DataGrid from one serialisable spec — rows, optional column specs (inferred when absent) and an optional saved view.
@elabs-ai/components-charts
MetricCard, MetricGrid, ChartCard, ChartFrame, AutoChart (spec-driven via a serializable ChartSpec). 272 exports.
Categorical comparison — composed from Bar + BarXAxis/BarYAxis inside its provider.
Computed reference lines and bands: analytics={[{ kind: "line", value: "mean" }]} on any cartesian container, ScatterChart (both axes) and DistributionChart.
@elabs-ai/components-ai
Chat: ChatShell, Conversation, Message, PromptInput, Tool, Reasoning, Sources, CodeBlock, Artifact. 449 exports.
The standard chat input — a PromptInput pre-assembled with attachments, tools and submit.
The SAFE generative-UI path: renders an agent-DESIGNED screen from data — a JSON tree of catalog types validated against the catalog — with the real components; actions reach the host's onAction.
@elabs-ai/components-flow
Branded React Flow canvas, nodes, edges, controls, inspector. 49 exports.
layoutFlowElk lays a graph out with ELK’s layered algorithm — same result shape as layoutFlow, plus the engine that answered.
A branded process-map edge whose stroke width scales with a weight value (frequency or volume) relative to the other edges sharing its scaleGroup, and can optionally colour the stroke by a second continuous value between --flow-edge-weak and --flow-edge-strong; a “back” variant renders dashed and routed clear of the forward edge it doubles back over.
@elabs-ai/components-maps
Token-driven MapLibre GL maps: MapCanvas, MapMarker, MapPopup, MapControls, MapRoute, MapArc, MapGeoJSON, MapClusterLayer — and custom plan maps (a floor plan, a plant layout, a carriage) drawn in their own units. 33 exports.
Root MapLibre canvas — theme-aware basemap; the ref is the raw MapLibre Map. With plan it is a non-geographic plan instead (a floor, a plant, a carriage) and every layer inside speaks plan units.
Clusters dense point data into count bubbles that split apart as you zoom in.
@elabs-ai/components-editor
Token-themed Monaco editor: CodeEditor, DiffEditor, CodeWorkspace (file tabs). 54 exports.
A markdown editing workspace: the editor with its outline, preview and toolbar arranged as one document surface.
The Monaco side-by-side diff surface — the only diff in the library that can be typed into.
@elabs-ai/components-viewer
FileViewer: a file the app did not write, via a pluggable adapter registry. 19 exports.
Render a file the app did not write (upload, signed URL, agent output) — detects the format, loads the matching adapter on demand, draws it with brand-ui components.
Attachments, uploads, side-by-side revisions and a custom format
Render a file the app did not write (upload, signed URL, agent output) — detects the format, loads the matching adapter on demand, draws it with brand-ui components.
@elabs-ai/components-terminal
Terminal surfaces (shell/agent output, coding-agent CLI look-alikes). 31 exports.
The console ground for the agent-session family: the terminal surface, the mono type role and the two-column gutter grid, established once and published to every row inside.
Streaming terminal surface for agent shell output, with an optional input line.
A single tool invocation dressed as a CLI line: a status glyph (success/error/pending), the tool name plus its optional argument in parentheses, a result summary on a ⎿ row, and detail behind a real disclosure.
@elabs-ai/components-process
Process mining / event-log analysis. 84 exports.
Directly-follows process map: activities as nodes, transitions as edges, both painted from one metric choice, with an accessible table twin.
ProM’s performance spectrum (§4 R15): one row per segment, one line per case from the moment it left from (row top) to the moment it reached to (row bottom), on a shared time axis.
@elabs-ai/components-marketing
Hero, FeatureGrid, UseCaseCard, StatsBand, CTASection, LogoStrip. 9 exports.
A marketing band listing the quality gates a release passes, each with its status.
@elabs-ai/components-icons
Brand/product-vocabulary icons + BrandLogo; generic glyphs come from Lucide. 32 exports.
The product-vocabulary icon set: brand and domain glyphs built on the shared icon primitive.
The brand/product-vocabulary icon primitive — 24×24, stroke = currentColor, so it themes with text.
The standard app/brand mark for app chrome — theme-aware, morphs mark↔lockup on sidebar collapse.
@elabs-ai/components-tokens
Semantic CSS-variable themes + ThemeProvider/useTheme. 19 exports.
How data-theme + semantic tokens give one component set any number of looks — the two reference themes (light, dark), a theme you author yourself, plus the orthogonal decoration / density / motion dials.
Each swatch is theme-reactive: it fills from var(--token), so switching the toolbar theme recolors the entire page.
The stacked elevation ramp (shadow-2xs → shadow-2xl) and its hairline-ring variant (shadow-ring-*) for floating surfaces, plus shadow-hairline for a bare 1px edge.