fleury_core library
Fleury — the platform-agnostic core.
Everything here is free of dart:io, so it compiles to the web (and any
other Dart target). The native umbrella fleury.dart re-exports this
plus the dart:io-backed pieces (native POSIX and Windows terminal drivers,
runApp, and stray-output capture). Platform hosts that mount and present a
Fleury tree should import fleury_host.dart, which re-exports this library
plus host-only runtime and presentation contracts.
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
Tto 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
previousstate tonextstate. - 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.
- ApprovalPrompt
-
A yes/no decision dialog for one ApprovalRequest: title, explanation,
optional subject and detail lines, and Approve/Deny buttons with
y/nkey 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).
- 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.
- 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.
- 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 typingRgbColor(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
buildcallback. 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.
- 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.
- Controller for ConversationNavigator browsing and viewport state.
- Clipboard/export behavior for ConversationNavigator selected-row copy.
- Result delivered after ConversationNavigator copies the selected row.
- Result delivered after ConversationNavigator activates a row.
- Curve
-
An easing function that maps a normalized parameter
tin[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. - DefaultTextStyle
-
Cascades a base CellStyle onto descendant
Textwidgets, which merge their own style on top. Nest it to restyle a subtree (e.g. dim a whole panel) without touching eachText. - 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
atobatt == 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
tin[0, 1]to a widget that wrapschild. 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
buildthrew — 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). - 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.
- Expanded
-
A widget that takes a
flexshare of the available main-axis space in a Flex. Always uses FlexFit.tight — the child is forced to take exactly its allocation. - 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
FileBrowserandFilePickershow 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
FileBrowserandFilePickerread 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
flexshare 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
runAppso application widget code can always reach aFocusManagervia FocusManager.of. - FocusNode
-
A long-lived focus identity. One per Focus widget; consumers can
also create their own and pass it into a
Focusto 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.
- 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).
- 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.
-
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
Focusif 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 aBuildContextfor 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.
- 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 (
FleuryTesterinstalls one and exposes it astester.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.
- 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.
- 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
aliasesthat 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.
- 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.
- 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.
runAppinstalls 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.
- MarkdownLink
- 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-knownMediaQuery.offootgun). - 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. - Menu
- A dropdown menu: activating trigger with Enter or a click opens a floating list of items just below it.
- MenuEntry
- A row in a Menu: a selectable MenuItem, a nested SubMenu, or a MenuSeparator.
- MenuItem
- A selectable menu row. A disabled item (enabled false) is shown dimmed, skipped by arrow navigation and Enter, and ignores clicks.
- MenuSeparator
- 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.
- 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 (ornullfor empty / in-progress edits like"-"or"1."). - OutputCaptureConsole
-
The floating dev-tool console
runApptoggles: 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
mountWhenreturns 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.rowscrolls up and positive scrolls down; negativedelta.colscrolls 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.
- 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.
- 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 diagnoseand 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.
-
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
SelectionAreaconcatenates 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
SelectionAreato 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.
- SemanticChildrenProvider
- Implemented by elements whose semantic subtree differs from their mounted element subtree.
- SemanticContributor
- Implemented by elements that contribute a semantic node.
- SemanticInspectionNode
- SemanticInspectionSnapshot
- Machine-readable, redaction-aware semantic inspection snapshot.
- SemanticNode
- Immutable semantic description of a mounted UI node.
- SemanticNodeId
- Identity of a semantic node.
- SemanticRole
- The durable meaning of a semantic node.
- Semantics
- App-authored semantic annotation.
- SemanticState
- Extensible typed state carried by semantic nodes.
- SemanticTree
- Immutable semantic snapshot of a mounted Fleury app.
- 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.
- SubMenu
- 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: truethe track tints in the theme's primary color and the handle sits on the right; whenfalsethe track is muted and the handle sits on the left. - 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.
lengthis 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/Columncan'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
runAppowns 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.
runAppinstalls 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 thecontext.themeshorthand (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
SingleTickerProviderStateMixinon aState). -
TickerFuture<
T> -
The future returned by
Animation.toorAnimation.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
Stateclasses via mixins, but alsoTuiBindingdirectly) 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.
- 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 addsNEAR 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>. - 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.addadapter); tests use an in-memory list. - 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.
- 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;
destructivealso 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.
- 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.
- 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.
- 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.
- 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 CSSobject-fitkeywords, so the serve client appliesel.style.objectFit = fit.namewith 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.
- 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.
- SpecialKey
- The non-character keys a terminal can report, as an enumerable set.
- SpinnerStyle
-
Visual style of a Spinner.
brailleis the modern default;asciiis 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
TextAreatreats 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.
- 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> -
Statemixin 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.errormouthful in app code; the dependency tracking is identical (each getter ultimately callsTheme.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, usecontext.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.
- 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
-
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, andmailtomay 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 + zwjCountrather than inferred.
Properties
-
positionByDomCode
→ Map<
String, KeyPosition> -
DOM
KeyboardEvent.code→ position (total over the vocabulary).final
Functions
-
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< roots, required List<T> >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.
-
coerceSemanticBool(
Object? value) → bool? -
Reads
valueas a bool, or null if it isn't one. Accepts a realbool, anum(0 ⇒ false, else true), and the common string spellings an agent might emit ("true","on","1","checked", …), case-insensitively. -
coerceSemanticInt(
Object? value) → int? -
Reads
valueas an int, or null. Accepts an integralnum, abool, and an integerString. 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
valueas a double, or null if it isn't numeric. Accepts anum, abool(1/0), and a numericString. -
defaultAnchorAlignment(
Alignment alignment) → Alignment -
The point on the overlay that meets
alignmentwhen 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
measurementsand 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 safewidedefault until a startup probe measures the terminal. -
detectClusterModeFromEnvironment(
Map< String, String> environment) → ClusterLowering? -
FLEURY_CLUSTER_MODE=joined|split— explicit override for emoji ZWJ lowering.splitmay 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. -
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. -
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< rows, List<Widget> >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< rows, required List<T> >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
graphemeis 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. -
isPositionalSemanticId(
String id) → bool -
Whether
idis 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: theelement-<hash>snapshot-local fallback, and a derivedauto:…id carrying a~positional segment (see semanticAnchorOf). Those shapes are reserved at Semantics.id intake. Other app-assigned ids,key:…, and fully-keyedauto: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
inputis already free of unsafe runes, i.e. whether sanitizeForDisplay would return it unchanged. -
isSanitizedMultiline(
String input) → bool -
Whether
inputis already in the canonical multiline form, i.e. whether sanitizeMultiline would return it unchanged. -
isUnsafeRune(
int rune) → bool -
Returns true if
runeis an unsafe terminal control code that must never reach stdout as raw bytes. -
isValidSemanticRoleName(
String name) → bool -
Whether
nameis 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
fromin the givendirection. Visible for testing; app code should rely on FocusTraversalGroup. -
notifyTerminal(
TerminalDriver driver, String message) → void -
Posts an OSC 9 notification through
driverwhen 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 acrossFLEURY_*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
colorto the best match representable inmode, 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
overlaySizeso itsanchorAlignmentpoint meetsalignmentonanchor. -
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. -
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-fitimplements 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
driverwhen it supports it; no-op otherwise. -
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
inputwith every unsafe rune (see isUnsafeRune) replaced by replacementCharacter. -
sanitizeMultiline(
String input) → String -
sanitizeForDisplay applied per LINE: every unsafe rune is replaced as
usual, but
\nsurvives 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 —
sanitizeForDisplaytreats\r\n\tas 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 above0x9F, so it passes through intact. -
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
driverwhen it supports it; no-op otherwise. -
tableCellText(
Widget cell) → String - Extracts plain text from a table cell widget for copy/export.
-
withTerminalHandoff<
T> (TerminalDriver driver, FutureOr< T> operation()) → Future<T> -
Runs
operationthroughdriver'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.
- 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. - 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).
valueis the optional payload carried by SemanticAction.setValue; null for every other action.targetTokenis 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.
-
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.
- VoidCallback = void Function()
-
Signature for
setStateand similar one-shot mutators.
Exceptions / Errors
- 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
unsupportedinstead ofcompleted: 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.