noir_low_level library

Noir — advanced/internal framework API.

Use this barrel when you need renderer/buffer primitives, supported custom render-widget and render-object protocols, or advanced lifecycle owners. Concrete Element types remain framework-owned. This API is advanced — most apps should not need it; prefer package:noir/noir.dart.

For raw FFI (ABI-unstable until the native library stabilizes), see package:noir/noir_ffi.dart.

Classes

Buffer
Native OpenTUI cell grid borrowed from a Renderer.
BuildOwner
Coordinates the build pipeline, render root, focus, and input for an app.
CursorController
Centralised cursor coordination for focusable widgets.
DirectBufferAccess
Direct access to Buffer internal arrays for advanced operations.
FocusManager
Owns the focus tree, tracks primaryFocus, and routes focus-priority key events.
HitTestEntry
A target and target-local position produced by hit testing.
HitTestResult
Result of a render-tree hit test.
HitTestTarget
Render object contract for pointer-event targets.
InputManager
Input manager for handling terminal input events.
InputPriority
Standard priority constants used by InputManager.
InputSubscription
Handle returned from InputManager.onKey, InputManager.onMouse, and InputManager.onPaste. Call cancel to remove the underlying subscription; safe to call multiple times.
MultiChildRenderObjectWidget
Abstract base class for RenderObjectWidgets with multiple children
PaintingContext
Context passed through the render-tree paint walk.
RenderAsciiFont
Render object for AsciiFont.
RenderBox
A render object that uses the box layout model.
RenderConstrainedBox
A render object that enforces additional constraints on its child.
RenderDecoratedBox
A render object that paints a Decoration.
Renderer
Manages frame buffers, terminal rendering, and output flushing.
RenderFlex
A render object that displays its children in a flex layout.
RenderImage
Render box for one decoded terminal image.
RenderObject
Base class for objects in the render tree.
RenderObjectWidget
Base class for widgets that manage RenderObjects
RenderPadding
A render object that applies padding to its child.
RenderParagraph
RenderObject that lays out inline spans and records text paint commands.
RenderPositionedBox
A render object that positions its child within the available space according to an alignment.
RenderProxyBox
A render object that forwards layout and paint to a single child.
RenderScrollBox
RenderObject behind ScrollBox: lays out its child unbounded along the scroll axis, then translates and clips during paint. Renders an optional 1-cell scrollbar gutter on the trailing edge.
RenderStack
A render box that overlays children in document order.
RenderTextArea
RenderBox behind TextArea. Paints the visible window of _lines and drives cursor visibility. Scroll offsets are computed by the State before each rebuild. The render object passively publishes completed layout dimensions but never schedules State work.
RenderTextTable
Render object that owns one table measurement and paint model.
RenderWrap
A render box that lays children into multiple runs.
SingleChildRenderObjectWidget
A RenderObjectWidget whose render object adopts at most one child.
StackChildData
Absolute positioning metadata for one stack child.
TerminalCellMetrics
Terminal geometry available during a render-tree paint walk.
TextLayoutEngine
Lays out inline spans against terminal box constraints.
TickerScheduler
Owns ticker registration and ticks every active ticker once per frame.
TuiBinding
Owns the app lifecycle graph for an OpenTUI widget tree.
WidgetInspectorService
Debug inspector that snapshots the mounted element tree as text.

Enums

Axis
The direction of a one-dimensional layout or viewport.
TerminalClipboardTarget
OSC 52 clipboard selection targeted by terminal copy and clear operations.

Mixins

RenderObjectWithSingleChild
Mixin for render objects that own a single render child.

Extensions

ClipboardSupport on Renderer
Low-level OSC 52 clipboard operations owned by a live Renderer.
CursorManagement on Renderer
Cursor-management methods added to Renderer.
KeyboardSupport on Renderer
Kitty keyboard protocol methods added to Renderer.
MouseSupport on Renderer
Mouse input methods added to Renderer.

Functions

describeIdentity(Object object) String
A short identity string: the object's runtime type plus a hex identity hash.

Typedefs

FrameCallback = void Function()
Signature for callbacks invoked when a frame is scheduled.