Skip to content

Hex1b.Widgets

Assembly: Hex1b.dll

Classes

AccordionSectionAction

Represents an action icon displayed in an accordion section header. Can be a simple icon or a toggle that changes appearance based on expand state.

csharp
public sealed record AccordionSectionAction : IEquatable<AccordionSectionAction>

AccordionSectionActionContext

Provides methods to programmatically control the expand/collapse state of an accordion section. Accessible from icon click handlers via the accordion node.

csharp
public sealed class AccordionSectionActionContext

AccordionSectionExpandedEventArgs

Event arguments for accordion section expand/collapse changes.

csharp
public sealed class AccordionSectionExpandedEventArgs : EventArgs

AccordionSectionWidget

Represents a single section within an Accordion. Contains the section title, content builder, and action icons.

csharp
public sealed record AccordionSectionWidget : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<AccordionSectionWidget>

AccordionWidget

A collapsible section container where each section has a title header and expandable content area. Sections can be expanded and collapsed independently.

csharp
public sealed record AccordionWidget : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<AccordionWidget>

ActionMenu

A popup menu of selectable actions displayed at a document position. Used for code actions, quick fixes, and rename operations.

csharp
public record ActionMenu : IEquatable<ActionMenu>

ActionMenuItem

A single item in an .

csharp
public record ActionMenuItem : IEquatable<ActionMenuItem>

AlignWidget

A widget that aligns its child within the available space.

csharp
public sealed record AlignWidget : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<AlignWidget>

BackdropWidget

A widget that fills its available space and intercepts all input. Used as a modal backdrop to prevent interaction with layers below. Can optionally display a background color (for dimming effects) and trigger a callback when clicked (for "click-away to dismiss" behavior).

csharp
public sealed record BackdropWidget : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<BackdropWidget>

BackgroundPanelWidget

A passthrough widget that fills its bounds with a background color before rendering its child. All layout, focus, and input is delegated to the child unchanged.

csharp
public sealed record BackgroundPanelWidget : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<BackgroundPanelWidget>

BarChartWidget<T>

A widget that displays a horizontal bar chart with support for simple, stacked, and grouped modes.

csharp
public sealed record BarChartWidget<T> : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<BarChartWidget<T>>

BorderWidget

A widget that draws a box border around its child content. Use the fluent method to set an optional title.

csharp
public sealed record BorderWidget : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<BorderWidget>

BreakdownChartWidget<T>

A widget that displays a proportional segmented bar.

csharp
public sealed record BreakdownChartWidget<T> : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<BreakdownChartWidget<T>>

ButtonWidget

csharp
public sealed record ButtonWidget : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<ButtonWidget>

CheckboxWidget

A checkbox widget that displays a toggleable checked/unchecked/indeterminate state.

csharp
public sealed record CheckboxWidget : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<CheckboxWidget>

ClipScope

Defines how a ZStack's content is clipped.

csharp
public abstract record ClipScope : IEquatable<ClipScope>

ColumnChartWidget<T>

A widget that displays a vertical column chart with support for simple, stacked, and grouped modes.

csharp
public sealed record ColumnChartWidget<T> : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<ColumnChartWidget<T>>

CompositeWidget<TNode>

Base class for composite widgets that build their UI from other widgets. Composite widgets describe reusable UI patterns like Picker, DatePicker, ColorPicker, etc.

csharp
public abstract record CompositeWidget<TNode> : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<CompositeWidget<TNode>> where TNode : CompositeNode, new()

ComputedSurfaceLayer

A layer whose cells are computed dynamically based on layers below.

csharp
public record ComputedSurfaceLayer : SurfaceLayer, IEquatable<SurfaceLayer>, IEquatable<ComputedSurfaceLayer>

ConditionalWidget

A widget that wraps content with a condition that determines whether it should be displayed. Used as part of a ResponsiveWidget to create conditional UI layouts.

csharp
public sealed record ConditionalWidget : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<ConditionalWidget>

DonutChartWidget<T>

A widget that displays a donut (or pie) chart using half-block characters for smooth rendering.

