fleury library

Fleury — Flutter ergonomics, terminal truth.

The native umbrella: the host SPI (fleury_host.dart, which itself re-exports the app-facing core fleury_core.dart) plus the dart:io-backed pieces — native terminal drivers, runApp, and stray-output capture. Browser hosts import fleury_host.dart and supply their own presentation/input surfaces.

See docs/rfcs/0007-fleury-framework.md for scope and gates.

Classes

AbsorbPointer
A complete pointer boundary: the cells this widget covers consume every pointer interaction — taps, secondary taps, drags, wheel scroll, hover — and block the dispatcher's click-to-focus, so nothing painted underneath can be invisibly activated, scrolled, hovered, or focused.
AccessibilityNode
One node in a text-first accessibility/fallback snapshot.
AccessibilitySnapshot
A text-first accessibility/fallback snapshot derived from semantic nodes.
AccessibilitySnapshotSummary
Aggregate facts for an accessibility/fallback snapshot.
ActiveKeyBinding
A user-visible key binding resolved against the current focus context.
Align
Positions a single child within the available space according to alignment.
Anchored
Shows overlay floating next to child while visible is true, such as a flyout below a button.
AnchoredFloat
The standard body of a float's OverlayEntry: child anchored to notifier's observed bounds, sitting on a pointer barrier that covers the whole overlay slot.
Animate
Plays a stack of effects over child, driving a 0→1 progress with the shared animation engine. Build it fluently from a widget:
AnimatedVisibility
Animates child in and out as visible toggles, deferring unmount until the exit effect completes.
Animation<T>
A value that animates toward whatever you retarget it to.
AnimationBuilder<T>
Animates toward value whenever it changes across a rebuild, rebuilding builder with the current interpolated value each frame. Owns its Animation internally — nothing to dispose.
AnimationType<T>
Converts a value of type T to and from a vector of doubles so the spring engine can integrate each component independently.
AnsiColor
One of the sixteen standard ANSI colors (0–15).
AnsiRenderer
Emits the minimum ANSI byte sequence required to update the terminal from previous state to next state.
AnsiSink
A destination for ANSI bytes. Production wiring sends them to stdout via IoSinkAnsiSink; tests capture them with StringAnsiSink.
AnsiTerminalPresentation
ANSI byte presentation, with the terminal-specific mechanisms its presenter needs. Widgets consume TerminalSessionProfile.surface instead.
AppCommand
A named application action with metadata, shortcuts, and invocation policy.
AppExit
Why runApp ended — so the caller owns process exit semantics (map signal to 128 + n exit codes, run cleanup in finally, then exit() yourself).
ApprovalPrompt
A yes/no decision dialog for one ApprovalRequest: title, explanation, optional subject and detail lines, and Approve/Deny buttons with y/n key shortcuts. Destructive requests focus Deny by default, so a stray Enter can't trigger an irreversible action. For half a second after the prompt appears, or shows a request with a different ApprovalRequest.id, it ignores the keys and clicks that approve (y, and Enter, Space, or a click on Approve), so typing or a click meant for what was there before can't approve it. Denying works at once.
ApprovalRequest
What an ApprovalPrompt asks the user to approve: a title, a message, an optional subject and detail lines, a severity, and the button labels.
AppStatusBar
Renders the current app status items as a compact terminal status bar.
AreaChart
A filled area chart: each series is shaded from the bottom of the plot up to its line, in a flat color or a vertical gradient, using block characters so the fill reads as one continuous surface.
AreaSeries
One filled series for AreaChart: the region from the y-min baseline up to the curve is shaded with a solid block fill.
AspectRatio
Sizes its child to a target width:height ratio while staying within the parent's constraints. When bounded constraints admit the ratio, the largest matching box wins. An unbounded axis falls back to its minimum, and incompatible minimums can force the result away from the target ratio.
AsyncSnapshot<T>
An immutable snapshot of the most recent interaction with an async source. Mirrors Flutter's AsyncSnapshot.
Autocomplete<T extends Object>
A text field that suggests matching options in a dropdown as the user types.
Bar
One column in a BarChart.
BarChart
A vertical bar chart with optional category labels (below) and value labels (above). Bar heights are rendered with the eight vertical block elements (▁▂▃▄▅▆▇█), so partial cells render proportionally.
BlinkingCursor
A single-cell cursor that blinks at the configured cadence. Even-numbered frames show the glyph; odd-numbered frames show a space (same width, preserves layout).
BlockRect
One axis-aligned rectangle of ink inside a single cell, in eighths of the cell box, with the origin at the cell's top-left.
BorderGlyphs
The six glyphs needed to draw a four-sided box.
BoundsAnchor
Anchors its child to bounds observed elsewhere: it repositions the same frame they move, flips and clamps at the screen edge, and hides entirely while BoundsNotifier.visibleBounds is null — so a float never hovers over unrelated content after its target scrolls away.
BoundsNotifier
The observable: one widget's screen geometry, live.
BoundsObserver
The observer: publishes its child's screen geometry into notifier every frame. Layout- and paint-transparent — the child renders unchanged.
BoxBorder
A four-sided border drawn around a box.
BuildContext
A handle to the location of a widget in the element tree.
BuildFlushStats
Counts produced by one BuildOwner.flushBuild call.
BuildOwner
Button
A focusable button, drawn as [ content ] by default, that calls onPressed on Enter, Space, or a click.
CalendarHeatmap
A GitHub-contribution-graph-style calendar heatmap: each cell is one day, columns are weeks, rows are days of the week. A day with a value shows one of five glyphs (·░▒▓█) by where the value falls in the range from min to max (fitted to the data by default); a value at or below the low end shows as a dim dot, so recorded days stay visible, and days with no entry stay empty.
Canvas
A sub-cell drawing surface for custom plots, diagrams, and markers.
CanvasBounds
Logical drawing extents for a Canvas. Logical Y increases upward, like a math plot; the canvas flips it when mapping to terminal pixels.
CanvasContext
Receives drawing calls from a CanvasPainter. Coordinates are in the canvas's logical space; the canvas maps them to the sub-cell pixels of its Canvas.marker.
CanvasPainter
A Canvas's drawing routine.
CapabilityEvidence
One inspectable provenance record for a capability fact.
CapabilityFallback
Human-readable fallback metadata for a capability requirement.
CapabilityRequirement
A widget or service request for one terminal feature.
CapabilityResolution
Canonical capability result for diagnostics, semantics, and tests.
CapabilityTruth
Runtime truth for one feature at one decision boundary.
CaretHost
Implemented by an editable text render object: where its caret is, in its own coordinates. FocusNode.caretRect projects it onto the screen.
Cell
One terminal cell: the smallest addressable unit in the cell grid.
CellBuffer
A two-dimensional grid of Cells representing one frame of the terminal rendering output.
CellConstraints
Integer cell constraints passed parent-to-child during layout.
CellOffset
An integer (column, row) position in the terminal grid.
CellRect
A rectangle in the terminal grid expressed as an offset and size.
CellSize
An integer width/height in terminal cells.
CellSpanBuilder
Builds row span models from a CellBuffer.
CellSpanRun
One contiguous visual run in a row.
CellStyle
Visual attributes applied to a Cell in addition to its grapheme.
CellWidthPolicy
How many cells each measured width class occupies on this surface.
Center
Centers its child in the available space.
Checkbox
A boolean checkbox: [x] checked, [ ] unchecked. Enter or Space toggles it when focused, as does a click, calling onChanged with the new value. A controlled widget — hold the value yourself and update it from onChanged. Passing null disables it.
Clipboard
System-clipboard interop.
ClipboardScope
Shares the host-installed Clipboard with descendants — a Scope<Clipboard>.
ClipboardWritePolicy
Policy for one clipboard write operation.
ClipboardWriteReport
Structured result for diagnostics, semantics, and tests.
Clock
Abstract source of monotonic elapsed time.
CodeDocument
Parsed source document rendered by CodeView.
CodeLine
One rendered source line in a CodeView.
CodeView
A read-only source viewer with a line-number gutter, coarse per-line styling (comments, imports, keywords, and strings each get a tone), and a selected line.
CodeViewController
Controller for CodeView browsing.
CodeViewCopyOptions
Options for copying from CodeView.
CodeViewCopyResult
Result delivered after CodeView copies source text.
Color
A terminal color expressed in one of three palettes.
ColorPicker
A grid of color swatches: the arrow keys preview a color, and Enter, Space, or a click commits one.
Colors
Named color constants, in the spirit of Flutter's Colors — saves you from typing RgbColor(220, 20, 60) for "crimson." Two flavours:
ColorScheme
A small set of semantic color roles an app draws from. Deliberately lean (unlike Material's couple-dozen roles): the handful a terminal UI actually reaches for. foreground/background default to null, which means "use the terminal's own default" — the right baseline for a TUI, since the user's color scheme should show through unless overridden.
Column
Lays out its children in a vertical line.
CommandButton
A Button backed by an AppCommand in the active command registry.
CommandContext
Runtime context passed to app commands and predicates.
CommandId
Stable identifier for an app command.
CommandInvocationResult
Result of a programmatic command invocation.
CommandPalette
A fuzzy command palette.
CommandPaletteItem
One callback-backed row in a fixed-list CommandPalette.
CommandRegistry
Scoped registry for active app commands.
CommandRegistryScope
Shares a CommandRegistry with descendants — a Scope<CommandRegistry>.
CommandScope
Adds commands to the active app command scope.
CompletionTextInput
A TextInput with an anchored completion menu.
ComponentElement
Base for elements that produce a single child by invoking some build callback. Used by StatelessElement and StatefulElement.
ConstrainedBox
Forces its child to satisfy additional layout constraints. Sits between SizedBox (which sets one fixed size) and a bare child (which uses whatever the parent gave it) — useful when you want "at least 20 cells wide, no more than 40" or similar bounds.
Container
One visual region: size, spacing, background, border, and alignment in a single widget.
ContextItem
One app-owned context item displayed by ContextPanel.
ContextPanel
A panel listing what is in the model's context window — files, messages, tool output — with each item's kind, priority, and token count under a one-line total. Turn on showTokenShare to append each item's share of the panel's tokens and make it obvious which items dominate the window.
ContextPanelController
Controller for ContextPanel browsing and viewport state.
ContextPanelCopyOptions
Clipboard/export behavior for ContextPanel selected-item copy.
ContextPanelCopyResult
Result delivered after ContextPanel copies the selected item.
ContextPanelSelectResult
Result delivered after ContextPanel activates a context item.
ConversationEntry
One conversation, thread, or session exposed by ConversationNavigator.
ConversationNavigator
A searchable list of conversations or sessions. Each row shows a title, status, and latest message (plus an unread count or pinned mark when they apply), and typing in the query field filters the rows.
ConversationNavigatorController
Controller for ConversationNavigator browsing and viewport state.
ConversationNavigatorCopyOptions
Clipboard/export behavior for ConversationNavigator selected-row copy.
ConversationNavigatorCopyResult
Result delivered after ConversationNavigator copies the selected row.
ConversationNavigatorSelectResult
Result delivered after ConversationNavigator activates a row.
Curve
An easing function that maps a normalized parameter t in [0, 1] to another value in [0, 1].
Curves
Named curves. Each preserves the boundaries and is const.
DataTable
A virtualized table for large collections of text rows.
DataTableColumn
A column in a DataTable.
DataTableController
Navigation and range-selection state for DataTable.
DataTableCopyOptions
Clipboard behavior for DataTable selected-row copy.
DataTableCopyResult
Result delivered after a DataTable selected-row copy completes.
DataTableExportOptions
Options for exporting DataTable rows.
DataTableExportResult
Result of exporting DataTable rows.
DataTableFilterDescriptor
Filter behavior for buildDataTableRowOrder.
DataTableSelectionRange
A rectangular range of table cells.
DataTableSortDescriptor
Sort behavior for buildDataTableRowOrder.
DataTableViewportMetrics
Current viewport geometry for a rendered DataTable.
DatePicker
A month-at-a-time date picker. Renders a header (< January 2024 >), the day-of-week row, and a 7-column day grid. The current selection (value) is highlighted; cursor navigation moves it.
DebugConfig
Top-level config the app declares once via runApp(debug: ...).
DebugController
Mutable runtime state — flips between modes, switches tabs, toggles in-panel options. The shell + panel listen and rebuild.
DebugEvents
DefaultTextStyle
Cascades a base CellStyle onto descendant Text widgets, which merge their own style on top. Nest it to restyle a subtree (e.g. dim a whole panel) without touching each Text.
DefaultWidthResolver
Default width resolver: East Asian Width (UAX #11) and emoji presentation (UTS #51), from tables generated over the full Unicode Character Database — see width_tables.dart. Complete rather than excerpted, so a code point nobody anticipated still gets the width the standard assigns it instead of falling through to a guess.
Dialog
Modal chrome — a bordered, padded panel with an optional title — ready to hand to present.
DiffDocument
A parsed unified diff document.
DiffLine
One parsed unified-diff row.
DiffView
A unified-diff viewer: additions, deletions, and hunk/file headers each styled, with an old | new line-number gutter.
DiffViewController
Controller for DiffView browsing.
DiffViewCopyOptions
Options for copying a DiffView selected row.
DiffViewCopyResult
Result delivered after DiffView copies a row or hunk.
Digits
Large numerals for clocks, timers, and counters, each character drawn five rows tall. text can contain the digits 0 to 9, :, ., -, and spaces.
DiscreteLerp<T>
Snaps from a to b at t == 0.5. For values that don't sit on a meaningful number line (indexed colors, glyph swaps, icon transitions).
EdgeInsets
Insets in terminal cells on each side of a rectangle.
Effect
A composable visual effect. Maps progress t in [0, 1] to a widget that wraps child. Combine with + to run in parallel.
Effects
Factory for the built-in effects. Compose with +:
Element
Mounted instance of a Widget with stable identity across rebuilds.
EmptyBox
A widget that mounts as a leaf and produces no visible output.
ErrorBoundary
Contains layout/paint exceptions thrown by child.
ErrorWidget
The fallback shown in place of a subtree whose build threw — a red, bordered panel with the error message, so one broken widget doesn't take down the whole UI (and the dev sees what failed).
EventHandled
Returned by an event handler to claim an event whose unhandled default would act — today that's SignalEvent, whose unclaimed default is "terminate" (AppExit.signal). Claiming hands the shutdown to the app, which finishes by calling exitApp once its cleanup is done. Mind the driver's grace deadline: shutdown must complete within it or the process is force-terminated.
EventResponse
What a TuiEventHandler can tell the runtime about an event.
ExcludeFocus
Removes its subtree from focus while excluding is true.
ExcludeSemantics
Drops child's whole subtree from the semantic tree (while still rendering it) when excluding is true.
ExitRequested
Returned by an event handler in runApp to ask the loop to exit cleanly (runApp resolves with AppExit.requested).
Expanded
A widget that takes a flex share of the available main-axis space in a Flex. Always uses FlexFit.tight — the child is forced to take exactly its allocation.
ExternalEditorCommand
Editor command metadata before the target file path is appended.
ExternalEditorProcessRequest
Resolved native process invocation used for an external editor session.
ExternalEditorResolvedCommand
A resolved editor command and the policy source that selected it.
ExternalEditorResult
Result from a completed external editor session.
ExternalEditorTempFile
Temporary file allocated for an external editor session.
ExternalEditorTempFileRequest
Request metadata for creating an external editor temp file.
FakeTerminalDriver
A TerminalDriver for tests and offline rendering. No real I/O — the driver buffers everything written, exposes the buffer for assertions, and lets the test push events into the event stream.
FileBrowser
A directory browser that shows one folder at a time and reports the file the user opens to onActivate.
FileBrowserController
Controller for FileBrowser browsing and visible-range observation.
FileBrowserCopyOptions
Clipboard behavior for FileBrowser selected-entry copy.
FileBrowserCopyResult
Result delivered after FileBrowser copies the selected entry.
FileBrowserFilterDescriptor
Filesystem filter applied by FileBrowser.
FileEntry
One entry in a directory listing, as FileBrowser and FilePicker show it.
FileMentionCopyOptions
Clipboard/export behavior for FileMentionPicker selected-mention copy.
FileMentionCopyResult
Result delivered after FileMentionPicker copies the selected mention.
FileMentionEntry
One file-like mention target for composer and developer-tool workflows.
FileMentionPicker
An @-mention picker: a query input over a ranked list of files, directories, symbols, and URLs, where picking an entry hands the composer its mention text (@lib/src/app.dart). Results rank exact, prefix, substring, then fuzzy matches; supply matcher to replace the ranking entirely.
FileMentionPickerController
Controller for FileMentionPicker browsing and viewport state.
FileMentionPickResult
Result delivered after FileMentionPicker picks a mention.
FilePicker
A file picker that shows one directory at a time as a scrollable list and passes the file the user chooses to onSelect.
FileSource
Where FileBrowser and FilePicker read directories from.
FixedColumnWidth
Sizes the column to an exact width in cells.
FleuryApp
The app-scale shell: it installs the app's theme, its commands with their keyboard shortcuts, a StatusController for status items, typed extensions, focus traversal, and the app's semantic node, labeled title; then it shows home in a root Navigator, or your own child shell.
FleuryAppController
Root controller installed by FleuryApp.
FleuryAppExtension
Optional convention for app-level extension objects.
FleuryAppScope
Shares a FleuryAppController with descendants — a Scope<FleuryAppController> installed by FleuryApp.
FleuryWidgetTheme
Component-level defaults for the bundled widget catalog.
Flex
Lays children along a main axis using the flex protocol from RenderFlex. Row and Column are convenience subclasses that fix the direction.
FlexColumnWidth
Takes a flex share of the width left after fixed/intrinsic columns (and gaps). With several flex columns, space splits proportionally. Falls back to intrinsic sizing when the table has no width bound.
Flexible
A widget that takes up to a flex share of the available main-axis space in a Flex. With FlexFit.loose the child can take less than its allocation; with FlexFit.tight it must take exactly that much.
Focus
Makes its subtree focusable: wires a FocusNode into the tree so the widget can hold keyboard focus and join Tab and arrow traversal.
FocusDetector
Reports when keyboard focus enters or leaves its subtree.
FocusManager
FocusManagerScope
Root of the focus tree. Installed by runApp so application widget code can always reach a FocusManager via FocusManager.of.
FocusNode
A long-lived focus identity. One per Focus widget; consumers can also create their own and pass it into a Focus to keep focus state stable across reparenting.
FocusScope
A boundary for focus memory and optional focus trapping.
FocusScopeRef
Identity object for a FocusScope. The scope itself stays out of the public API; consumers interact with FocusScope the widget.
FocusTraversalGroup
Catches arrow chords that bubble out of the focused widget and moves focus to the spatially nearest focusable in that direction. With no current focus, Right/Down enters at the first control in reading order; Left/Up enters at the last. Merely mounting the group does not focus or activate a control.
Form
A behavioral boundary that coordinates descendant FormField widgets.
FormController
Coordinates validation and submission for one mounted Form.
FormField
One validated value in a Form.
FormFieldState
Current validation state exposed by FormField.builder.
FrameBuilder
Builds builder's widget once per frame as a FrameTicker driven at interval advances.
FrameChanged
Cells changed; rows and bounds locate them exactly.
FrameContainmentError
A contained layout/paint failure: the error and where it escaped. The screen region the error presentation occupies is the boundary's own derived geometry (RenderObject.screenGeometry).
FrameDiffStats
The surface-specific slice of a FrameEvent: how a presenter measured this frame's diff. Everything else in the event is surface-neutral and owned by the FrameDriver.
FrameDriver
The frame program for one Fleury runtime.
FrameFullRepaint
No comparable previous frame — a cold buffer pool or a resize. Present everything. Not a fallback for damage the loop failed to compute; the loop always computes it.
FramePresentationDamage
Damage data normalized for surface presenters.
FramePresentationPlan
Presenter-ready frame data computed once by the host.
FramePresentationPlanner
Builds FramePresentationPlans from shared runtime frame output.
FramePresenter
Write phase: turns one rendered frame into host output (ANSI bytes, wire frames, DOM mutations). Called exactly once per rendered frame, after damage capture and BEFORE commit.
FramePresentInfo
Per-frame context handed to the presenter: the trigger, the plan (when requested), and debug-phase timings (zero durations when no debug consumer is watching).
FrameScheduler
Coalesces frame requests and optionally caps the render rate.
FrameScrolled
The frame is a beneficial upward scroll: shift what is already on screen up by scrollUpRows, then repaint the residue.
FrameSemanticsPipeline
The shared semantics engine for one runtime.
FrameTicker
Frame-indexed ticker driven by a TickerScheduler. Notifies its listeners each time enough time has elapsed since the last notification to advance the frame counter.
FrameUnchanged
The two frames render identically. Present nothing.
FrameViewportSnapshot
Read phase: the host's viewport, sampled once at the top of every frame. The ONLY phase permitted to perform host layout reads (DOM measurement, terminal size ioctls).
FutureBuilder<T>
Rebuilds with the latest AsyncSnapshot of future.
Gauge
A single-value status indicator: a horizontal bar with an optional inline label and a percentage suffix. Sub-cell precision via the horizontal eighth-block glyphs (▏▎▍▌▋▊▉█).
GestureDetector
Reports taps (and right-clicks) on its child. A tap is a press and release within the same region — the terminal analogue of a button press. Moving to a different cell while held cancels the tap, even inside the region. The innermost tap/drag target owns the tap, so wrapping an interactive child does not observe the child's taps or add secondary handling: onTap and onSecondaryTap fire only on the innermost target. A drag goes to the nearest drag target from the pressed child outward, and that target also receives onTapDown. Pair with a Focus if the target should also take keyboard focus (click-to-focus handles that automatically for focusables).
GlobalKey<T extends State<StatefulWidget>>
A Key unique across the whole tree, indexing the element that currently carries it. Use it to reach a mounted widget's state or context imperatively from outside the build — e.g. to call a method on a State, or to capture a BuildContext for an overlay:
Heatmap
A 2D grid of values, each rendered as a block character whose density represents the cell's intensity within the visible range.
Histogram
A frequency-distribution chart: bins continuous values into equal-width buckets and renders the counts as a BarChart. Useful for benchmark distributions, latency percentiles, request-size histograms.
HotReloadController
Owns the hot-reload integration for one TUI session.
Image
Renders a raster image, adapting to what the surface can do.
ImageSource
Source for an Image widget. Provides decoded pixels and caches decoding.
IndexedColor
A 256-color palette entry (0–255).
IndexedStack
Shows the child at index and keeps the rest mounted but unpainted, so their state survives switching between them — the basis for tabbed or paged surfaces that must remember each page. Sized to the largest child; an out-of-range index shows nothing.
InlineImage
One inline image's content, off the cell grid, content-addressed by id. The grid carries Cell.overlay cells over the placement region; presenters read the bytes from here. Geometry (where and how big) is NOT here — it belongs to the placement, since the same bytes can appear at several sizes/positions in one frame.
InlineImagePlacement
One visible placement of an inline image.
InlineTerminalDriver
A native driver that can resize a live inline region.
InProcessClipboard
Platform-neutral clipboard: writes populate the in-process register only, never touching stdout or spawning subprocesses. The test default (FleuryTester installs one and exposes it as tester.clipboard) and the io-free fallback for embedders that have no platform clipboard.
InputBatch
One normalized input packet: a key event, committed text, or both — RFC 0020 §5's batch model.
InputDispatcher
Owns the runtime input pipeline. One instance per runApp. Tests can construct one against a hand-built FocusManager.
InputParser
State machine that consumes raw bytes and emits typed input events.
IntrinsicColumnWidth
Sizes the column to the widest cell in it (the default).
IntrinsicHeight
Sizes child to its own intrinsic height — the tallest it wants to be, not the tallest the parent allows. Mirror of IntrinsicWidth.
IntrinsicWidth
Sizes child to its own intrinsic width — the widest it wants to be, not the widest the parent would allow. The classic use: a button or label sized exactly to its text rather than stretched to fill a Row.
IoSinkAnsiSink
Wraps a Dart IOSink (typically stdout) as an AnsiSink.
JsonView
A collapsible tree view of a JSON value: ▸/▾ rows expand and collapse in place, and values are colored by type. Invalid source is rendered as a parse-error state instead of throwing.
JsonViewController
Controller for JsonView expansion and browsing.
JsonViewCopyOptions
Options for copying a JsonView selected row.
JsonViewCopyResult
Result delivered after JsonView copies the selected row.
JsonViewDocument
Parsed or already-materialized JSON content rendered by JsonView.
JsonViewRow
One visible row in a JsonView.
Key
A token used by the widget framework to control element reuse during reconciliation.
KeyBinding
One key binding: a KeySequence (plus optional aliases that fire the same action), a handler, an optional hint-bar label, and an enabled flag.
KeyBindingEvent
Passed to every KeyBinding.onTrigger handler. Exposes what matched (match), the raw event(s), and per-dispatch propagation control (bubble).
KeyBindings
Keyboard shortcuts for a subtree: each KeyBinding fires while focus is inside child.
KeyBindingSource
Marker interface for objects that contribute key bindings to the active focus chain.
Keyboard
The surface's keyboard: what it guarantees, and what is held right now.
KeyboardCapabilities
What a keyboard surface has been confirmed to guarantee (RFC 0020 §5.7): semantic capabilities, never raw protocol flags, projected from what negotiation confirmed — not what was requested.
KeyboardLayout
Maps physical key positions to the caps the user actually has.
KeyboardScope
Shares the session keyboard with the widget tree — a Scope<KeyboardStateNotifier>. Installed by the host composition root; depended on by Keyboard.of.
KeyboardSnapshot
An immutable, frame-latched view of the session keyboard (RFC 0020 §5.6/§7): what is held, and which identities transitioned since the previous latch. Edges are non-consuming and expire at the next latch whether or not anyone read them; a paused consumer gets no backlog.
KeyboardStateNotifier
Publishes the session keyboard to the tree, notifying on capability and session changes only — never on key transitions (see Keyboard).
KeyCode
One logical key: a printable character or a special key.
KeyCompletion
One way a PendingKeySequenceMatch can continue: the label of the next key (next, e.g. f, Ctrl+S) and the binding it would fire.
KeyDetector
Low-level key handling inside a widget: sees each key that reaches its subtree and consumes only the ones it handles.
KeyEvent
A non-text key press: exactly one KeyCode plus its modifiers.
KeyHintBar
A one-line bar listing the labeled key bindings active for the current focus, as [key] label · [key] label. It updates when focus moves.
KeyLabel
A label plus its provenance.
KeyPhaseObserverRegistration
One observation-lane registration and its scope projection (RFC 0020 §10's observer-level stream contract). Framework-internal: created via InputDispatcher.addKeyObserver, consumed by KeyBinding.hold and the keyboard inspector.
KeySelector
One key identity, of either kind: a logical KeyCode (what the cap says) or a physical KeyPosition (where the key sits).
KeySequence
A pattern that matches one or more keypresses — the value a KeyBinding binds and the InputDispatcher matches events against.
KeySequenceMatch
What a KeyBinding matched: the specific sequence (alias) that fired and every KeyEvent it consumed.
LayoutBuilder
Builds its child from the constraints it actually receives, so layout can adapt to the available space — a sidebar that collapses below a width, a list that switches to a grid when wide, etc.
LeafRenderObjectElement
Element for a LeafRenderObjectWidget.
LeafRenderObjectWidget
A render-object widget with no children.
LegacyKeySequence
One fixed legacy terminal byte sequence and its semantic key.
Lerp<T>
Interpolates between two values of type T.
LineChart
A multi-series line chart with sub-cell-resolution braille rendering. Axes (optional) display labels at the min, midpoint, and max of each dimension's visible range.
LineSeries
One named series of (x, y) points for LineChart to plot.
ListController
Navigation cursor and viewport state for a ListView.
Listenable
An object that can notify listeners when something about it changes.
ListView
A scrollable, keyboard-navigable list of items, vertical by default or horizontal with scrollDirection.
LocalFileSource
The local disk, read through dart:io. FileBrowser and FilePicker use it by default on native platforms; it is not available in the browser.
LocalKey
Base class for keys that are local to a parent's children list.
LogBuffer
A bounded, observable record of captured stray output. The oldest lines are dropped once capacity is exceeded. Notifies listeners on each append so a log view can repaint.
LogBufferScope
Shares a LogBuffer with descendants. runApp installs one above the app so OutputCaptureView / OutputCaptureConsole (including in floating overlays) can find the captured output without it being threaded through constructors.
LogEntry
One logical row in a LogRegion.
LogLine
One captured logical line of stray output.
LogRegion
A scrolling log view that keeps the newest entry in view as entries arrive, with severity styling, filtering, and copy.
LogRegionController
Controller for LogRegion browsing and tail-follow behavior.
LogRegionCopyOptions
Clipboard behavior for LogRegion selected-entry copy.
LogRegionCopyResult
Result delivered after LogRegion copies the selected entry.
LogRegionExportOptions
Options for exporting LogEntry rows.
LogRegionExportResult
Result of exporting LogEntry rows.
LogRegionFilterDescriptor
Filter applied to LogRegion source entries.
LogRegionSearchIndex
Reusable search index for large LogRegion entry lists.
MarkdownBlock
One visible Markdown row in a MarkdownView.
MarkdownDocument
Parsed Markdown rendered by MarkdownView.
One Markdown link discovered outside fenced code blocks.
MarkdownText
A widget that renders a data string of light Markdown as styled terminal cells.
MarkdownView
A Markdown document viewer with a block cursor: content renders styled (headings tinted, inline bold/italic/code, blockquotes, fences), and one block (a line of the source) is selected at a time.
MarkdownViewController
Controller for MarkdownView browsing.
MarkdownViewCopyOptions
Options for copying from MarkdownView.
MarkdownViewCopyResult
Result delivered after MarkdownView copies Markdown text.
MediaQuery
Exposes the surface's MediaQueryData to its subtree, updated when the surface resizes. Read it with MediaQuery.sizeOf(context) — the preferred accessor: it stays correct if the data grows new fields (where reading the whole object would over-rebuild, Flutter's well-known MediaQuery.of footgun).
MediaQueryData
Ambient information about the rendering surface: its size in cells and the backend-neutral capabilities it reports. A terminal, a DOM grid, and a served session all describe themselves through the same vocabulary — terminal-only concerns (escape protocols, multiplexer passthrough) are presenter concerns and never appear here.
MemoryFileSource
A fixed, in-memory tree of /-separated paths.
A dropdown menu: activating trigger with Enter or a click opens a floating list of items just below it.
A row in a Menu: a selectable MenuItem, a nested SubMenu, or a MenuSeparator.
A selectable menu row. A disabled item (enabled false) is shown dimmed, skipped by arrow navigation and Enter, and ignores clicks.
A non-selectable divider rule between groups of items.
MessageEntry
One logical message in a MessageList.
MessageList
A conversation transcript: one row per message, prefixed and colored by role ([user], [assistant], [tool]…).
MessageListController
Controller for MessageList browsing and tail-follow behavior.
MessageListCopyOptions
Clipboard behavior for MessageList selected-message copy.
MessageListCopyResult
Result delivered after MessageList copies the selected message.
MessageListExportOptions
Options for exporting MessageEntry rows.
MessageListExportResult
Result of exporting MessageEntry rows.
MicrotaskSemanticFlushScheduler
Same-task scheduler: the flush runs as a microtask, after the visual frame's synchronous work but within the same event-loop task. The wire presenter's default — semantics for a rendered frame reach the peer in the same task as its plan, so "semantics for the just-rendered frame" stays literally true for agents and MCP settle windows don't lengthen.
ModelStatusBar
A one-line status bar for the active model: provider/name, lifecycle state, and — when known — mode, latency, and queue depth, with a TokenMeter beside it by default. The line recolors as the runtime moves between states (connecting, ready, streaming, degraded, error).
ModelStatusInfo
Model and runtime status shown by ModelStatusBar.
MouseEvent
A mouse report (SGR 1006). col/row are 0-based cell coordinates. Only delivered when the app enabled TerminalMode.mouse.
MouseRegion
Reports the pointer entering, moving within, and leaving its child. Hover requires motion tracking (TerminalMode.mouseMotion); without it, enter/exit still fire on clicks.
MultiChildRenderObjectElement
Element for a MultiChildRenderObjectWidget.
MultiChildRenderObjectWidget
A render-object widget that holds an ordered list of children.
MultiSelect<T>
A keyboard-navigable list of checkable options.
Hosts a stack of screens: pages pushed on top of each other, and dialogs presented over them. FleuryApp(home: ...) creates one at the app root; nest another inside any layout slot to navigate within that region.
Notifier
A mutable model that publishes changes through notify.
NotifierBuilder<T extends Listenable>
Builds a subtree when notifier publishes a change.
NumberInput
A numeric variant of TextInput — accepts digits, an optional leading -, and (when allowDecimal is true) one .. Anything else is silently rejected so the field's text always parses, and onChanged fires with the parsed num (or null for empty / in-progress edits like "-" or "1.").
OutputCaptureConsole
The floating dev-tool console runApp toggles: a bordered, opaque log panel pinned to the bottom, height rows tall (clamped to fit).
OutputCaptureView
Renders captured output as a list of lines, newest at the bottom. When there are more lines than fit the available height it tails — showing the most recent that fit — so it behaves like tail -f. stderr lines take errorStyle (the theme's error color by default).
OutputFlowControl
Implemented by drivers whose output channel can back up — a remote driver writing to a socket a slow peer drains. The frame program defers frame PRODUCTION while isOutputBacklogged and resumes on outputDrained: state keeps accumulating in the retained tree, the diff base stays at the last frame the peer actually received, and the resumed frame ships one coalesced patch. Local terminal drivers don't implement this (a blocking stdout already applies backpressure).
Overlay
A region that hosts a stack of OverlayEntrys — modals, popovers, toasts, tooltips — that render on top of the main content.
OverlayEntry
One renderable layer inside an Overlay. Holds a builder and a handle for removing the layer when it's no longer needed.
OverlayMount
Converges an OverlayEntry's mountedness onto a predicate: mounted while mountWhen returns true, removed while it returns false.
OverlayState
Mutable state for an Overlay. Provides insert for adding entries and is the type returned by Overlay.of.
Padding
Wraps child in an EdgeInsets of empty cells on each side.
Palettes
Pre-built color palettes for the viz catalog.
Panel
A bordered pane with a title row — the standard framing for dashboard meters, file-manager panes, log surfaces, and any multi-pane screen.
ParentData
Parent-attached layout metadata.
PasswordInput
A TextInput tuned for password / secret entry: every typed grapheme is rendered as a single • (or obscuringCharacter) regardless of what's in the controller. The real text is unchanged; only the displayed glyphs are masked.
PasteEvent
Clipboard text delivered by bracketed paste.
PasteEventClaimant
Optional richer paste contract for editable TextInputClaimants.
PatchReview
A file-by-file review of a patch: a file list with per-file review status and +added/-removed counts above an embedded DiffView of the change.
PatchReviewController
Controller for PatchReview file browsing and viewport state.
PatchReviewCopyOptions
Clipboard/export behavior for PatchReview selected-file copy.
PatchReviewCopyResult
Result delivered after PatchReview copies the selected file summary.
PatchReviewFile
One file entry in a PatchReview.
PatchReviewFileSelectResult
Result delivered after PatchReview activates a file row.
PendingKeySequence
A sequence under construction whose pending modifiers have no key yet.
PendingKeySequenceMatch
A snapshot of a sequence the user is partway through typing — the leader (Space, Ctrl+X) has landed and the dispatcher is holding for the next step. Read via KeyBindings.pendingOf; the value a which-key popup renders.
PointerDetails
A pointer position in terminal cells. Local coordinates are relative to the receiving region; global coordinates are relative to the application surface.
PointerDragDetails
Captured primary-button motion, including the initial press and movement since the previous report. Delta stays stable when the region itself moves.
PointerRouter
Routes pointer input against the presented render tree. Gesture capture lasts until the matching release or cancellation; hover and wheel follow ancestors.
PointerRouterScope
Shares a PointerRouter with its subtree — a Scope<PointerRouter>. Read by pointer widgets so their render objects can register. Provided once near the root.
PointerScrollDetails
One wheel step in cells. Negative delta.row scrolls up and positive scrolls down; negative delta.col scrolls left and positive scrolls right. Shift+vertical wheel input is delivered as horizontal movement.
PopScope
Guards the route it sits in against a user's request to go back.
Positioned
Places its child at the given offset (and optional size) inside a Stack.
PosixTerminalDriver
Native POSIX terminal lifecycle and byte-input driver.
PresentationChanged
Present the rows the producer measured; dirtyBounds narrows that further when known.
PresentationFullRepaint
Present everything: there was no comparable previous frame, or a host resynced the surface from scratch.
PresentationScrolled
The frame is a detected upward scroll: shift the surface's first scrollUpRows retained rows to the bottom, then apply the plan's FramePresentationPlan.dirtyRowModels — which cover only the residue (entering rows plus rows that changed beyond the shift).
ProgressBar
A horizontal bar for task progress. A value from 0 to 1 fills the bar proportionally; null shows an indeterminate sweep for work of unknown length.
ProxyWidget
A widget that proxies a single child without affecting layout or painting. The base for widgets whose only purpose is to inject something into the tree: a Scope value, a semantics bridge.
Radio<T>
A single choice in a group: selected when value equals groupValue ((o) selected, ( ) not). Enter or Space selects it when focused, as does a click, calling onChanged with this radio's value. Give every radio in the group the same groupValue and onChanged. Passing null disables it.
RadioGroup<T>
A controlled group of Radios: hold the selected value and update it from onChanged.
RadioOption<T>
A typed option for a RadioGroup.
RangeSlider
A two-handle slider for picking a numeric (low, high) range. The selected interval is a filled bar between a solid active handle (●) and a hollow inactive one (○). Click the track to move the nearest handle, or drag to slide that handle. Left/Right move between the two handles (they sit low-left, high-right); Up/Down change the active handle's value by step, PageUp/PageDown by largeStep, Home/End jump to min/max (still clamped so the handles can't cross). Each arrow bubbles at its edge so focus can leave the widget — Left/Right past the outer handle, Up/Down once the value is pinned — and Tab is left free for traversal.
ReferenceLine
A horizontal or vertical marker line — a target, limit, or threshold. It is painted under the series lines so it doesn't obscure them, but over gradient-filled areas.
RemoteSurfaceSink
A driver that wants structured frames instead of ANSI bytes.
RenderAlign
Render object for Align and Center. Lays out its child with loosened constraints, then places the child at the alignment- determined offset within the parent's box.
RenderBorder
Draws a four-sided box around its child using box-drawing graphemes.
RenderDamageTracker
The per-runtime record of render invalidations: whether the next frame can differ from the last one, when to request it, and when derived screen geometry is stale. It also numbers root paint passes, so a subtree that stops painting can retract what it published (PaintPassParticipant).
RenderErrorBoundary
The containment render object. See the library comment for the model.
RenderErrorContainment
Implemented by render objects that absorb subtree layout/paint exceptions. The semantics walk consults it to project a single errorBoundary node (and drop the invisible descendants).
RenderFlex
Lays out a list of children along a main axis using a flex-based allocation algorithm.
RenderFlexible
A pass-through render object marking its child as flexible inside a RenderFlex. The flex factor and fit are read by RenderFlex during the main-axis allocation pass; otherwise this render object just forwards layout and paint to its child.
RenderGeometry
Where something sits on screen and how much of it is visible.
RenderIndexedStack
Keeps every child mounted and laid out, but paints only the one at index. Because the off-screen children stay in the tree, their State (scroll position, text, expansion…) survives switching away and back — the state-preserving counterpart to swapping the subtree.
RenderObject
Base for everything that participates in layout and paint.
RenderObjectElement
Base for elements that own a RenderObject.
RenderObjectWidget
Base for widgets that produce a RenderObject and participate in the layout / paint passes.
RenderObjectWithChildren
Marker interface for render objects that hold an ordered list of children. The multi-child element layer manages the list explicitly during reconciliation via replaceAllChildren rather than the single-child attach/detach hooks.
RenderObjectWithSingleChild
Marker interface for render objects that hold exactly one child. The element layer uses this to attach/detach the child render object when the widget tree changes.
RenderPadding
Insets a child by padding cells on each side.
RenderPositioned
A pass-through render object marking its child as positioned inside a RenderStack. The stack reads left, top, width, and height to lay out and place the child.
RenderRepaintBoundary
A render object that owns a CellBuffer cache for its subtree's paint.
RenderSizedBox
Constrains a child to specific dimensions (or, with a null child, just reports its own preferred size).
RenderStack
Stacks children at the same origin and lets later siblings overwrite earlier ones. Non-positioned children determine the stack's size (intrinsic of the largest); positioned children float on top with explicit offsets and sizes.
RenderText
Paints a sanitized, grapheme-aware string into the terminal grid.
RenderWrap
Flows children into wrapping runs along the horizontal axis.
RepaintBoundary
Marks child's subtree as its own paint isolate.
ResizeEvent
Terminal viewport size changed (e.g. from SIGWINCH on POSIX).
ResolvedImageFit
The geometry a fit resolves to: a destination sub-rectangle inside the placement box (in cells, relative to the box top-left) plus the source-pixel window to display there.
ResolvedTextPresentationPolicy
A TextPresentationPolicy plus the per-axis record of where each value came from. The policy is the operational value; decisions exists for fleury diagnose and conservative gating, and deliberately does not participate in equality.
RgbColor
A 24-bit RGB color.
RichText
Renders a TextSpan tree: multiple styles on a line, with the same wrapping, maxLines, and overflow behavior as Text. The ambient DefaultTextStyle is the base the root span merges onto.
RouteTransition
The enter/exit effects (and timing) a route animates with.
Row
Lays out its children in a horizontal line.
RowSpanModel
Pure span model for one visible row.
RuntimeErrorOverlay
A full-screen overlay layer that shows a dismissible error banner whenever reporter has a current error, and nothing otherwise. Mounted as its own OverlayEntry above the app so it never touches the app's layout — the app keeps running and rendering full-screen underneath.
RuntimeErrorRecord
One captured application error or hot-reload diagnostic.
RuntimeErrorReporter
Collects uncaught runtime errors — a throwing event handler, a failed async callback, a scheduled-frame error — and drives the on-screen RuntimeErrorOverlay.
Scope<T extends Object>
Shares a value with the widgets below it.
ScopeBuilder<T>
Rebuilds a subtree when its nearest Scope changes or its value notifies.
ScopeElement<T extends Object>
Element for a Scope.
ScreenGeometrySource
Something that knows where it is on screen. Every RenderObject is one; focus nodes, carets, and bounds notifiers read geometry through this interface rather than recording it during paint, so a test can stand in a fixed rectangle without mounting a tree.
Scrollbar
A scroll indicator drawn beside child (vertical) or below it (horizontal), reflecting a ScrollController (or a ListController via Scrollbar.list). The thumb's size shows the visible fraction and its position shows how far you've scrolled; when everything fits, the thumb fills the track unless showWhenFits is false.
ScrollController
Mutable scroll state for a ScrollView: the current offset plus read-only metrics the render object writes back after each layout.
ScrollView
A scrollable viewport onto a single child.
SearchPanel
A search field over a list of results: typing filters and ranks them, and the user activates one.
SearchPanelCopyOptions
Clipboard/export behavior for SearchPanel selected-result copy.
SearchPanelCopyResult
Result delivered after SearchPanel copies the selected result.
SearchResult
One result rendered by SearchPanel.
SearchResultIndex
Cached, sanitized search index for SearchResult collections.
Select<T>
A dropdown picker: a focusable trigger showing the current value (or a placeholder) that, when activated, opens a floating list of options anchored just below it.
Selectable
A render object that participates in selection.
SelectedContent
Selected text contributed by a single Selectable. The root SelectionArea concatenates these (in reading order) to produce the final user-facing selection string.
Selection
An active selection, expressed as a pair of cell positions.
SelectionArea
Enables app-wide text selection in its subtree.
SelectionClearEvent
Clear the current selection.
SelectionContainerDelegate
Coordinates a set of Selectable children behind one parent SelectionRegistrar.
SelectionEdgeUpdateEvent
Move the start or end edge of the selection toward globalPosition (screen-space cell coordinates). The receiving Selectable computes the cell index nearest that point within its own bounds and clamps as appropriate.
SelectionEvent
One discrete action against the selection state. Dispatched by the root SelectionArea to its registered Selectables via a SelectionRegistrar.
SelectionGeometry
A snapshot of how much of one Selectable's content is currently selected. Selectables notify their registrars when this geometry changes so the rendering tree can repaint the affected selection.
SelectionGranularEvent
Select a granular unit (word, line, all) without explicit start/end coordinates. The receiving Selectable interprets the granularity against its own content.
SelectionRegistrar
Registrar interface — the API a Selectable uses to make itself known to (and forgotten by) the ambient SelectionArea.
SelectionScope
Publishes the ambient SelectionRegistrar to the subtree — a Scope<SelectionRegistrar>.
SelectOption<T>
One choice in a Select. A disabled option is shown dimmed, skipped by arrow navigation and Enter, and ignores clicks.
SemanticActionContributor
Implemented by semantic contributors that can execute semantic actions.
SemanticActionInvocationResult
Result of a semantic action invocation through tests or future adapters.
SemanticActionRequestSink
Optional presenter contract for host-routed semantic action requests.
SemanticChildrenProvider
Implemented by elements whose semantic subtree differs from their mounted element subtree.
SemanticContributor
Implemented by elements that contribute a semantic node.
SemanticCoverageAudit
Debug/audit data for semantic coverage of a visual frame.
SemanticCoverageResult
Result of applying the web semantic text fallback to a frame.
SemanticDirtySnapshot
Semantic dirty state captured for one rendered frame.
SemanticDirtyTracker
Frame-local semantic invalidations collected while the element/render tree updates.
SemanticFlushScheduler
Schedules deferred semantic flushes for the retained DOM host.
SemanticFlushStats
Neutral per-flush stats; hosts adapt them into their own instrumentation records.
SemanticFramePresenter
Presents a Fleury semantic snapshot to a host-owned accessibility surface.
SemanticInspectionNode
SemanticInspectionSnapshot
Machine-readable, redaction-aware semantic inspection snapshot.
SemanticNode
Immutable semantic description of a mounted UI node.
SemanticNodeId
Identity of a semantic node.
SemanticPresentationStats
Count data reported by a semantic presenter after one presentation.
SemanticRole
The durable meaning of a semantic node.
Semantics
App-authored semantic annotation.
SemanticsElement
SemanticsOwner
Retains the last semantic snapshot and reports node-level changes.
SemanticState
Extensible typed state carried by semantic nodes.
SemanticTree
Immutable semantic snapshot of a mounted Fleury app.
SemanticTreeUpdate
Node-level delta between two semantic tree snapshots.
SemanticValueContributor
Implemented by semantic contributors that can apply a SemanticAction.setValue payload. Opt-in and additive: only value-bearing nodes implement it, so the existing SemanticActionContributors are untouched. Return true if the value was applied.
SignalEvent
The process received a termination request (AppSignal).
SingleChildRenderObjectElement
Element for a SingleChildRenderObjectWidget.
SingleChildRenderObjectWidget
A render-object widget that wraps exactly one child.
SizedBox
A widget that imposes specific dimensions on its child.
Spacer
A flexible empty gap along the main axis of a Row or Column.
Sparkline
A compact, single-row history graph of recent numeric values, rendered with the eight vertical block elements (▁▂▃▄▅▆▇█).
Spinner
Animated loading indicator: a cycling glyph with an optional label beside it.
Spring
Parameters for a damped-spring simulation (unit mass).
Stack
Overlays children at the same origin and lets later siblings overwrite earlier ones.
State<T extends StatefulWidget>
Mutable state for a StatefulWidget.
StatefulElement
Element for a StatefulWidget.
StatefulWidget
A widget whose appearance depends on configuration plus retained mutable state held by a separate State object.
StatelessElement
Element for a StatelessWidget.
StatelessWidget
A widget whose appearance depends only on its configuration.
StatusController
Mutable status model installed by FleuryApp.
StatusItem
One status contribution from an app, screen, task, or capability check.
Stepper
A numeric stepper: [ − 42 + ]. When focused, Up / Down (or + / −) change the value by step, PageUp / PageDown by largeStep, and Home / End jump to min / max. Typing digits enters a value directly; Enter or leaving the field commits it, and Escape cancels. Clicking the − or + half also nudges the value, so pointer users get the same affordance.
StreamBuilder<T>
Rebuilds with the latest AsyncSnapshot of stream — each event, error, and close. Cancels its subscription on dispose and re-subscribes only when the stream identity changes.
StringAnsiSink
Captures every byte written into an in-memory buffer. Used in tests to assert on the exact ANSI emitted by AnsiRenderer.
StructuredTerminalPresentation
Structured frame presentation to a negotiated remote surface.
A row that opens a nested menu of items to the right. Right or Enter opens it (and moves focus in); Left or Esc returns to the parent.
SurfaceCapabilities
Backend-neutral description of what the presenting surface can do.
Switch
A wider, accent-tinted boolean switch — visually distinct from Toggle for cases where you want the on/off state to stand out at a glance (settings panels, feature flags). When value: true the track tints in the theme's primary color and the handle sits on the right; when false the track is muted and the handle sits on the left.
SystemClipboard
Production clipboard backed by platform tools and OSC 52.
SystemClock
The default real-time Clock used outside of tests. Backed by a single process-wide Stopwatch started lazily on first read.
TabController
Selected-tab state for a Tabs. Optional — Tabs creates its own when none is given. length is set by the widget on each build.
TabItem
One tab: a label for the strip and the content shown when active.
Table
A grid of cells with columns aligned across every row — the one thing Row/Column can't do, since they size each row independently.
TableColumnWidth
How a Table column is sized.
TableController
Browsing cursor for an interactive Table. Optional — the table creates its own when none is supplied. The table keeps the cursor clamped to its rows.
TableCopyOptions
Clipboard behavior for Table selected-row copy.
TableCopyResult
Result delivered after a Table selected-row copy completes.
TableExportOptions
Options for exportTableRows.
TableExportResult
Result of exportTableRows.
Tabs
A tab strip over swappable content.
TaskGraph
A live view of a task plan: one row per task with a status marker ([ ] pending, [>] running, [x] done, [!] failed), its description, the tasks it waits on, and progress.
TaskGraphController
Controller for TaskGraph browsing and viewport state.
TaskGraphCopyOptions
Options for copying or exporting a task-graph node.
TaskGraphCopyResult
Result delivered after TaskGraph copies the selected node.
TaskGraphNode
One task in a TaskGraph.
TerminalAttentionDriver
Optional terminal-citizenship hook: set the window / tab title and raise user attention. A driver mixes this in when its channel carries escape sequences (local terminals do; a structured remote target may not), so the driver's presence of this interface is the capability gate — callers go through setTerminalTitle / ringTerminalBell / notifyTerminal, which no-op when the driver does not implement it.
TerminalCapabilities
Static snapshot of what the terminal supports.
TerminalCapabilityReport
Capability snapshot serialized by fleury diagnose --json.
TerminalCompatibilityFinding
Compatibility finding for one actively probed terminal feature.
TerminalCompatibilityReport
Comparison report used by real-terminal compatibility matrix collection.
TerminalDiagnosis
Machine-readable terminal diagnosis used by the CLI, tests, and demo apps.
TerminalDiagnosticMessage
A structured diagnostic message emitted by TerminalDiagnosis.
TerminalDriver
The single I/O boundary between the framework and a real terminal.
TerminalEnvironmentReport
Boolean terminal/session conditions derived from environment variables.
TerminalFocusEvent
The terminal reporting that its window gained or lost keyboard focus (DECSET 1004).
TerminalHandoffDriver
Optional terminal lifecycle hook for subprocesses, external editors, and other workflows that need the user's terminal while a TUI is running.
TerminalMode
The set of terminal modes the driver should enable for a TUI session.
TerminalOutputRegion
Shows captured stdout and stderr (a LogBuffer) as a LogRegion: filterable, copyable rows that follow new output, with stderr lines styled as errors.
TerminalPlatformReport
Local runtime platform evidence serialized by fleury diagnose --json.
TerminalPresentation
The presentation path selected for one entered terminal session.
TerminalProbeReport
Active probe evidence attached to terminal diagnostics.
TerminalProbeResult
One active terminal probe result.
TerminalProbeTransport
Transport boundary for opt-in active probes.
TerminalProfileReport
Terminal environment values and stream state relevant to Fleury rendering.
TerminalResponse
One complete terminal reply, preserving its exact wire bytes so runtime negotiation and opt-in diagnostics can share the same response codecs.
TerminalResponseExpectation
Which response forms a query exchange (or its late-reply quarantine) owns.
TerminalResponseSink
Sink used only inside terminal drivers and query tooling.
TerminalSession
The terminal session an app runs in — the one thing runApp owns that an app sometimes needs to borrow: the terminal itself, for a child process (runWithHandoff) or for the shell while the app is suspended (suspend).
TerminalSessionProfile
Immutable truth returned by a successful TerminalDriver.enter.
TerminalSessionScope
Provides a TerminalSession to a subtree. runApp installs one above the app root; tests and hosts with their own driver can install their own.
Text
Displays a string of text in the terminal.
TextArea
A multi-line editable text widget. Pair with a TextEditingController to read/drive the text; newlines live in the text like any character.
TextCompletionController
Editing-aware completion state controller.
TextCompletionOption
One completion candidate for an editable text field.
TextCompletionRequest
Request passed to a TextCompletionProvider.
TextCompletionState
Immutable completion state for one editable field.
TextCompositionClaimant
Widgets that consume IME composition updates.
TextCompositionEvent
A text composition lifecycle event emitted by hosts with IME support.
TextEditingController
Mutable model for text input widgets.
TextEditingKeyBinding
One key-to-action binding inside a TextEditingKeymap.
TextEditingKeymap
Ordered keymap for editable text widgets.
TextEditingModel
Pure editing operations over TextEditingValue.
TextEditingPaste
An anchored, incremental paste into a TextEditingController.
TextEditingValue
Immutable editing value shared by single-line and multiline fields.
TextEditPolicy
An immutable admission policy for short editable fields.
TextHistoryController
Command/submission history layered above TextEditingValue.
TextInput
A single-line editable text field. Read or set its text through a TextEditingController, or react to edits with onChanged and onSubmit.
TextInputClaimant
Marker interface for widgets that consume insertable text input (e.g. TextInput).
TextInputEvent
One or more graphemes of typed text. The driver accumulates UTF-8 continuation bytes before emitting so consumers always get a valid string.
TextPastePolicy
Policy for deciding when paste should be applied over multiple frames.
TextPasteProgress
Progress for an active chunked paste session.
TextPasteSession
Mutable iterator over one paste operation.
TextPresentationPolicy
The one effective text-presentation policy for a surface: widths plus lowering, as a single value so no consumer can mix them from different sources.
TextRange
A half-open text range: start is included, end is excluded.
TextSelection
A directional selection. baseOffset is the anchor, extentOffset is the moving edge/caret.
TextSpan
An inline run of styled text, optionally with children that inherit and override this span's style — a cascade, like Flutter's TextSpan. Build a tree of these to mix styles on one line.
Theme
Shares a ThemeData with its subtree. Read it with Theme.of(context) or the context.theme shorthand (which fall back to ThemeData.fallback when absent, so widgets can always resolve a theme without a required ancestor).
ThemeData
The themeable defaults shared down the tree via Theme.
Ticker
A scheduler-driven callback bound to a single object's lifecycle. Apps don't construct Tickers directly — they go through a TickerProvider (typically via SingleTickerProviderStateMixin on a State).
TickerFuture<T>
The future returned by Animation.to or Animation.loop.
TickerMode
Muting lever for tickers in this subtree — a scope read by every ticker-owning widget below it.
TickerProvider
Source of Tickers. Lifecycle owners (typically State classes via mixins, but also TuiBinding directly) implement this so downstream animation primitives can request a Ticker without caring where it comes from.
TickerScheduler
One process-wide consolidation point for animation ticks.
TickFormat
Pre-built TickFormatters for common axis label styles.
TimerSemanticFlushScheduler
Default scheduler: a macrotask (Timer.run) with an optional minimum interval between flush starts.
ToastAction
An actionable affordance on a toast — a label and the key chord that triggers onPressed (and dismisses the toast) while it's visible. The chord fires from anywhere in the app, so prefer a modifier chord (e.g. KeySequence.alt('u')); a bare letter is swallowed by a focused text field.
Toaster
Hosts toast notifications. Place one high in the app (wrapping your content); it floats toasts in a screen corner above everything — including modals — via an Overlay entry, stacking them and auto-dismissing each after a delay unless it is persistent.
ToastHandle
Dismisses the exact toast returned by Toaster.show.
Toggle
A boolean switch: [ o] on, [o ] off (the knob slides). Enter or Space toggles it when focused, as does a click. Like Checkbox, controlled via onChanged. Passing null disables it.
TokenMeter
A one-line context-window meter: used/limit token counts, a utilization bar, and a percentage (Context: 78k/200k [####......] 39%). From warningThreshold of the limit (80% by default) it adds NEAR LIMIT, and from errorThreshold (95% by default) OVER LIMIT — words, not color alone, so the state reads in monochrome.
TokenUsage
Token and context-window usage for TokenMeter and ModelStatusBar.
ToolCallCard
A card that renders one tool/function call — name, status, arguments, and output — as a single transcript entry.
ToolCallCopyOptions
Options for copying a ToolCallRecord.
ToolCallCopyResult
Result delivered after ToolCallCard copies a tool call summary.
ToolCallRecord
One tool call's data, rendered by ToolCallCard.
Tooltip
Shows a hint below child while keyboard focus is anywhere inside it.
TraceTimeline
A vertical timeline of workflow events — commands, processes, tool calls, and application events — drawn along a connecting rail (╭ ├ ╰) with a status marker, duration, and source on each row.
TraceTimelineController
Controller for TraceTimeline browsing and viewport state.
TraceTimelineCopyOptions
Clipboard/export behavior for TraceTimeline selected-event copy.
TraceTimelineCopyResult
Result delivered after TraceTimeline copies the selected event.
TraceTimelineEntry
One event in a TraceTimeline.
TraceTimelineSelectResult
Result delivered after TraceTimeline activates one event.
Tree<T>
A keyboard-navigable, collapsible tree.
TreeNode<T>
A node in a Tree: a label to display, an optional value payload, and any children. A node with children is a branch (expandable); one without is a leaf.
TreeTable<T>
A table whose rows form a tree: branch rows expand to show their children, and each column shows a value for every visible row.
TreeTableController
Controller for TreeTable expansion, browsing, and visible range.
TreeTableCopyOptions
Clipboard behavior for TreeTable selected-row copy.
TreeTableCopyResult<T>
Result delivered after TreeTable copies the selected row.
TreeTableExportOptions
Export behavior for TreeTable rows.
TreeTableExportResult
Result of exporting TreeTable rows.
TreeTableFilterDescriptor
Filter applied to TreeTable source nodes.
TreeTableNode<T>
One durable node in a TreeTable.
TreeTableRow<T>
A visible flattened row in a TreeTable.
TreeTableSearchIndex<T>
Precomputed searchable text for a large TreeTable.
TuiBinding
Per-runtime registry of cross-cutting framework services. Reachable from any descendant context via TuiBinding.of.
TuiBindingScope
Makes a TuiBinding reachable to its descendants via TuiBinding.of — a Scope<TuiBinding>.
TuiDirtyRowRange
A half-open dirty row range: [startRow, endRow).
TuiDirtyRows
Row-oriented damage for presenters.
TuiEvent
Base for all events flowing out of TerminalDriver.events.
TuiEventSink
Sink interface used by the parser to emit events. The terminal driver supplies the real implementation (typically a StreamController.add adapter); tests use an in-memory list.
TuiFrameDamage
What a presenter must do to bring the screen up to date with a frame.
TuiFrameLoop
Shared double-buffer frame loop state for Fleury hosts.
TuiRenderedFrame
One frame produced by TuiFrameLoop.
TuiRuntime
Shared framework-service owner for Fleury hosts.
UniqueKey
A key that is equal only to itself.
ValueKey<T>
A key carrying a single value whose equality determines the key's equality. The most common kind of key in application code.
ValueListenable<T>
A Listenable that exposes one current value.
ValueNotifier<T>
A Notifier that publishes one mutable value.
WhichKey
Wraps child and, once the user presses a leader key (Space, Ctrl+X) and the dispatcher is holding for the next step, shows a popup listing the available continuations — f Find file, b Buffers.
Widget
Immutable description of part of the terminal UI.
WidgetRoles
Semantic roles contributed by the bundled widget catalog.
WidthMeasurements
What the terminal ACTUALLY drew for each battery glyph, in cells, measured rather than assumed — raw observations, parallel to widthProbeBattery.
WidthProbeGlyph
One glyph in the probe battery: what is written, which class it votes in, and a stable id used in JSON and diagnostics.
WidthResolver
Returns the number of terminal cells a grapheme cluster occupies.
WindowsTerminalDriver
WireFramePresenter
Presents rendered frames as wire plans through a RemoteSurfaceSink.
WireSemanticFramePresenter
Presents semantic trees to a RemoteSurfaceSink for host-defined serialization and transport.
WorkflowSnapshot
One immutable bundle of the records an agent or developer-tool app shows: messages, tool calls, approvals, tasks, logs, and more, each in the type the matching widget takes (such as MessageEntry for MessageList).
WorkflowSummary
Safe aggregate state derived from a WorkflowSnapshot.
Wrap
Flows children left-to-right, wrapping to a new row when the next one won't fit the available width. The layout behind chips, tags, token lists, and reflowing toolbars.

Enums

Alignment
A 2D alignment hint for Align.
AmbiguousCharWidth
How the terminal renders East-Asian Ambiguous-width glyphs — the box drawing, block elements, bullets, and arrows Fleury draws widgets with (─ │ █ ▁ • →, all UAX #11 "Ambiguous"). Some terminals/fonts render them one column wide, others two, and there is no universal default.
AnimationPolicy
Whether the animation system should run.
ApprovalDecision
User decision emitted by ApprovalPrompt.
ApprovalSeverity
How serious an ApprovalRequest is. It sets the confirm button's color; destructive also adds a "cannot be undone" warning and, by default, focuses the deny button.
AppSignal
A termination request delivered to the app, in platform-neutral terms.
Axis
Axis along which a RenderFlex arranges its children.
BorderStyle
Visual style for a BoxBorder.
Brightness
Whether a theme is tuned for a dark or light terminal background. A hint apps and ThemeExtensions can branch on; the framework does not auto-detect the terminal background (that probe is unreliable).
ButtonAppearance
Framing independent of a button's content and color role.
ButtonVariant
Accent for a Button, resolved against the active ColorScheme.
CalendarWeekStart
Which day starts a week in a CalendarHeatmap row.
CanvasMarker
Sub-cell rendering style for Canvas. Different markers trade vertical/horizontal resolution against font coverage and aesthetic.
CapabilityDelivery
Whether the requested behavior reached its destination.
CapabilityEnablement
Whether Fleury actually enabled a supported feature for this session.
CapabilityEvidenceSource
Origin of one fact in a CapabilityTruth.
CapabilityLevel
Strength of a capability request.
CapabilityResolutionState
Outcome of resolving a requirement against runtime truth and policy.
CapabilitySupport
Whether the relevant terminal, surface, or transport supports a feature.
CellRole
How a Cell participates in a (possibly wide) grapheme.
CellRunKind
Span run categories understood by the DOM adapters.
CellWidth
A width class's answer: one cell or two. The whole policy layer stays inside the bounded cell algebra — no axis can express a width above two (RFC 0019 invariant: display atoms never exceed two cells).
ClipboardWriteResult
Which transport actually placed the clipboard payload.
ClusterLowering
What happens to emoji ZWJ sequences on this surface.
CodeLineKind
Coarse source-line classification used by CodeView.
CodeViewCopyMode
Clipboard/export mode for CodeView selected-line copy.
ColorMode
Maximum color fidelity the surface can render.
CommandInvocationStatus
ConnectionState
Lifecycle of an async connection feeding an AsyncSnapshot.
ContextItemKind
What a ContextItem refers to: a file, a symbol, a message, and so on.
ContextItemPriority
How important a ContextItem is. ContextPanel shows it on each row and styles the row by it: low is muted, high and critical are highlighted.
ConversationStatus
Lifecycle state of a conversation or session.
CrossAxisAlignment
Cross-axis alignment of RenderFlex children.
DataTableExportFormat
Export encoding for DataTable row data.
DataTableSelectionMode
Interaction model used by DataTable.
DataTableSortDirection
Direction for an app-provided DataTable sort state.
DebugMode
Three-state lifecycle of the debug surface.
DebugPanelSide
Which edge the docked panel hugs.
DebugTab
Which tab in the panel is selected.
DiffLineKind
Logical row type in a DiffView.
DiffViewCopyMode
Clipboard/export mode for DiffView selected-row copy.
Edge
A screen edge an effect moves toward / from.
EdgeBehavior
How scrollable widgets handle navigation or wheel input at an edge.
ExternalEditorCommandSource
Where an external editor command was resolved from.
FileEntryType
Kind of entry a FileSource lists.
FileMentionKind
Type of target exposed by FileMentionPicker.
FlexFit
How a flexible child's main-axis allocation is enforced.
FrameContainmentPhase
Which phase the contained exception escaped from.
FrameDamageSource
How a frame's damage was arrived at — a TELEMETRY vocabulary, not plan state.
GlyphTier
Glyph repertoire the surface/font combination can render safely.
HyperlinkSupport
Why the terminal does or doesn't get OSC 8 hyperlinks — the reason behind TerminalCapabilities.hyperlinks, surfaced by fleury diagnose. Computed from the FULL environment picture at detection time (see detectHyperlinkSupportFromEnvironment); the plain bool can't reconstruct these after the fact, which is why the reason must not be re-derived from a lossy (hyperlinks, tmuxPassthrough) snapshot downstream.
ImageFit
How an Image sizes itself within its allotted cell area.
ImageGlyph
Per-cell symbol palette the half-block painter uses to encode the source. Trade more glyph diversity for sharper edges and better effective resolution on color-poor terminals.
ImageProtocol
Image-rendering protocol the terminal supports. Decided at startup from env vars (KITTY_WINDOW_ID, TERM_PROGRAM, TERM); runtime DA1 probes for Sixel are a later refinement.
InlineImageFit
How an inline image fills its placement rectangle on a true-pixel surface. The four modes mirror the widget-level ImageFit, and — by design — their names are exactly the CSS object-fit keywords, so the serve client applies el.style.objectFit = fit.name with no lookup table. contain (the default) preserves the source aspect ratio; without it a wrong-aspect cell box would stretch the image.
InlineImageSupport
How the surface displays inline raster images.
JsonValueType
JSON value type represented by a JsonViewRow.
JsonViewCopyMode
Clipboard/export mode for JsonView selected-node copy.
KeyboardLatchClock
Which clock is publishing a latch (RFC 0020 §5.6).
KeyboardProtocolMode
How much of the Kitty keyboard protocol a session negotiates (RFC 0020 §8).
KeyEventResult
The result of handling a key event.
KeyEventType
Whether a KeyEvent is an initial press, an auto-repeat, or a release.
KeyLabelSource
Where a label came from — how much to trust it.
KeyModifier
Keyboard modifier flags.
KeyPosition
One physical key position, named after the standard US-QWERTY layout.
LineType
How a LineSeries is rendered into the chart's plot area.
LogSeverity
Severity attached to a LogEntry.
LogSource
Which standard stream a captured LogLine came from.
MainAxisAlignment
Main-axis alignment of RenderFlex children.
MainAxisSize
How a RenderFlex sizes itself along its main axis.
MarkdownBlockKind
Coarse Markdown block classification used by MarkdownView.
MarkdownViewCopyMode
Clipboard/export mode for MarkdownView selected-block copy.
MessageRole
Role of one message in a MessageList.
MessageStatus
Lifecycle/status attached to one message in a MessageList.
ModelRuntimeStatus
Lifecycle state of a model-backed workflow.
MouseButton
Which mouse button an event concerns (none for wheel/motion).
MouseCursor
Pointer shapes for browser hosts and native terminals supporting OSC 22. Other terminals retain their ordinary pointer appearance.
MouseEventKind
What a MouseEvent reports.
PasteEventPhase
The position of one PasteEvent in a bracketed-paste transaction.
PatchReviewStatus
Review status of a patch or one patch file.
PointerPrecision
Pointer fidelity the surface reports.
ReferenceStyle
Visual style for a ReferenceLine.
RemoteClipboardStatus
How a peer handled an app-requested clipboard write.
SelectionGranularity
Which unit of content a SelectionGranularEvent picks.
SelectionResult
Reply from a Selectable to a dispatched SelectionEvent. Tells the parent container where the live edge ended up relative to this child's bounds, which is how cross-widget selection boundaries resolve.
SelectionStatus
How a single Selectable relates to the live selection on its last update.
SemanticAction
Actions a semantic node exposes to tests, inspectors, and future adapters.
SemanticActionInvocationStatus
SpecialKey
The non-character keys a terminal can report, as an enumerable set.
SpinnerStyle
Visual style of a Spinner. braille is the modern default; ascii is the fallback for terminals that don't render Unicode braille reliably (e.g. some constrained SSH setups).
StackFit
How a RenderStack constrains its non-positioned children.
StatusSeverity
TableExportFormat
How exportTableRows encodes copied cell text.
TaskGraphStatus
Status of a node in a TaskGraph.
TerminalCompatibilityStatus
Relationship between passive capability detection and active probe evidence.
TerminalDiagnosticSeverity
Severity for machine-readable terminal diagnostic messages.
TerminalFeature
Terminal feature names that widgets and services can request.
TerminalProbeStatus
Outcome for an explicit, opt-in terminal capability probe.
TerminalResponseKind
A terminal-originated control reply framed by InputParser.
TextAlign
Horizontal alignment of each line within the available width.
TextClipboardPolicy
How a TextInput or TextArea treats copy, cut, and the kill ring.
TextCompositionEventKind
Browser/native IME composition lifecycle event.
TextEditingKeyAction
Semantic editing command resolved from a terminal KeyEvent.
TextEditRejection
Why a bounded text edit was rejected. Rejection never clips the input.
TextOverflow
How text that exceeds its line/height budget is shown.
ToastSeverity
Semantic level of a toast, driving the color of its status dot. info is neutral (uncolored); the rest color the dot.
ToolCallStatus
Status of one tool call.
TraceTimelineKind
Kind of a timeline event.
TraceTimelineStatus
Lifecycle state of a timeline event.
TraversalDirection
A direction for arrow-key focus traversal.
TreeTableFilterMode
Matching behavior for TreeTableFilterDescriptor.
WidthAxis
One decided axis of the policy, for provenance.
WidthCorrection
DOM width correction needed for a span.
WidthDecisionSource
Where an axis's value came from. Diagnostic only — never part of policy equality or cache keys.
WidthProbeClass
The width-disagreement class a probe glyph represents. Classes are independent: a representative votes only within its own class (RFC 0019 §6.1), so "bare emoji wide, variation sequence narrow" — the common combination in the field — derives cleanly instead of poisoning agreement.
WorkflowHealth
Overall state of a WorkflowSnapshot, as WorkflowSummary.health reports it: the first of these that applies.

Mixins

SelectionRegistrant
Mixin a render object can apply to handle SelectionRegistrar add/remove around the framework lifecycle.
SingleTickerProviderStateMixin<T extends StatefulWidget>
State mixin that creates and owns one raw Ticker, scoped to the State's lifecycle and auto-muted per TickerMode + AnimationPolicy. The Ticker is disposed automatically when the State disposes.

Extensions

AnimateExtension on Widget
widget.animate() — the fluent entry point. Chain effect methods:
BrightnessPick on Brightness
Picks a value by Brightness, for the context-free cases (theme construction and render objects). This is Fleury's analog of Lip Gloss's LightDark.
FleuryCommandContext on CommandContext
FleuryThemeContext on BuildContext
Ergonomic shortcuts for the most-typed Theme accessors. Saves the Theme.of(context).colorScheme.error mouthful in app code; the dependency tracking is identical (each getter ultimately calls Theme.of(context), which establishes the scope dependency).
KeySequenceChain on KeySequence
Chain getters on a complete KeySequence. After a step, modifiers start a new pending step, and key atoms append a whole new step (forming a multi-step sequence).
context.push(...) / context.pop() — the terse fluent entry. For a back action that respects PopScope, use context.navigator.maybePop().
PendingKeySequenceChain on PendingKeySequence
Chain getters on a PendingKeySequence. Modifier atoms accumulate (still pending); key atoms consume the pending modifiers and return a KeySequence.
SemanticDirtyOwner on BuildOwner
Per-BuildOwner semantic dirty tracking.
SemanticTreeAccessibility on SemanticTree
Convenience extension for accessibility/fallback snapshots.
SemanticTreeInspection on SemanticTree
Convenience conversion from a live semantic tree to the inspection protocol.
TerminalSurfaceCapabilities on TerminalCapabilities
Projects the terminal's capability snapshot into the backend-neutral SurfaceCapabilities widgets read through MediaQuery. The terminal is one projection; browser hosts construct theirs first-class. Escape protocols and tmux passthrough deliberately do not survive projection — they are presenter concerns.

Constants

boxSegmentEast → const int
boxSegmentNorth → const int
Directional segment bits for a box-drawing grapheme.
boxSegmentSouth → const int
boxSegmentWest → const int
doubleLerp → const Lerp<double>
Linear interpolation of doubles.
intLerp → const Lerp<int>
Linear interpolation rounded to the nearest integer. Easing curves still control when each integer step happens.
kSafeLinkSchemes → const Set<String>
Default-safe link schemes (RFC 0013's OSC 8 allow-list; RFC 0017 §6): only https, http, and mailto may become a live OSC 8 link or a navigable browser anchor.
replacementCharacter → const String
Replacement character emitted in place of unsafe input bytes.
rgbColorLerp → const Lerp<RgbColor>
Channel-wise linear interpolation of an RgbColor.
widthProbeBattery → const List<WidthProbeGlyph>
The probe battery: several representatives per class, from distinct blocks, all old and widely deployed — agreement across them is what authorizes an axis to adapt, and any disagreement leaves the axis unknown (RFC 0019 §6.1). The ZWJ sequences' components are probed bare so summing can be established by the measured equation componentSum ≤ sequenceAdvance ≤ componentSum + zwjCount rather than inferred.

Properties

positionByDomCode → Map<String, KeyPosition>
DOM KeyboardEvent.code → position (total over the vocabulary).
final

Functions

applySemanticTextFallback({required SemanticTree tree, required CellBuffer buffer, TuiDirtyRows? dirtyRows, SemanticCoverageAudit? previousAudit}) → SemanticCoverageResult
Adds low-priority text fallback nodes for visible text not covered by geometry-bearing semantic nodes.
blockElementRects(String grapheme) → List<BlockRect>?
The solid rectangles grapheme fills, or null if it is not a block element that decomposes into whole rectangles.
blockRectsSpanFullWidth(List<BlockRect> rects) → bool
Whether every rectangle in rects spans the cell's full width.
boxDrawingMask(String grapheme) → int?
The line segments grapheme draws, as an OR of boxSegmentNorth etc., or null if it is not a box-drawing line/corner/junction. Double-line glyphs are mapped to their single-weight segment set (good enough for crisp borders).
buildAccessibilitySnapshot(SemanticTree tree) → AccessibilitySnapshot
Builds a text-first accessibility/fallback snapshot from tree.
buildConversationOrder(List<ConversationEntry> entries, {String query = '', ConversationMatcher? matcher}) → List<int>
Returns source entry indexes in display order after applying query.
buildDataTableRowOrder({required int rowCount, required List<DataTableColumn> columns, required DataTableCellBuilder cellBuilder, DataTableFilterDescriptor? filter, DataTableSortDescriptor? sort}) → List<int>
Builds a source-row order after applying framework-owned filter/sort rules.
buildFileBrowserEntryOrder(List<FileEntry> entries, {FileBrowserFilterDescriptor filter = const FileBrowserFilterDescriptor()}) → List<int>
Returns source entry indexes in display order after applying filter.
buildFileMentionOrder(List<FileMentionEntry> entries, {String query = '', FileMentionMatcher? matcher}) → List<int>
Returns source entry indexes in display order after applying query.
buildJsonViewRows(Object? value, {int defaultExpandedDepth = 1, Set<String> expandedPointers = const <String>{}, Set<String> collapsedPointers = const <String>{}, int? maxLineLength = 1000}) → List<JsonViewRow>
Builds the visible JsonViewRow list without mounting widgets.
buildLogRegionEntryOrder(List<LogEntry> entries, {LogRegionFilterDescriptor? filter}) → List<int>
Returns source entry indexes in display order after applying filter.
buildPatchReviewFiles(DiffDocument document, {Map<String, PatchReviewStatus> statusByPath = const <String, PatchReviewStatus>{}, Map<String, String> summariesByPath = const <String, String>{}}) → List<PatchReviewFile>
Builds file-level patch review entries from a parsed unified diff.
buildSearchResultOrder(List<SearchResult> results, {String query = '', SearchResultMatcher? matcher}) → List<int>
Returns source result indexes in display order after applying query.
buildTerminalCompatibilityReport({required TerminalCapabilityReport capabilities, TerminalProbeReport? activeProbes, bool imageKittyProbeUsable = true}) → TerminalCompatibilityReport
Compares passive terminal capability detection with active probe evidence.
buildTerminalOutputLogEntries(List<LogLine> lines, {int baseIndex = 0}) → List<LogEntry>
Converts captured terminal output into structured LogRegion entries.
buildTreeTableRows<T>({required List<TreeTableNode<T>> roots, required List<DataTableColumn> columns, Set<Object> expandedKeys = const <Object>{}, String? treeColumnId, TreeTableCellBuilder<T>? cellBuilder, TreeTableFilterDescriptor? filter, TreeTableSearchIndex<T>? searchIndex}) → List<TreeTableRow<T>>
Builds visible rows for a TreeTable.
buildTuiRoot({required TuiBinding binding, required CellSize size, required SurfaceCapabilities capabilities, required FocusManager focusManager, required PointerRouter pointerRouter, required Clipboard clipboard, required GlobalKey<OverlayState> overlayKey, required List<OverlayEntry> overlayEntries, required LogBuffer? logBuffer, required DebugController? debugController, required PendingSequenceNotifier? pendingSequenceNotifier, required KeyboardStateNotifier? keyboardNotifier, TerminalSession? session}) → Widget
Assembles the shared scope stack a Fleury host mounts around overlayEntries (the application root entry, plus any host-owned floating entries like the runtime-error overlay — created once by the caller so their subtree state survives a resize rebuild).
coerceSemanticBool(Object? value) → bool?
Reads value as a bool, or null if it isn't one. Accepts a real bool, a num (0 ⇒ false, else true), and the common string spellings an agent might emit ("true", "on", "1", "checked", …), case-insensitively.
coerceSemanticInt(Object? value) → int?
Reads value as an int, or null. Accepts an integral num, a bool, and an integer String. A non-integral number (e.g. 2.5) is rejected rather than silently truncated, so an index/step set can't land off-target.
coerceSemanticNum(Object? value) → double?
Reads value as a double, or null if it isn't numeric. Accepts a num, a bool (1/0), and a numeric String.
createNativeTerminalDriver({Stdin? stdinOverride, Stdout? stdoutOverride}) → TerminalDriver
Creates the local dart:io terminal driver for the current platform.
debugSemanticTreeDivergence(SemanticTree expected, SemanticTree actual) → String?
Debug-only structural comparison between two semantic trees.
debugShellWithholdsKey(DebugController controller, KeyEvent event) → bool
Whether the app beneath the debug shell must not receive event: the Ctrl+Z press while the shell is expanded over the app. Other keys the shell does not use still reach the app, but its undo there would edit a field the user cannot see. A host skips the app for it, and the press takes its unhandled default — in a native terminal, the session suspends; in a browser, nothing. (While the Logs search is open, tryConsumeDebugKey gives Ctrl+Z to the search field instead.)
defaultAnchorAlignment(Alignment alignment) → Alignment
The point on the overlay that meets alignment when none is given.
defaultTextCompletionRequest(TextEditingValue value) → TextCompletionRequest
Builds a completion request for the selected range or current word.
deriveTextPresentationPolicy({WidthMeasurements measurements = const WidthMeasurements.empty(), Map<String, String> environment = const <String, String>{}}) → ResolvedTextPresentationPolicy
Folds probe measurements and environment overrides into the one derived ResolvedTextPresentationPolicy every geometry consumer shares (RFC 0019 §6.2).
detectAmbiguousCharWidthFromEnvironment(Map<String, String> environment) → AmbiguousCharWidth?
Reads an explicit ambiguous-width override from the environment: FLEURY_AMBIGUOUS_WIDTH=narrow|wide. Returns null when unset, so the caller keeps the safe wide default until a startup probe measures the terminal.
detectBeneficialScrollUp(CellBuffer previous, CellBuffer next, ({int dirtyCells, bool hasOverlayCells}) stats) → int?
Returns the upward shift (in rows) that minimizes residual dirty cells, or null when no shift beats a plain diff.
detectClusterModeFromEnvironment(Map<String, String> environment) → ClusterLowering?
FLEURY_CLUSTER_MODE=joined|split — explicit override for emoji ZWJ lowering. split may force lowering past incomplete probe confidence.
detectColorModeFromEnvironment(Map<String, String> environment) → ColorMode
Detects maximum color fidelity from conventional terminal environment.
detectEmojiWidthFromEnvironment(Map<String, String> environment) → CellWidth?
FLEURY_EMOJI_WIDTH=narrow|wide — explicit override for the bare emoji-presentation width axis. Null when unset or unrecognized.
detectGlyphTierFromEnvironment(Map<String, String> environment) → GlyphTier
Detects whether Unicode drawing glyphs are safe to use, or output should stay 7-bit ASCII.
detectHyperlinksFromEnvironment(Map<String, String> environment) → bool
Detects whether OSC 8 hyperlinks are supported and safe to emit here — the emission gate that the renderer/projection/feature read. The DIAGNOSE reason is detectHyperlinkSupportFromEnvironment.
detectHyperlinkSupportFromEnvironment(Map<String, String> environment) → HyperlinkSupport
Detects OSC 8 support AND the reason from the environment. See HyperlinkSupport for the four outcomes.
detectImageProtocolFromEnvironment(Map<String, String> environment) → ImageProtocol
Detects the best known image protocol from terminal environment.
detectTerminalCapabilitiesFromEnvironment(Map<String, String> environment) → TerminalCapabilities
Detects the terminal capability summary from environment variables.
detectTerminalMultiplexerFromEnvironment(Map<String, String> environment) → bool
Detects whether output is routed through a known terminal multiplexer.
detectVs16WidthFromEnvironment(Map<String, String> environment) → CellWidth?
FLEURY_VS16_WIDTH=narrow|wide — explicit override for the simple emoji variation-sequence axis. Independent of detectEmojiWidthFromEnvironment: "bare emoji wide, sequence narrow" is the common combination in the field and must be expressible (RFC 0019 §6.6). The env name keeps the operator term of art; the policy axis is named for the sequence.
diagnoseTerminal(TerminalDriver driver, {Map<String, String> environment = const <String, String>{}, TerminalPlatformReport? platform, bool? stdinIsTerminal, bool? stdoutIsTerminal}) → TerminalDiagnosis
Builds a static/env-derived diagnosis for driver.
editTextInExternalEditor({String initialText = '', TerminalDriver? terminalDriver, ExternalEditorCommand? command, Map<String, String>? environment, bool? isWindows, String? fileName, String fileExtension = '.txt', String? workingDirectory, Encoding encoding = utf8, bool deleteTempFile = true, bool failOnNonZeroExit = true, ExternalEditorProcessRunner? processRunner, ExternalEditorTempFileFactory? tempFileFactory}) → Future<ExternalEditorResult>
Opens initialText in the user's external editor and returns the edited text after the editor exits.
escapeSemanticIdSegment(String segment) → String
Escapes a folded key value so it cannot inject the / segment separator or the ~ positional marker into a derived id (see semanticAnchorOf).
evidencedAmbiguousCharWidth(ResolvedTextPresentationPolicy resolved) → AmbiguousCharWidth?
resolved's ambiguous axis as the two-state AmbiguousCharWidth, or null when nothing settled it.
exitApp() → bool
Starts an orderly exit from the current runApp invocation.
exportCodeSelection(CodeDocument document, {required int lineIndex, CodeViewCopyOptions options = const CodeViewCopyOptions()}) → String
Exports the selected line or whole source document as sanitized text.
exportContextItem(ContextItem item, {ContextPanelCopyOptions options = const ContextPanelCopyOptions()}) → String
Exports one ContextItem as sanitized clipboard/debug text.
exportConversation(ConversationEntry entry, {ConversationNavigatorCopyOptions options = const ConversationNavigatorCopyOptions()}) → String
Exports one ConversationEntry as sanitized clipboard/debug text.
exportDataTableRows({required int rowCount, required List<DataTableColumn> columns, required DataTableCellBuilder cellBuilder, DataTableExportOptions options = const DataTableExportOptions()}) → DataTableExportResult
Exports row data without mounting cells as widgets.
exportDiffSelection(DiffDocument document, {required int rowIndex, DiffViewCopyOptions options = const DiffViewCopyOptions()}) → String
Exports the selected line or containing hunk as sanitized diff text.
exportFileBrowserEntry(FileEntry entry, {FileBrowserCopyOptions options = const FileBrowserCopyOptions()}) → String
Exports one FileEntry as sanitized single-line clipboard text.
exportFileMention(FileMentionEntry entry, {FileMentionCopyOptions options = const FileMentionCopyOptions()}) → String
Exports one FileMentionEntry as sanitized clipboard/debug text.
exportJsonViewRow(JsonViewRow row, {JsonViewCopyOptions options = const JsonViewCopyOptions()}) → String
Exports a JsonViewRow as sanitized text.
exportLogEntries(List<LogEntry> entries, {LogRegionFilterDescriptor? filter, LogRegionExportOptions options = const LogRegionExportOptions()}) → LogRegionExportResult
Exports log entries as sanitized newline-delimited text.
exportMarkdownSelection(MarkdownDocument document, {required int blockIndex, MarkdownViewCopyOptions options = const MarkdownViewCopyOptions()}) → String
Exports the selected block or whole document as sanitized Markdown source.
exportMessages(List<MessageEntry> messages, {MessageListExportOptions options = const MessageListExportOptions()}) → MessageListExportResult
Exports messages as sanitized newline-delimited text.
exportPatchReviewFile(PatchReviewFile file, {PatchReviewCopyOptions options = const PatchReviewCopyOptions()}) → String
Exports one PatchReviewFile as sanitized clipboard/debug text.
exportSearchResult(SearchResult result, {SearchPanelCopyOptions options = const SearchPanelCopyOptions()}) → String
Exports one SearchResult as sanitized single-line clipboard text.
exportTableRows({required List<List<Widget>> rows, List<Widget>? header, TableExportOptions options = const TableExportOptions(), String cellText(Widget cell) = tableCellText}) → TableExportResult
Exports Table rows (lists of cell widgets) as sanitized TSV/CSV without mounting cells. Cell text comes from cellText (defaults to tableCellText).
exportTaskGraphNode(TaskGraphNode node, {TaskGraphCopyOptions options = const TaskGraphCopyOptions()}) → String
Exports one task node as sanitized text suitable for copy/debug evidence.
exportToolCallSummary(ToolCallRecord record, {ToolCallCopyOptions options = const ToolCallCopyOptions()}) → String
Exports one tool call as sanitized text suitable for copy/debug evidence.
exportTraceTimelineEntry(TraceTimelineEntry event, {TraceTimelineCopyOptions options = const TraceTimelineCopyOptions()}) → String
Exports one TraceTimelineEntry as sanitized clipboard/debug text.
exportTreeTableRows<T>({required List<TreeTableRow<T>> rows, required List<DataTableColumn> columns, String? treeColumnId, TreeTableCellBuilder<T>? cellBuilder, TreeTableExportOptions options = const TreeTableExportOptions()}) → TreeTableExportResult
Exports tree-table rows as sanitized TSV/CSV.
hasUncertainWidth(String grapheme) → bool
Whether a terminal's rendered width for grapheme is genuinely likely to disagree with the width model — i.e. whether getting this glyph wrong is a live risk rather than a theoretical one.
humanizeSemanticRoleName(String name) → String
Splits a camelCase role name into a lower-case phrase: spinButton → spin button. The default SemanticRole.label; exposed for tooling that labels roles it does not otherwise know.
installKeyboardLatch({required KeyboardSession session, required TickerScheduler scheduler}) → void Function()
Installs both latch clocks on session and returns the frame-clock publisher a host hands to FrameDriver.onLatchInput.
invokeSemanticActionFromElement({required SemanticTree tree, required SemanticNodeId id, required SemanticAction action, Object? value}) → Future<SemanticActionInvocationResult>
Invokes action on the semantic node id by dispatching through the mounted element tree rooted at root.
isPositionalSemanticId(String id) → bool
Whether id is an auto-generated positional id — one that can come to denote a different logical node when the tree shifts, so a held reference to it may go stale. Two forms qualify: the element-<hash> snapshot-local fallback, and a derived auto:… id carrying a ~ positional segment (see semanticAnchorOf). Those shapes are reserved at Semantics.id intake. Other app-assigned ids, key:…, and fully-keyed auto: ids (no ~) track their logical node and are stable.
isSafeLinkScheme(String uri) → bool
Whether uri's scheme — the substring before the first ASCII :, compared case-insensitively — is one of kSafeLinkSchemes.
isSanitizedForDisplay(String input) → bool
Whether input is already free of unsafe runes, i.e. whether sanitizeForDisplay would return it unchanged.
isSanitizedMultiline(String input) → bool
Whether input is already in the canonical multiline form, i.e. whether sanitizeMultiline would return it unchanged.
isUnsafeRune(int rune) → bool
Returns true if rune is an unsafe terminal control code that must never reach stdout as raw bytes.
isValidSemanticRoleName(String name) → bool
Whether name is a legal semantic role name: an ASCII identifier ([A-Za-z][A-Za-z0-9_]*). Role names are embedded in positional semantic ids, so the id separators (/, ~, :) and whitespace are excluded.
moveOrEscape({required bool atEdge, required void move()}) → KeyEventResult
Signature for a key-event handler on a Focus or FocusNode. The keyboard convention for a widget that navigates with arrow keys.
nearestFocusableInDirection({required CellRect from, required Iterable<FocusNode> candidates, required FocusNode excluding, required TraversalDirection direction}) → FocusNode?
Picks the focusable node nearest to from in the given direction. Visible for testing; app code should rely on FocusTraversalGroup.
notifyTerminal(TerminalDriver driver, String message) → void
Posts an OSC 9 notification through driver when it supports it; no-op otherwise.
parseCodeDocument(String source, {String? language, String? filePath, int? maxLineLength = 1000, int tabSize = 2, bool showLineNumbers = true}) → CodeDocument
Parses source text into sanitized CodeLine rows.
parseEnvFlag(String? raw) → bool?
Parses a boolean environment flag: 1/true/yes/on → true, 0/false/no/off → false, and null for unset or any unrecognized value (so the caller keeps its default). Case- and whitespace-insensitive. The one source of truth for the accepted on/off vocabulary across FLEURY_* boolean flags.
parseMarkdownDocument(String source, {int? maxLineLength = 1000, int tabSize = 2}) → MarkdownDocument
Parses light Markdown into sanitized visible MarkdownBlock rows.
parseUnifiedDiff(String source, {int? maxLineLength = 1000}) → DiffDocument
Parses a unified diff into sanitized DiffLine rows.
probeGlyphWidths(TerminalProbeTransport transport, {Duration timeout = const Duration(milliseconds: 150)}) → Future<WidthMeasurements>
Measures the whole widthProbeBattery in ONE round trip.
quantizeColor(Color color, ColorMode mode) → Color?
Downsamples color to the best match representable in mode, or null for ColorMode.none. Colors already within the mode's fidelity pass through unchanged; only what exceeds it is matched down.
renderSubtree(RenderObject root) → Iterable<RenderObject>
Every render object in the subtree of root, in paint order.
resolveActiveKeyBindings(FocusManager manager) → List<ActiveKeyBinding>
Resolves the discoverable key bindings active in manager's focus context.
resolveAnchoredOffset({required CellRect anchor, required CellSize overlaySize, required Alignment alignment, required Alignment anchorAlignment, required int w, required int h}) → CellOffset
Places a box of overlaySize so its anchorAlignment point meets alignment on anchor.
resolveCapabilityRequirement(CapabilityRequirement requirement, CapabilityTruth truth) → CapabilityResolution
Resolves one request against facts observed by the owning runtime domain.
resolveCapabilityRequirements(Iterable<CapabilityRequirement> requirements, Map<TerminalFeature, CapabilityTruth> truths) → List<CapabilityResolution>
Resolves several requirements in input order from an explicit truth map.
resolveClippedInlineImageFit({required InlineImagePlacement placement, required int sourceWidth, required int sourceHeight, int pixelsPerCellX = 1, int pixelsPerCellY = 2}) → ResolvedImageFit?
Resolves placement's fit against its original box, then intersects that result with the placement's visible window.
resolveExternalEditorCommand({ExternalEditorCommand? command, Map<String, String>? environment, bool? isWindows}) → ExternalEditorResolvedCommand
Resolves an external editor from an explicit command, $VISUAL, $EDITOR, or a conservative platform fallback.
resolveInlineImageFit({required int sourceWidth, required int sourceHeight, required int cols, required int rows, required InlineImageFit fit, int pixelsPerCellX = 1, int pixelsPerCellY = 2}) → ResolvedImageFit
Resolves an InlineImageFit into concrete geometry — THE fit math for every surface. The terminal image encoder feeds it the protocol cell box; the glyph painters feed it their sub-pixel density; the browser's CSS object-fit implements the same math at sub-cell precision (the only sanctioned divergence: DOM letterboxes land on CSS pixels, cell surfaces land on whole cells).
resolveSurfaceColor(BuildContext context) → Color
The theme's opaque surface fill: ColorScheme.surface, else a concrete brightness-appropriate default.
ringTerminalBell(TerminalDriver driver) → void
Rings the terminal bell through driver when it supports it; no-op otherwise.
rowsEqual(CellBuffer previous, int previousRow, CellBuffer next, int nextRow) → bool
Whether row previousRow of previous equals row nextRow of next.
runApp(Widget root, {TerminalDriver? driver, TerminalMode mode = TerminalMode.interactive, bool enableHotReload = true, bool requireInteractiveTerminal = true, void onStrayOutput(LogLine line)?, TuiEventHandler? onEvent, Clipboard? clipboard, Duration sequenceTimeout = const Duration(milliseconds: 500), DebugConfig debug = const DebugConfig(), Duration frameInterval = Duration.zero, List<String> args = const []}) → Future<AppExit>
Runs an fleury application.
runTerminalProbeSuite(TerminalProbeTransport transport, {Duration perProbeTimeout = const Duration(milliseconds: 150)}) → Future<TerminalProbeReport>
Runs Fleury's conservative active terminal probe suite.
sanitizeForDisplay(String input) → String
Returns a copy of input with every unsafe rune (see isUnsafeRune) replaced by replacementCharacter.
sanitizeMultiline(String input) → String
sanitizeForDisplay applied per LINE: every unsafe rune is replaced as usual, but \n survives as a line separator.
sanitizeSingleLine(String input) → String
sanitizeForDisplay for a ONE-LINE label: newlines, carriage returns, and tabs collapse to a single space FIRST, then the usual unsafe-rune sanitizing runs. Order matters — sanitizeForDisplay treats \r\n\t as C0 controls and rewrites them to replacementCharacter, so a caller that sanitizes then strips breaks gets � where a space belonged (the break is already gone). Use this for single-line labels — table/tree rows, tool cards, log lines, menu options — instead of hand-rolling the order per widget.
sanitizeTerminalString(String s) → String
Replaces C0 controls, DEL, and C1 controls (0x00-0x1F, 0x7F-0x9F — including 7-bit BEL/ESC and 8-bit ST) with spaces, so a string is safe to embed inside an OSC escape sequence. Multi-byte content (emoji, CJK, surrogate halves) is all above 0x9F, so it passes through intact.
screenDiffStats(CellBuffer previous, CellBuffer next) → ({int dirtyCells, bool hasOverlayCells})
Whole-screen diff stats used as the scroll-detection baseline.
semanticAnchorOf(Element element) → String?
A position-derived identity anchor using each ancestor's key or position.
setTerminalTitle(TerminalDriver driver, String title) → void
Sets the terminal title through driver when it supports it; no-op otherwise.
tableCellText(Widget cell) → String
Extracts plain text from a table cell widget for copy/export.
tryConsumeDebugKey(DebugController controller, KeyEvent event) → bool
Tries to consume event as a debug-shell hotkey, returning true when it did. Called by runApp's event loop BEFORE the dispatcher, in the same escape-hatch tier as the Ctrl+C exit guard — so debug hotkeys fire even inside a modal route's scope.
tryConsumeDebugText(DebugController controller, TextInputEvent event) → bool
Consumes a printable TextInputEvent as a debug-shell shortcut — the companion to tryConsumeDebugKey for keys the terminal delivers as text rather than key codes. Fleury's input parser emits TextInputEvent for printable ASCII (a plain f, p, /, s, or a typed query character), so these bindings can't live in the KeyEvent-only path. Returns true when the shell handled it, so the caller skips the normal input dispatcher.
withTerminalHandoff<T>(TerminalDriver driver, FutureOr<T> operation()) → Future<T>
Runs operation through driver's handoff hook when supported.

Typedefs

AppCommandCallback = FutureOr<void> Function(CommandContext context)
AppCommandPredicate = bool Function(CommandContext context)
AppStatusBuilder = List<StatusItem> Function(FleuryAppController app)
Builds an app's status items from its controller; see FleuryApp.status.
AsyncWidgetBuilder<T> = Widget Function(BuildContext context, AsyncSnapshot<T> snapshot)
ConversationMatcher = bool Function(ConversationEntry entry, String query)
Predicate used by buildConversationOrder.
DataTableCellBuilder = String Function(int rowIndex, String columnId)
Builds the text for one DataTable cell.
DataTableRowKeyBuilder = Object Function(int rowIndex)
Builds a stable semantic key for one DataTable row.
ExternalEditorProcessRunner = Future<int> Function(ExternalEditorProcessRequest request)
ExternalEditorTempFileFactory = Future<ExternalEditorTempFile> Function(ExternalEditorTempFileRequest request)
FileEntryFilter = bool Function(FileEntry entry)
Predicate applied to entries when a directory is read.
FileMentionMatcher = bool Function(FileMentionEntry entry, String query)
Predicate used by buildFileMentionOrder.
FrameCallback = void Function(Duration timeStamp)
Signature for one-shot callbacks registered via TickerScheduler.addPostFrameCallback (and the corresponding TuiBinding.addPostFrameCallback). Receives the clock reading at the moment the frame was drained. Named for Flutter parity with SchedulerBinding.addPostFrameCallback.
FrameFlushCancellation = void Function()
Cancels a pending frame flush.
FrameFlushScheduler = FrameFlushCancellation? Function(Duration delay, void flush())
Schedules flush to run after delay. Duration.zero means "as soon as possible". Returns an optional cancellation callback so a disposed runtime can release delayed timers / browser frame callbacks instead of retaining the whole session until they fire. Injectable so tests drive timing deterministically.
FrameRenderCallback = void Function(String reason)
Render callback the scheduler drives, given the merged frame reason.
KeyBindingHandler = void Function(KeyBindingEvent event)
A binding action, invoked when the binding matches. The event is consumed unless the handler calls KeyBindingEvent.bubble.
LayoutWidgetBuilder = Widget Function(BuildContext context, CellConstraints constraints)
Builds a subtree from the CellConstraints its parent gives it.
ListItemKeyBuilder = Object Function(int index)
Returns the stable data identity for the item currently at index.
PointerCallback = void Function(PointerDetails details)
PointerDragCallback = void Function(PointerDragDetails details)
PointerScrollCallback = bool Function(PointerScrollDetails details)
PointerTapCallback = void Function()
RemoteDebugRequestHandler = void Function(int seq, String kind, int limit)
Handles an inbound debug query from the peer (an agent bridge or a future browser DevTools panel asking for recent frame stats / error records). Implementations answer via RemoteSurfaceSink.presentDebugResponse with the same seq.
RemoteSemanticActionHandler = void Function(SemanticNodeId id, SemanticAction action, Object? value, {String? targetToken})
Handles an inbound semantic-action request from the peer (the browser or an agent activating a node in its accessible DOM). value is the optional payload carried by SemanticAction.setValue; null for every other action. targetToken is the opaque app-issued token the peer observed for the target. Dispatchers use it to reject a recycled positional id; stable ids may omit it.
SchedulerTickCallback = void Function(Duration timeStamp)
Signature for tick callbacks registered with a TickerScheduler. Receives the scheduler's clock reading at the moment of the tick.
SearchResultMatcher = bool Function(SearchResult result, String query)
Predicate used by SearchResultIndex and buildSearchResultOrder.
SelectionChangedCallback = void Function(SelectedContent? content)
Signature for SelectionArea.onSelectionChanged — fires whenever the visible selection updates, with the currently-selected text (or null when nothing is selected).
SemanticActionCallback = FutureOr<void> Function(SemanticAction action)
Carries out a SemanticAction on a node.
SemanticActionRequestHandler = void Function(SemanticNodeId id, SemanticAction action)
SemanticSetValueCallback = FutureOr<void> Function(Object? value)
Carries a SemanticAction.setValue payload to the node it targets. The payload is a JSON-friendly scalar (string, num, bool, or null); a widget coerces/validates it for its role (a slider expects a num, a field a string).
TextCompletionProvider = Iterable<TextCompletionOption> Function(TextCompletionRequest request)
TextCompletionRequestBuilder = TextCompletionRequest Function(TextEditingValue value)
TickerCallback = void Function(Duration elapsed)
Signature for the per-tick callback supplied to a Ticker. Receives the elapsed time since the ticker most recently started.
TickFormatter = String Function(num value)
Formats a numeric axis tick value to a label string. Pass one to LineChart.xTickFormat / LineChart.yTickFormat to control axis labels (and the crosshair tooltip readout) — defaults to TickFormat.number.
TreeTableCellBuilder<T> = String Function(TreeTableNode<T> node, String columnId)
Builds a column value for one tree-table node.
TuiEventHandler = EventResponse? Function(TuiEvent event)
Optional handler called for every input event before the framework re-renders.
TuiFramePaintCallback = void Function(CellBuffer buffer)
Paints one frame into buffer.
VoidCallback = void Function()
Signature for setState and similar one-shot mutators.

Exceptions / Errors

ExternalEditorException
Raised when an external editor exits non-zero and the caller requested failure-as-exception behavior.
FileSourceException
Thrown by FileSource.list when a directory can't be listed.
FleuryError
A framework error with a brief summary, optional details, and an actionable hint for the developer.
SemanticActionDeclined
Thrown by a SemanticActionCallback that did not carry out its action, so the invocation reports unsupported instead of completed: an agent or assistive technology is not told that a disabled command ran or that a refused dismissal happened.
SemanticQueryError
A semantic selector matched zero or multiple nodes.
TickerCanceled
Thrown by TickerFuture.orCancel when the animation it represents is cancelled before reaching its natural end.