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
_linesand 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.