csharp
public sealed record DonutChartWidget<T> : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<DonutChartWidget<T>>

DragBarPanelWidget

A panel widget with a built-in resize handle on one edge. The panel manages its own size state internally — dragging the handle changes the panel's fixed size, triggering re-layout automatically.

csharp
public sealed record DragBarPanelWidget : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<DragBarPanelWidget>

DraggableWidget

A widget that makes its child tree draggable via mouse interaction. The builder lambda receives a with the current drag state so the content can render differently while being dragged.

csharp
public sealed record DraggableWidget : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<DraggableWidget>

DrawerWidget

A collapsible panel widget that can be placed at the edge of an HStack or VStack. In collapsed state, it shows minimal content (or nothing). In expanded state, it shows full content with collapse/dock controls.

csharp
public sealed record DrawerWidget : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<DrawerWidget>

DrawSurfaceLayer

A layer whose content is drawn via a callback.

csharp
public record DrawSurfaceLayer : SurfaceLayer, IEquatable<SurfaceLayer>, IEquatable<DrawSurfaceLayer>

DroppableWidget

A widget that defines a drop target region. When a draggable item is dragged over this region, the builder lambda receives a with the current drag-hover state so the content can render differently to indicate drop availability.

csharp
public sealed record DroppableWidget : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<DroppableWidget>

DropTargetWidget

A widget that marks an insertion point inside a . When a drag operation is active, the nearest DropTarget to the cursor becomes active and its builder callback can render a visual indicator (e.g., a separator line). When inactive, the node measures as zero height so it doesn't create gaps.

csharp
public sealed record DropTargetWidget : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<DropTargetWidget>

EditorOverlay

Describes a floating UI element anchored to a document position in the editor. Pushed by decoration providers via .

csharp
public record EditorOverlay : IEquatable<EditorOverlay>

EditorState

User-owned mutable state for an editor widget. Multiple EditorWidgets can share the same EditorState for synced cursors. Multiple EditorStates can share the same IHex1bDocument for independent views.

csharp
public class EditorState

EditorWidget

Widget for multi-line document editing. Supports shared documents and synced cursors.

csharp
public sealed record EditorWidget : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<EditorWidget>

EffectPanelWidget

A single-child container widget that applies visual post-processing effects. The child remains fully interactive (focus, input, hit testing work normally). During rendering, the child's output is captured to a temporary , the effect callback modifies it, then the result is composited to the parent.

csharp
public sealed record EffectPanelWidget : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<EffectPanelWidget>

FloatWidget

Wraps a child widget and removes it from the container's normal layout flow. The float is positioned either at absolute coordinates or relative to an anchor widget.

csharp
public sealed record FloatWidget : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<FloatWidget>

GridCellWidget

Describes a cell within a , including its content widget and grid placement (row, column, spans).

csharp
public sealed record GridCellWidget : IEquatable<GridCellWidget>

GridColumnDefinition

Defines the sizing behavior for a grid column.

csharp
public sealed record GridColumnDefinition : IEquatable<GridColumnDefinition>

GridRowDefinition

Defines the sizing behavior for a grid row.

csharp
public sealed record GridRowDefinition : IEquatable<GridRowDefinition>

GridWidget

A layout widget that arranges children in a two-dimensional grid with support for row and column spanning, explicit column/row sizing, and automatic grid dimension inference.

csharp
public sealed record GridWidget : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<GridWidget>

Hex1bWidget

csharp
public abstract record Hex1bWidget : IEquatable<Hex1bWidget>

HStackWidget

csharp
public sealed record HStackWidget : Hex1bWidget, IEquatable<Hex1bWidget>, IFloatWidgetContainer, IEquatable<HStackWidget>

HyperlinkWidget

A widget that renders text as a clickable hyperlink using OSC 8 escape sequences. In terminals that support OSC 8 (most modern terminals), the text will be rendered as a clickable link. In unsupported terminals, the text will be rendered normally.

csharp
public sealed record HyperlinkWidget : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<HyperlinkWidget>

