Sign in

    wzzc-dev/moui/core does not have a README file

    TextGraphemeBoundaries

    The grapheme boundary scanner, backed by the Unicode 17.0 property table.

    ViewNode

    pub(open) trait ViewNode {
    fn identity(Self) -> ViewIdentity
    fn declaration(Self) -> ViewDeclaration = _
    fn child_constraints(Self, Constraints) -> Constraints = _
    fn child_environment(Self, Environment) -> Environment = _
    fn child_style(Self, ViewStyle) -> ViewStyle = _
    fn layout(Self, ViewLayoutContext) -> ViewLayoutResult
    fn paint(Self, ViewPaintContext) -> ViewPaintPlan = _
    fn platform_views(Self, ViewPlatformContext) -> Array[PlatformViewPlacement] = _
    fn text_input_state(Self, ViewPaintContext) -> TextInputState? = _
    fn semantics(Self) -> ViewSemanticsInfo = _
    fn focusable(Self) -> Bool = _
    fn flex_weight(Self) -> Double = _
    }

    Message-independent behavior for a low-level custom view node.

    The trait is open so downstream packages can define renderer-neutral controls. Typed children and messages are attached with View::from_node. identity controls element reuse: equal identities preserve transient runtime control state, while a changed kind or key remounts the element. declaration classifies immutable declaration data independently for layout, paint, semantics, and platform work. Its conservative default marks every channel uncacheable; performance-sensitive nodes opt into exact or constant channels explicitly. Application state belongs in the TEA model and transient interaction state belongs in runtime-owned element state exposed through the typed adapters.

    ViewStateValue

    pub(open) trait ViewStateValue {
    fn view_state_type_key() -> DeclarationKey
    fn encode_view_state(Self) -> Bytes
    fn decode_view_state(Self, Bytes) -> Self?
    }

    A value that can be stored in a runtime-owned view-state slot.

    The type key is part of slot identity, so two slots with the same logical key but different value types cannot alias. Implementations must use a stable, versioned type key and an exact, deterministic byte encoding.

    AccessibilityContrast

    pub(all) enum AccessibilityContrast {
    Standard
    High
    } derive(Eq, ToJson,
    Debug
    )

    AccessibilityLabelModifier

    pub(all) struct AccessibilityLabelModifier {
    label : String
    }

    AccessibilityLabelModifier::to_any_modifier

    fn[Msg] AccessibilityLabelModifier::to_any_modifier(self : AccessibilityLabelModifier) -> AnyModifier[Msg]

    ActionCommand

    pub(all) struct ActionCommand {
    intent : CommandIntent
    shortcut : KeyboardShortcut?
    label : String
    enabled : Bool
    group : String
    description : String
    context_menu : Bool
    } derive(Eq, ToJson,
    Debug
    )

    ActionCommand::display_label

    fn ActionCommand::display_label(self : ActionCommand) -> String

    ActionCommand::matches

    fn ActionCommand::matches(self : ActionCommand, event : KeyboardEvent) -> Bool

    ActionCommand::new

    fn ActionCommand::new(intent~ : CommandIntent, label? : String, shortcut? : KeyboardShortcut?, enabled? : Bool, group? : String, description? : String, context_menu? : Bool) -> ActionCommand

    ActionCommand::shortcut_label

    fn ActionCommand::shortcut_label(self : ActionCommand) -> String

    ActionCommandMap

    type ActionCommandMap

    ActionCommandMap::commands

    ActionCommandMap::dispatch_command

    fn ActionCommandMap::dispatch_command(self : ActionCommandMap, command : ActionCommand) -> Bool

    ActionCommandMap::dispatch_intent

    fn ActionCommandMap::dispatch_intent(self : ActionCommandMap, intent : CommandIntent) -> Bool

    ActionCommandMap::dispatch_shortcut

    fn ActionCommandMap::dispatch_shortcut(self : ActionCommandMap, event : KeyboardEvent) -> CommandIntent?

    ActionCommandMap::find_shortcut

    fn ActionCommandMap::find_shortcut(self : ActionCommandMap, event : KeyboardEvent) -> ActionCommand?

    ActionCommandMap::new

    AlignModifier

    pub(all) struct AlignModifier {
    alignment : Alignment
    }

    AlignModifier::to_any_modifier

    fn[Msg] AlignModifier::to_any_modifier(self : AlignModifier) -> AnyModifier[Msg]

    Alignment

    pub(all) struct Alignment {
    x : Double
    y : Double
    } derive(Eq, ToJson,
    Debug
    )

    Alignment::bottom_leading

    fn Alignment::bottom_leading() -> Alignment

    Alignment::bottom_trailing

    fn Alignment::bottom_trailing() -> Alignment

    Alignment::center

    fn Alignment::center() -> Alignment

    Alignment::new

    fn Alignment::new(x~ : Double, y~ : Double) -> Alignment

    Alignment::top_leading

    fn Alignment::top_leading() -> Alignment

    Alignment::top_trailing

    fn Alignment::top_trailing() -> Alignment

    AlignmentGuideSet

    pub(all) struct AlignmentGuideSet {
    leading : Double
    center : Double
    trailing : Double
    first_baseline : Double?
    } derive(Eq, ToJson,
    Debug
    )

    AlignmentGuideSet::from_size

    fn AlignmentGuideSet::from_size(size : Size, first_baseline? : Double?) -> AlignmentGuideSet

    AnimationStatus

    pub(all) enum AnimationStatus {
    Idle
    Running
    Completed
    } derive(Eq, ToJson,
    Debug
    )

    AnyModifier

    pub(all) struct AnyModifier[Msg] {
    identity_kind : String
    identity_key : Key?
    declaration : ViewDeclaration
    child_constraints : (Constraints) -> Constraints
    child_environment : (Environment) -> Environment
    child_style : (ViewStyle) -> ViewStyle
    layout : (ViewLayoutContext) -> ViewLayoutResult
    paint : (ViewPaintContext) -> ViewPaintPlan
    event : (ViewEventContext) -> ViewEventResult[Msg]
    semantics : ViewSemanticsInfo
    semantics_actions : Array[ViewSemanticsActionHandler[Msg]]
    focusable : Bool
    flex_weight : Double
    }

    A type-erased modifier that dispatches to concrete modifier implementations via closures. Replaces the 50-variant ViewModifier[Msg] enum.

    Each concrete modifier (Padding, Frame, Background, OnTap, etc.) is a standalone type that implements the subset of modifier behavior it needs and converts to AnyModifier via a to_any_modifier method.

    AppEvent

    pub(all) enum AppEvent {
    FrameTick(Frame)
    Pointer(PointerEvent)
    Keyboard(KeyboardEvent)
    TextInput(TextInputEvent)
    DragDrop(DragDropEvent)
    PlatformView(String, PlatformViewEvent)
    Resize(Size)
    Redraw(RedrawReason)
    CloseRequested
    } derive(Eq, ToJson,
    Debug
    )

    AspectRatioModifier

    pub(all) struct AspectRatioModifier {
    ratio : Double
    }

    AspectRatioModifier::to_any_modifier

    fn[Msg] AspectRatioModifier::to_any_modifier(self : AspectRatioModifier) -> AnyModifier[Msg]

    Axis

    pub(all) enum Axis {
    Horizontal
    Vertical
    } derive(Eq, ToJson,
    Debug
    )

    BackgroundModifier

    pub(all) struct BackgroundModifier {
    brush : Brush
    }

    BackgroundModifier::to_any_modifier

    fn[Msg] BackgroundModifier::to_any_modifier(self : BackgroundModifier) -> AnyModifier[Msg]

    BlendMode

    pub(all) enum BlendMode {
    SourceOver
    Multiply
    Screen
    Overlay
    Darken
    Lighten
    } derive(Eq, ToJson,
    Debug
    )

    BorderModifier

    pub(all) struct BorderModifier {
    style : BorderStyle
    }

    BorderModifier::to_any_modifier

    fn[Msg] BorderModifier::to_any_modifier(self : BorderModifier) -> AnyModifier[Msg]

    BorderStyle

    pub(all) struct BorderStyle {
    brush : Brush
    width : Double
    } derive(Eq, ToJson,
    Debug
    )

    BorderStyle::new

    fn BorderStyle::new(brush~ : Brush, width? : Double) -> BorderStyle

    Brush

    pub(all) enum Brush {
    Solid(Color)
    LinearGradient(LinearGradientSpec)
    RadialGradient(RadialGradientSpec)
    } derive(Eq, ToJson,
    Debug
    )

    Brush::fallback_color

    fn Brush::fallback_color(self : Brush) -> Color

    Brush::linear_gradient

    fn Brush::linear_gradient(start~ : Point, end~ : Point, start_color~ : Color, end_color~ : Color) -> Brush

    Brush::multiply_alpha

    fn Brush::multiply_alpha(self : Brush, opacity : Double) -> Brush

    Brush::radial_gradient

    fn Brush::radial_gradient(center~ : Point, radius~ : Double, center_color~ : Color, edge_color~ : Color) -> Brush

    Brush::solid

    fn Brush::solid(color : Color) -> Brush

    ChildLayoutInfo

    pub(all) struct ChildLayoutInfo {
    size : Size
    first_baseline : Double?
    priority : Double
    alignment_guides : AlignmentGuideSet
    flex_weight : Double
    } derive(Eq,
    Debug
    )

    Layout-side metadata for a single child of a custom children layout.

    Replaces the previous parallel arrays (child_sizes, child_baselines, child_priorities, child_alignment_guides) with a single, typed record per child. The runtime fills this from the measured/placed child element, so custom layouts no longer have to rely on guessed baseline values or hard-coded priorities.

    ChildLayoutInfo::baseline_or_estimate

    fn ChildLayoutInfo::baseline_or_estimate(self : ChildLayoutInfo) -> Double

    Convenience accessor: the child's resolved baseline, falling back to the historical size.height * 0.8 estimate when the child does not expose one. Keeping the fallback here lets custom layouts stop special-casing the "no baseline" branch while still preserving prior behavior for children that genuinely lack a baseline.

    ChildLayoutInfo::new

    fn ChildLayoutInfo::new(size~ : Size, first_baseline? : Double?, priority? : Double, flex_weight? : Double) -> ChildLayoutInfo

    Construct a ChildLayoutInfo from measured child data. The runtime uses this when assembling CustomLayoutContext.children; downstream packages use it when building tests for custom layout delegates.

    ClipModifier

    pub(all) struct ClipModifier {
    }

    ClipModifier::to_any_modifier

    fn[Msg] ClipModifier::to_any_modifier(_self : ClipModifier) -> AnyModifier[Msg]

    Color

    pub(all) struct Color {
    r : Double
    g : Double
    b : Double
    a : Double
    } derive(Eq, ToJson,
    Debug
    )

    Color::black

    fn Color::black() -> Color

    Color::blue

    fn Color::blue() -> Color

    Color::darken

    fn Color::darken(self : Color, amount : Double) -> Color

    Blend this color toward black by amount (clamped to 0..1). Useful for deriving press/active shades from a base palette color.

    Color::gray

    fn Color::gray() -> Color

    Color::lerp

    fn Color::lerp(self : Color, other : Color, t : Double) -> Color

    Linearly interpolate between this color and other by t (clamped to 0..1). t = 0 returns self, t = 1 returns other. Used to derive hover/press shades and drive color transitions without a full animation pipeline.

    Color::lighten

    fn Color::lighten(self : Color, amount : Double) -> Color

    Blend this color toward white by amount (clamped to 0..1). Useful for deriving hover shades from a base palette color.

    Color::mix

    fn Color::mix(self : Color, other : Color, weight : Double) -> Color

    Alias of Color::lerp with the conventional weight naming: a weight of 0.0 keeps self, 1.0 fully adopts other.

    Color::multiply_alpha

    fn Color::multiply_alpha(self : Color, opacity : Double) -> Color

    Color::rgba

    fn Color::rgba(r~ : Double, g~ : Double, b~ : Double, a? : Double) -> Color

    Color::white

    fn Color::white() -> Color

    Color::with_alpha

    fn Color::with_alpha(self : Color, alpha : Double) -> Color

    ColorMode

    pub(all) enum ColorMode {
    Light
    Dark
    System
    } derive(Eq, ToJson,
    Debug
    )

    Color mode: force light, force dark, or follow the system.

    ColorPalette

    pub(all) struct ColorPalette {
    foreground : Color
    background : Color
    surface : Color
    surface_variant : Color
    primary : Color
    on_primary : Color
    primary_container : Color
    on_primary_container : Color
    secondary : Color
    on_secondary : Color
    secondary_container : Color
    on_secondary_container : Color
    tertiary : Color
    on_tertiary : Color
    tertiary_container : Color
    on_tertiary_container : Color
    error : Color
    on_error : Color
    error_container : Color
    on_error_container : Color
    on_foreground : Color
    on_surface : Color
    on_surface_variant : Color
    outline : Color
    outline_variant : Color
    muted : Color
    success : Color
    on_success : Color
    warning : Color
    on_warning : Color
    info : Color
    on_info : Color
    danger : Color
    on_danger : Color
    focus : Color
    scrim : Color
    } derive(Eq, ToJson,
    Debug
    )

    Full semantic color palette. Extended from the original 8-role palette to the complete on*/container matrix used by Material 3 / Fluent 2 so a branded design system can express primary/secondary/tertiary/error container pairs and their on-colors instead of deriving them ad hoc with multiply_alpha/lerp. Semantic colors (success/warning/danger/info) are folded in directly; the separate SemanticColorScale is removed.

    Role naming follows Compose Material 3 ColorScheme:
    • on_<role> is the text/icon color drawn on top of <role>.
    • <role>_container is a tinted surface variant; on_<role>_container is the text color on that container. on_foreground is an explicit alias of background for symmetry.

    ColorPalette::dark

    Minimal dark palette (zinc neutrals, near-white primary). Mirrors light.

    ColorPalette::from_seed

    fn ColorPalette::from_seed(primary~ : Color, scheme : ColorScheme, foreground? : Color, background? : Color, surface? : Color, surface_variant? : Color, outline? : Color, muted? : Color) -> ColorPalette

    Build a palette from a primary color and scheme, deriving every on*/container role programmatically. This is the shared derivation used by both the Minimal preset and (optionally) branded addons that want a seed-driven palette without hand-writing 30+ colors.

    Derivation rules:
    • on_primary/on_secondary/on_tertiary/on_error = white on dark primaries, near-black on light primaries (contrast-aware).
    • <role>_container = the role color lerped toward the surface by ~0.85 (a soft tint); on_<role>_container = the role color darkened (light) or lightened (dark) for legibility on the tint.
    • secondary/tertiary default to a desaturated primary analog so the palette stays coherent when only a seed is supplied.

    ColorPalette::light

    fn ColorPalette::light() -> ColorPalette

    Minimal light palette (zinc neutrals, near-black primary). Equivalent to the legacy hand-written palette but now fills the full on*/container matrix via from_seed.

    ColorScheme

    pub(all) enum ColorScheme {
    Light
    Dark
    } derive(Eq, ToJson,
    Debug
    )

    CommandBinding

    type CommandBinding

    CommandBinding::new

    fn CommandBinding::new(command~ : ActionCommand, handle~ : () -> Unit) -> CommandBinding

    CommandIntent

    pub(all) enum CommandIntent {
    Activate
    Submit
    Cancel
    Copy
    Cut
    Paste
    Undo
    Redo
    SelectAll
    OpenContextMenu
    } derive(Eq, ToJson,
    Debug
    )

    CommandIntent::display_label

    fn CommandIntent::display_label(self : CommandIntent) -> String

    CompositionUpdate

    type CompositionUpdate derive(Eq, ToJson,
    Debug
    )

    CompositionUpdate::cursor

    CompositionUpdate::new

    fn CompositionUpdate::new(text~ : String, cursor? : TextRange?) -> CompositionUpdate

    CompositionUpdate::text

    fn CompositionUpdate::text(self : CompositionUpdate) -> String

    Constraints

    pub(all) struct Constraints {
    min : Size
    max : Size
    } derive(Eq, ToJson,
    Debug
    )

    Constraints::constrain

    fn Constraints::constrain(self : Constraints, size : Size) -> Size

    Constraints::deflate

    fn Constraints::deflate(self : Constraints, insets : Insets) -> Constraints

    Constraints::is_tight

    fn Constraints::is_tight(self : Constraints) -> Bool

    Constraints::loose

    fn Constraints::loose(max : Size) -> Constraints

    Constraints::loosen

    fn Constraints::loosen(self : Constraints) -> Constraints

    Constraints::tight

    fn Constraints::tight(size : Size) -> Constraints

    Constraints::tighten

    fn Constraints::tighten(self : Constraints, width? : Double, height? : Double) -> Constraints

    Constraints::unbounded

    fn Constraints::unbounded() -> Constraints

    ContentSizeCategory

    pub(all) enum ContentSizeCategory {
    Small
    Medium
    Large
    ExtraLarge
    Accessibility
    } derive(Eq, ToJson,
    Debug
    )

    ContentSizeCategory::text_scale

    fn ContentSizeCategory::text_scale(self : ContentSizeCategory) -> Double

    ControlledValue

    pub struct ControlledValue[T, Msg] {
    // private fields
    }

    Immutable controlled input for composite controls.

    The current value is a snapshot from the application model. User interaction can only construct a typed message; the control has no setter or mutable model capability.

    ControlledValue::changed

    fn[T, Msg] ControlledValue::changed(self : ControlledValue[T, Msg], value : T) -> Msg

    ControlledValue::new

    fn[T, Msg] ControlledValue::new(value~ : T, changed~ : (T) -> Msg) -> ControlledValue[T, Msg]

    ControlledValue::value

    fn[T, Msg] ControlledValue::value(self : ControlledValue[T, Msg]) -> T

    CornerRadiusModifier

    pub(all) struct CornerRadiusModifier {
    radius : Double
    }

    CornerRadiusModifier::to_any_modifier

    fn[Msg] CornerRadiusModifier::to_any_modifier(self : CornerRadiusModifier) -> AnyModifier[Msg]

    CrossAxisAlignment

    pub(all) enum CrossAxisAlignment {
    CrossStart
    CrossCenter
    CrossEnd
    CrossStretch
    } derive(Eq, ToJson,
    Debug
    )

    CrossAxisAlignmentModifier

    pub(all) struct CrossAxisAlignmentModifier {
    alignment : CrossAxisAlignment
    }

    CrossAxisAlignmentModifier::to_any_modifier

    fn[Msg] CrossAxisAlignmentModifier::to_any_modifier(_self : CrossAxisAlignmentModifier) -> AnyModifier[Msg]

    CustomLayoutContext

    pub(all) struct CustomLayoutContext {
    constraints : Constraints
    children : Array[ChildLayoutInfo]
    layout_direction : LayoutDirection
    safe_area : Insets
    viewport : Size?
    }

    Layout context for a custom children-layout delegate. The runtime measures each child first, then hands the resulting children array (plus the ambient environment, viewport and reading direction) to the delegate's measure callback.

    The previous API exposed cache / cache_key and several parallel arrays (child_sizes, child_baselines, …). The cache was mutable state stored on the immutable declaration node (a violation of view_node.mbt's contract) and the parallel arrays made it easy to read the wrong index. Both are gone in favor of children : Array[ChildLayoutInfo].

    CustomPlacementContext

    pub(all) struct CustomPlacementContext {
    frame : Rect
    measured_size : Size
    children : Array[ChildLayoutInfo]
    layout_direction : LayoutDirection
    safe_area : Insets
    viewport : Size?
    }

    Placement context handed to a custom children-layout delegate's place callback. children mirrors the order of CustomLayoutContext.children; the delegate returns one Rect per child in that same order.

    CustomPlacementContext::mirror_x

    fn CustomPlacementContext::mirror_x(self : CustomPlacementContext, x~ : Double, width~ : Double) -> Double

    Mirror an LTR x coordinate into the RTL frame. Layout authors should pass every child x through this helper so a single placement routine works in both reading directions.

    DamageRegion

    pub(all) enum DamageRegion {
    Empty
    FullSurface(String)
    Rects(Array[Rect])
    } derive(Eq, ToJson,
    Debug
    )

    DamageRegion::empty

    fn DamageRegion::empty() -> DamageRegion

    DamageRegion::from_rects

    fn DamageRegion::from_rects(rects : Array[Rect], surface : Rect) -> DamageRegion

    DamageRegion::full

    fn DamageRegion::full(reason : String) -> DamageRegion

    DamageRegion::full_reason

    fn DamageRegion::full_reason(self : DamageRegion) -> String

    DamageRegion::kind

    fn DamageRegion::kind(self : DamageRegion) -> String

    DamageRegion::rect_count

    fn DamageRegion::rect_count(self : DamageRegion) -> Int

    DateValue

    pub(all) struct DateValue {
    year : Int
    month : Int
    day : Int
    hour : Int
    minute : Int
    second : Int
    } derive(Eq, ToJson,
    Debug
    )

    DateValue::format_date

    fn DateValue::format_date(self : DateValue) -> String

    DateValue::format_date_time

    fn DateValue::format_date_time(self : DateValue) -> String

    DateValue::format_time

    fn DateValue::format_time(self : DateValue) -> String

    DateValue::new

    fn DateValue::new(year~ : Int, month~ : Int, day~ : Int, hour? : Int, minute? : Int, second? : Int) -> DateValue

    DeclarationChanges

    pub struct DeclarationChanges {
    layout : Bool
    paint : Bool
    semantics : Bool
    platform : Bool
    } derive(Eq,
    Debug
    )

    Effective changes between two declarations.

    A layout change always implies paint, semantics, and platform changes.

    DeclarationChanges::is_clean

    fn DeclarationChanges::is_clean(self : DeclarationChanges) -> Bool

    DeclarationChanges::layout

    fn DeclarationChanges::layout(self : DeclarationChanges) -> Bool

    DeclarationChanges::paint

    fn DeclarationChanges::paint(self : DeclarationChanges) -> Bool

    DeclarationChanges::platform

    fn DeclarationChanges::platform(self : DeclarationChanges) -> Bool

    DeclarationChanges::semantics

    fn DeclarationChanges::semantics(self : DeclarationChanges) -> Bool

    DeclarationChannel

    pub(all) enum DeclarationChannel {
    Constant
    Exact(DeclarationKey)
    Uncacheable
    } derive(Eq)

    Cache behavior for one declaration channel.

    DeclarationKey

    pub struct DeclarationKey {
    // private fields
    } derive(Eq, Hash,
    Debug
    )

    An immutable, canonical declaration identity.

    Keys compare their complete encoded bytes. Hashing is only an acceleration used by hashed containers before exact equality; it is not identity.

    DeclarationKey::array

    Builds an ordered array key from complete child keys.

    DeclarationKey::bool

    fn DeclarationKey::bool(value : Bool) -> DeclarationKey

    Builds a key for a boolean value.

    DeclarationKey::bytes

    fn DeclarationKey::bytes(value : Bytes) -> DeclarationKey

    Builds a key from immutable bytes.

    DeclarationKey::double

    fn DeclarationKey::double(value : Double) -> DeclarationKey

    Builds a bit-exact IEEE-754 key. This distinguishes signed zero and NaN payloads as well as adjacent finite values.

    DeclarationKey::int

    fn DeclarationKey::int(value : Int) -> DeclarationKey

    Builds a key for an exact signed 32-bit Int value.

    DeclarationKey::int64

    fn DeclarationKey::int64(value : Int64) -> DeclarationKey

    Builds a key for an exact signed 64-bit integer value.

    DeclarationKey::option

    Builds an option key. Presence and the complete child key are framed.

    DeclarationKey::record

    fn DeclarationKey::record(type_tag~ : String, fields~ : Array[(String, DeclarationKey)]) -> DeclarationKey

    Builds a record key. type_tag identifies the declared record type; fields are encoded in the supplied declaration order, including each field name and complete child key.

    DeclarationKey::string

    fn DeclarationKey::string(value : String) -> DeclarationKey

    Builds a key from the value's exact UTF-8 encoding without a BOM.

    DeclarationKey::uint

    fn DeclarationKey::uint(value : UInt) -> DeclarationKey

    Builds a key for an exact unsigned 32-bit UInt value.

    DeclarationKey::uint64

    fn DeclarationKey::uint64(value : UInt64) -> DeclarationKey

    Builds a key for an exact unsigned 64-bit integer value.

    DisabledModifier

    pub(all) struct DisabledModifier {
    disabled : Bool
    }

    DisabledModifier::to_any_modifier

    fn[Msg] DisabledModifier::to_any_modifier(self : DisabledModifier) -> AnyModifier[Msg]

    DragDropEvent

    pub(all) struct DragDropEvent {
    phase : DragDropPhase
    paths : Array[String]
    position : Point?
    } derive(Eq, ToJson,
    Debug
    )

    DragDropEvent::new

    fn DragDropEvent::new(phase~ : DragDropPhase, paths? : Array[String], position? : Point?) -> DragDropEvent

    DragDropPhase

    pub(all) enum DragDropPhase {
    Entered
    Moved
    Dropped
    Left
    } derive(Eq, ToJson,
    Debug
    )

    DragGestureEvent

    pub(all) struct DragGestureEvent {
    phase : DragGesturePhase
    start : Point
    position : Point
    delta : Point
    translation : Point
    } derive(Eq, ToJson,
    Debug
    )

    DragGestureEvent::new

    fn DragGestureEvent::new(phase~ : DragGesturePhase, start~ : Point, position~ : Point, delta~ : Point, translation~ : Point) -> DragGestureEvent

    DragGesturePhase

    pub(all) enum DragGesturePhase {
    Idle
    Pending
    Started
    Changed
    Ended
    Cancelled
    } derive(Eq, ToJson,
    Debug
    )

    DragGesturePhase::label

    fn DragGesturePhase::label(self : DragGesturePhase) -> String

    DrawCommand

    pub(all) enum DrawCommand {
    Clear(Color)
    FillRect(Rect, Color)
    StrokeRect(Rect, Color, Double)
    FillRoundedRect(RoundedRect, Color)
    StrokeRoundedRect(RoundedRect, Color, Double)
    FillRoundedRectBrush(RoundedRect, Brush)
    StrokeRoundedRectBrush(RoundedRect, Brush, Double)
    DrawShadow(ShadowSpec)
    DrawText(TextRun)
    DrawImage(ImageRun)
    PushClip(Rect)
    PopClip
    PushRoundedClip(RoundedRect)
    PopRoundedClip
    PushTransform(Transform2D)
    PopTransform
    PushOpacity(Double)
    PopOpacity
    PushLayer(LayerSpec)
    PopLayer
    BeginRetainedLayer(RetainedLayerSpec)
    EndRetainedLayer(String)
    PushFilter(FilterEffect)
    PopFilter
    DrawPath(PathSpec)
    DrawShaderEffect(ShaderEffectSpec)
    } derive(Eq, ToJson,
    Debug
    )

    DrawCommand::bounds

    fn DrawCommand::bounds(self : DrawCommand) -> Rect?

    DrawFrame

    pub(all) struct DrawFrame {
    commands : Array[DrawCommand]
    platform_views : Array[PlatformViewPlacement]
    damage : DamageRegion
    clear_color : Color
    } derive(Eq, ToJson,
    Debug
    )

    Renderer-facing frame payload. clear_color owns frame initialization; commands contains view content and does not need a leading Clear. Adapters for legacy command-only renderers must materialize that clear when lowering a frame back to an Array[DrawCommand].

    DrawFrame::new

    fn DrawFrame::new(commands~ : Array[DrawCommand], platform_views? : Array[PlatformViewPlacement], damage~ : DamageRegion, clear_color? : Color) -> DrawFrame

    Easing

    pub(all) enum Easing {
    Linear
    EaseIn
    EaseOut
    EaseInOut
    } derive(Eq, ToJson,
    Debug
    )

    Easing::sample

    fn Easing::sample(self : Easing, progress : Double) -> Double

    Effect

    pub(all) enum Effect[Msg] {
    NoEffect
    Batch(Array[Effect[Msg]])
    Send(Msg)
    Dispatch(((Msg) -> Unit) -> Unit)
    Run(EffectDescriptor, ((Msg) -> Unit) -> Unit)
    Task(EffectDescriptor, ((Msg) -> Unit) -> () -> Unit?)
    }

    Effect::batch

    fn[Msg] Effect::batch(effects : Array[Effect[Msg]]) -> Effect[Msg]

    Effect::dispatch

    fn[Msg] Effect::dispatch(run : ((Msg) -> Unit) -> Unit) -> Effect[Msg]

    Effect::map

    fn[Msg, NextMsg] Effect::map(self : Effect[Msg], map : (Msg) -> NextMsg) -> Effect[NextMsg]

    Effect::none

    fn[Msg] Effect::none() -> Effect[Msg]

    Effect::run

    fn[Msg] Effect::run(key~ : String, run~ : ((Msg) -> Unit) -> Unit, kind? : String, label? : String) -> Effect[Msg]

    Effect::runtime_visit

    fn[Msg] Effect::runtime_visit(self : Effect[Msg], send : (Msg) -> Unit, dispatch_effect : (((Msg) -> Unit) -> Unit) -> Unit, run_effect : (EffectDescriptor, ((Msg) -> Unit) -> Unit) -> Unit, start_task : (EffectDescriptor, ((Msg) -> Unit) -> () -> Unit?) -> Unit) -> Unit

    Effect::send

    fn[Msg] Effect::send(message : Msg) -> Effect[Msg]

    Effect::service_task

    fn[Msg] Effect::service_task(key~ : String, start~ : ((Msg) -> Unit) -> () -> Unit?, label? : String) -> Effect[Msg]

    Effect::task

    fn[Msg] Effect::task(key~ : String, start~ : ((Msg) -> Unit) -> () -> Unit?, kind? : String, label? : String) -> Effect[Msg]

    EffectDescriptor

    type EffectDescriptor derive(Eq, ToJson,
    Debug
    )

    EffectDescriptor::key

    fn EffectDescriptor::key(self : EffectDescriptor) -> String

    EffectDescriptor::kind

    fn EffectDescriptor::kind(self : EffectDescriptor) -> String

    EffectDescriptor::label

    fn EffectDescriptor::label(self : EffectDescriptor) -> String

    Environment

    pub(all) struct Environment {
    theme_spec : ThemeSpec
    system_scheme : ColorScheme
    theme : Theme
    scale_factor : Double
    text_scale : Double
    locale : String
    layout_direction : LayoutDirection
    accessibility_contrast : AccessibilityContrast
    reduced_motion : Bool
    content_size_category : ContentSizeCategory
    enabled : Bool
    } derive(Eq, ToJson,
    Debug
    )

    Runtime environment snapshot. Carries the user's theme_spec (intent), the current system_scheme (host-reported), and the resolved theme derived from both. Changing system_scheme rebuilds the full theme via with_system_scheme; the legacy with_color_scheme (which only flipped a flag and left the palette stale) is removed.

    Environment::color_scheme

    fn Environment::color_scheme(self : Environment) -> ColorScheme

    Read the effective color scheme (from the resolved theme). Kept as a convenience accessor so callers do not have to reach into theme.scheme.

    Environment::neutral

    fn Environment::neutral() -> Environment

    Neutral environment: Minimal theme following a light system scheme, standard density/contrast, full motion. The theme_spec records the intent so a later ThemeChanged(Dark) event rebuilds the full dark theme instead of leaving a stale light palette.

    Environment::with_accessibility_contrast

    fn Environment::with_accessibility_contrast(self : Environment, accessibility_contrast : AccessibilityContrast) -> Environment

    Update accessibility contrast. Also updates theme_spec.contrast so a subsequent system-scheme change re-resolves with the new contrast.

    Environment::with_content_size_category

    fn Environment::with_content_size_category(self : Environment, content_size_category : ContentSizeCategory) -> Environment

    Environment::with_enabled

    fn Environment::with_enabled(self : Environment, enabled : Bool) -> Environment

    Environment::with_layout_direction

    fn Environment::with_layout_direction(self : Environment, layout_direction : LayoutDirection) -> Environment

    Environment::with_locale

    fn Environment::with_locale(self : Environment, locale : String) -> Environment

    Environment::with_reduced_motion

    fn Environment::with_reduced_motion(self : Environment, reduced_motion : Bool) -> Environment

    Update reduced motion. Also updates theme_spec.reduced_motion so a subsequent re-resolve zeroes motion durations.

    Environment::with_scale_factor

    fn Environment::with_scale_factor(self : Environment, scale_factor : Double) -> Environment

    Environment::with_system_scheme

    fn Environment::with_system_scheme(self : Environment, system_scheme : ColorScheme) -> Environment

    Replace the system color scheme and rebuild the full theme from theme_spec. This is the host-facing entry point: a ThemeChanged(Dark) event calls this so the palette/surfaces/shadows actually switch to dark, fixing the old bug where only the scheme flag flipped.

    Environment::with_text_scale

    fn Environment::with_text_scale(self : Environment, text_scale : Double) -> Environment

    Environment::with_theme

    fn Environment::with_theme(self : Environment, theme : Theme) -> Environment

    Replace the theme. Also updates system_scheme to match the theme's scheme so the two stay consistent. Use with_theme_spec + with_system_scheme for the resolver-driven path; this helper is for callers that already have a fully resolved Theme (e.g. a branded addon that built one directly).

    Environment::with_theme_spec

    fn Environment::with_theme_spec(self : Environment, theme_spec : ThemeSpec) -> Environment

    Replace the theme spec and rebuild the full theme against the current system scheme. App code calls this when the user picks a new preset, density, or contrast.

    EnvironmentModifier

    pub(all) struct EnvironmentModifier {
    environment : Environment
    }

    EnvironmentModifier::to_any_modifier

    fn[Msg] EnvironmentModifier::to_any_modifier(self : EnvironmentModifier) -> AnyModifier[Msg]

    FilterEffect

    pub(all) enum FilterEffect {
    Blur(Double)
    Saturate(Double)
    Brightness(Double)
    Contrast(Double)
    ColorMatrix(Array[Double])
    } derive(Eq, ToJson,
    Debug
    )

    FilterEffect::blur

    fn FilterEffect::blur(radius : Double) -> FilterEffect

    FlexibleModifier

    pub(all) struct FlexibleModifier {
    weight : Double
    }

    FlexibleModifier::to_any_modifier

    fn[Msg] FlexibleModifier::to_any_modifier(self : FlexibleModifier) -> AnyModifier[Msg]

    FocusRequest

    pub(all) struct FocusRequest {
    id : Int
    key : String
    } derive(Eq, ToJson,
    Debug
    )

    Immutable programmatic focus request. Reusing an id is a no-op for an already mounted target.

    FocusRequest::new

    fn FocusRequest::new(id~ : Int, key~ : String) -> FocusRequest

    FocusScope

    type FocusScope derive(Eq)

    FocusScope::command_target

    fn FocusScope::command_target(self : FocusScope, intent : CommandIntent) -> String?

    FocusScope::first_focusable

    fn FocusScope::first_focusable(self : FocusScope) -> String?

    FocusScope::focus_target_or_first

    fn FocusScope::focus_target_or_first(self : FocusScope, target : String?) -> String?

    FocusScope::last_focusable

    fn FocusScope::last_focusable(self : FocusScope) -> String?

    FocusScope::new

    fn FocusScope::new(items~ : Array[FocusScopeItem], current? : String?, wrap? : Bool, default_action? : String, dismiss_action? : String) -> FocusScope

    FocusScope::next

    fn FocusScope::next(self : FocusScope) -> String?

    FocusScope::previous

    fn FocusScope::previous(self : FocusScope) -> String?

    FocusScope::traverse

    fn FocusScope::traverse(self : FocusScope, direction : FocusTraversalDirection) -> String?

    FocusScopeItem

    type FocusScopeItem derive(Eq)

    FocusScopeItem::new

    fn FocusScopeItem::new(id~ : String, enabled? : Bool, focusable? : Bool) -> FocusScopeItem

    FocusTrapModifier

    pub(all) struct FocusTrapModifier {
    trap : Bool
    }

    FocusTrapModifier::to_any_modifier

    fn[Msg] FocusTrapModifier::to_any_modifier(_self : FocusTrapModifier) -> AnyModifier[Msg]

    FocusTraversalDirection

    pub(all) enum FocusTraversalDirection {
    Next
    Previous
    } derive(Eq, ToJson,
    Debug
    )

    FocusableModifier

    pub(all) struct FocusableModifier {
    focusable : Bool
    }

    FocusableModifier::to_any_modifier

    fn[Msg] FocusableModifier::to_any_modifier(self : FocusableModifier) -> AnyModifier[Msg]

    FontFamily

    pub(all) enum FontFamily {
    Name(String)
    SystemUi
    UiSansSerif
    UiSerif
    UiMonospace
    SansSerif
    Serif
    Monospace
    Emoji
    Math
    FangSong
    } derive(Eq, ToJson,
    Debug
    )

    FontFamily::css_name

    fn FontFamily::css_name(self : FontFamily) -> String

    FontFamily::css_token

    fn FontFamily::css_token(self : FontFamily) -> String

    FontFamilyStack

    pub(all) struct FontFamilyStack {
    families : Array[FontFamily]
    } derive(Eq, ToJson,
    Debug
    )

    FontFamilyStack::css

    fn FontFamilyStack::css(self : FontFamilyStack) -> String

    FontFamilyStack::monospace

    fn FontFamilyStack::monospace() -> FontFamilyStack

    FontFamilyStack::named

    fn FontFamilyStack::named(name : String) -> FontFamilyStack

    FontFamilyStack::new

    FontFamilyStack::sans_serif

    fn FontFamilyStack::sans_serif() -> FontFamilyStack

    FontFamilyStack::serif

    FontFamilyStack::system_ui

    fn FontFamilyStack::system_ui() -> FontFamilyStack

    FontFamilyStack::with_fallback

    fn FontFamilyStack::with_fallback(self : FontFamilyStack, family : FontFamily) -> FontFamilyStack

    FontModifier

    pub(all) struct FontModifier {
    font : FontSpec
    }

    FontModifier::to_any_modifier

    fn[Msg] FontModifier::to_any_modifier(self : FontModifier) -> AnyModifier[Msg]

    FontSpec

    pub(all) struct FontSpec {
    families : FontFamilyStack
    size : Double
    weight : Int
    style : FontStyle
    } derive(Eq, ToJson,
    Debug
    )

    FontSpec::css_family

    fn FontSpec::css_family(self : FontSpec) -> String

    FontSpec::css_style

    fn FontSpec::css_style(self : FontSpec) -> String

    FontSpec::new

    fn FontSpec::new(families? : FontFamilyStack, size? : Double, weight? : Int, style? : FontStyle) -> FontSpec

    FontStyle

    pub(all) enum FontStyle {
    Normal
    Italic
    } derive(Eq, ToJson,
    Debug
    )

    ForegroundModifier

    pub(all) struct ForegroundModifier {
    color : Color
    }

    ForegroundModifier::to_any_modifier

    fn[Msg] ForegroundModifier::to_any_modifier(self : ForegroundModifier) -> AnyModifier[Msg]

    Frame

    pub(all) struct Frame {
    time_ms : Double
    delta_ms : Double
    } derive(Eq, ToJson,
    Debug
    )

    Frame::new

    fn Frame::new(time_ms~ : Double, delta_ms~ : Double) -> Frame

    FrameModifier

    pub(all) struct FrameModifier {
    width : Double?
    height : Double?
    min_width : Double?
    min_height : Double?
    max_width : Double?
    max_height : Double?
    }

    FrameModifier::to_any_modifier

    fn[Msg] FrameModifier::to_any_modifier(self : FrameModifier) -> AnyModifier[Msg]

    ImageFit

    pub(all) enum ImageFit {
    Contain
    Cover
    Stretch
    ScaleDown
    FitWidth
    FitHeight
    } derive(Eq, ToJson,
    Debug
    )

    ImageRun

    pub(all) struct ImageRun {
    source : String
    frame : Rect
    opacity : Double
    fit : ImageFit
    } derive(Eq, ToJson,
    Debug
    )

    Insets

    pub(all) struct Insets {
    top : Double
    right : Double
    bottom : Double
    left : Double
    } derive(Eq, ToJson,
    Debug
    )

    Insets::all

    fn Insets::all(value : Double) -> Insets

    Insets::symmetric

    fn Insets::symmetric(horizontal? : Double, vertical? : Double) -> Insets

    InteractionState

    pub(all) enum InteractionState {
    Normal
    Hovered
    Pressed
    Focused
    Disabled
    Selected
    Invalid
    } derive(Eq, ToJson,
    Debug
    )

    Neutral interaction state machine. This is the token-layer state enum used to select a resolved style from a component theme. It is the union of states every component theme needs to resolve (normal/hovered/pressed/focused/disabled/selected/invalid); individual controls only pass the subset they support.

    InteractionState stays in core (ADR 0017) because it is the neutral gesture/interaction state machine consumed by core's own view-tree, gesture, and semantics layers — it is not control vocabulary. The concrete control theme token structs (ButtonTheme, ControlStateTokens, ComponentThemes, …) moved to moui/views as ControlThemeSet; this file no longer carries control-specific types.

    IntrinsicHeightModifier

    pub(all) struct IntrinsicHeightModifier {
    }

    IntrinsicHeightModifier::to_any_modifier

    fn[Msg] IntrinsicHeightModifier::to_any_modifier(_self : IntrinsicHeightModifier) -> AnyModifier[Msg]

    IntrinsicWidthModifier

    pub(all) struct IntrinsicWidthModifier {
    }

    IntrinsicWidthModifier::to_any_modifier

    fn[Msg] IntrinsicWidthModifier::to_any_modifier(_self : IntrinsicWidthModifier) -> AnyModifier[Msg]

    Key

    type Key derive(Eq)

    Key::new

    fn Key::new(value : String) -> Key

    Key::value

    fn Key::value(self : Key) -> String

    KeyModifier

    pub(all) struct KeyModifier {
    key : Key
    }

    KeyModifier::to_any_modifier

    fn[Msg] KeyModifier::to_any_modifier(self : KeyModifier) -> AnyModifier[Msg]

    KeyModifiers

    pub(all) struct KeyModifiers {
    shift : Bool
    control : Bool
    alt : Bool
    meta : Bool
    } derive(Eq, ToJson,
    Debug
    )

    KeyModifiers::new

    fn KeyModifiers::new(shift? : Bool, control? : Bool, alt? : Bool, meta? : Bool) -> KeyModifiers

    KeyModifiers::none

    KeyboardEvent

    pub(all) struct KeyboardEvent {
    key : String
    text : String?
    pressed : Bool
    repeat : Bool
    modifiers : KeyModifiers
    } derive(Eq, ToJson,
    Debug
    )

    KeyboardEvent::new

    fn KeyboardEvent::new(key~ : String, pressed? : Bool, text? : String?, repeat? : Bool, modifiers? : KeyModifiers) -> KeyboardEvent

    KeyboardShortcut

    pub(all) struct KeyboardShortcut {
    key : String
    modifiers : KeyModifiers
    } derive(Eq, ToJson,
    Debug
    )

    KeyboardShortcut::display_label

    fn KeyboardShortcut::display_label(self : KeyboardShortcut) -> String

    KeyboardShortcut::matches

    fn KeyboardShortcut::matches(self : KeyboardShortcut, event : KeyboardEvent) -> Bool

    KeyboardShortcut::new

    fn KeyboardShortcut::new(key~ : String, modifiers? : KeyModifiers) -> KeyboardShortcut

    KeyboardShortcutModifier

    pub(all) struct KeyboardShortcutModifier {
    shortcut : KeyboardShortcut
    }

    KeyboardShortcutModifier::to_any_modifier

    fn[Msg] KeyboardShortcutModifier::to_any_modifier(self : KeyboardShortcutModifier) -> AnyModifier[Msg]

    LayerMask

    pub(all) enum LayerMask {
    NoMask
    RectMask(Rect)
    RoundedMask(RoundedRect)
    } derive(Eq, ToJson,
    Debug
    )

    LayerSpec

    pub(all) struct LayerSpec {
    opacity : Double
    blend_mode : BlendMode
    mask : LayerMask
    offscreen : Bool
    } derive(Eq, ToJson,
    Debug
    )

    LayerSpec::new

    fn LayerSpec::new(opacity? : Double, blend_mode? : BlendMode, mask? : LayerMask, offscreen? : Bool) -> LayerSpec

    LayoutDirection

    pub(all) enum LayoutDirection {
    LeftToRight
    RightToLeft
    } derive(Eq, ToJson,
    Debug
    )

    LayoutPriorityModifier

    pub(all) struct LayoutPriorityModifier {
    priority : Double
    }

    LayoutPriorityModifier::to_any_modifier

    fn[Msg] LayoutPriorityModifier::to_any_modifier(_self : LayoutPriorityModifier) -> AnyModifier[Msg]

    LayoutResult

    pub(all) struct LayoutResult {
    frame : Rect
    children : Array[LayoutResult]
    } derive(Eq, ToJson,
    Debug
    )

    Recursive layout tree produced by the layout pass. Unlike ViewLayoutResult (a single node's measured size + child frames), LayoutResult is the fully-nested tree emitted by AppRuntime::layout.

    LinearGradientSpec

    pub(all) struct LinearGradientSpec {
    start : Point
    end : Point
    start_color : Color
    end_color : Color
    } derive(Eq, ToJson,
    Debug
    )

    LinearGradientSpec::new

    fn LinearGradientSpec::new(start~ : Point, end~ : Point, start_color~ : Color, end_color~ : Color) -> LinearGradientSpec

    MainAxisAlignment

    pub(all) enum MainAxisAlignment {
    MainStart
    MainCenter
    MainEnd
    SpaceBetween
    SpaceAround
    SpaceEvenly
    } derive(Eq, ToJson,
    Debug
    )

    MainAxisAlignmentModifier

    pub(all) struct MainAxisAlignmentModifier {
    alignment : MainAxisAlignment
    }

    MainAxisAlignmentModifier::to_any_modifier

    fn[Msg] MainAxisAlignmentModifier::to_any_modifier(_self : MainAxisAlignmentModifier) -> AnyModifier[Msg]

    MotionScale

    pub(all) struct MotionScale {
    fast_ms : Double
    normal_ms : Double
    slow_ms : Double
    easing : Easing
    } derive(Eq, ToJson,
    Debug
    )

    MotionScale::default

    fn MotionScale::default() -> MotionScale

    OffsetModifier

    pub(all) struct OffsetModifier {
    dx : Double
    dy : Double
    }

    OffsetModifier::to_any_modifier

    fn[Msg] OffsetModifier::to_any_modifier(self : OffsetModifier) -> AnyModifier[Msg]

    OnDoubleTapModifier

    pub(all) struct OnDoubleTapModifier[Msg] {
    message : Msg
    }

    OnDoubleTapModifier::to_any_modifier

    fn[Msg] OnDoubleTapModifier::to_any_modifier(self : OnDoubleTapModifier[Msg]) -> AnyModifier[Msg]

    OnDragModifier

    pub(all) struct OnDragModifier[Msg] {
    handler : (DragGestureEvent) -> Msg
    }

    OnDragModifier::to_any_modifier

    fn[Msg] OnDragModifier::to_any_modifier(self : OnDragModifier[Msg]) -> AnyModifier[Msg]

    OnDragWithFrameModifier

    pub(all) struct OnDragWithFrameModifier[Msg] {
    handler : (DragGestureEvent, Rect) -> Msg
    }

    OnDragWithFrameModifier::to_any_modifier

    fn[Msg] OnDragWithFrameModifier::to_any_modifier(self : OnDragWithFrameModifier[Msg]) -> AnyModifier[Msg]

    OnFileDropModifier

    pub(all) struct OnFileDropModifier[Msg] {
    handler : (Array[String], Point) -> Msg
    }

    OnFileDropModifier::to_any_modifier

    fn[Msg] OnFileDropModifier::to_any_modifier(self : OnFileDropModifier[Msg]) -> AnyModifier[Msg]

    OnLongPressModifier

    pub(all) struct OnLongPressModifier[Msg] {
    message : Msg
    }

    OnLongPressModifier::to_any_modifier

    fn[Msg] OnLongPressModifier::to_any_modifier(self : OnLongPressModifier[Msg]) -> AnyModifier[Msg]

    OnTapModifier

    pub(all) struct OnTapModifier[Msg] {
    message : Msg
    }

    OnTapModifier::to_any_modifier

    fn[Msg] OnTapModifier::to_any_modifier(self : OnTapModifier[Msg]) -> AnyModifier[Msg]

    OpacityModifier

    pub(all) struct OpacityModifier {
    opacity : Double
    }

    OpacityModifier::to_any_modifier

    fn[Msg] OpacityModifier::to_any_modifier(self : OpacityModifier) -> AnyModifier[Msg]

    PaddingModifier

    pub(all) struct PaddingModifier {
    insets : Insets
    }

    Layout modifiers: Padding, Frame, Flexible, Offset, Align, AspectRatio, Spacing, LayoutPriority, MainAxisAlignment, CrossAxisAlignment, IntrinsicWidth, IntrinsicHeight, Key.

    PaddingModifier::to_any_modifier

    fn[Msg] PaddingModifier::to_any_modifier(self : PaddingModifier) -> AnyModifier[Msg]

    PathSpec

    pub(all) struct PathSpec {
    verbs : Array[PathVerb]
    fill : Brush?
    stroke : Brush?
    stroke_width : Double
    } derive(Eq, ToJson,
    Debug
    )

    PathSpec::bounds

    fn PathSpec::bounds(self : PathSpec) -> Rect?

    PathSpec::new

    fn PathSpec::new(verbs~ : Array[PathVerb], fill? : Brush?, stroke? : Brush?, stroke_width? : Double) -> PathSpec

    PathVerb

    pub(all) enum PathVerb {
    MoveTo(Point)
    LineTo(Point)
    QuadTo(Point, Point)
    CubicTo(Point, Point, Point)
    Close
    } derive(Eq, ToJson,
    Debug
    )

    PlatformViewEvent

    pub(all) enum PlatformViewEvent {
    Named(name~ : String, value~ : String, detail~ : String, flag~ : Bool)
    } derive(Eq, ToJson,
    Debug
    )

    PlatformViewPixelSink

    pub struct PlatformViewPixelSink {
    // private fields
    }

    Renderer-neutral sink for host-owned platform-view pixels.

    PlatformViewPixelSink::draw

    fn PlatformViewPixelSink::draw(self : PlatformViewPixelSink, pixels : Bytes, width : Int, height : Int, stride : Int, x : Double, y : Double, draw_width : Double, draw_height : Double) -> Unit

    PlatformViewPixelSink::new

    fn PlatformViewPixelSink::new(draw~ : (Bytes, Int, Int, Int, Double, Double, Double, Double) -> Unit) -> PlatformViewPixelSink

    PlatformViewPlacement

    pub(all) struct PlatformViewPlacement {
    id : String
    kind : String
    frame : Rect
    clip : Rect?
    properties : Array[PlatformViewProperty]
    } derive(Eq, ToJson,
    Debug
    )

    PlatformViewPlacement::new

    fn PlatformViewPlacement::new(id~ : String, kind~ : String, frame~ : Rect, clip? : Rect?, properties? : Array[PlatformViewProperty]) -> PlatformViewPlacement

    PlatformViewPlacement::property

    fn PlatformViewPlacement::property(self : PlatformViewPlacement, key : String) -> String?

    PlatformViewPlacement::property_or

    fn PlatformViewPlacement::property_or(self : PlatformViewPlacement, key : String, default : String) -> String

    PlatformViewProperty

    pub(all) struct PlatformViewProperty {
    key : String
    value : String
    } derive(Eq, ToJson,
    Debug
    )

    PlatformViewProperty::new

    fn PlatformViewProperty::new(key~ : String, value~ : String) -> PlatformViewProperty

    Point

    pub(all) struct Point {
    x : Double
    y : Double
    } derive(Eq, ToJson,
    Debug
    )

    Point::new

    fn Point::new(x~ : Double, y~ : Double) -> Point

    PointerEvent

    pub(all) struct PointerEvent {
    position : Point
    phase : PointerPhase
    button : Int
    wheel_delta : Point
    time_ms : Double
    modifiers : KeyModifiers
    } derive(Eq, ToJson,
    Debug
    )

    PointerEvent::new

    fn PointerEvent::new(position~ : Point, phase~ : PointerPhase, button? : Int, wheel_delta? : Point, time_ms? : Double, modifiers? : KeyModifiers) -> PointerEvent

    PointerPhase

    pub(all) enum PointerPhase {
    Move
    Down
    Up
    Cancel
    Exit
    } derive(Eq, ToJson,
    Debug
    )

    Pointer interaction phase. Move/Down/Up/Cancel are produced by host backends from raw input. Exit is a synthetic, runtime-only phase: the runtime emits it to the previously hovered element when the pointer leaves its bounds (host backends never produce it). Views use it to clear hover state that they otherwise could not, because a normal Move outside the element is never delivered to it by hit-testing.

    PressableState

    pub(all) enum PressableState {
    Normal
    Hovered
    Pressed
    } derive(Eq, ToJson,
    Debug
    )

    PressableState::to_interaction

    fn PressableState::to_interaction(self : PressableState) -> InteractionState

    Convert a runtime PressableState (gesture-driven three-state, defined in view_style.mbt) into the token-layer InteractionState for component theme resolution. Kept in core because both sides are neutral core types; moui/views reads this when resolving a ControlThemeSet.

    Program

    type Program[Model, Msg]

    Program::new

    fn[Model, Msg] Program::new(init~ : () -> (Model, Effect[Msg]), update~ : (Model, Msg) -> (Model, Effect[Msg]), view~ : (Model) -> View[Msg], subscriptions? : (Model) -> Subscription[Msg]) -> Program[Model, Msg]

    Program::new_with_environment

    fn[Model, Msg] Program::new_with_environment(init~ : () -> (Model, Effect[Msg]), update~ : (Model, Msg) -> (Model, Effect[Msg]), view~ : (Model, ViewEnvironment) -> View[Msg], subscriptions? : (Model) -> Subscription[Msg]) -> Program[Model, Msg]

    Program::runtime_commands

    fn[Model, Msg] Program::runtime_commands(self : Program[Model, Msg], model : Model) -> Array[ProgramCommand[Msg]]

    Program::runtime_init

    fn[Model, Msg] Program::runtime_init(self : Program[Model, Msg]) -> (Model, Effect[Msg])

    Program::runtime_subscriptions

    fn[Model, Msg] Program::runtime_subscriptions(self : Program[Model, Msg], model : Model) -> Subscription[Msg]

    Program::runtime_update

    fn[Model, Msg] Program::runtime_update(self : Program[Model, Msg], model : Model, message : Msg) -> (Model, Effect[Msg])

    Program::runtime_view

    fn[Model, Msg] Program::runtime_view(self : Program[Model, Msg], model : Model, environment : ViewEnvironment) -> View[Msg]

    Program::simple

    fn[Model, Msg] Program::simple(init~ : Model, update~ : (Model, Msg) -> Model, view~ : (Model) -> View[Msg], subscriptions? : (Model) -> Subscription[Msg]) -> Program[Model, Msg]

    Program::simple_with_environment

    fn[Model, Msg] Program::simple_with_environment(init~ : Model, update~ : (Model, Msg) -> Model, view~ : (Model, ViewEnvironment) -> View[Msg], subscriptions? : (Model) -> Subscription[Msg]) -> Program[Model, Msg]

    Program::with_commands

    fn[Model, Msg] Program::with_commands(self : Program[Model, Msg], commands~ : (Model) -> Array[ProgramCommand[Msg]]) -> Program[Model, Msg]

    ProgramCommand

    pub struct ProgramCommand[Msg] {
    command : ActionCommand
    message : Msg
    }

    A host-visible command declaration whose action re-enters the Program as a typed message. The runtime owns dispatch; applications only describe the command and its message.

    ProgramCommand::command

    fn[Msg] ProgramCommand::command(self : ProgramCommand[Msg]) -> ActionCommand

    ProgramCommand::map

    fn[Msg, NextMsg] ProgramCommand::map(self : ProgramCommand[Msg], map : (Msg) -> NextMsg) -> ProgramCommand[NextMsg]

    ProgramCommand::message

    fn[Msg] ProgramCommand::message(self : ProgramCommand[Msg]) -> Msg

    ProgramCommand::new

    fn[Msg] ProgramCommand::new(command~ : ActionCommand, message~ : Msg) -> ProgramCommand[Msg]

    RadialGradientSpec

    pub(all) struct RadialGradientSpec {
    center : Point
    radius : Double
    center_color : Color
    edge_color : Color
    } derive(Eq, ToJson,
    Debug
    )

    RadialGradientSpec::new

    fn RadialGradientSpec::new(center~ : Point, radius~ : Double, center_color~ : Color, edge_color~ : Color) -> RadialGradientSpec

    RadiusScale

    pub(all) struct RadiusScale {
    sm : Double
    md : Double
    lg : Double
    pill : Double
    } derive(Eq, ToJson,
    Debug
    )

    RadiusScale::default

    fn RadiusScale::default() -> RadiusScale

    Rect

    pub(all) struct Rect {
    origin : Point
    size : Size
    } derive(Eq, ToJson,
    Debug
    )

    Rect::area

    fn Rect::area(self : Rect) -> Double

    Rect::clamp_to

    fn Rect::clamp_to(self : Rect, bounds : Rect) -> Rect?

    Rect::contains

    fn Rect::contains(self : Rect, point : Point) -> Bool

    Rect::inflate

    fn Rect::inflate(self : Rect, value : Double) -> Rect

    Rect::inset

    fn Rect::inset(self : Rect, insets : Insets) -> Rect

    Rect::intersection

    fn Rect::intersection(self : Rect, other : Rect) -> Rect?

    Rect::is_empty

    fn Rect::is_empty(self : Rect) -> Bool

    Rect::max_x

    fn Rect::max_x(self : Rect) -> Double

    Rect::max_y

    fn Rect::max_y(self : Rect) -> Double

    Rect::new

    fn Rect::new(x~ : Double, y~ : Double, width~ : Double, height~ : Double) -> Rect

    Rect::offset

    fn Rect::offset(self : Rect, dx? : Double, dy? : Double) -> Rect

    Rect::union

    fn Rect::union(self : Rect, other : Rect) -> Rect

    RedrawReason

    pub(all) enum RedrawReason {
    Initial
    Input
    Resize
    Explicit
    } derive(Eq, ToJson,
    Debug
    )

    RepaintBoundaryModifier

    pub(all) struct RepaintBoundaryModifier {
    }

    RepaintBoundaryModifier::to_any_modifier

    fn[Msg] RepaintBoundaryModifier::to_any_modifier(_self : RepaintBoundaryModifier) -> AnyModifier[Msg]

    RetainedLayerSpec

    pub(all) struct RetainedLayerSpec {
    key : String
    frame : Rect
    content_revision : Int
    scale_factor : Double
    } derive(Eq, ToJson,
    Debug
    )

    RetainedLayerSpec::new

    fn RetainedLayerSpec::new(key~ : String, frame~ : Rect, content_revision~ : Int, scale_factor? : Double) -> RetainedLayerSpec

    RoundedRect

    pub(all) struct RoundedRect {
    rect : Rect
    radius : Double
    } derive(Eq, ToJson,
    Debug
    )

    RoundedRect::new

    fn RoundedRect::new(rect~ : Rect, radius? : Double) -> RoundedRect

    ScaleModifier

    pub(all) struct ScaleModifier {
    sx : Double
    sy : Double
    }

    ScaleModifier::to_any_modifier

    fn[Msg] ScaleModifier::to_any_modifier(self : ScaleModifier) -> AnyModifier[Msg]

    ScrollAlignment

    pub(all) enum ScrollAlignment {
    Start
    Center
    End
    Nearest
    } derive(Eq, ToJson,
    Debug
    )

    ScrollRequest

    pub(all) struct ScrollRequest {
    id : Int
    offset : Point
    } derive(Eq, ToJson,
    Debug
    )

    Immutable programmatic scroll request. A monotonically increasing id lets the runtime-owned element slot apply each request at most once.

    ScrollRequest::new

    fn ScrollRequest::new(id~ : Int, offset~ : Point) -> ScrollRequest

    SemanticId

    pub struct SemanticId {
    // private fields
    } derive(Compare, Eq, Hash,
    Debug
    )

    A stable application-owned identifier for one effective semantic boundary.

    Values are exact and case-sensitive. Parsing rejects empty values, values longer than 255 UTF-8 bytes, and values containing Unicode whitespace or control characters.

    SemanticId::parse

    fn SemanticId::parse(value : String) -> SemanticId?

    Parses and validates a stable semantic identifier.

    SemanticId::value

    fn SemanticId::value(self : SemanticId) -> String

    Returns the exact, non-normalized identifier value.

    SemanticIdModifier

    pub(all) struct SemanticIdModifier {
    semantic_id : SemanticId
    }

    SemanticIdModifier::to_any_modifier

    fn[Msg] SemanticIdModifier::to_any_modifier(self : SemanticIdModifier) -> AnyModifier[Msg]

    SemanticsAction

    pub(all) enum SemanticsAction {
    Activate
    Focus
    SetText(String)
    Submit
    Scroll(SemanticsScrollDirection)
    Select
    Expand
    Collapse
    Dismiss
    } derive(Eq, ToJson,
    Debug
    )

    A typed semantic invocation. Payload requirements are encoded by the constructor rather than represented by an optional side channel.

    SemanticsAction::kind

    SemanticsActionKind

    pub(all) enum SemanticsActionKind {
    Activate
    Focus
    SetText
    Submit
    Scroll
    Select
    Expand
    Collapse
    Dismiss
    } derive(Eq, ToJson,
    Debug
    )

    A payload-free semantic capability advertised by a committed node.

    SemanticsCheckedModifier

    pub(all) struct SemanticsCheckedModifier {
    checked : Bool
    }

    SemanticsCheckedModifier::to_any_modifier

    fn[Msg] SemanticsCheckedModifier::to_any_modifier(self : SemanticsCheckedModifier) -> AnyModifier[Msg]

    SemanticsComposition

    pub(all) enum SemanticsComposition {
    Transparent
    Boundary
    MergeDescendants
    Hidden
    } derive(Eq, ToJson,
    Debug
    )

    Controls how one view declaration contributes to the effective semantics tree.

    SemanticsCompositionModifier

    pub(all) struct SemanticsCompositionModifier {
    composition : SemanticsComposition
    }

    SemanticsCompositionModifier::to_any_modifier

    SemanticsDescriptionModifier

    pub(all) struct SemanticsDescriptionModifier {
    description : String
    }

    SemanticsDescriptionModifier::to_any_modifier

    SemanticsExpandedModifier

    pub(all) struct SemanticsExpandedModifier {
    expanded : Bool
    }

    SemanticsExpandedModifier::to_any_modifier

    fn[Msg] SemanticsExpandedModifier::to_any_modifier(self : SemanticsExpandedModifier) -> AnyModifier[Msg]

    SemanticsGeneration

    pub struct SemanticsGeneration {
    // private fields
    } derive(Compare, Eq, Hash,
    Debug
    )

    Version of one runtime's atomically committed public semantics snapshot.

    SemanticsGeneration::new

    fn SemanticsGeneration::new(value : UInt64) -> SemanticsGeneration

    SemanticsGeneration::to_wire

    fn SemanticsGeneration::to_wire(self : SemanticsGeneration) -> String

    Returns the lossless decimal wire representation.

    SemanticsGeneration::value

    fn SemanticsGeneration::value(self : SemanticsGeneration) -> UInt64

    SemanticsInvalidModifier

    pub(all) struct SemanticsInvalidModifier {
    invalid : Bool
    }

    SemanticsInvalidModifier::to_any_modifier

    fn[Msg] SemanticsInvalidModifier::to_any_modifier(self : SemanticsInvalidModifier) -> AnyModifier[Msg]

    SemanticsLevelModifier

    pub(all) struct SemanticsLevelModifier {
    level : Int
    }

    SemanticsLevelModifier::to_any_modifier

    fn[Msg] SemanticsLevelModifier::to_any_modifier(self : SemanticsLevelModifier) -> AnyModifier[Msg]

    SemanticsNode

    pub(all) struct SemanticsNode {
    node_id : SemanticsNodeId
    semantic_id : SemanticId?
    role : SemanticsRole
    level : Int?
    url : String
    label : String
    value : String
    description : String
    state : SemanticsState
    actions : Array[SemanticsActionKind]
    focus_order : Int?
    frame : Rect
    children : Array[SemanticsNodeId]
    } derive(Eq, ToJson,
    Debug
    )

    SemanticsNodeId

    pub struct SemanticsNodeId {
    // private fields
    } derive(Compare, Eq, Hash,
    Debug
    )

    Runtime-session-local identity for one committed semantics node.

    SemanticsNodeId::new

    fn SemanticsNodeId::new(value : UInt64) -> SemanticsNodeId

    SemanticsNodeId::to_wire

    fn SemanticsNodeId::to_wire(self : SemanticsNodeId) -> String

    Returns the lossless decimal wire representation.

    SemanticsNodeId::value

    fn SemanticsNodeId::value(self : SemanticsNodeId) -> UInt64

    SemanticsPressedModifier

    pub(all) struct SemanticsPressedModifier {
    pressed : Bool
    }

    SemanticsPressedModifier::to_any_modifier

    fn[Msg] SemanticsPressedModifier::to_any_modifier(self : SemanticsPressedModifier) -> AnyModifier[Msg]

    SemanticsRequiredModifier

    pub(all) struct SemanticsRequiredModifier {
    required : Bool
    }

    SemanticsRequiredModifier::to_any_modifier

    fn[Msg] SemanticsRequiredModifier::to_any_modifier(self : SemanticsRequiredModifier) -> AnyModifier[Msg]

    SemanticsRole

    pub(all) enum SemanticsRole {
    None
    Text
    Link
    Heading
    Navigation
    Main
    Button
    Checkbox
    TextField
    List
    ListItem
    Grid
    ScrollView
    Switch
    Radio
    Slider
    Progress
    Tab
    Dialog
    Tooltip
    Menu
    ButtonGroup
    Form
    FormField
    Tree
    TreeItem
    Group
    WebView
    } derive(Eq, ToJson,
    Debug
    )

    SemanticsRoleModifier

    pub(all) struct SemanticsRoleModifier {
    role : SemanticsRole
    }

    SemanticsRoleModifier::to_any_modifier

    fn[Msg] SemanticsRoleModifier::to_any_modifier(self : SemanticsRoleModifier) -> AnyModifier[Msg]

    SemanticsScrollDirection

    pub(all) enum SemanticsScrollDirection {
    Forward
    Backward
    Up
    Down
    Left
    Right
    } derive(Eq, ToJson,
    Debug
    )

    SemanticsSelectedModifier

    pub(all) struct SemanticsSelectedModifier {
    selected : Bool
    }

    SemanticsSelectedModifier::to_any_modifier

    fn[Msg] SemanticsSelectedModifier::to_any_modifier(self : SemanticsSelectedModifier) -> AnyModifier[Msg]

    SemanticsState

    pub(all) struct SemanticsState {
    focused : Bool
    disabled : Bool
    selected : Bool
    pressed : Bool
    checked : Bool
    expanded : Bool
    invalid : Bool
    required : Bool
    } derive(Eq, ToJson,
    Debug
    )

    SemanticsState::default

    SemanticsTarget

    pub(all) enum SemanticsTarget {
    BySemanticId(SemanticId)
    ByNodeId(SemanticsNodeId)
    } derive(Eq, ToJson,
    Debug
    )

    Selects either an application-owned stable ID or a session-local committed node ID.

    SemanticsUrlModifier

    pub(all) struct SemanticsUrlModifier {
    url : String
    }

    SemanticsUrlModifier::to_any_modifier

    fn[Msg] SemanticsUrlModifier::to_any_modifier(self : SemanticsUrlModifier) -> AnyModifier[Msg]

    ShaderEffectSpec

    pub(all) struct ShaderEffectSpec {
    name : String
    frame : Rect
    uniforms : Array[Double]
    fallback : Brush
    } derive(Eq, ToJson,
    Debug
    )

    ShaderEffectSpec::new

    fn ShaderEffectSpec::new(name~ : String, frame~ : Rect, uniforms? : Array[Double], fallback? : Brush) -> ShaderEffectSpec

    ShadowModifier

    pub(all) struct ShadowModifier {
    style : ShadowStyle
    }

    ShadowModifier::to_any_modifier

    fn[Msg] ShadowModifier::to_any_modifier(self : ShadowModifier) -> AnyModifier[Msg]

    ShadowScale

    pub(all) struct ShadowScale {
    sm : ShadowStyle
    md : ShadowStyle
    lg : ShadowStyle
    } derive(Eq, ToJson,
    Debug
    )

    ShadowScale::default

    fn ShadowScale::default(scheme? : ColorScheme) -> ShadowScale

    ShadowSpec

    pub(all) struct ShadowSpec {
    rect : RoundedRect
    color : Color
    offset : Point
    blur_radius : Double
    spread : Double
    } derive(Eq, ToJson,
    Debug
    )

    ShadowSpec::new

    fn ShadowSpec::new(rect~ : RoundedRect, color~ : Color, offset? : Point, blur_radius? : Double, spread? : Double) -> ShadowSpec

    ShadowStyle

    pub(all) struct ShadowStyle {
    color : Color
    offset : Point
    blur_radius : Double
    spread : Double
    } derive(Eq, ToJson,
    Debug
    )

    ShadowStyle::new

    fn ShadowStyle::new(color~ : Color, offset? : Point, blur_radius? : Double, spread? : Double) -> ShadowStyle

    Size

    pub(all) struct Size {
    width : Double
    height : Double
    } derive(Eq, ToJson,
    Debug
    )

    Size::clamp

    fn Size::clamp(self : Size, constraints : Constraints) -> Size

    Size::inflate

    fn Size::inflate(self : Size, insets : Insets) -> Size

    Size::new

    fn Size::new(width~ : Double, height~ : Double) -> Size

    SpacingModifier

    pub(all) struct SpacingModifier {
    spacing : Double
    }

    SpacingModifier::to_any_modifier

    fn[Msg] SpacingModifier::to_any_modifier(_self : SpacingModifier) -> AnyModifier[Msg]

    SpacingScale

    pub(all) struct SpacingScale {
    xs : Double
    sm : Double
    md : Double
    lg : Double
    xl : Double
    } derive(Eq, ToJson,
    Debug
    )

    SpacingScale::default

    fn SpacingScale::default() -> SpacingScale

    Subscription

    pub struct Subscription[Msg] {
    // private fields
    }

    Subscription::animation_tick

    fn[Msg] Subscription::animation_tick(key~ : String, start~ : ((Msg) -> Unit) -> () -> Unit?, label? : String) -> Subscription[Msg]

    Subscription::batch

    fn[Msg] Subscription::batch(subscriptions : Array[Subscription[Msg]]) -> Subscription[Msg]

    Subscription::descriptors

    fn[Msg] Subscription::descriptors(self : Subscription[Msg]) -> Array[SubscriptionDescriptor]

    Subscription::host_event

    fn[Msg] Subscription::host_event(key~ : String, start~ : ((Msg) -> Unit) -> () -> Unit?, label? : String) -> Subscription[Msg]

    Subscription::listen

    fn[Msg] Subscription::listen(key~ : String, start~ : ((Msg) -> Unit) -> () -> Unit?, kind? : String, label? : String) -> Subscription[Msg]

    Subscription::map

    fn[Msg, NextMsg] Subscription::map(self : Subscription[Msg], map : (Msg) -> NextMsg) -> Subscription[NextMsg]

    Subscription::none

    fn[Msg] Subscription::none() -> Subscription[Msg]

    Subscription::route_event

    fn[Msg] Subscription::route_event(key~ : String, start~ : ((Msg) -> Unit) -> () -> Unit?, label? : String) -> Subscription[Msg]

    Subscription::run

    fn[Msg] Subscription::run(key~ : String, start~ : ((Msg) -> Unit) -> () -> Unit?, kind? : String, label? : String) -> Subscription[Msg]

    Subscription::runtime_sources

    fn[Msg] Subscription::runtime_sources(self : Subscription[Msg]) -> Array[SubscriptionRuntimeSource[Msg]]

    Subscription::runtime_visit

    fn[Msg] Subscription::runtime_visit(self : Subscription[Msg], none : (Int) -> Unit, batch : (Int, Int) -> Unit, source : (Int, SubscriptionDescriptor) -> Unit) -> Unit

    Subscription::timer

    fn[Msg] Subscription::timer(key~ : String, start~ : ((Msg) -> Unit) -> () -> Unit?, label? : String) -> Subscription[Msg]

    Subscription::window_event

    fn[Msg] Subscription::window_event(key~ : String, start~ : ((Msg) -> Unit) -> () -> Unit?, label? : String) -> Subscription[Msg]

    SubscriptionDescriptor

    type SubscriptionDescriptor derive(Eq, ToJson,
    Debug
    )

    SubscriptionDescriptor::key

    SubscriptionDescriptor::kind

    SubscriptionDescriptor::label

    SubscriptionRuntimeSource

    pub struct SubscriptionRuntimeSource[Msg] {
    // private fields
    }

    SubscriptionRuntimeSource::descriptor

    SubscriptionRuntimeSource::key

    fn[Msg] SubscriptionRuntimeSource::key(self : SubscriptionRuntimeSource[Msg]) -> String

    SubscriptionRuntimeSource::kind

    fn[Msg] SubscriptionRuntimeSource::kind(self : SubscriptionRuntimeSource[Msg]) -> String

    SubscriptionRuntimeSource::label

    fn[Msg] SubscriptionRuntimeSource::label(self : SubscriptionRuntimeSource[Msg]) -> String

    SubscriptionRuntimeSource::start

    fn[Msg] SubscriptionRuntimeSource::start(self : SubscriptionRuntimeSource[Msg], dispatch : (Msg) -> Unit) -> () -> Unit?

    SurfaceLevel

    pub(all) enum SurfaceLevel {
    Base
    Raised
    Overlay
    } derive(Eq, ToJson,
    Debug
    )

    SurfaceMetrics

    pub(all) struct SurfaceMetrics {
    logical_size : Size
    physical_size : Size
    scale_factor : Double
    } derive(Eq, ToJson,
    Debug
    )

    Logical and physical dimensions of a presentation surface.

    This is the neutral contract shared by window backends and renderers. The scale factor is always positive; constructors normalize invalid values to one so callers cannot accidentally divide by zero when converting input.

    SurfaceMetrics::from_logical

    fn SurfaceMetrics::from_logical(size~ : Size, scale_factor? : Double) -> SurfaceMetrics

    SurfaceMetrics::logical_size

    fn SurfaceMetrics::logical_size(self : SurfaceMetrics) -> Size

    SurfaceMetrics::new

    fn SurfaceMetrics::new(logical_size~ : Size, physical_size~ : Size, scale_factor? : Double) -> SurfaceMetrics

    SurfaceMetrics::physical_size

    fn SurfaceMetrics::physical_size(self : SurfaceMetrics) -> Size

    SurfaceMetrics::scale_factor

    fn SurfaceMetrics::scale_factor(self : SurfaceMetrics) -> Double

    SurfaceScale

    pub(all) struct SurfaceScale {
    base : Brush
    raised : Brush
    overlay : Brush
    } derive(Eq, ToJson,
    Debug
    )

    SurfaceScale::default

    fn SurfaceScale::default(palette : ColorPalette, scheme : ColorScheme) -> SurfaceScale

    TextAlign

    pub(all) enum TextAlign {
    TextStart
    TextCenter
    TextEnd
    } derive(Eq, ToJson,
    Debug
    )

    TextCaretDirection

    pub(all) enum TextCaretDirection {
    MoveLeft
    MoveRight
    MoveStart
    MoveEnd
    }

    TextCaretMoveResult

    pub(all) struct TextCaretMoveResult {
    caret : Int
    selection : TextRange?
    }

    TextCommandResult

    pub(all) struct TextCommandResult {
    handled : Bool
    changed : Bool
    clipboard_text : String?
    } derive(Eq, ToJson,
    Debug
    )

    TextCommandResult::handled

    fn TextCommandResult::handled(changed? : Bool, clipboard_text? : String?) -> TextCommandResult

    TextCommandResult::ignored

    TextControlStateContext

    pub(all) struct TextControlStateContext {
    caret : Int
    selection : TextRange?
    text_selection_anchor : Int?
    composition : String?
    composition_cursor : TextRange?
    undo_stack : Array[TextHistoryEntryContext]
    redo_stack : Array[TextHistoryEntryContext]
    } derive(Eq, ToJson,
    Debug
    )

    TextHistoryEntryContext

    pub(all) struct TextHistoryEntryContext {
    text : String
    caret : Int
    selection : TextRange?
    } derive(Eq, ToJson,
    Debug
    )

    TextInputEvent

    pub(all) enum TextInputEvent {
    InsertText(String)
    ReplaceText(TextRange, String)
    SetSelection(TextRange)
    CompositionStart
    CompositionUpdate(CompositionUpdate)
    CompositionEnd(String)
    DeleteRange(TextRange)
    DeleteSurrounding(Int, Int)
    } derive(Eq, ToJson,
    Debug
    )

    TextInputState

    pub(all) struct TextInputState {
    focused : Bool
    text : String
    caret : Int
    selection : TextRange?
    composition : String?
    composition_cursor : TextRange?
    frame : Rect
    caret_rect : Rect
    } derive(Eq, ToJson,
    Debug
    )

    TextInputState::none

    TextLayoutInput

    pub(all) struct TextLayoutInput {
    text : String
    font : FontSpec
    max_width : Double?
    } derive(Eq, ToJson,
    Debug
    )

    TextLayoutInput::new

    fn TextLayoutInput::new(text~ : String, font~ : FontSpec, max_width? : Double) -> TextLayoutInput

    TextLayoutResult

    pub(all) struct TextLayoutResult {
    size : Size
    baseline : Double
    caret_positions : Array[Double]
    } derive(Eq, ToJson,
    Debug
    )

    TextParagraphHitTestResult

    pub(all) struct TextParagraphHitTestResult {
    offset : Int
    line_index : Int
    caret_rect : Rect
    is_inside : Bool
    } derive(Eq, ToJson,
    Debug
    )

    TextParagraphLayoutMetadata

    pub(all) struct TextParagraphLayoutMetadata {
    text_system_id : String
    paragraph_layout_available : Bool
    line_metrics_available : Bool
    selection_rects_available : Bool
    hit_test_available : Bool
    native_paragraph_ready : Bool
    bidi_visual_order_ready : Bool
    } derive(Eq, ToJson,
    Debug
    )

    TextParagraphLayoutResult

    pub(all) struct TextParagraphLayoutResult {
    text : String
    size : Size
    baseline : Double
    lines : Array[TextParagraphLineMetrics]
    caret_rects : Array[Rect]
    visual_order : TextParagraphVisualOrderMetadata
    metadata : TextParagraphLayoutMetadata
    } derive(Eq, ToJson,
    Debug
    )

    TextParagraphLayoutResult::caret_rect_at

    fn TextParagraphLayoutResult::caret_rect_at(self : TextParagraphLayoutResult, offset : Int) -> Rect

    TextParagraphLayoutResult::hit_test

    TextParagraphLayoutResult::line_count

    TextParagraphLayoutResult::selection_rects

    TextParagraphLineMetrics

    pub(all) struct TextParagraphLineMetrics {
    line_index : Int
    text_range : TextRange
    origin : Point
    size : Size
    baseline : Double
    } derive(Eq, ToJson,
    Debug
    )

    TextParagraphVisualOrderMetadata

    pub(all) struct TextParagraphVisualOrderMetadata {
    logical_text : String
    visual_text : String
    logical_cluster_count : Int
    visual_cluster_count : Int
    segment_count : Int
    glyph_count : Int
    visual_order_differs : Bool
    bidi_visual_order_ready : Bool
    } derive(Eq, ToJson,
    Debug
    )

    TextRange

    pub(all) struct TextRange {
    start : Int
    end : Int
    } derive(Eq, ToJson,
    Debug
    )

    TextRange::collapsed

    fn TextRange::collapsed(index : Int) -> TextRange

    TextRange::is_collapsed

    fn TextRange::is_collapsed(self : TextRange) -> Bool

    TextRange::new

    fn TextRange::new(start~ : Int, end~ : Int) -> TextRange

    TextRange::normalized

    fn TextRange::normalized(self : TextRange) -> TextRange

    TextRun

    pub(all) struct TextRun {
    text : String
    frame : Rect
    font : FontSpec
    color : Color
    align : TextAlign
    } derive(Eq, ToJson,
    Debug
    )

    TextRun::new

    fn TextRun::new(text~ : String, frame~ : Rect, font~ : FontSpec, color~ : Color, align? : TextAlign) -> TextRun

    TextSystem

    pub struct TextSystem {
    id : String
    measure : (TextLayoutInput) -> TextLayoutResult
    paragraph_layout : (TextLayoutInput) -> TextParagraphLayoutResult
    register_font_data : (FontFamily, Bytes) -> Unit
    }

    TextSystem::fallback

    fn TextSystem::fallback() -> TextSystem

    TextSystem::id

    fn TextSystem::id(self : TextSystem) -> String

    TextSystem::layout_paragraph

    fn TextSystem::layout_paragraph(self : TextSystem, input : TextLayoutInput) -> TextParagraphLayoutResult

    TextSystem::measure_text

    fn TextSystem::measure_text(self : TextSystem, input : TextLayoutInput) -> TextLayoutResult

    TextSystem::new

    fn TextSystem::new(id~ : String, measure~ : (TextLayoutInput) -> TextLayoutResult, paragraph_layout? : (TextLayoutInput) -> TextParagraphLayoutResult?, register_font_data? : (FontFamily, Bytes) -> Unit) -> TextSystem

    TextSystem::register_font_data

    fn TextSystem::register_font_data(self : TextSystem, family : FontFamily, data : Bytes) -> Unit

    Theme

    pub(all) struct Theme {
    scheme : ColorScheme
    palette : ColorPalette
    spacing_scale : SpacingScale
    radius_scale : RadiusScale
    typography : TypographyScale
    shadow_scale : ShadowScale
    motion : MotionScale
    surfaces : SurfaceScale
    } derive(Eq, ToJson,
    Debug
    )

    Resolved, drawable neutral theme. A Theme is the output of resolve_theme(spec, system_scheme): it carries the palette, all scale tiers, surfaces, and motion — the neutral theme base. Concrete control theme tokens (ButtonTheme, TextFieldTheme, …) are not on Theme; they live in moui/views as ControlThemeSet (ADR 0017) so core carries no control vocabulary. Controls read a ControlThemeSet resolved views-side from this neutral Theme at paint time; style? on a control constructor is a one-shot override.

    Theme::neutral

    fn Theme::neutral() -> Theme

    Neutral fallback theme. Equivalent to resolving ThemeSpec::default() with a light system scheme. Carries the neutral palette + scales only; concrete control tokens are resolved views-side as a ControlThemeSet (ADR 0017).

    Theme::surface_brush

    fn Theme::surface_brush(self : Theme, level : SurfaceLevel) -> Brush

    Theme::with_motion

    fn Theme::with_motion(self : Theme, motion : MotionScale) -> Theme

    Theme::with_palette

    fn Theme::with_palette(self : Theme, palette : ColorPalette) -> Theme

    Theme::with_radius_scale

    fn Theme::with_radius_scale(self : Theme, radius_scale : RadiusScale) -> Theme

    Theme::with_shadow_scale

    fn Theme::with_shadow_scale(self : Theme, shadow_scale : ShadowScale) -> Theme

    Theme::with_spacing_scale

    fn Theme::with_spacing_scale(self : Theme, spacing_scale : SpacingScale) -> Theme

    Theme::with_surfaces

    fn Theme::with_surfaces(self : Theme, surfaces : SurfaceScale) -> Theme

    Theme::with_typography

    fn Theme::with_typography(self : Theme, typography : TypographyScale) -> Theme

    ThemeDensity

    pub(all) enum ThemeDensity {
    Compact
    Standard
    Comfortable
    } derive(Eq, ToJson,
    Debug
    )

    Density tier. Compact shrinks spacing by ~18%, Comfortable grows it by ~18%; Standard is 1.0.

    ThemeDensity::label

    fn ThemeDensity::label(self : ThemeDensity) -> String

    ThemeDensity::multiplier

    fn ThemeDensity::multiplier(self : ThemeDensity) -> Double

    ThemeModifier

    pub(all) struct ThemeModifier {
    theme : Theme
    }

    ThemeModifier::to_any_modifier

    fn[Msg] ThemeModifier::to_any_modifier(self : ThemeModifier) -> AnyModifier[Msg]

    ThemePreset

    pub(all) enum ThemePreset {
    Minimal
    Material
    Carbon
    Primer
    Fluent
    } derive(Eq, ToJson,
    Debug
    )

    Which design-system preset the user selected. core only resolves Minimal itself; branded presets (Material/Carbon/Primer/Fluent) are resolved by the moui_theme addon, which produces a complete @core.Theme (including components). The enum lives in core so Environment can record the user's choice without core depending on the addon.

    ThemeSpec

    pub(all) struct ThemeSpec {
    preset : ThemePreset
    color_mode : ColorMode
    density : ThemeDensity
    contrast : AccessibilityContrast
    seed : Color?
    reduced_motion : Bool
    } derive(Eq, ToJson,
    Debug
    )

    User theme intent. Built by app code (or by a branded addon helper) and stored on Environment.theme_spec; the resolver consumes it whenever the system scheme changes so a ThemeChanged event rebuilds the full theme.

    ThemeSpec::default

    fn ThemeSpec::default() -> ThemeSpec

    Default spec: MoUI Minimal, follow the system, standard density, standard contrast, no seed, full motion.

    ThemeSpec::minimal_dark

    fn ThemeSpec::minimal_dark() -> ThemeSpec

    Minimal-dark spec (forced dark, used by the legacy dark_theme() helper).

    ThemeSpec::minimal_light

    fn ThemeSpec::minimal_light() -> ThemeSpec

    Minimal-light spec (forced light, used by the legacy light_theme() helper).

    ThemeSpec::resolve_scheme

    fn ThemeSpec::resolve_scheme(self : ThemeSpec, system_scheme : ColorScheme) -> ColorScheme

    Resolve the effective color scheme for a spec given the current system scheme. System defers to the platform; Light/Dark override it.

    ThemeSpec::with_color_mode

    fn ThemeSpec::with_color_mode(self : ThemeSpec, color_mode : ColorMode) -> ThemeSpec

    ThemeSpec::with_contrast

    fn ThemeSpec::with_contrast(self : ThemeSpec, contrast : AccessibilityContrast) -> ThemeSpec

    ThemeSpec::with_density

    fn ThemeSpec::with_density(self : ThemeSpec, density : ThemeDensity) -> ThemeSpec

    ThemeSpec::with_preset

    fn ThemeSpec::with_preset(self : ThemeSpec, preset : ThemePreset) -> ThemeSpec

    ThemeSpec::with_reduced_motion

    fn ThemeSpec::with_reduced_motion(self : ThemeSpec, reduced_motion : Bool) -> ThemeSpec

    ThemeSpec::with_seed

    fn ThemeSpec::with_seed(self : ThemeSpec, seed : Color?) -> ThemeSpec

    Transform2D

    pub(all) struct Transform2D {
    a : Double
    b : Double
    c : Double
    d : Double
    tx : Double
    ty : Double
    } derive(Eq, ToJson,
    Debug
    )

    Transform2D::identity

    fn Transform2D::identity() -> Transform2D

    Transform2D::scale

    fn Transform2D::scale(sx~ : Double, sy~ : Double) -> Transform2D

    Transform2D::translation

    fn Transform2D::translation(dx~ : Double, dy~ : Double) -> Transform2D

    TransitionSample

    pub struct TransitionSample {
    progress : Double
    style : TransitionStyle
    present : Bool
    } derive(Eq, ToJson,
    Debug
    )

    TransitionSpec

    pub struct TransitionSpec {
    from : TransitionStyle
    to : TransitionStyle
    duration_ms : Double
    easing : Easing
    } derive(Eq, ToJson,
    Debug
    )

    TransitionSpec::fade

    fn TransitionSpec::fade(from_opacity? : Double, to_opacity? : Double, duration_ms? : Double, easing? : Easing) -> TransitionSpec

    TransitionSpec::new

    fn TransitionSpec::new(from? : TransitionStyle, to? : TransitionStyle, duration_ms? : Double, easing? : Easing) -> TransitionSpec

    TransitionSpec::presence

    fn TransitionSpec::presence(self : TransitionSpec, present~ : Bool, progress~ : Double, reduced_motion? : Bool) -> TransitionSample

    TransitionSpec::sample

    fn TransitionSpec::sample(self : TransitionSpec, progress : Double, reduced_motion? : Bool) -> TransitionSample

    TransitionSpec::sample_elapsed

    fn TransitionSpec::sample_elapsed(self : TransitionSpec, elapsed_ms : Double, reduced_motion? : Bool) -> TransitionSample

    TransitionSpec::scale

    fn TransitionSpec::scale(from_scale? : Double, to_scale? : Double, duration_ms? : Double, easing? : Easing) -> TransitionSpec

    TransitionSpec::slide

    fn TransitionSpec::slide(from_offset~ : Point, to_offset? : Point, duration_ms? : Double, easing? : Easing) -> TransitionSpec

    TransitionStyle

    pub struct TransitionStyle {
    opacity : Double
    offset : Point
    scale : Point
    foreground : Color?
    } derive(Eq, ToJson,
    Debug
    )

    TransitionStyle::identity

    TransitionStyle::interpolate

    fn TransitionStyle::interpolate(self : TransitionStyle, to : TransitionStyle, progress~ : Double, easing? : Easing, reduced_motion? : Bool) -> TransitionStyle

    TransitionStyle::new

    fn TransitionStyle::new(opacity? : Double, offset? : Point, scale? : Point, foreground? : Color?) -> TransitionStyle

    TransitionStyle::with_foreground

    fn TransitionStyle::with_foreground(self : TransitionStyle, color : Color) -> TransitionStyle

    TransitionStyle::with_offset

    fn TransitionStyle::with_offset(self : TransitionStyle, dx? : Double, dy? : Double) -> TransitionStyle

    TransitionStyle::with_opacity

    fn TransitionStyle::with_opacity(self : TransitionStyle, opacity : Double) -> TransitionStyle

    TransitionStyle::with_scale

    fn TransitionStyle::with_scale(self : TransitionStyle, sx? : Double, sy? : Double) -> TransitionStyle

    TypographyScale

    pub(all) struct TypographyScale {
    display : FontSpec
    headline : FontSpec
    title : FontSpec
    subtitle : FontSpec
    body : FontSpec
    label : FontSpec
    caption : FontSpec
    overline : FontSpec
    control : FontSpec
    } derive(Eq, ToJson,
    Debug
    )

    TypographyScale::default

    View

    pub struct View[Msg] {
    // private fields
    }

    View::accepts_focus

    fn[Msg] View::accepts_focus(self : View[Msg]) -> Bool

    View::accessibility_label

    fn[Msg] View::accessibility_label(self : View[Msg], label : String) -> View[Msg]

    View::align

    fn[Msg] View::align(self : View[Msg], alignment? : Alignment) -> View[Msg]

    View::aspect_ratio

    fn[Msg] View::aspect_ratio(self : View[Msg], ratio : Double) -> View[Msg]

    View::background

    fn[Msg] View::background(self : View[Msg], color : Color) -> View[Msg]

    View::background_brush

    fn[Msg] View::background_brush(self : View[Msg], brush : Brush) -> View[Msg]

    View::border

    fn[Msg] View::border(self : View[Msg], style : BorderStyle) -> View[Msg]

    View::caption

    fn[Msg] View::caption(self : View[Msg]) -> View[Msg]

    View::child_constraints

    fn[Msg] View::child_constraints(self : View[Msg], constraints : Constraints) -> Constraints

    View::child_environment

    fn[Msg] View::child_environment(self : View[Msg], environment : Environment) -> Environment

    View::child_style

    fn[Msg] View::child_style(self : View[Msg], style : ViewStyle) -> ViewStyle

    View::children

    fn[Msg] View::children(self : View[Msg]) -> Array[View[Msg]]

    View::clip

    fn[Msg] View::clip(self : View[Msg]) -> View[Msg]

    View::corner_radius

    fn[Msg] View::corner_radius(self : View[Msg], radius : Double) -> View[Msg]

    View::cross_axis_alignment

    fn[Msg] View::cross_axis_alignment(self : View[Msg], alignment : CrossAxisAlignment) -> View[Msg]

    View::declaration

    fn[Msg] View::declaration(self : View[Msg]) -> ViewDeclaration

    View::disabled

    fn[Msg] View::disabled(self : View[Msg], disabled? : Bool) -> View[Msg]

    View::dispatch_semantics_action

    fn[Msg] View::dispatch_semantics_action(self : View[Msg], context : ViewSemanticsActionContext, action : SemanticsAction) -> ViewSemanticsActionResult[Msg]

    View::environment

    fn[Msg] View::environment(self : View[Msg], environment : Environment) -> View[Msg]

    View::event

    fn[Msg] View::event(self : View[Msg], context : ViewEventContext) -> ViewEventResult[Msg]

    View::expanded

    fn[Msg] View::expanded(self : View[Msg], weight? : Double) -> View[Msg]

    View::flex_weight

    fn[Msg] View::flex_weight(self : View[Msg]) -> Double

    View::flexible

    fn[Msg] View::flexible(self : View[Msg], weight? : Double) -> View[Msg]

    View::focus_trap

    fn[Msg] View::focus_trap(self : View[Msg], enabled? : Bool) -> View[Msg]

    View::focusable

    fn[Msg] View::focusable(self : View[Msg], focusable? : Bool) -> View[Msg]

    View::font

    fn[Msg] View::font(self : View[Msg], font : FontSpec) -> View[Msg]

    View::foreground

    fn[Msg] View::foreground(self : View[Msg], color : Color) -> View[Msg]

    View::frame

    fn[Msg] View::frame(self : View[Msg], width? : Double, height? : Double, min_width? : Double, min_height? : Double, max_width? : Double, max_height? : Double) -> View[Msg]

    View::from_node

    fn[Node : ViewNode, Msg] View::from_node(node : Node, children? : (Node) -> Array[View[Msg]], event? : (Node, ViewEventContext) -> ViewEventResult[Msg], text_command? : (Node, ViewEventContext, CommandIntent, String?) -> ViewTextCommandResult[Msg], semantics_actions? : (Node) -> Array[ViewSemanticsActionHandler[Msg]]) -> View[Msg]

    Construct a typed view from a concrete message-independent node.

    The node supplies layout, paint, semantics, focus, and reconciliation behavior through ViewNode. Optional adapters attach typed children, events, and text commands without erasing Msg from the public view. Identity, declaration, semantics metadata, and static children are sampled exactly once here. View::map maps only typed adapters and preserves those frozen snapshots.

    View::hide_semantics

    fn[Msg] View::hide_semantics(self : View[Msg]) -> View[Msg]

    View::identity

    fn[Msg] View::identity(self : View[Msg]) -> ViewIdentity

    View::intrinsic_height

    fn[Msg] View::intrinsic_height(self : View[Msg]) -> View[Msg]

    View::intrinsic_width

    fn[Msg] View::intrinsic_width(self : View[Msg]) -> View[Msg]

    View::key

    fn[Msg] View::key(self : View[Msg], value : String) -> View[Msg]

    View::keyboard_shortcut

    fn[Msg] View::keyboard_shortcut(self : View[Msg], shortcut : KeyboardShortcut) -> View[Msg]

    View::layout

    fn[Msg] View::layout(self : View[Msg], context : ViewLayoutContext) -> ViewLayoutResult

    View::layout_priority

    fn[Msg] View::layout_priority(self : View[Msg], priority : Double) -> View[Msg]

    View::main_axis_alignment

    fn[Msg] View::main_axis_alignment(self : View[Msg], alignment : MainAxisAlignment) -> View[Msg]

    View::map

    fn[Msg, NextMsg] View::map(self : View[Msg], map : (Msg) -> NextMsg) -> View[NextMsg]

    View::merge_descendant_semantics

    fn[Msg] View::merge_descendant_semantics(self : View[Msg]) -> View[Msg]

    View::mono

    fn[Msg] View::mono(self : View[Msg]) -> View[Msg]

    View::offset

    fn[Msg] View::offset(self : View[Msg], dx? : Double, dy? : Double) -> View[Msg]

    View::on_double_tap

    fn[Msg] View::on_double_tap(self : View[Msg], message : Msg) -> View[Msg]

    View::on_drag

    fn[Msg] View::on_drag(self : View[Msg], handler : (DragGestureEvent) -> Msg) -> View[Msg]

    View::on_drag_with_frame

    fn[Msg] View::on_drag_with_frame(self : View[Msg], handler : (DragGestureEvent, Rect) -> Msg) -> View[Msg]

    View::on_file_drop

    fn[Msg] View::on_file_drop(self : View[Msg], handler : (Array[String], Point) -> Msg) -> View[Msg]

    View::on_long_press

    fn[Msg] View::on_long_press(self : View[Msg], message : Msg) -> View[Msg]

    View::on_tap

    fn[Msg] View::on_tap(self : View[Msg], message : Msg) -> View[Msg]

    View::opacity

    fn[Msg] View::opacity(self : View[Msg], opacity : Double) -> View[Msg]

    View::padding

    fn[Msg] View::padding(self : View[Msg], value : Double) -> View[Msg]

    View::paint

    fn[Msg] View::paint(self : View[Msg], context : ViewPaintContext) -> ViewPaintPlan

    View::platform_views

    fn[Msg] View::platform_views(self : View[Msg], context : ViewPlatformContext) -> Array[PlatformViewPlacement]

    View::presence

    fn[Msg] View::presence(self : View[Msg], present~ : Bool, spec? : TransitionSpec, progress? : Double, reduced_motion? : Bool) -> View[Msg]

    View::repaint_boundary

    fn[Msg] View::repaint_boundary(self : View[Msg]) -> View[Msg]

    View::scale

    fn[Msg] View::scale(self : View[Msg], sx? : Double, sy? : Double) -> View[Msg]

    View::semantic_id

    fn[Msg] View::semantic_id(self : View[Msg], semantic_id : SemanticId) -> View[Msg]

    View::semantics

    fn[Msg] View::semantics(self : View[Msg]) -> ViewSemanticsInfo

    View::semantics_action_kinds

    fn[Msg] View::semantics_action_kinds(self : View[Msg]) -> Array[SemanticsActionKind]

    View::semantics_boundary

    fn[Msg] View::semantics_boundary(self : View[Msg]) -> View[Msg]

    View::semantics_checked

    fn[Msg] View::semantics_checked(self : View[Msg], checked? : Bool) -> View[Msg]

    View::semantics_composition

    fn[Msg] View::semantics_composition(self : View[Msg], composition : SemanticsComposition) -> View[Msg]

    View::semantics_description

    fn[Msg] View::semantics_description(self : View[Msg], description : String) -> View[Msg]

    View::semantics_expanded

    fn[Msg] View::semantics_expanded(self : View[Msg], expanded? : Bool) -> View[Msg]

    View::semantics_invalid

    fn[Msg] View::semantics_invalid(self : View[Msg], invalid? : Bool) -> View[Msg]

    View::semantics_level

    fn[Msg] View::semantics_level(self : View[Msg], level : Int) -> View[Msg]

    View::semantics_pressed

    fn[Msg] View::semantics_pressed(self : View[Msg], pressed? : Bool) -> View[Msg]

    View::semantics_required

    fn[Msg] View::semantics_required(self : View[Msg], required? : Bool) -> View[Msg]

    View::semantics_role

    fn[Msg] View::semantics_role(self : View[Msg], role : SemanticsRole) -> View[Msg]

    View::semantics_selected

    fn[Msg] View::semantics_selected(self : View[Msg], selected? : Bool) -> View[Msg]

    View::semantics_url

    fn[Msg] View::semantics_url(self : View[Msg], url : String) -> View[Msg]

    View::shadow

    fn[Msg] View::shadow(self : View[Msg], style : ShadowStyle) -> View[Msg]

    View::spacing

    fn[Msg] View::spacing(self : View[Msg], spacing : Double) -> View[Msg]

    View::text_command

    fn[Msg] View::text_command(self : View[Msg], context : ViewEventContext, intent : CommandIntent, paste_text? : String?) -> TextCommandResult

    View::text_command_result

    fn[Msg] View::text_command_result(self : View[Msg], context : ViewEventContext, intent : CommandIntent, paste_text? : String?) -> ViewTextCommandResult[Msg]

    View::text_input_state

    fn[Msg] View::text_input_state(self : View[Msg], context : ViewPaintContext) -> TextInputState?

    View::theme

    fn[Msg] View::theme(self : View[Msg], theme : Theme) -> View[Msg]

    View::title

    fn[Msg] View::title(self : View[Msg]) -> View[Msg]

    View::transition

    fn[Msg] View::transition(self : View[Msg], spec? : TransitionSpec, progress? : Double, reduced_motion? : Bool) -> View[Msg]

    ViewDeclaration

    pub struct ViewDeclaration {
    layout : DeclarationChannel
    paint : DeclarationChannel
    semantics : DeclarationChannel
    platform : DeclarationChannel
    } derive(Eq)

    The four independently declared invalidation channels for a view node.

    ViewDeclaration::changes_from

    fn ViewDeclaration::changes_from(self : ViewDeclaration, previous : ViewDeclaration) -> DeclarationChanges

    Classifies effective invalidation from previous to this declaration.

    ViewDeclaration::channels

    fn ViewDeclaration::channels(layout~ : DeclarationChannel, paint~ : DeclarationChannel, semantics~ : DeclarationChannel, platform~ : DeclarationChannel) -> ViewDeclaration

    Declares cache behavior independently for all four channels.

    ViewDeclaration::constant

    Declares four channels that remain constant for a reused view identity.

    ViewDeclaration::layout

    ViewDeclaration::paint

    ViewDeclaration::platform

    ViewDeclaration::semantics

    ViewDeclaration::uncacheable

    fn ViewDeclaration::uncacheable() -> ViewDeclaration

    Declares four channels that must be recomputed on every reconciliation.

    ViewDirtyHint

    pub(all) enum ViewDirtyHint {
    ViewClean
    ViewPaintDirty
    ViewLayoutDirty
    ViewBuildDirty
    } derive(Eq,
    Debug
    )

    ViewEnvironment

    pub struct ViewEnvironment {
    viewport_size : Size
    environment : Environment
    }

    Immutable environment snapshot passed to an application's Program view.

    ViewEnvironment::environment

    fn ViewEnvironment::environment(self : ViewEnvironment) -> Environment

    ViewEnvironment::new

    fn ViewEnvironment::new(viewport_size~ : Size, environment~ : Environment) -> ViewEnvironment

    ViewEnvironment::viewport_size

    fn ViewEnvironment::viewport_size(self : ViewEnvironment) -> Size

    ViewEventContext

    pub(all) struct ViewEventContext {
    frame : Rect
    child_frames : Array[Rect]
    event : AppEvent
    focused : Bool
    state : ViewStateContext
    text_control : TextControlStateContext
    text_system : TextSystem
    environment : Environment
    style : ViewStyle
    now_ms : Double
    }

    ViewEventResult

    pub(all) struct ViewEventResult[Msg] {
    changed : Bool
    activated : Bool
    focused : Bool
    captured : Bool
    state : ViewStateContext?
    text_control : TextControlStateContext?
    dirty : ViewDirtyHint
    messages : Array[Msg]
    } derive(Eq,
    Debug
    )

    ViewEventResult::ignored

    fn[Msg] ViewEventResult::ignored() -> ViewEventResult[Msg]

    ViewEventResult::message

    fn[Msg] ViewEventResult::message(message : Msg) -> ViewEventResult[Msg]

    ViewIdentity

    pub(all) struct ViewIdentity {
    kind : String
    key : Key?
    } derive(Eq)

    ViewIdentity::new

    fn ViewIdentity::new(kind~ : String, key? : String?) -> ViewIdentity

    ViewLayoutContext

    pub(all) struct ViewLayoutContext {
    constraints : Constraints
    child_sizes : Array[Size]
    child_flex_weights : Array[Double]
    state : ViewStateContext
    text_system : TextSystem
    environment : Environment
    style : ViewStyle
    }

    ViewLayoutResult

    pub(all) struct ViewLayoutResult {
    size : Size
    child_frames : Array[Rect]
    } derive(Eq,
    Debug
    )

    ViewLayoutResult::new

    fn ViewLayoutResult::new(size~ : Size, child_frames? : Array[Rect]) -> ViewLayoutResult

    ViewPaintContext

    pub(all) struct ViewPaintContext {
    frame : Rect
    child_frames : Array[Rect]
    focused : Bool
    state : ViewStateContext
    text_control : TextControlStateContext
    environment : Environment
    style : ViewStyle
    text_system : TextSystem
    now_ms : Double
    }

    ViewPaintLayer

    pub(all) struct ViewPaintLayer {
    frame : Rect
    cache_key : String
    content_revision : Int
    commands : Array[DrawCommand]
    overlay_commands : Array[DrawCommand]
    } derive(Eq,
    Debug
    )

    ViewPaintLayer::new

    fn ViewPaintLayer::new(frame~ : Rect, cache_key~ : String, content_revision~ : Int, commands? : Array[DrawCommand], overlay_commands? : Array[DrawCommand]) -> ViewPaintLayer

    ViewPaintPlan

    pub(all) struct ViewPaintPlan {
    commands : Array[DrawCommand]
    child_layers : Array[ViewPaintLayer]
    post_commands : Array[DrawCommand]
    overlay_commands : Array[DrawCommand]
    repaint_boundary : Bool
    animating : Bool
    } derive(Eq,
    Debug
    )

    ViewPaintPlan::animating_commands

    fn ViewPaintPlan::animating_commands(commands : Array[DrawCommand]) -> ViewPaintPlan

    Like ViewPaintPlan::commands but flags the paint as a mid-animation sample. The runtime keeps requesting redraws while any painted plan in the tree reports animating=true. Controls set this when their transition progress < 1.0 (and reduced_motion is not in effect).

    ViewPaintPlan::commands

    fn ViewPaintPlan::commands(commands : Array[DrawCommand]) -> ViewPaintPlan

    ViewPaintPlan::empty

    ViewPlatformContext

    pub(all) struct ViewPlatformContext {
    frame : Rect
    child_frames : Array[Rect]
    environment : Environment
    style : ViewStyle
    }

    Context for the platform-tree pass. Platform placements are produced independently from paint so native child views can update without creating draw commands or scheduling a renderer frame.

    ViewSemanticsActionContext

    pub(all) struct ViewSemanticsActionContext {
    frame : Rect
    child_frames : Array[Rect]
    focused : Bool
    state : ViewStateContext
    text_control : TextControlStateContext
    text_system : TextSystem
    environment : Environment
    style : ViewStyle
    }

    Runtime inputs available to a typed semantics-action handler.

    The context contains only the reconciled node's transient UI state and resolved declaration environment. Application model mutation still occurs through the returned typed messages and the program's TEA update.

    ViewSemanticsActionHandler

    pub struct ViewSemanticsActionHandler[Msg] {
    kind : SemanticsActionKind
    handle : (ViewSemanticsActionContext, SemanticsAction) -> ViewSemanticsActionResult[Msg]
    }

    One capability-paired semantic action adapter.

    Public constructors pair each capability with a payload-correct callback; callers cannot advertise SetText or Scroll without handling its typed payload.

    ViewSemanticsActionHandler::activate

    ViewSemanticsActionHandler::collapse

    ViewSemanticsActionHandler::dismiss

    ViewSemanticsActionHandler::expand

    ViewSemanticsActionHandler::kind

    ViewSemanticsActionHandler::select

    ViewSemanticsActionHandler::set_text

    ViewSemanticsActionHandler::submit

    ViewSemanticsActionResult

    pub(all) struct ViewSemanticsActionResult[Msg] {
    accepted : Bool
    state : ViewStateContext?
    text_control : TextControlStateContext?
    dirty : ViewDirtyHint
    messages : Array[Msg]
    deferred_commits : Array[() -> Unit]
    }

    Result of invoking one typed semantic action adapter.

    ViewSemanticsActionResult::accepted

    fn[Msg] ViewSemanticsActionResult::accepted(state? : ViewStateContext?, text_control? : TextControlStateContext?, dirty? : ViewDirtyHint, messages? : Array[Msg], commit? : () -> Unit?) -> ViewSemanticsActionResult[Msg]

    ViewSemanticsActionResult::message

    fn[Msg] ViewSemanticsActionResult::message(message : Msg) -> ViewSemanticsActionResult[Msg]

    ViewSemanticsActionResult::rejected

    ViewSemanticsInfo

    pub(all) struct ViewSemanticsInfo {
    composition : SemanticsComposition
    semantic_id : SemanticId?
    role : SemanticsRole?
    level : Int?
    url : String?
    label : String?
    value : String?
    description : String?
    disabled : Bool?
    selected : Bool?
    pressed : Bool?
    checked : Bool?
    expanded : Bool?
    invalid : Bool?
    required : Bool?
    } derive(Eq,
    Debug
    )

    ViewSemanticsInfo::new

    fn ViewSemanticsInfo::new(composition? : SemanticsComposition, semantic_id? : SemanticId, role? : SemanticsRole, level? : Int, url? : String, label? : String, value? : String, description? : String, disabled? : Bool, selected? : Bool, pressed? : Bool, checked? : Bool, expanded? : Bool, invalid? : Bool, required? : Bool) -> ViewSemanticsInfo

    ViewStateContext

    pub(all) struct ViewStateContext {
    focused : Bool
    hovered : Bool
    pressed : Bool
    selected : Bool
    checked : Bool
    expanded : Bool
    disabled : Bool
    slots : ViewStateSlots
    } derive(Eq,
    Debug
    )

    ViewStateContext::read_slot

    fn[T : ViewStateValue] ViewStateContext::read_slot(self : ViewStateContext, slot : ViewStateSlot[T]) -> T

    Read a typed slot, returning the descriptor's initial value when this element has not written the slot yet.

    ViewStateContext::with_slot

    fn[T : ViewStateValue] ViewStateContext::with_slot(self : ViewStateContext, slot : ViewStateSlot[T], value : T) -> ViewStateContext

    Return a state proposal with one typed slot updated. The current context is never mutated, so runtimes can validate an event or semantic action before committing the returned state.

    ViewStateContext::without_slot

    fn[T] ViewStateContext::without_slot(self : ViewStateContext, slot : ViewStateSlot[T]) -> ViewStateContext

    Return a state proposal with one slot reset to its initial value.

    ViewStateSlot

    pub struct ViewStateSlot[T] {
    // private fields
    }

    A typed descriptor for one node-scoped transient state value.

    Descriptors are immutable declaration-time values. The stored bytes live in the reconciled runtime element and are preserved only while that element's identity is reused.

    ViewStateSlot::new

    fn[T : ViewStateValue] ViewStateSlot::new(key~ : DeclarationKey, initial~ : T) -> ViewStateSlot[T]

    ViewStateSlots

    pub struct ViewStateSlots {
    // private fields
    } derive(Eq,
    Debug
    )

    Runtime-owned storage behind ViewStateContext.

    ViewStateSlots::empty

    ViewStyle

    pub(all) struct ViewStyle {
    font : FontSpec?
    foreground : Color?
    background : Brush?
    corner_radius : Double?
    } derive(Eq, ToJson,
    Debug
    )

    ViewStyle::empty

    fn ViewStyle::empty() -> ViewStyle

    ViewStyle::from_theme

    fn ViewStyle::from_theme(theme : Theme) -> ViewStyle

    ViewStyle::merge

    fn ViewStyle::merge(self : ViewStyle, next : ViewStyle) -> ViewStyle

    ViewTextCommandResult

    pub(all) struct ViewTextCommandResult[Msg] {
    result : TextCommandResult
    text_control : TextControlStateContext?
    messages : Array[Msg]
    } derive(Eq,
    Debug
    )

    ViewTextCommandResult::ignored

    fn[Msg] ViewTextCommandResult::ignored() -> ViewTextCommandResult[Msg]

    ViewTextCommandResult::new

    fn[Msg] ViewTextCommandResult::new(result~ : TextCommandResult, text_control? : TextControlStateContext?, messages? : Array[Msg]) -> ViewTextCommandResult[Msg]

    VisualStyle

    pub(all) struct VisualStyle {
    background : Brush?
    foreground : Color?
    border : BorderStyle?
    shadow : ShadowStyle?
    radius : Double?
    opacity : Double?
    } derive(Eq, ToJson,
    Debug
    )

    VisualStyle::empty

    fn VisualStyle::empty() -> VisualStyle

    active_text_selection

    fn active_text_selection(selection : TextRange?) -> TextRange?

    animated_color

    fn animated_color(from~ : Color, to~ : Color, progress~ : Double, easing? : Easing, reduced_motion? : Bool) -> Color

    animated_point

    fn animated_point(from~ : Point, to~ : Point, progress~ : Double, easing? : Easing, reduced_motion? : Bool) -> Point

    animated_value

    fn animated_value(from~ : Double, to~ : Double, progress~ : Double, easing? : Easing, reduced_motion? : Bool) -> Double

    clamp_int

    fn clamp_int(value : Int, min : Int, max : Int) -> Int

    composition_cursor_offset

    fn composition_cursor_offset(control : TextControlStateContext, composition : String) -> Int

    composition_start_index

    fn composition_start_index(text : String, caret : Int, selection : TextRange?) -> Int

    default_text_commands

    fn default_text_commands() -> Array[ActionCommand]

    delete_grapheme_range

    fn delete_grapheme_range(boundaries :
    TextGraphemeBoundaries
    , caret : Int, before : Int, after : Int) -> TextRange

    bridges the core TextRange contract to the unicode package's API.

    fallback_stabilize_grapheme_cluster_carets

    fn fallback_stabilize_grapheme_cluster_carets(text : String, carets : Array[Double]) -> Array[Double]

    the cluster's leading caret coordinate.

    focus_scope_command_intent

    fn focus_scope_command_intent(event : KeyboardEvent) -> CommandIntent?

    hit_test

    fn hit_test(layout : LayoutResult, point : Point) -> Bool

    is_redo_shortcut

    fn is_redo_shortcut(event : KeyboardEvent) -> Bool

    is_select_all_shortcut

    fn is_select_all_shortcut(event : KeyboardEvent) -> Bool

    is_undo_shortcut

    fn is_undo_shortcut(event : KeyboardEvent) -> Bool

    max_int

    fn max_int(a : Int, b : Int) -> Int

    min_int

    fn min_int(a : Int, b : Int) -> Int

    move_text_caret

    fn move_text_caret(text : String, caret : Int, selection : TextRange?, direction : TextCaretDirection, extend_selection~ : Bool) -> TextCaretMoveResult

    noop_modifier

    fn[Msg] noop_modifier() -> AnyModifier[Msg]

    A modifier that does nothing — used as default for all vtable slots.

    normalize_grapheme_range

    TextRange contract to the unicode package's GraphemeRange API.

    optional_rect_union

    fn optional_rect_union(left : Rect?, right : Rect?) -> Rect?

    replace_text_range

    fn replace_text_range(text : String, range : TextRange, replacement : String) -> String

    resolve_minimal_theme

    fn resolve_minimal_theme(spec : ThemeSpec, system_scheme : ColorScheme) -> Theme

    Resolve the Minimal preset. This is the canonical resolver: it picks the palette by scheme, applies density to spacing, applies contrast adjustment, zeroes motion when reduced motion is requested, and assembles the neutral scales/surfaces. Concrete control theme tokens are not produced here; they live in moui/views as ControlThemeSet (ADR 0017) and are resolved views-side from this neutral Theme.

    resolve_theme

    fn resolve_theme(spec : ThemeSpec, system_scheme : ColorScheme) -> Theme

    Resolve a ThemeSpec against a system color scheme. For branded presets this resolves the Minimal base; branded addons must call resolve_minimal_theme and then replace the palette themselves. Component themes are resolved views-side as a ControlThemeSet.

    selected_text

    fn selected_text(text : String, selection : TextRange?) -> String

    surrounding_delete_range

    fn surrounding_delete_range(text : String, caret : Int, before : Int, after : Int) -> TextRange

    text_input_grapheme_selection

    fn text_input_grapheme_selection(boundaries :
    TextGraphemeBoundaries
    , selection : TextRange?) -> TextRange?

    text_next_grapheme_caret_boundary

    fn text_next_grapheme_caret_boundary(text : String, caret : Int) -> Int

    Returns the next grapheme boundary after caret.

    text_previous_grapheme_caret_boundary

    fn text_previous_grapheme_caret_boundary(text : String, caret : Int) -> Int

    Returns the previous grapheme boundary before caret.