# Jumbee.Console > Jumbee.Console is a .NET library for advanced TUIs that focuses on performance and usability. Inspired by libs like [ratatui](https://ratatui.rs/) and [Textual](https://textual.textualize.io/), it tries to provide a high-performance retained-mode library that is easy-to-use with idiomatic .NET GUI and Task patterns, while flexible enough to create different types of TUI applications from news readers to animated dashboards to IDEs to agent harnesses to graphics apps. Requires .NET 10.0. Distributed as three NuGet packages: `Jumbee.Console` (core, self-contained), `Jumbee.Console.Documents` (Markdown/AsciiDoc/Mermaid viewers) and `Jumbee.Console.Snapshot` (headless snapshot testing). Every link below is raw Markdown and can be fetched directly. The API reference is generated from the libraries' XML-doc comments, one page per public type. ## Docs - [README](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/README.md): Project overview, feature list, Docker quick start, and a first app. - [Getting Started](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/GETTING-STARTED.md): Task-oriented guide: layouts, controls, input, theming, testing without a terminal. - [Documentation index](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/README.md): Entry point to the guides, control docs and API reference. - [API reference index](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/README.md): All public types grouped by namespace, each with its summary. - [Troubleshooting](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/TROUBLESHOOTING.md): Common build, rendering and terminal problems and their fixes. - [Changelog](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/CHANGELOG.txt): Release history (plain text). - [Running with Docker](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docker.md): Run the demo apps with only Docker installed; also how the images are built. - [Contributing](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/CONTRIBUTING.md): Building the repo (submodules required), running the tests. ## Control guides - [Controls: start here](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/controls/README.md): START HERE to find the right control. A decision table mapping a task ("I want to...") to the control that does it, across the whole library, then one guide per category. Also links the cross-cutting concept guides. - [Charts](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/controls/Charts.md): Plot, Canvas, BarChart, RunChart and Globe, and choosing between them: numeric bars (Plot) versus labelled categories (BarChart), and the dense braille filled-area chart being Canvas plus Drawing.FilledLine rather than Plot. Live series via AddLiveSeries. - [Composite Controls](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/controls/Composite%20Controls.md): Building one reusable Control out of several children (CompositeControl), how content height and scrolling work, and a worked example. - [Control Model](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/controls/Control%20Model.md): What nests inside what: Control, ControlFrame, ILayout and CompositeControl. Framing is a property of a control rather than a wrapper node; sizing order (Width/Height, then intrinsic, then allocated) and why 0 means unset; focus exclusivity and input tunnelling; how redraw is requested. - [Display Widgets](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/controls/Display%20Widgets.md): Small self-contained readouts and status indicators: Sparkline, Digits, Gauge, ProgressBar, Spinner, Badge, Footer, GlassPanel, PerfHud and Log, including which of the four progress-ish controls to use. - [Documents](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/controls/Documents.md): Rendering and editing Markdown, AsciiDoc and Mermaid: MarkdownViewer, MarkdownExtendedViewer, AsciiDocViewer, MermaidViewer and the Interactive*Editor split-preview editors. Which are core and which need the Jumbee.Console.Documents package; all parse off the UI thread and need a frame to scroll. - [Layouts](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/controls/Layouts.md): Arranging controls, and which layouts fill the terminal and which do not (DockPanel and SplitPanel fill; Grid is fixed-size). Boundary, overlays, and recipes for an app shell, master-detail and a dashboard. - [Links](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/controls/Links.md): Link, the focusable clickable control that opens a URL or runs an action, and wiring app-level keys with UI.RegisterHotKey. - [Lists and Data](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/controls/Lists%20and%20Data.md): Presenting rows: ListBox, DataTable, Tree, Log and TextPanel, and how to pick between them, including which own their scrolling and which need a ControlFrame, why Log rather than a growing ListBox for a stream, and DataTable having no sort and no in-place row update. - [Live Data](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/controls/Live%20Data.md): Wiring a continuously-updating data source into the UI: sample off the UI thread, apply one immutable snapshot per tick via UI.Invoke, split fast and slow cadences, keep the frame path cheap, and measure it with PerfHud. - [Navigation](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/controls/Navigation.md): Buttons, menus, modals and help: Button, MenuBar, ContextMenu, Dialog (with the Control-not-ILayout content gotcha and how to snapshot-test a modal), TabPanel and the F1 help system. - [Selection Controls](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/controls/Selection%20Controls.md): Checkboxes, radio buttons, switches, the single- and multi-select list controls (RadioSet, SelectionList), and the collapsed drop-down Select, including when to show every option versus collapse them. - [Spectre Interop](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/controls/Spectre%20Interop.md): Bringing existing Spectre.Console code in: SpectreControl wrapping any IRenderable, SpectreLiveDisplay and SpectreTaskProgress, subclassing RenderableControl for a new control, and the AnsiConsoleBuffer bridge. Mutate wrapped widgets through UpdateContent, never directly. - [Terminal](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/controls/Terminal.md): TerminalEmulator: running a child process in a pseudo-console (ConPty on Windows, UnixPty elsewhere) and painting its output as a control. Input forwarding, why app hotkeys need UI.RegisterHotKey to survive it, and disposing to avoid orphan processes. - [Text and Input](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/controls/Text%20and%20Input.md): Showing and entering text: TextLabel, TextInput (and its orientation-first TextLabel gotcha), TextPrompt, Autocomplete, and the editor stack TextEditor -> CodeEditor -> MultiTabCodeEditor, plus ChatPrompt for an agent/chat input line. - [What Happens When](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/controls/What%20Happens%20When.md): Behavioural FAQ with the answer first: resizing the terminal, a Grid that will not grow, no resize event, Width = 0 meaning unset, reading ActualWidth before layout, mutating a control off the UI thread, UI.Invoke swallowing exceptions, expensive work in Render, a control that throws every frame failing invisibly, double-click routing, themed properties pinning. - [Writing Applications](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/controls/Writing%20Applications.md): Retained mode versus immediate mode and why it matters if you come from Spectre.Console: your app has no render loop. What the framework owns (frame loop, redraw scheduling, terminal setup/restore, input routing, layout) versus what you own, and how to choose a base class when writing a control. ## API reference: Jumbee.Console - [AnimatedControl (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.AnimatedControl.md): Base class for a control that advances through frames on a timer, repainting each frame while running. - [AnsiConsoleBuffer (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.AnsiConsoleBuffer.md): An implementation of Spectre.Console.IAnsiConsole that writes to a ConsoleBuffer. - [AnsiInputDecoder (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.AnsiInputDecoder.md): A streaming state machine that turns a raw terminal input char stream into `TerminalInputEvent`s: printable text, control/navigation keys (CSI/SS3), SGR (1006) mouse reports, bracketed paste (DEC 2004), and focus in/out (DEC 1004). - [Autocomplete (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.Autocomplete.md): Attaches type-ahead suggestions to a `TextInput`. - [Badge (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.Badge.md): A small inline status pill — short text on a filled background with a little horizontal padding (e.g. `200 OK`, `read-only`, a method tag). - [BadgeVariant (enum)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.BadgeVariant.md): Preset colour schemes for a `Badge`, resolved from the active theme. - [BarChart (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.BarChart.md): A bar chart. - [BarChart.BarChartItem (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.BarChart.BarChartItem.md): A single labelled, coloured item in a `BarChart`. - [BarChart.HorizontalBar (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.BarChart.HorizontalBar.md): A horizontally-drawn bar in a `BarChart`, optionally showing its value and remaining track. - [BarChart.IBarControl (interface)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.BarChart.IBarControl.md): A single bar renderable within a `BarChart`. - [BarChart.VerticalBar (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.BarChart.VerticalBar.md): A vertically-drawn bar in a `BarChart`. - [BorderPlacement (enum)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.BorderPlacement.md): Which edges of a control frame's border are drawn. - [BorderStyle (enum)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.BorderStyle.md): The shape of a control frame's border. - [Boundary (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.Boundary.md): A single-child layout that pins its child's size. - [Button (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.Button.md): A focusable, clickable button that renders a fixed-width text label. - [ButtonShape (enum)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.ButtonShape.md): The overall shape of a `Button`. - [ButtonStyle (struct)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.ButtonStyle.md): The appearance of a `Button`: its fill `Style` in each interaction state (text colour + background), its `Shape`, an optional fixed/minimum width, and whether the label is bold. - [Canvas (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.Canvas.md): A blank drawing surface on which you paint `IShape`s (`Line`, `Rectangle`, `Circle`, `Points`, `FilledLine`) in an arbitrary coordinate system, rendered with sub-cell markers (braille by default). - [ChartOrientation (enum)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.ChartOrientation.md): Whether a chart is laid out horizontally or vertically. - [ChatPrompt (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.ChatPrompt.md): The input area of an agent/chat CLI (Claude Code, Gemini CLI): a prompt glyph on the left that turns into an animated *busy* spinner while an operation runs, and a single-line `TextInput` filling the rest. Submitting (Enter) raises `Submitted`; any edit raises `Changed`. - [Checkbox (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.Checkbox.md): A labelled checkbox that toggles an independent on/off state. - [CodeEditor (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.CodeEditor.md): A composite control pairing a `TextEditor` with a `LineNumberGutter` docked to its left. - [Color (struct)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.Color.md): An RGB colour. Value type: two colours are equal when their channels are. - [CompositeControl (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.CompositeControl.md): Base class for *composite* controls: a `Control` that owns and lays out several child controls and presents them as a single control. It is a real `Control` (so it has its own console buffer, participates in theming/painting, can be framed, and drops into any layout cell), but its content is an internal `ILayout` arranging the children. - [ConPty (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.ConPty.md): A pseudo-console (ConPTY) session: launches a process attached to a Windows pseudo console and exposes its stdin/stdout as streams. - [ConsoleBuffer (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.ConsoleBuffer.md): A ConsoleGUI.IConsole implementation that writes to a buffer. - [ConsoleInputSource (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.ConsoleInputSource.md): The default `IInputSource`, reading keys from `Console` and wrapping them as `KeyInputEvent`s. - [ContextMenu (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.ContextMenu.md): A floating, keyboard-navigable menu of `MenuItem`s, shown anchored in the ambient `Overlay`. The shared primitive behind drop-downs / context menus / a `MenuBar`'s menus. - [Control (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.Control.md): Base class for all Jumbee.Console controls. - [Control.InitializationHandler (delegate)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.Control.InitializationHandler.md): Delegate for the `OnInitialization` event. - [ControlExtensions (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.ControlExtensions.md): Fluent extension helpers for configuring controls, frames, and geometry values. - [ControlFrame (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.ControlFrame.md): Draws a border around a control together with margins and a title bar, and sets the foreground and background colors. - [CursorStyle (enum)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.CursorStyle.md): Terminal cursor shapes/blink, mapping to DECSCUSR (CSI Ps SP q) values. `Default` (0) leaves the terminal's configured cursor. - [DataTable (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.DataTable.md): An interactive data grid. - [DefaultGlyphTheme (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.DefaultGlyphTheme.md): The built-in glyph theme: every glyph uses `IGlyphTheme`'s default values. - [DefaultStyleTheme (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.DefaultStyleTheme.md): The built-in style theme: every token uses `IStyleTheme`'s default values. - [Dialog (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.Dialog.md): A modal dialog window shown over the ambient `Overlay`: a titled, bordered box that takes exclusive focus (the layer beneath is dimmed and click-blocked) until dismissed. - [DialogButtons (enum)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.DialogButtons.md): The predefined button set a `Dialog` shows along its bottom edge. - [DialogResult (enum)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.DialogResult.md): Which button dismissed a `Dialog` (or how it was dismissed). - [Digits (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.Digits.md): Renders text using large three-row "seven-segment" glyphs, for clocks, counters and headline figures. - [Dispatcher (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.Dispatcher.md): Owns a single UI thread and a serialized work queue. UI state mutation and rendering are intended to run on this thread; other threads marshal work onto it via `Post`, `Invoke`, or `InvokeAsync`. - [DockedControlPlacement (enum)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.DockedControlPlacement.md): Which edge a `DockPanel` pins its docked control to. - [DockPanel (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.DockPanel.md): A two-child layout that pins one control to an edge and fills the remaining space with the other. - [DocumentClosingEventArgs (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.DocumentClosingEventArgs.md): Arguments for `DocumentClosing`. Set `Cancel` to keep the document open (e.g. after confirming unsaved changes). - [FeedHandle (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.FeedHandle.md): A handle to a running background feed started by `Feed` and its overloads. Cancel it to stop the feed; await `Completion` (or `StopAsync`) to know the in-flight tick has finished — for safely disposing a resource the feed's producer reads. - [FocusableEventHandler (delegate)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.FocusableEventHandler.md): Handler for the `OnFocus` and `OnLostFocus` events. - [FocusInputEvent (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.FocusInputEvent.md): Terminal focus gained/lost (DEC mode 1004). - [FocusStyle (enum)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.FocusStyle.md): How the themed default focus cue is drawn on a focused control that isn't showing focus another way (no visible frame border, and `Control.RendersOwnFocus` is false). - [Footer (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.Footer.md): A one-row key-hints bar (e.g. `^j Send ^t Method ^c Quit f1 Help`), filling the available width. - [FooterHint (struct)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.FooterHint.md): A single key-binding hint shown in a `Footer`: the key chord and what it does. - [Gauge (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.Gauge.md): A single-row horizontal progress bar: the track is filled proportional to `Value` / `Max`, optionally followed by the percentage and the raw value — e.g. `████████░░░░ 34.5% (126)`. For dashboards (year/day progress, a deployment %, a capacity meter). - [GaugeStyle (struct)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.GaugeStyle.md): The per-part `Style` a `Gauge` composes: the filled portion of the bar, the empty track behind it, and the percent/value readout (and any inline label). - [GlassBlend (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.GlassBlend.md): Colour blending for `GlassPanel`: a gamma-space lerp (cheap, matches `Mix`) or a gamma-correct blend in linear light via two lookup tables (no runtime `pow`), plus a rough estimate of how much of a cell a glyph inks (for the perceived-colour collapse). - [GlassPanel (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.GlassPanel.md): A translucent "glass" panel: a fixed-size overlay that shows the layer beneath it, tinted, with its own `Content` drawn opaquely on top. Host it non-modally over the current UI with `Show` (it floats via `ShowPassive`, so the layer beneath keeps focus and keeps receiving input). - [Globe (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.Globe.md): A ray-traced globe of the Earth — a shaded, colour-mapped sphere drawn into the control's buffer. Display-only by default; spin, tilt, and zoom it from a frame or timer feed. - [Grid (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.Grid.md): A grid layout with controls arranged in rows and columns. - [HelpControl (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.HelpControl.md): The global help dialog: a fixed-size modal composite showing one tab per `HelpInfo` (built by `ShowHelp` from every control's `GetHelpInfo`), with a Close button. - [HelpInfo (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.HelpInfo.md): A control's entry in the global help dialog (one tab). Mutable so an `OnHelp` handler can tweak it in place. - [HorizontalStackPanel (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.HorizontalStackPanel.md): A layout that arranges its child controls in a single horizontal row. - [HScroll (struct)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.HScroll.md): An opt-in horizontal-scroll offset for controls that render a fixed-width buffer wider than their viewport and window it in `Blit` (the `ControlFrame` only scrolls vertically). - [IFocusable (interface)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.IFocusable.md): A control that can receive keyboard focus and input. - [IGlyphTheme (interface)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.IGlyphTheme.md): The glyphs controls use for state indicators. - [IInputSource (interface)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.IInputSource.md): Supplies `TerminalInputEvent`s (keys, mouse, paste, focus) to the UI input loop. - [ILayout (interface)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.ILayout.md): Common interface for Jumbee.Console layout classes: a 2-D grid of focusable cells over a ConsoleGUI control, with focus navigation and input routing. - [InteractiveMarkdownEditor (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.InteractiveMarkdownEditor.md): A live, split-pane Markdown editor for the terminal — the TUI equivalent of a web Markdown editor. The left pane is a `CodeEditor` with Markdown syntax highlighting; the right pane is a `MarkdownViewer` that re-renders the document — headings, tables and syntax-highlighted code — as you type (see `InteractiveSourceEditor` for the sync model). - [InteractiveSourceEditor (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.InteractiveSourceEditor.md): Base for live, split-pane source editors: a `CodeEditor` in one pane and a read-only preview control in the other, wired so the preview re-renders as the source is edited. A draggable `SplitPanel` divider sits between them (drag it, or focus it and press the arrows). Subclasses supply the editor's language, the preview control, and how to push text into it (`ApplyPreviewText`). - [IPty (interface)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.IPty.md): A pseudo-terminal session: a child process attached to a PTY, exposing its stdin/stdout as streams. - [IStyleTheme (interface)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.IStyleTheme.md): The general appearance theme: a set of semantic `Style` tokens (foreground + background + decoration) that controls compose when resolving their default appearance, plus the rest of a control's non-glyph styling — e.g. a frame's border shape (`FrameBorder`) and its title's position/border/colour. - [ITheme (interface)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.ITheme.md): A complete theme bundling an `IStyleTheme` and an `IGlyphTheme`, for callers that want to customise both colours/styles and glyphs as one unit and apply them together (via `UI.SetTheme(ITheme)`). - [Justify (enum)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.Justify.md): Horizontal alignment of text within its available width. - [KeyHelp (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.KeyHelp.md): One keystroke (or chord) and what it does, listed in a control's `HelpInfo`. - [KeyInputEvent (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.KeyInputEvent.md): A key press. - [Language (enum)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.Language.md): A source language for syntax highlighting, shared by the text/code controls (e.g. `TextEditor`, `CodeEditor`). `None` renders plain, unhighlighted text. - [Layout-1 (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.Layout-1.md): Base class for Jumbee.Console layouts wrapping a ConsoleGUI layout control T` and exposing it through `ILayout`. - [LineNumberGutter (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.LineNumberGutter.md): A narrow, non-interactive column of right-aligned line numbers, highlighting the active row. Intended as an adornment inside a composite (e.g. `CodeEditor`); width auto-grows with the digit count. - [Link (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.Link.md): A focusable, clickable text link. Activating it (a mouse click, or Enter/Space while focused) opens `Url` with the system default handler and raises `Activated`. - [ListBox (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.ListBox.md): Displays a flat list of items and allows user input navigation and selection. - [ListBox.ListBoxItem (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.ListBox.ListBoxItem.md): An item in a ListBox. - [Log (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.Log.md): An append-only, scrolling log of Spectre `IRenderable` entries — markup strings, tables, rules, etc. — that always shows the most recent entries that fit (a "tail" view). Each entry is a renderable, so log lines can be styled/coloured. `Write`/`Write` are safe to call from any thread. - [MarkdownViewer (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.MarkdownViewer.md): A read-only, scrollable Markdown viewer. Renders CommonMark — headings, bold/italic, block-quotes, ordered and unordered lists, links, syntax-highlighted fenced code blocks, and box-drawn tables — via NTokenizers' Spectre.Console markdown writer. Wrap it in a `ControlFrame` (e.g. `viewer.WithFrame()`) to get a border, title and scrollbar; ↑/↓, PgUp/PgDn, Home/End and the mouse wheel scroll it. - [MenuBar (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.MenuBar.md): A horizontal bar of top-level menu titles (e.g. `File Edit View`). - [MenuItem (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.MenuItem.md): One entry in a `ContextMenu`: a label, an optional right-aligned shortcut hint, an action invoked when chosen, an enabled flag, and an optional `Submenu`. Use `Separator` for a non-selectable divider line. - [MouseInputEvent (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.MouseInputEvent.md): A mouse action at cell coordinates (0-based). - [MultiTabCodeEditor (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.MultiTabCodeEditor.md): A tabbed group of `CodeEditor`s — a VS-Code-style editor area. Each open document is a closable tab (click the ✕ on the active/hovered tab), and a "+" button at the end of the bar opens a new document. - [Overlay (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.Overlay.md): A layered layout: a persistent `Bottom` layer with an optional floating popup composited on top (wraps ConsoleGUI's `Overlay`). - [PasteInputEvent (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.PasteInputEvent.md): A bracketed-paste payload, delivered as one event so it is never re-interpreted as keystrokes. - [PerfHud (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.PerfHud.md): A translucent "glass" HUD showing live UI telemetry — frame draw/paint times (µs), CPU, working set, allocation rate and, the headline for a no-lock design, monitor lock contentions — floating over the app. - [Plot (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.Plot.md): A line/scatter chart backed by the ConsolePlot library, rendered into the control's buffer. Add data with `AddSeries` and tune the axes/grid/ticks with the `Configure*` methods. - [PlotBrush (enum)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.PlotBrush.md): Selects the glyph set (and thus the sub-cell resolution) a `Plot` series is drawn with. - [PlotColormap (enum)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.PlotColormap.md): Selects the colour map a `Plot` heatmap uses to turn cell values into colours. - [PlotLabelAlign (enum)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.PlotLabelAlign.md): Horizontal anchoring of a `Plot` annotation label relative to its point. - [PlotPalette (struct)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.PlotPalette.md): The ordered colours a plot cycles through for series that don't name one. - [PlotSeries (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.PlotSeries.md): A live, updatable series in a `Plot`. Returned by `AddLiveSeries` (line), `AddLiveScatter` (markers) or `AddLiveBars`; hold onto it and feed data as it arrives with `SetData`, `SetValues`, `Push` or `Clear`. - [ProcessMetrics (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.ProcessMetrics.md): Collects live process/runtime performance metrics for the perf HUD by reading the runtime APIs the `System.Runtime` meter wraps (`GC`, `Environment`, `ThreadPool`, `Monitor`) directly — no `MeterListener`, so there is nothing to sample-schedule and no observable-instrument staleness. - [ProgressBar (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.ProgressBar.md): A single-row task progress display, modelled on one row of a Spectre.Console `Progress`: a `Description`, a bar filled to `Value` / `Max`, then optional `ShowPercentage?text=percentage`, `TimeDisplay?text=time` and `ShowSpinner?text=spinner` columns — e.g. `Consulting the oracle ──── 96% 00:00:00 ⣷`. - [ProgressBarFillMode (enum)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.ProgressBarFillMode.md): How a `ProgressBar` draws its bar. - [ProgressBarGlyphs (struct)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.ProgressBarGlyphs.md): The glyphs (no colours) a `ProgressBar` draws its bar with: the `Fill` for a filled cell and the `Track` for an empty one, plus the `Mode` that selects solid-band or per-cell-glyph rendering. - [ProgressBarStyle (struct)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.ProgressBarStyle.md): The per-part `Style` a `ProgressBar` composes: the task `Description`, the filled and empty portions of the bar (`Fill`/`Track`), and the three optional readouts — `Percentage`, `Time` and `Spinner`. - [ProgressTimeDisplay (enum)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.ProgressTimeDisplay.md): What the optional time column shows. - [Prompt (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.Prompt.md): Base class for controls that prompt the user for input. - [Pty (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.Pty.md): Factory that opens an `IPty` using the right backend for the current OS: the Windows pseudo console (`ConPty`) or a Unix pseudo terminal (`UnixPty`). - [RadioButton (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.RadioButton.md): A labelled radio button. - [RadioSet (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.RadioSet.md): A vertical group of mutually-exclusive radio options, exactly one selected at a time. - [RenderableControl (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.RenderableControl.md): A control that implements Spectre.Console.IRenderable - [ResizeInputEvent (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.ResizeInputEvent.md): Terminal resized. Not decoded from the char stream — raised by the input source on a resize signal. - [RunChart (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.RunChart.md): A live multi-series time chart with a legend — a streaming line `Plot` on the left and a per-series stat readout (name + current / delta / max / min) on the right, in the style of a monitoring "run chart". - [RunSeries (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.RunSeries.md): A handle to one `RunChart` series: push values with `Push`. Tracks the current value, the delta from the previous value, and the running max/min shown in the chart's legend. - [ScrollBarGlyphs (struct)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.ScrollBarGlyphs.md): The glyphs (no colours) a control frame's vertical scrollbar draws for each part: the moving thumb, the track behind it, and the two end arrows. - [ScrollBarMode (enum)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.ScrollBarMode.md): How a control frame renders its vertical scrollbar. - [ScrollBarStyle (struct)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.ScrollBarStyle.md): The per-part `Style` (foreground/background/decoration, no glyph) a control frame applies to its vertical scrollbar. - [Select (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.Select.md): A drop-down selector. - [SelectionList (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.SelectionList.md): A vertical list of independently-checkable options (multi-select). - [SelectionStyle (enum)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.SelectionStyle.md): How a navigable control (e.g. `IStyleTheme` consumers like ListBox, Tree, TabPanel) renders its selected/active item. - [SelectionStylesExtensions (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.SelectionStylesExtensions.md): Turns a `SelectionStyle` into the prefix + text style a control applies to its selected item. - [SelectPopupPosition (enum)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.SelectPopupPosition.md): Where a `Select`'s dropdown opens relative to the control. - [Sparkline (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.Sparkline.md): A compact, single-row chart that draws a series of numeric values as block bars (one cell per value), scaling each value's height against the series maximum. - [SpectreControl-1 (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.SpectreControl-1.md): Wraps an existing Spectre.Console `IRenderable` control for use with ConsoleGUI control and layout types. - [SpectreLiveDisplay (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.SpectreLiveDisplay.md): A Spectre.Console LiveDisplay widget. - [SpectreTaskProgress (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.SpectreTaskProgress.md): A Spectre.Console Progress widget. - [Spinner (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.Spinner.md): An animated spinner glyph with an optional label, cycling through a `Spinner`'s frames. - [SplitDivider (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.SplitDivider.md): The draggable divider between a `SplitPanel`'s two panes. - [SplitOrientation (enum)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.SplitOrientation.md): How a `SplitPanel` arranges its two panes. - [SplitPanel (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.SplitPanel.md): A container that splits its area between two panes with a draggable divider between them. - [SplitPanelDockPanel (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.SplitPanelDockPanel.md): The visual scaffold behind `SplitPanel`: two nested ConsoleGUI `DockPanel`s laying out `[first | divider | second]` along the split axis. - [Style (struct)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.Style.md): A text style — foreground/background colour and text decoration — wrapping a Spectre.Console style. Exposes the named colour palette (`Red1`, `Cyan1`, …) and decoration presets (`Bold`, `Italic`, …) as ready-made tokens; combine them with `|`. - [Switch (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.Switch.md): A sliding on/off switch. - [TabBarDock (enum)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.TabBarDock.md): Which edge a `TabPanel` docks its tab bar on. - [TabCloseEventArgs (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.TabCloseEventArgs.md): Arguments for `TabCloseRequested`. - [TabHeader (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.TabHeader.md): A single clickable tab label in a `TabPanel`'s tab bar. - [TabItem (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.TabItem.md): A handle to a tab in a `TabPanel` — stable across add/remove/reorder (unlike a positional index). - [TabPanel (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.TabPanel.md): A tabbed container: a bar of selectable `TabHeader` labels docked on one edge, with the selected tab's content filling the rest. - [TabPanelDockPanel (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.TabPanelDockPanel.md): The visual scaffold behind `TabPanel`: a ConsoleGUI `DockPanel` that docks a thin tab bar (a horizontal or vertical stack of `TabHeader` cells) on one edge and fills the rest with the active tab's content. It does no selection bookkeeping — `TabPanel` owns the model and drives this through `SetHeaders` / `SetFill`. - [TerminalEmulator (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.TerminalEmulator.md): A control that runs a child process in a pseudo-console (`ConPty`), parses its ANSI output with VtNetCore, and paints the emulated screen into the control's cell area. Input routed to the focused control is translated to terminal bytes and sent to the process. - [TerminalInputEvent (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.TerminalInputEvent.md): Base type for the unified terminal input stream produced by `AnsiInputDecoder`: a single sequence of key / mouse / paste / focus events, replacing the keyboard-only `ConsoleKeyInfo` path. - [TerminalModifiers (enum)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.TerminalModifiers.md): Keyboard/mouse modifier flags decoded from the input stream. - [TerminalMouseButton (enum)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.TerminalMouseButton.md): Mouse button (or wheel direction) reported by the terminal. - [TerminalMouseKind (enum)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.TerminalMouseKind.md): The kind of mouse action reported. - [TextEditor (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.TextEditor.md): A text editor control with syntax highlighting for supported languages. - [TextInput (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.TextInput.md): A single-line text entry control: caret, selection (Shift+navigation), horizontal scrolling when the text exceeds the width, an optional muted placeholder shown while empty, and optional password masking. - [TextLabel (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.TextLabel.md): Displays a single-line text label with a defined horizontal or vertical orientation, foreground and background colour, and optional text decoration (e.g. bold, underline). - [TextLabelOrientation (enum)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.TextLabelOrientation.md): The layout direction of a `TextLabel`. - [TextPanel (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.TextPanel.md): Displays a block of multi-line Spectre `Markup` text — the counterpart to the single-line `TextLabel` and the append-only `Log`. - [TextPrompt (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.TextPrompt.md): A single-line text input that shows a prompt label and edits an inline entry with a terminal cursor. - [TitleBorderStyle (enum)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.TitleBorderStyle.md): The way a control frame title is drawn relative to the top border. - [TitleColorStyle (enum)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.TitleColorStyle.md): The way a control frame title is colored relative to the border color. - [TitlePos (enum)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.TitlePos.md): Position of a control frame title: which border (top or bottom) it is drawn in, and its horizontal alignment within that border. - [TitleStyle (struct)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.TitleStyle.md): Describes how a control frame title is aligned, bordered, and colored. - [ToggleButton (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.ToggleButton.md): Shared base for the single-state toggle widgets (`Checkbox`, `RadioButton`, `Switch`). - [ToggleList (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.ToggleList.md): Shared base for the vertical, navigable toggle lists (`RadioSet`, `SelectionList`). - [Tree (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.Tree.md): Displays a hierarchical list of items in a tree layout. - [Tree.TreeNode (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.Tree.TreeNode.md): Represents a tree node. - [TreeGuide (enum)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.TreeGuide.md): The line style used to draw the connecting guide lines of a `Tree`. - [UI (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.UI.md): Manages th overall UI and provides a paint event for controls to subscribe to. - [UI.GlobalInputListener (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.UI.GlobalInputListener.md): Input listener that dispatches globally-registered hotkeys before any control sees the event. - [UI.HotKeys (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.UI.HotKeys.md): Factory helpers and well-known `ConsoleKeyInfo` constants for registering hotkeys. - [UI.InputEventArgs (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.UI.InputEventArgs.md): Arguments for control input handling, wrapping the decoded `InputEvent`. - [UI.PaintEventArgs (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.UI.PaintEventArgs.md): Arguments for the `Paint` event; carries no data (controls read their own state). - [UnixPty (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.UnixPty.md): A Unix pseudo terminal (Linux/macOS) session. - [VerticalStackPanel (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.VerticalStackPanel.md): A layout that arranges its child controls in a single vertical column. - [VtInputSource (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.VtInputSource.md): An `IInputSource` that puts the terminal into VT input mode and enables mouse, bracketed-paste, and focus reporting, then reads the raw stdin byte stream, decodes it (UTF-8) and runs it through `AnsiInputDecoder` to produce `TerminalInputEvent`s. ## API reference: Jumbee.Console.Documents - [AsciiDocLanguage (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.Documents.AsciiDocLanguage.md): A ColorCode `ILanguage` grammar for AsciiDoc source, for syntax-highlighting an AsciiDoc document in a `CodeEditor` (`new CodeEditor(AsciiDocLanguage.Instance)`). - [AsciiDocStyles (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.Documents.AsciiDocStyles.md): Visual styling for `AsciiDocViewer`. - [AsciiDocViewer (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.Documents.AsciiDocViewer.md): A read-only, scrollable AsciiDoc viewer. - [InteractiveAsciiDocEditor (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.Documents.InteractiveAsciiDocEditor.md): A live, split-pane AsciiDoc editor for the terminal: the left pane is a `CodeEditor` with AsciiDoc syntax highlighting (see `AsciiDocLanguage`); the right pane is an `AsciiDocViewer` that re-renders the document — headings, formatting, lists, admonitions, tables and blocks — as you type. - [InteractiveMarkdownExtendedEditor (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.Documents.InteractiveMarkdownExtendedEditor.md): A live, split-pane Markdown editor whose preview renders embedded ````mermaid` code blocks as diagrams — the interactive complement to `MarkdownExtendedViewer`. - [InteractiveMermaidEditor (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.Documents.InteractiveMermaidEditor.md): A live, split-pane Mermaid editor for the terminal: the left pane is a `CodeEditor` with Mermaid syntax highlighting (see `MermaidLanguage`); the right pane is a `MermaidViewer` that re-renders the diagram as you type. - [MarkdownExtendedViewer (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.Documents.MarkdownExtendedViewer.md): A `MarkdownViewer` that renders fenced ````mermaid` code blocks as diagrams (flowchart, sequence, class, ER, state) instead of showing their source. - [MarkdownWithMermaidLanguage (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.Documents.MarkdownWithMermaidLanguage.md): A ColorCode `ILanguage` that highlights Markdown *and* the contents of embedded ````mermaid` fenced blocks (using the `MermaidLanguage` grammar) — for editing Markdown that contains mermaid diagrams in a `CodeEditor`. - [MermaidLanguage (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.Documents.MermaidLanguage.md): A ColorCode `ILanguage` grammar for Mermaid diagram source, for syntax-highlighting a Mermaid document in a `CodeEditor` (`new CodeEditor(MermaidLanguage.Instance)`). - [MermaidStyles (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.Documents.MermaidStyles.md): Colours and scale for `MermaidViewer`. - [MermaidViewer (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.Documents.MermaidViewer.md): A read-only, scrollable viewer for Mermaid `flowchart`/`graph`, `stateDiagram`, `classDiagram`, `erDiagram` and `sequenceDiagram` diagrams. ## API reference: Jumbee.Console.Drawing - [CanvasMarker (enum)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.Drawing.CanvasMarker.md): Selects the glyph set (and thus the sub-cell resolution) a `Canvas` draws its shapes with. The default is `Braille`. - [Circle (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.Drawing.Circle.md): A circle outline traced at one-degree steps around its centre, in canvas coordinates. - [FilledLine (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.Drawing.FilledLine.md): A line whose area between the line and `FillToY` is filled — useful for area charts. - [IShape (interface)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.Drawing.IShape.md): A shape that can be drawn on a `Canvas` via `Add`. - [Line (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.Drawing.Line.md): A straight line between two points in canvas coordinates. - [MapResolution (enum)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.Drawing.MapResolution.md): The point density of a `WorldMap` — how finely the coastlines are sampled. - [Points (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.Drawing.Points.md): A scatter of individual points in canvas coordinates. - [Rectangle (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.Drawing.Rectangle.md): A rectangle outline. Positioned from its bottom-left corner (`X`, `Y`) in canvas coordinates — the mathematical convention, not terminal cells. - [WorldMap (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.Drawing.WorldMap.md): A world map: the Earth's coastlines as a cloud of longitude/latitude points (EPSG:4326), for drawing on a `Canvas` whose bounds are set to `X [-180, 180]` and `Y [-90, 90]` (a sub-region zooms in). ## API reference: Jumbee.Console.Snapshot - [AnsiConsoleSession (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.Snapshot.AnsiConsoleSession.md): A stateful counterpart to `AnsiConsoleSnapshot` for testing the *live* render — used to reproduce diff/cursor or async-ordering bugs that only appear across frames (e.g. press → release). - [AnsiConsoleSnapshot (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.Snapshot.AnsiConsoleSnapshot.md): Drives the *real* `ConsoleManager` ANSI render path headlessly, captures the emitted escape sequences via `AnsiOutput`, and parses them back into an `AnsiScreen`. - [AnsiScreen (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.Snapshot.AnsiScreen.md): A small VT/ANSI screen model that parses the subset of escape sequences `ConsoleManager` emits and maintains a cell grid, exactly as a terminal would. - [ConsoleSnapshot (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.Snapshot.ConsoleSnapshot.md): Renders Jumbee.Console controls headlessly (without a real terminal) to a `ConsoleBuffer`, and converts that buffer to a text or PNG snapshot. Intended for tests and visual verification. - [SnapshotImageOptions (class)](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/api/Jumbee.Console.Snapshot.SnapshotImageOptions.md): Options controlling how a `ConsoleBuffer` is rendered to a PNG image. ## Optional - [Internals: Ansi and Legacy Terminal Rendering](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/internal/Ansi%20and%20Legacy%20Terminal%20Rendering.md): This document describes how `ConsoleManager` renders the same composited cell grid to two different classes of terminal: modern **ANSI** terminals that interpret VT escape sequences, and **legacy** terminals that don't (... - [Internals: ConsoleGUI and Spectre.Console Control Integration](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/internal/ConsoleGUI%20and%20Spectre.Console%20Control%20Integration.md): This document outlines the architectural pattern for integrating `Spectre.Console` widgets into the ConsoleGUI framework. - [Internals: ConsoleGUI Control Rendering](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/internal/ConsoleGUI%20Control%20Rendering.md): This document details how controls in the `ConsoleGUI` library are rendered, focusing on the `Control` base class and how container controls like `Border` manage their children. - [Internals: handoff](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/internal/handoff.md): Living "where we are / what's next" note. Companion to [`eval-findings.md`](eval-findings.md), which is the full backlog with evidence; this is the short version plus the operational context you'd otherwise have to redis... - [Internals: Input](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/internal/Input.md): How a key press or mouse action reaches the right control — across plain controls, layouts, composite controls, and nested layouts (e.g. a list inside a tab inside a grid). - [Internals: Mouse Input and Overlays](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/internal/Mouse%20Input%20and%20Overlays.md): This document describes the interactive-control core added on top of the rendering/layout base: per-control **mouse events** (hover, click, double-click), **wheel scrolling**, a floating **overlay/popup layer**, and the... - [Internals: Multithreading](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/internal/Multithreading.md): This document describes how Jumbee.Console handles threading: how the UI is updated and rendered, how background threads safely mutate controls, and the rules control authors must follow. - [Internals: Plot Roadmap](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/internal/Plot%20Roadmap.md): How the `Plot` control (Controls/Plot, backed by the forked `ext/ConsolePlot`) grows from a line/scatter plotter into a small plot framework, and where the drawing techniques come from. - [Internals: Rendering Model](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/internal/Rendering%20Model.md): This note records a deliberate architectural decision: Jumbee.Console composites the screen by **pulling cells through the control tree**, not by pushing widget output into one flat frame buffer. - [Internals: Snapshot Testing](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/internal/Snapshot%20Testing.md): `Jumbee.Console.Snapshot.ConsoleSnapshot` renders a control tree **headlessly** — no real terminal — into a `ConsoleBuffer`, then converts that buffer to either a **text** snapshot or a **PNG image**. - [Internals: Spectre.Console Control Rendering](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/internal/Spectre.Console%20Control%20Rendering.md): This document details the rendering model of the **Spectre.Console** library, specifically focusing on how controls (widgets) are measured, laid out, and rendered into ANSI escape sequences. - [Internals: Theming](https://raw.githubusercontent.com/allisterb/Jumbee.Console/master/docs/internal/Theming.md): This document describes how Jumbee.Console controls are themed: the two theme interfaces, the styling primitives they hand out, how a control captures them, how a theme can be switched **at runtime**, and how per-control...