IconWidget

Displays an icon (single character or short string) that can optionally respond to clicks.

csharp
public sealed record IconWidget : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<IconWidget>

InfoBarSection

A section within an InfoBar, with text and optional styling.

csharp
public sealed record InfoBarSection : IEquatable<InfoBarSection>

InfoBarSectionWidget

A section within an info bar that contains content (text or widgets). Sections can have custom colors, width hints, and alignment.

csharp
public sealed record InfoBarSectionWidget : IInfoBarChild, IEquatable<InfoBarSectionWidget>

InfoBarSeparatorWidget

A visual separator between info bar sections. Displays a character or string to divide sections.

csharp
public sealed record InfoBarSeparatorWidget : IInfoBarChild, IEquatable<InfoBarSeparatorWidget>

InfoBarSpacerWidget

A flexible spacer that expands to fill available horizontal space. Use spacers to push sections apart within an info bar.

csharp
public sealed record InfoBarSpacerWidget : IInfoBarChild, IEquatable<InfoBarSpacerWidget>

InfoBarWidget

A horizontal info bar widget, typically placed at the bottom of the screen. Supports sections, separators, and spacers with flexible layout options.

csharp
public sealed record InfoBarWidget : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<InfoBarWidget>

InputOverrideWidget

A container widget that overrides input bindings for all descendant widgets of specified types. Overrides cascade through the widget tree — any widget of a matching type within the subtree will have the override applied after its default bindings and any per-instance .

csharp
public sealed record InputOverrideWidget : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<InputOverrideWidget>

InteractableWidget

A widget that wraps a child tree and makes the entire area focusable, clickable, and hoverable. The builder lambda is deferred to reconciliation time so it can read current focus/hover state from the .

csharp
public sealed record InteractableWidget : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<InteractableWidget>

KgpImageWidget

A widget that displays a KGP (Kitty Graphics Protocol) image if the terminal supports it, otherwise falls back to rendering the fallback widget.

csharp
public sealed record KgpImageWidget : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<KgpImageWidget>

LayoutWidget

A layout widget that provides clipping and rendering assistance to its children. Children that are aware of layout can query whether characters should be rendered.

csharp
public sealed record LayoutWidget : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<LayoutWidget>

LegendWidget<T>

A standalone widget that displays a chart legend with colored swatches and labels.

csharp
public sealed record LegendWidget<T> : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<LegendWidget<T>>

ListWidget

Widget for displaying a selectable list of items. Selection state is owned by the node and preserved across reconciliation.

csharp
public sealed record ListWidget : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<ListWidget>

LoggerPanelWidget

A widget that displays log entries from an in a table with automatic follow behavior. Follows by default; scrolling up breaks the lock. Navigating back to the last row re-engages following.

csharp
public sealed record LoggerPanelWidget : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<LoggerPanelWidget>

MarkdownWidget

A widget that parses markdown source and renders it as a composed widget tree. Block rendering is extensible via which registers middleware-style handler callbacks.

csharp
public sealed record MarkdownWidget : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<MarkdownWidget>

A horizontal menu bar that contains top-level menus. Typically placed at the top of an application.

csharp
public sealed record MenuBarWidget : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<MenuBarWidget>

A menu item that can be activated to trigger an action.

csharp
public sealed record MenuItemWidget : Hex1bWidget, IEquatable<Hex1bWidget>, IMenuChild, IEquatable<MenuItemWidget>

A visual separator between menu items. Non-focusable and non-interactive.

csharp
public sealed record MenuSeparatorWidget : Hex1bWidget, IEquatable<Hex1bWidget>, IMenuChild, IEquatable<MenuSeparatorWidget>

A menu that can contain menu items, separators, and submenus. When used in a MenuBar, renders as a clickable trigger. When used in another Menu, renders as a submenu item with an arrow indicator.

csharp
public sealed record MenuWidget : Hex1bWidget, IEquatable<Hex1bWidget>, IMenuChild, IEquatable<MenuWidget>

Represents a screen/page that can be displayed in a Navigator.

csharp
[Experimental("HEX1B001")]
public record NavigatorRoute : IEquatable<NavigatorRoute>

State object for Navigator that manages the navigation stack. Use this to push new screens, pop back, or reset to root.

csharp
[Experimental("HEX1B001")]
public class NavigatorState

A navigator widget that provides stack-based navigation for building wizard-style flows and drill-down experiences.

The navigator maintains a stack of routes. Use the NavigatorState to:

  • Push: Navigate to a new screen (drill down)
  • Pop: Go back to the previous screen
  • PopToRoot: Return to the starting screen (complete wizard)
  • Replace: Swap the current screen without adding to history
csharp
[Experimental("HEX1B001")]
public sealed record NavigatorWidget : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<NavigatorWidget>

NotificationCardWidget

A notification card widget that displays a single notification with title, body, and action buttons.

csharp
public sealed record NotificationCardWidget : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<NotificationCardWidget>

NotificationIconWidget

A notification bell icon widget that displays the notification count and toggles the drawer.

csharp
public sealed record NotificationIconWidget : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<NotificationIconWidget>

NotificationPanelWidget

A notification panel widget that hosts notifications and displays them as floating overlays or in a slide-out drawer.

csharp
public sealed record NotificationPanelWidget : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<NotificationPanelWidget>

OverlayLine

A single line of styled text in an editor overlay.

csharp
public record OverlayLine : IEquatable<OverlayLine>

OverlaySegment

A styled text segment within an overlay line. Allows mixing colors and styles within a single line.

csharp
public record OverlaySegment : IEquatable<OverlaySegment>

PaddingWidget

A widget that adds invisible padding around its child content.

csharp
public sealed record PaddingWidget : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<PaddingWidget>

PastableWidget

A container widget that intercepts bracketed paste events for all descendants. When paste data arrives and no child handles it, the receives the for streaming processing.

csharp
public sealed record PastableWidget : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<PastableWidget>

PickerWidget

A dropdown picker widget that shows a selected value and opens a list popup when activated. Selection state is owned by the node and preserved across reconciliation.

csharp
public sealed record PickerWidget : CompositeWidget<PickerNode>, IEquatable<Hex1bWidget>, IEquatable<CompositeWidget<PickerNode>>, IEquatable<PickerWidget>

ProgressWidget

Displays a progress bar that can show either determinate (known completion percentage) or indeterminate (unknown completion) progress.

csharp
public sealed record ProgressWidget : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<ProgressWidget>

QrCodeWidget

Displays a QR code in the terminal using block characters.

csharp
public sealed record QrCodeWidget : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<QrCodeWidget>

ReconcileContext

Context passed to widget reconciliation methods, providing access to child reconciliation and focus management utilities.

csharp
public sealed class ReconcileContext

RescueWidget

A widget that catches exceptions and displays a fallback when errors occur. Similar to React's ErrorBoundary pattern.

csharp
public sealed record RescueWidget : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<RescueWidget>

ResponsiveWidget

A widget that displays the first child whose condition evaluates to true. Conditions are evaluated during layout with the available size from parent constraints.

csharp
public sealed record ResponsiveWidget : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<ResponsiveWidget>

ScatterChartWidget<T>

A widget that displays a scatter plot using braille characters for sub-cell precision.

csharp
public sealed record ScatterChartWidget<T> : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<ScatterChartWidget<T>>

ScrollbarWidget

A standalone scrollbar widget that can be composed with other widgets.

csharp
public sealed record ScrollbarWidget : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<ScrollbarWidget>

ScrollPanelWidget

A scroll panel that provides scrolling capability for content that exceeds the available space. Only supports one direction at a time (vertical or horizontal).

csharp
public sealed record ScrollPanelWidget : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<ScrollPanelWidget>

SeparatorWidget

A separator widget that draws a horizontal or vertical line. When placed in a VStack, it draws a horizontal line. When placed in an HStack, it draws a vertical line. The axis can also be set explicitly. Customize appearance using via ThemePanel.

csharp
public sealed record SeparatorWidget : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<SeparatorWidget>

SignaturePanel

Displays function signature information with the active parameter highlighted. Used for signature help triggered by typing trigger characters (e.g., '(' or ',').

csharp
public record SignaturePanel : IEquatable<SignaturePanel>

SignaturePanelEntry

A single function signature in the .

csharp
public record SignaturePanelEntry : IEquatable<SignaturePanelEntry>

SignatureParameterInfo

Information about a single parameter in a signature.

csharp
public record SignatureParameterInfo : IEquatable<SignatureParameterInfo>

SixelWidget

A widget that displays a Sixel image if the terminal supports it, otherwise falls back to rendering the fallback widget.

csharp
[Experimental("HEX1B_SIXEL", UrlFormat = "https://github.com/hex1b/hex1b/blob/main/docs/experimental/sixel.md")]
public sealed record SixelWidget : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<SixelWidget>

SliderWidget

A slider widget for selecting numeric values within a range.

csharp
public sealed record SliderWidget : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<SliderWidget>

SourceSurfaceLayer

A layer backed by an existing .

csharp
public record SourceSurfaceLayer : SurfaceLayer, IEquatable<SurfaceLayer>, IEquatable<SourceSurfaceLayer>

SpinnerStyle

Defines a spinner animation style as a sequence of frames.

csharp
public sealed class SpinnerStyle

SpinnerWidget

Displays an animated spinner to indicate ongoing activity.

csharp
public sealed record SpinnerWidget : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<SpinnerWidget>

SplitButtonAction

Represents a secondary action in a split button dropdown menu.

csharp
public sealed record SplitButtonAction : IEquatable<SplitButtonAction>

SplitButtonWidget

A split button with a primary action and a dropdown for secondary actions. The main button area triggers the primary action, while the dropdown arrow opens a menu.

csharp
public sealed record SplitButtonWidget : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<SplitButtonWidget>

SplitterWidget

A splitter/divider that separates two panes either horizontally (left/right) or vertically (top/bottom). Each pane is implicitly wrapped in a LayoutWidget for proper clipping.

csharp
public sealed record SplitterWidget : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<SplitterWidget>

StatePanelWidget

A widget that provides identity-anchored scope for its child subtree. The state object's reference identity determines which node is reused across reconciliation frames, enabling state preservation across list reorders.

csharp
public sealed record StatePanelWidget : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<StatePanelWidget>

SurfaceLayer

Base record for layers in a .

csharp
public abstract record SurfaceLayer : IEquatable<SurfaceLayer>

SurfaceLayerContext

Context provided to layer builders.

csharp
public class SurfaceLayerContext

SurfaceWidget

A widget that renders layered surfaces with compositing support.

csharp
public record SurfaceWidget : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<SurfaceWidget>

TabBarWidget

A horizontal tab bar widget that displays tabs with optional overflow navigation. Can be used standalone or as part of a TabPanel.

csharp
public sealed record TabBarWidget : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<TabBarWidget>

TabItemWidget

Represents a single tab within a TabPanel or TabBar. Contains the tab title, optional icon, and content builder.

csharp
public sealed record TabItemWidget : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<TabItemWidget>

TableCell

Represents a cell definition in a table, containing either text or a widget builder.

csharp
public record TableCell : IEquatable<TableCell>

TableCellContext

Context provided when building a widget cell.

csharp
public class TableCellContext : RootContext

TableCellExtensions

Extension methods for TableCell to enable fluent column configuration.

csharp
public static class TableCellExtensions

TableFooterContext

Context for building table footer cells.

csharp
public class TableFooterContext

TableHeaderContext

Context for building table header cells.

csharp
public class TableHeaderContext

TableRowContext

Context for building table row cells.

csharp
public class TableRowContext

TableRowState

Provides state information about a table row during rendering.

csharp
public record TableRowState : IEquatable<TableRowState>

TableWidget<TRow>

A widget for displaying tabular data with columns, rows, and optional header/footer.

csharp
public record TableWidget<TRow> : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<TableWidget<TRow>>

TabPanelWidget

A complete tabbed panel widget with a tab bar and content area. Supports composable tab content with automatic tab switching.

csharp
public sealed record TabPanelWidget : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<TabPanelWidget>

TabSelectionChangedEventArgs

Event arguments for tab selection changes.

csharp
public sealed class TabSelectionChangedEventArgs : EventArgs

TerminalNotRunningArgs

Arguments provided to the WhenNotRunning callback.

csharp
public sealed record TerminalNotRunningArgs : IEquatable<TerminalNotRunningArgs>

TerminalWidget

A widget that displays an embedded terminal session.

csharp
public sealed record TerminalWidget : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<TerminalWidget>

TextBlockWidget

Displays text content in the terminal. This is the primary widget for rendering static or dynamic text strings.

csharp
public sealed record TextBlockWidget : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<TextBlockWidget>

TextBoxWidget

csharp
public sealed record TextBoxWidget : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<TextBoxWidget>

ThemePanelWidget

A widget that applies theme customizations to its child widget tree. Use this to override theme elements (colors, characters, etc.) for a specific portion of your UI without affecting the rest of the application.

csharp
public sealed record ThemePanelWidget : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<ThemePanelWidget>

TilePanelWidget

A composite widget that renders an infinite, pannable and zoomable tile map.

csharp
public sealed record TilePanelWidget : CompositeWidget<TilePanelNode>, IEquatable<Hex1bWidget>, IEquatable<CompositeWidget<TilePanelNode>>, IEquatable<TilePanelWidget>

TimeSeriesChartWidget<T>

A widget that displays a time series line chart using braille characters for sub-cell precision.

csharp
public sealed record TimeSeriesChartWidget<T> : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<TimeSeriesChartWidget<T>>

ToggleSwitchWidget

A horizontal toggle switch widget that allows selecting between multiple options. Use arrow keys (left/right) to switch between options when focused. Selection state is owned by the node and preserved across reconciliation.

csharp
public sealed record ToggleSwitchWidget : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<ToggleSwitchWidget>

TreeItemWidget

A focusable tree item with label and optional icon. Supports lazy loading of children via OnExpanding callback.

csharp
public sealed record TreeItemWidget : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<TreeItemWidget>

TreeWidget

Container widget that displays hierarchical data in a tree structure with guides and indentation. Supports keyboard navigation, expand/collapse, and multi-selection.

csharp
public sealed record TreeWidget : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<TreeWidget>

VStackWidget

csharp
public sealed record VStackWidget : Hex1bWidget, IEquatable<Hex1bWidget>, IFloatWidgetContainer, IEquatable<VStackWidget>

WidgetSurfaceLayer

A layer whose content is rendered from a widget tree.

csharp
public record WidgetSurfaceLayer : SurfaceLayer, IEquatable<SurfaceLayer>, IEquatable<WidgetSurfaceLayer>

WindowPanelWidget

A container panel that hosts floating windows. Windows are managed through the and rendered over a decorative background.

csharp
public sealed record WindowPanelWidget : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<WindowPanelWidget>

WrapPanelWidget

A layout panel that arranges children sequentially and wraps to the next row (horizontal) or column (vertical) when the available space is exceeded. Works best with uniformly-sized children and is typically placed inside a .

csharp
public sealed record WrapPanelWidget : Hex1bWidget, IEquatable<Hex1bWidget>, IEquatable<WrapPanelWidget>

ZStackWidget

A container that stacks children on the Z-axis (depth). All children occupy the same space, with later children rendering on top of earlier ones. This is useful for overlays, floating panels, menus, and modal dialogs.

csharp
public sealed record ZStackWidget : Hex1bWidget, IEquatable<Hex1bWidget>, IFloatWidgetContainer, IEquatable<ZStackWidget>

Structs

AccordionContext

Provides a fluent API context for building Accordion structures. This context exposes section-creation methods to guide developers toward the correct API usage.

csharp
public readonly struct AccordionContext

AccordionSectionActionBuilder

Builder context for creating accordion section header actions. Provides factory methods for common action types.

csharp
public readonly struct AccordionSectionActionBuilder

InfoBarContext

Provides a fluent API context for building info bar structures. This context exposes only info bar-related methods (Section, Separator, Spacer) to guide developers toward the correct API usage.

csharp
public readonly struct InfoBarContext

Provides a fluent API context for building menu structures. This context exposes only menu-related methods (Menu, MenuItem, Separator) to guide developers toward the correct API usage.

csharp
public readonly struct MenuContext

TabContext

Provides a fluent API context for building tab content. This context exposes widget-building methods for composing tab content.

csharp
public readonly struct TabContext

TabPanelContext

Provides a fluent API context for building TabPanel structures. This context exposes tab-creation methods (Tab) to guide developers toward the correct API usage.

csharp
public readonly struct TabPanelContext

TreeContext

Provides a fluent API context for building tree structures. This context exposes the Item method to create tree items with optional children.

csharp
public readonly struct TreeContext

Interfaces

IFloatWidgetContainer

Marker interface for container widgets that support floating children. When a container implements this interface, the Float() extension method becomes available in its widget context, allowing children to opt out of the normal layout flow.

csharp
public interface IFloatWidgetContainer

IInfoBarChild

Marker interface for widgets that can be children of an InfoBar. This includes sections, separators, and spacers.

csharp
public interface IInfoBarChild

IMenuChild

Marker interface for widgets that can be children of a Menu. Implemented by MenuWidget (submenus), MenuItemWidget, and MenuSeparatorWidget.

csharp
public interface IMenuChild

Enums

Alignment

Specifies alignment within a container. Can be combined using flags.

csharp
[Flags]
public enum Alignment

AnchorPosition

Specifies the preferred position of a popup relative to its anchor widget.

csharp
public enum AnchorPosition

BackdropStyle

Specifies how the backdrop is visually rendered.

csharp
public enum BackdropStyle

CheckboxState

Represents the visual state of a checkbox.

csharp
public enum CheckboxState

ClipMode

Determines how content that exceeds bounds is handled.

csharp
public enum ClipMode

CursorDirection

Specifies the direction of cursor movement within an editor.

csharp
public enum CursorDirection

DragBarEdge

Specifies which edge of a DragBarPanel the resize handle appears on.

csharp
public enum DragBarEdge

DrawerDirection

Specifies the direction a drawer expands toward when opened.

csharp
public enum DrawerDirection

DrawerMode

Specifies the rendering mode for an expanded drawer.

csharp
public enum DrawerMode

FloatHorizontalAlignment

Specifies how a floated widget aligns horizontally relative to its anchor.

csharp
public enum FloatHorizontalAlignment

FloatVerticalAlignment

Specifies how a floated widget aligns vertically relative to its anchor.

csharp
public enum FloatVerticalAlignment

InfoBarSectionAlignment

Alignment options for content within an info bar section.

csharp
public enum InfoBarSectionAlignment

LayoutAxis

The axis along which content is laid out.

csharp
public enum LayoutAxis

OverlayPlacement

Controls where an editor overlay is positioned relative to its anchor.

csharp
public enum OverlayPlacement

RescueErrorPhase

The phase in which an error occurred during rescue handling.

csharp
public enum RescueErrorPhase

ScrollOrientation

The orientation of a scroll widget.

csharp
public enum ScrollOrientation

TabBarRenderMode

Defines the rendering mode for a tab bar.

csharp
public enum TabBarRenderMode

TableRenderMode

Specifies how table rows are rendered.

csharp
public enum TableRenderMode

TabPosition

Specifies the position of tabs in a TabPanel.

csharp
public enum TabPosition

TextOverflow

Specifies how a handles text that exceeds its available width.

csharp
public enum TextOverflow

TreeSelectionState

Specifies the selection state of a tree item in multi-select mode with cascade selection.

csharp
public enum TreeSelectionState

WrapOrientation

Specifies the primary layout direction for a .

csharp
public enum WrapOrientation

Released under the MIT License.