minimoon_ui

    Native, touch-first Skyline components for Minimoon, adapted from RUI.

    minimoon
    miniapp
    skyline
    components
    rui
    Download zip
    Author
    Version
    0.1.0
    License
    MIT
    Last updated
    9 days ago
    Downloads
    13

    Dependencies

    #Minimoon UI

    Native, touch-first Skyline components for Minimoon. Module lampclaw/minimoon_ui 0.1.0 depends on core lampclaw/minimoon 0.2.0.

    The fixed reference is RUI 0.1.1 in Rabbita 0.15.6, commit b1291945fd0201a0b5b39513b88585d6122db7bc. The library uses public Minimoon nodes and Val composition, not Rabbita's browser runtime. The MIT notice and upstream visual-recipe attribution are retained in LICENSE and THIRD_PARTY_NOTICES.md. See the module's changelog for versioned changes.

    #Install

    Add both modules to the application's TOML-style moon.mod:

    import {
    "lampclaw/minimoon@0.2.0",
    "lampclaw/minimoon_ui@0.1.0",
    }

    Import the component package in the page's moon.pkg:

    import {
    "lampclaw/minimoon" @minimoon,
    "lampclaw/minimoon_ui" @ui,
    }

    Current registry availability is recorded in project status. Run moon update after declaring published dependencies. In this repository, moon.work resolves both modules locally; a development checkout can similarly include the application and both module directories in its workspace. A registry-only consumer must have no such local overrides.

    Enable build resources in App Contract v11:

    { "schemaVersion": 11, "name": "ui_app", "resources": [ {"package": "lampclaw/minimoon_ui/resources", "features": []} ], "pages": [{"package": "src/pages/home"}] }

    An empty feature list includes the full bundle. A nonempty list, such as ["button", "dialog", "slider"], includes the requested components and their resource dependencies. Unknown features fail the build. The native provider exports WXSS and SVG assets; it is not imported into application JavaScript. Core has no dependency on this UI module. Schema 8, 9 and 10 configurations must migrate to 11; generated artifacts use Contract v11/runtime ABI v13. To combine UI with shared state, opt into the core App setup and make page factories take Deps; UI roots still belong to individual pages.

    Feature selection currently chooses resource groups, not per-component CSS tree shaking: base/foundation/compound styles and the six theme icons are shared; form styles are included when required. The resolved feature inventory is deterministic, but selecting one feature does not produce only its selectors.

    #Page ownership

    Create one UI root inside a page builder:

    pub fn program() -> @minimoon.Page {
    @minimoon.page(
    id="home",
    route=@minimoon.route("pages/home/home"),
    title="UI",
    capabilities=[@minimoon.MeasureNodes],
    build=page => @ui.root(page, context => {
    @ui.dialog(
    context,
    id="welcome",
    title="Welcome",
    trigger_label="Open",
    content=@minimoon.Val::constant(@minimoon.text("Hello Skyline")),
    )
    }),
    )
    }

    UiContext and its notifications belong to that page. Declare MeasureNodes for anchored surfaces, custom touch controls and measured message scrolling. Use unique, safe component IDs consisting of letters, digits, underscores or hyphens. Components take typed callbacks and reactive content; create child state outside Node-rendering callbacks.

    Native events can arrive as one predecoded batch. Relative actions must read state at dispatch time: use Elm messages or emit(current => current + 1), not a replacement computed from a render-captured value. UI controls follow the same rule internally, including multi-selection and repeated toggles.

    Interactive components expose controlled state, self-owned convenience forms or explicit provider scopes. Val[Node] slots remain reactive when a surface is open. @ui.stack combines independent component values. The root lifts declarative layers outside scrolling/clipped content without retaining removed Val scopes in a global registry.

    Render either toaster(context) or sonner(context) once per page. Both present the same queue; toast(context, toast_notice(...)) creates a command. Timers pause while the page is hidden and are reclaimed on disposal.

    #Packages and customization

    • Default package: component builders, controlled APIs and compound providers.
    • /headless: date selection, placement, slider and resize algorithms.
    • /theme: typed Light/Dark palettes, Ltr/Rtl direction and Vega tokens.
    • /resources: build-only WXSS/SVG provider and feature inventory.

    Pass a reactive Theme to root(theme=...) to switch theme or direction. Classes use mmui-*, variables use --mmui-*; class/style and content slots allow native customization. Existing core components and minimal themes remain supported and are not redirected through this module.

    Hover previews are tap/long-press surfaces; context menus provide a click alternative to long-press. Kbd displays shortcut hints without listening for desktop keys. Chart provides containers, legends and tooltips, not a chart engine. Native navigation accepts MiniApp Route values, not browser URLs. Form/Field present application-owned validation; Attachment does not own upload backends.

    #Verification and migration

    The repository-maintained migration map and machine-readable API inventory distinguish implemented equivalents, consolidated APIs, native substitutions and incomplete work. A named component or gallery section alone is not proof of every upstream behavior.

    The six-page showcase covers all 64 component families plus Form and Theme. It is independent of core's seven-route Conformance fixture and does not add a dependency to the default starter.

    Run from the repository root:

    moon test ui/src --target native moon test ui/src --target js bun run check:coverage bun run check:candidate

    Candidate verification is not real-host evidence. Build and import the exact Skyline artifacts into WeChat Developer Tools, validate the checklist and keep local fingerprint-bound evidence ignored. No release, publication or host pass is implied by the module version.

    Build the release-mode candidate from the repository root:

    bun run minimoon build ui/examples/showcase bun run minimoon verify ui/examples/showcase --candidate

    Import ui/examples/showcase/dist unchanged into Developer Tools with Skyline and a minimum online base library of 3.17.0. Follow every check in the showcase's miniapp.minimoon.json, including multiple-value controls, delayed surfaces, mobile sidebar gestures and page lifecycle. Core's Conformance fixture needs its own new fingerprint-bound validation because the shared host bytes changed.

    The API map covers 428 upstream functions and 89 types. Native substitution is intentional: Carousel uses fixed native swiper slides; MessageScroller uses keyed updates and explicit content revisions instead of DOM overflow anchors; focus selectors, browser shortcuts and mouse-only behavior are not recreated.

    MessageScroller observes keyed appends/prepends. Increment its content_revision value when streaming changes content without changing message keys, so layout measurement can preserve the reader's position.

    #Maintainer publication boundary

    Publication is a separate, explicitly authorized maintainer action. With moon 0.1.20260907, do not publish directly from this repository's ui/ directory or run moon -C ui publish: packaging can inherit the root .moonignore /ui/ exclusion and produce an empty archive. The repository gate packages an isolated source copy and validates its actual ZIP, required files and consumers.

    After core 0.2.0 is available from the registry and publication is explicitly authorized, unpack the checked _build/publish/lampclaw-minimoon_ui-0.1.0.zip outside every Git repository and Moon workspace ancestor. Check moon.mod, src/, README and LICENSE, resolve registry core and rerun consumers, then publish the unchanged extracted module. Follow the ordered release procedure. The linked guides are repository-hosted because ui/docs is not shipped in the registry archive.

    AddonAlign

    pub(all) enum AddonAlign {
    InlineStart
    InlineEnd
    BlockStart
    BlockEnd
    } derive(Eq,
    Debug
    )

    Alignment

    pub(all) enum Alignment {
    Start
    Center
    End
    } derive(Eq,
    Debug
    )

    AttachmentSize

    pub(all) enum AttachmentSize {
    AttachmentDefaultSize
    AttachmentSm
    AttachmentXs
    } derive(Eq,
    Debug
    )

    AttachmentState

    pub(all) enum AttachmentState {
    AttachmentIdle
    AttachmentUploading
    AttachmentProcessing
    AttachmentError
    AttachmentDone
    } derive(Eq,
    Debug
    )

    Native attachment states and slots adapted from RUI 0.1.1 (MIT).

    AvatarImageStatus

    pub(all) enum AvatarImageStatus {
    AvatarLoading
    AvatarLoaded
    AvatarError
    } derive(Eq,
    Debug
    )

    RUI image lifecycle is scoped by source; late events from an old source are inert.

    ButtonSize

    pub(all) enum ButtonSize {
    Default
    Xs
    Sm
    Lg
    Icon
    IconXs
    IconSm
    IconLg
    } derive(Eq,
    Debug
    )

    ButtonVariant

    pub(all) enum ButtonVariant {
    Default
    Outline
    Secondary
    Ghost
    Destructive
    Link
    } derive(Eq,
    Debug
    )

    RUI 0.1.1 / Rabbita b1291945 native adaptation. MIT, see THIRD_PARTY_NOTICES.md.

    CarouselScope

    type CarouselScope

    Compound carousel state uses native swiper physics and typed MiniApp events.

    ChartIndicator

    pub(all) enum ChartIndicator {
    ChartDot
    ChartLine
    ChartDashed
    } derive(Eq,
    Debug
    )

    ChartLegendPosition

    pub(all) enum ChartLegendPosition {
    LegendTop
    LegendBottom
    } derive(Eq,
    Debug
    )

    CheckState

    pub(all) enum CheckState {
    Unchecked
    Checked
    Indeterminate
    } derive(Eq,
    Debug
    )

    ChoiceOption

    pub(all) struct ChoiceOption {
    key : String
    label : String
    disabled : Bool
    group : String
    } derive(Eq,
    Debug
    )

    Controlled native controls adapted from RUI 0.1.1 (MIT). No validation engine.

    ComboboxScope

    type ComboboxScope

    ComboboxScope::choose

    fn ComboboxScope::choose(self : ComboboxScope, value : String) ->
    Cmd

    ComboboxScope::close

    ComboboxScope::open

    ComboboxScope::options

    fn ComboboxScope::options(self : ComboboxScope, filtered? : Bool) -> Array[ChoiceOption]

    ComboboxScope::remove

    fn ComboboxScope::remove(self : ComboboxScope, value : String) ->
    Cmd

    ComboboxScope::state

    ComboboxState

    pub(all) struct ComboboxState {
    values : Array[String]
    query : String
    open : Bool
    } derive(Eq,
    Debug
    )

    CommandScope

    type CommandScope

    CommandScope::matches

    fn CommandScope::matches(self : CommandScope, value : String, keywords? : Array[String]) -> Bool

    DataColumn

    type DataColumn[T]

    DatePickerPreset

    pub struct DatePickerPreset {
    label : String
    value :
    DateSelection

    } derive(Eq,
    Debug
    )

    Explicit caller-owned date choices; no system clock or browser date object.

    FieldState

    pub struct FieldState {
    id : String
    label : String
    description : String
    error : String
    required : Bool
    disabled : Bool
    } derive(Eq,
    Debug
    )

    InputOptions

    pub struct InputOptions {
    disabled : Bool
    read_only : Bool
    invalid : Bool
    placeholder : String
    maxlength : Int
    input_type :
    InputType

    password : Bool
    focus : Bool
    name : String
    selection_start : Int?
    selection_end : Int?
    } derive(Eq,
    Debug
    )

    MarkerVariant

    pub(all) enum MarkerVariant {
    PlainMarker
    SeparatorMarker
    BorderMarker
    } derive(Eq,
    Debug
    )

    MediaVariant

    pub(all) enum MediaVariant {
    PlainMedia
    IconMedia
    ImageMedia
    } derive(Eq,
    Debug
    )

    pub(all) struct MenuGroup {
    key : String
    label : String
    items :
    Val
    [Array[MenuItem]]
    }

    pub(all) enum MenuIndicatorPlacement {
    IndicatorStart
    IndicatorEnd
    } derive(Eq,
    Debug
    )

    type MenuItem

    impl Eq for MenuItem

    MessageItem

    pub(all) struct MessageItem {
    key : String
    content :
    Node

    } derive(Eq)

    Native message viewport adapted from RUI b1291945 (MIT), with explicit keyed updates.

    MessageScrollDirection

    pub(all) enum MessageScrollDirection {
    ScrollStart
    ScrollEnd
    } derive(Eq,
    Debug
    )

    pub(all) struct NavigationItem {
    key : String
    label : String
    target :
    Route

    }

    type NavigationMenuItemScope

    type NavigationMenuScope

    Touch-native compound navigation adapted from RUI b1291945 (MIT).

    Orientation

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

    OtpScope

    pub struct OtpScope {
    value : String
    length : Int
    active_index : Int
    disabled : Bool
    invalid : Bool
    } derive(Eq,
    Debug
    )

    One native input owns IME, paste and focus; visible slots do not invent key events.

    OverlayCloseReason

    pub(all) enum OverlayCloseReason {
    CloseButton
    Backdrop
    Action
    PageHidden
    Programmatic
    } derive(Eq,
    Debug
    )

    OverlayKind

    pub(all) enum OverlayKind {
    DialogSurface
    AlertSurface
    SheetSurface(Side)
    PopoverSurface
    PreviewSurface
    TooltipSurface
    ContextSurface
    } derive(Eq,
    Debug
    )

    OverlayScope

    type OverlayScope

    Panel

    pub(all) struct Panel {
    key : String
    title : String
    content :
    Node

    disabled : Bool
    icon :
    Node
    ?
    trigger :
    Node
    ?
    } derive(Eq)

    ReactionSide

    pub(all) enum ReactionSide {
    ReactionTop
    ReactionBottom
    } derive(Eq,
    Debug
    )

    ResizablePane

    pub(all) struct ResizablePane {
    key : String
    content :
    Node

    minimum : Double
    maximum : Double
    } derive(Eq)

    Touch-native pane resizing adapted from RUI b1291945 (MIT).

    Side

    pub(all) enum Side {
    Top
    Right
    Bottom
    Left
    } derive(Eq,
    Debug
    )

    SidebarCollapsible

    pub(all) enum SidebarCollapsible {
    SidebarOffcanvas
    SidebarIcon
    SidebarFixed
    } derive(Eq,
    Debug
    )

    SidebarMenuButtonSize

    pub(all) enum SidebarMenuButtonSize {
    SidebarMenuSm
    SidebarMenuDefault
    SidebarMenuLg
    } derive(Eq,
    Debug
    )

    SidebarMenuButtonVariant

    pub(all) enum SidebarMenuButtonVariant {
    SidebarMenuButtonDefault
    SidebarMenuButtonOutline
    } derive(Eq,
    Debug
    )

    SidebarScope

    type SidebarScope

    SidebarSide

    pub(all) enum SidebarSide {
    SidebarLeft
    SidebarRight
    } derive(Eq,
    Debug
    )

    Touch-native compound sidebar adapted from RUI b1291945 (MIT).

    SidebarState

    pub(all) struct SidebarState {
    collapsed : Bool
    mobile_open : Bool
    width : Double
    } derive(Eq,
    Debug
    )

    SidebarSurfaceScope

    type SidebarSurfaceScope

    Explicit rendering context replaces browser ancestor lookup and CSS selectors.

    SidebarSurfaceScope::is_icon_only

    fn SidebarSurfaceScope::is_icon_only(self : SidebarSurfaceScope) -> Bool

    SidebarSurfaceScope::variant

    SidebarVariant

    pub(all) enum SidebarVariant {
    SidebarDefault
    SidebarFloating
    SidebarInset
    } derive(Eq,
    Debug
    )

    Size

    pub(all) enum Size {
    Small
    Medium
    Large
    } derive(Eq,
    Debug
    )

    TableSpanCell

    pub struct TableSpanCell {
    content :
    Node

    colspan : Int
    rowspan : Int
    header : Bool
    }

    Native span descriptor: use with table_spanning, not the flex table_row API.

    TableState

    pub(all) struct TableState {
    query : String
    page : Int
    page_size : Int
    sort_key : String
    descending : Bool
    selected_keys : Array[String]
    hidden_columns : Array[String]
    } derive(Eq,
    Debug
    )

    TabsListVariant

    pub(all) enum TabsListVariant {
    TabsDefault
    TabsLine
    } derive(Eq,
    Debug
    )

    RUI disclosure compound primitives; callers own state through Val and Emit.

    Toast

    type Toast

    impl Eq for Toast

    ToastPosition

    pub(all) enum ToastPosition {
    ToastTopLeft
    ToastTopCenter
    ToastTopRight
    ToastBottomLeft
    ToastBottomCenter
    ToastBottomRight
    } derive(Eq,
    Debug
    )

    ToastVariant

    pub(all) enum ToastVariant {
    ToastDefault
    ToastDestructive
    ToastSuccess
    } derive(Eq,
    Debug
    )

    Tone

    pub(all) enum Tone {
    Default
    Secondary
    Outline
    Destructive
    Muted
    Tinted
    Ghost
    Link
    } derive(Eq,
    Debug
    )

    UiContext

    type UiContext

    Page-owned UI lifetime; created only by root inside a Page builder.

    UiContext::visible

    fn UiContext::visible(self : UiContext) ->
    Val
    [Bool]

    accordion

    fn accordion(id~ : String, items~ :
    Val
    [Array[Panel]], initial_open_keys? : Array[String], multiple? : Bool, collapsible? : Bool, disabled? : Bool, force_mount? : Bool, show_indicator? : Bool) ->
    Val
    [
    Node
    ]

    accordion_content

    fn[C :
    IsChildren
    ] accordion_content(id? : String, open? : Bool, force_mount? : Bool, labelled_by? : String, children : C) ->
    Node

    accordion_controlled

    fn accordion_controlled(id~ : String, items~ :
    Val
    [Array[Panel]], open_keys~ :
    Val
    [Array[String]], on_change~ :
    Emit
    [Array[String]], multiple? : Bool, collapsible? : Bool, disabled? : Bool, force_mount? : Bool, show_indicator? : Bool) ->
    Val
    [
    Node
    ]

    accordion_item

    fn[C :
    IsChildren
    ] accordion_item(id? : String, open? : Bool, disabled? : Bool, children : C) ->
    Node

    accordion_root

    fn[C :
    IsChildren
    ] accordion_root(id? : String, disabled? : Bool, children : C) ->
    Node

    accordion_trigger

    fn[C :
    IsChildren
    ] accordion_trigger(value~ : String, on_change~ :
    Emit
    [String], open? : Bool, disabled? : Bool, controls? : String, id? : String, show_indicator? : Bool, children : C) ->
    Node

    alert

    fn[C :
    IsChildren
    ] alert(variant? : Tone, id? : String, class? : String, children : C) ->
    Node

    alert_action

    fn[C :
    IsChildren
    ] alert_action(id? : String, class? : String, style? : String, children : C) ->
    Node

    alert_description

    fn[C :
    IsChildren
    ] alert_description(id? : String, class? : String, style? : String, children : C) ->
    Node

    alert_dialog

    fn alert_dialog(context : UiContext, id~ : String, title~ : String, trigger_label~ : String, content~ :
    Val
    [
    Node
    ], on_confirm~ :
    Cmd
    , confirm_label? : String) ->
    Val
    [
    Node
    ]

    alert_title

    fn[C :
    IsChildren
    ] alert_title(id? : String, class? : String, style? : String, children : C) ->
    Node

    Compound content slots adapted from RUI 0.1.1 (MIT); content remains application-owned.

    aspect_ratio

    fn[C :
    IsChildren
    ] aspect_ratio(ratio? : Double, class? : String, children : C) ->
    Node

    attachment

    fn[C :
    IsChildren
    ] attachment(children : C, state? : AttachmentState, size? : AttachmentSize, orientation? : Orientation, id? : String, class? : String, style? : String) ->
    Node

    attachment_action

    fn attachment_action(label~ : String, on_tap~ :
    Cmd
    , content? :
    Node
    , variant? : ButtonVariant, size? : ButtonSize, disabled? : Bool, id? : String, class? : String, style? : String) ->
    Node

    attachment_actions

    fn[C :
    IsChildren
    ] attachment_actions(children : C, id? : String, class? : String, style? : String) ->
    Node

    attachment_content

    fn[C :
    IsChildren
    ] attachment_content(children : C, id? : String, class? : String, style? : String) ->
    Node

    attachment_description

    fn[C :
    IsChildren
    ] attachment_description(children : C, id? : String, class? : String, style? : String) ->
    Node

    attachment_group

    fn[C :
    IsChildren
    ] attachment_group(children : C, id? : String, class? : String, style? : String) ->
    Node

    attachment_media

    fn attachment_media(src? : String, alt? : String, variant? : MediaVariant, content? :
    Node
    , error? : Bool, id? : String, class? : String, style? : String) ->
    Node

    Supply a native image URL or rich icon/content; image loading remains native.

    attachment_title

    fn[C :
    IsChildren
    ] attachment_title(children : C, id? : String, class? : String, style? : String) ->
    Node

    attachment_trigger

    fn attachment_trigger(label~ : String, on_tap~ :
    Cmd
    , content? :
    Node
    , disabled? : Bool, id? : String, class? : String, style? : String) ->
    Node

    fn[C :
    IsChildren
    ] attachment_trigger_link(target~ :
    Route
    , disabled? : Bool, label? : String, id? : String, children : C) ->
    Node

    avatar

    fn[C :
    IsChildren
    ] avatar(size? : Size, class? : String, children : C) ->
    Node

    avatar_badge

    fn[C :
    IsChildren
    ] avatar_badge(id? : String, class? : String, style? : String, children : C) ->
    Node

    avatar_fallback

    fn[C :
    IsChildren
    ] avatar_fallback(id? : String, class? : String, style? : String, children : C) ->
    Node

    avatar_group

    fn[C :
    IsChildren
    ] avatar_group(id? : String, class? : String, style? : String, children : C) ->
    Node

    avatar_group_count

    fn[C :
    IsChildren
    ] avatar_group_count(id? : String, class? : String, style? : String, children : C) ->
    Node

    avatar_image

    fn avatar_image(src~ : String, alt? : String, on_load? :
    Emit
    [
    ImageLoadDetail
    ], on_error? :
    Emit
    [String], id? : String) ->
    Node

    avatar_with_fallback

    fn[C :
    IsChildren
    ] avatar_with_fallback(src~ :
    Val
    [String], alt? : String, size? : Size, id? : String, on_status_change? :
    Emit
    [AvatarImageStatus], fallback : C) ->
    Val
    [
    Node
    ]

    badge

    fn[C :
    IsChildren
    ] badge(variant? : Tone, class? : String, children : C) ->
    Node

    fn[C :
    IsChildren
    ] badge_link(on_tap~ :
    Cmd
    , variant? : Tone, disabled? : Bool, id? : String, class? : String, children : C) ->
    Node

    fn[C :
    IsChildren
    ] breadcrumb(label? : String, children : C) ->
    Node

    fn breadcrumb_ellipsis() ->
    Node

    fn[C :
    IsChildren
    ] breadcrumb_item(id? : String, class? : String, style? : String, children : C) ->
    Node

    fn[C :
    IsChildren
    ] breadcrumb_link(on_tap~ :
    Cmd
    , disabled? : Bool, id? : String, class? : String, children : C) ->
    Node

    fn[C :
    IsChildren
    ] breadcrumb_list(id? : String, class? : String, style? : String, children : C) ->
    Node

    fn[C :
    IsChildren
    ] breadcrumb_page(id? : String, class? : String, style? : String, children : C) ->
    Node

    fn breadcrumb_separator() ->
    Node

    bubble

    fn[C :
    IsChildren
    ] bubble(variant? : Tone, alignment? : Alignment, children : C) ->
    Node

    bubble_content

    fn[C :
    IsChildren
    ] bubble_content(id? : String, class? : String, style? : String, children : C) ->
    Node

    bubble_content_button

    fn[C :
    IsChildren
    ] bubble_content_button(on_tap~ :
    Cmd
    , disabled? : Bool, id? : String, class? : String, children : C) ->
    Node

    fn[C :
    IsChildren
    ] bubble_content_link(on_tap~ :
    Cmd
    , disabled? : Bool, id? : String, class? : String, children : C) ->
    Node

    bubble_group

    fn[C :
    IsChildren
    ] bubble_group(id? : String, class? : String, style? : String, children : C) ->
    Node

    bubble_reactions

    fn[C :
    IsChildren
    ] bubble_reactions(side? : ReactionSide, alignment? : Alignment, id? : String, class? : String, style? : String, children : C) ->
    Node

    button

    fn[C :
    IsChildren
    ] button(on_tap? :
    Cmd
    , variant? : ButtonVariant, size? : ButtonSize, disabled? : Bool, form_type? :
    FormButtonType
    , id? : String, event_key? : String, class? : String, style? : String, label? : String, children : C) ->
    Node

    button_group

    fn[C :
    IsChildren
    ] button_group(orientation? : Orientation, children : C) ->
    Node

    button_group_separator

    fn button_group_separator(orientation? : Orientation) ->
    Node

    button_group_text

    fn[C :
    IsChildren
    ] button_group_text(id? : String, class? : String, style? : String, children : C) ->
    Node

    card

    fn[C :
    IsChildren
    ] card(size? : Size, class? : String, children : C) ->
    Node

    card_action

    fn[C :
    IsChildren
    ] card_action(id? : String, class? : String, style? : String, children : C) ->
    Node

    card_content

    fn[C :
    IsChildren
    ] card_content(id? : String, class? : String, style? : String, children : C) ->
    Node

    card_description

    fn[C :
    IsChildren
    ] card_description(id? : String, class? : String, style? : String, children : C) ->
    Node

    fn[C :
    IsChildren
    ] card_footer(id? : String, class? : String, style? : String, children : C) ->
    Node

    card_header

    fn[C :
    IsChildren
    ] card_header(id? : String, class? : String, style? : String, children : C) ->
    Node

    card_title

    fn[C :
    IsChildren
    ] card_title(id? : String, class? : String, style? : String, children : C) ->
    Node

    fn carousel(id~ : String, items~ :
    Val
    [Array[Panel]], autoplay? : Bool, circular? : Bool, vertical? : Bool, interval? : Int) ->
    Val
    [
    Node
    ]

    fn carousel_active_index(scope : CarouselScope) -> Int

    fn carousel_can_next(scope : CarouselScope) -> Bool

    fn carousel_can_previous(scope : CarouselScope) -> Bool

    fn[C :
    IsChildren
    ] carousel_content(scope : CarouselScope, children : C, id? : String, autoplay? : Bool, interval? : Int, height? : String, class? : String, style? : String) ->
    Node

    fn carousel_controlled(id~ : String, items~ :
    Val
    [Array[Panel]], current~ :
    Val
    [Int], on_change~ :
    Emit
    [Int], autoplay? : Bool, circular? : Bool, vertical? : Bool, interval? : Int) ->
    Val
    [
    Node
    ]

    fn carousel_is_looping(scope : CarouselScope) -> Bool

    fn[C :
    IsChildren
    ] carousel_item(scope : CarouselScope, index~ : Int, children : C, key? : String, aria_label? : String, class? : String, style? : String) ->
    Node

    fn carousel_items(scope : CarouselScope, items~ : Array[Panel], autoplay? : Bool, interval? : Int, height? : String, class? : String, style? : String) ->
    Node

    fn[C :
    IsChildren
    ] carousel_next(scope : CarouselScope, children : C, disabled? : Bool, aria_label? : String, class? : String) ->
    Node

    fn carousel_orientation(scope : CarouselScope) -> Orientation

    fn[C :
    IsChildren
    ] carousel_previous(scope : CarouselScope, children : C, disabled? : Bool, aria_label? : String, class? : String) ->
    Node

    fn carousel_provider(id~ : String, count~ :
    Val
    [Int], render~ : (CarouselScope) ->
    Node
    , default_index? : Int, on_change? :
    Emit
    [Int], circular? : Bool, orientation? : Orientation, aria_label? : String, class? : String, style? : String) ->
    Val
    [
    Node
    ]

    fn carousel_provider_controlled(id~ : String, count~ :
    Val
    [Int], current~ :
    Val
    [Int], on_change~ :
    Emit
    [Int], render~ : (CarouselScope) ->
    Node
    , circular? : Bool, orientation? : Orientation, aria_label? : String, class? : String, style? : String) ->
    Val
    [
    Node
    ]

    fn[Input : Eq] carousel_provider_controlled_with_input(id~ : String, count~ :
    Val
    [Int], current~ :
    Val
    [Int], on_change~ :
    Emit
    [Int], input~ :
    Val
    [Input], render~ : (CarouselScope, Input) ->
    Node
    , circular? : Bool, orientation? : Orientation, aria_label? : String, class? : String, style? : String) ->
    Val
    [
    Node
    ]

    fn[Input : Eq] carousel_provider_with_input(id~ : String, count~ :
    Val
    [Int], input~ :
    Val
    [Input], render~ : (CarouselScope, Input) ->
    Node
    , default_index? : Int, on_change? :
    Emit
    [Int], circular? : Bool, orientation? : Orientation, aria_label? : String, class? : String, style? : String) ->
    Val
    [
    Node
    ]

    fn carousel_scroll_next(scope : CarouselScope) ->
    Cmd

    fn carousel_scroll_previous(scope : CarouselScope) ->
    Cmd

    fn carousel_scroll_to(scope : CarouselScope, index : Int) ->
    Cmd

    fn carousel_slide_count(scope : CarouselScope) -> Int

    chart_container

    fn[C :
    IsChildren
    ] chart_container(children : C, id? : String, label? : String, style? : String) ->
    Node

    chart_legend

    chart_legend_content

    fn[C :
    IsChildren
    ] chart_legend_content(children : C, position? : ChartLegendPosition) ->
    Node

    chart_legend_item

    fn chart_legend_item(label~ : String, color? : String) ->
    Node

    chart_style

    fn chart_style(colors : Array[(String, String)]) -> String

    chart_tooltip

    fn[C :
    IsChildren
    ] chart_tooltip(children : C, visible? : Bool) ->
    Node

    chart_tooltip_content

    fn[C :
    IsChildren
    ] chart_tooltip_content(children : C, active? : Bool) ->
    Node

    chart_tooltip_item

    fn chart_tooltip_item(label~ : String, value~ : String, color? : String, indicator? : ChartIndicator) ->
    Node

    chart_tooltip_label

    fn chart_tooltip_label(label : String) ->
    Node

    checkbox

    fn checkbox(name? : String, id~ : String, initially_checked? : Bool, label? : String, disabled? : Bool, indeterminate? : Bool, read_only? : Bool, invalid? : Bool) ->
    Val
    [
    Node
    ]

    checkbox_controlled

    fn checkbox_controlled(name? : String, id~ : String, checked~ :
    Val
    [Bool], on_change~ :
    Emit
    [Bool], label? : String, disabled? : Bool, indeterminate? : Bool, read_only? : Bool, invalid? : Bool) ->
    Val
    [
    Node
    ]

    checkbox_state

    fn checkbox_state(name? : String, id~ : String, initial? : CheckState, label? : String, disabled? : Bool, read_only? : Bool, invalid? : Bool) ->
    Val
    [
    Node
    ]

    checkbox_state_controlled

    fn checkbox_state_controlled(name? : String, id~ : String, state~ :
    Val
    [CheckState], on_change~ :
    Emit
    [CheckState], label? : String, disabled? : Bool, read_only? : Bool, invalid? : Bool) ->
    Val
    [
    Node
    ]

    choice_option

    fn choice_option(key~ : String, label~ : String, disabled? : Bool, group? : String) -> ChoiceOption

    collapsible

    fn collapsible(id~ : String, title~ : String, content~ :
    Val
    [
    Node
    ], initially_open? : Bool, disabled? : Bool, force_mount? : Bool, show_indicator? : Bool) ->
    Val
    [
    Node
    ]

    collapsible_content

    fn[C :
    IsChildren
    ] collapsible_content(id? : String, open? : Bool, force_mount? : Bool, labelled_by? : String, children : C) ->
    Node

    collapsible_controlled

    fn collapsible_controlled(id~ : String, title~ : String, content~ :
    Val
    [
    Node
    ], open~ :
    Val
    [Bool], on_change~ :
    Emit
    [Bool], disabled? : Bool, force_mount? : Bool, show_indicator? : Bool) ->
    Val
    [
    Node
    ]

    collapsible_root

    fn[C :
    IsChildren
    ] collapsible_root(id? : String, open? : Bool, disabled? : Bool, children : C) ->
    Node

    collapsible_trigger

    fn[C :
    IsChildren
    ] collapsible_trigger(on_change~ :
    Emit
    [Bool], open? : Bool, disabled? : Bool, controls? : String, id? : String, show_indicator? : Bool, children : C) ->
    Node

    combobox

    fn combobox(context : UiContext, id~ : String, label~ : String, options~ :
    Val
    [Array[ChoiceOption]], initial_value? : String) ->
    Val
    [
    Node
    ]

    combobox_chip

    fn[C :
    IsChildren
    ] combobox_chip(scope : ComboboxScope, value~ : String, children : C, removable? : Bool) ->
    Node

    combobox_chips

    fn[C :
    IsChildren
    ] combobox_chips(children : C, id? : String, class? : String, style? : String) ->
    Node

    combobox_chips_input

    fn combobox_chips_input(scope : ComboboxScope, placeholder? : String) ->
    Node

    combobox_clear

    fn combobox_clear(scope : ComboboxScope, label? : String) ->
    Node

    combobox_collection

    fn[C :
    IsChildren
    ] combobox_collection(children : C, id? : String, class? : String, style? : String) ->
    Node

    combobox_content

    fn[C :
    IsChildren
    ] combobox_content(scope : ComboboxScope, children : C) ->
    Node

    combobox_controlled

    fn combobox_controlled(context : UiContext, id~ : String, label~ : String, options~ :
    Val
    [Array[ChoiceOption]], value~ :
    Val
    [String], on_change~ :
    Emit
    [String]) ->
    Val
    [
    Node
    ]

    combobox_empty

    fn[C :
    IsChildren
    ] combobox_empty(children : C, visible? : Bool) ->
    Node

    combobox_group

    fn[C :
    IsChildren
    ] combobox_group(children : C, id? : String, class? : String, style? : String) ->
    Node

    combobox_input

    fn combobox_input(scope : ComboboxScope, placeholder? : String) ->
    Node

    combobox_item

    fn[C :
    IsChildren
    ] combobox_item(scope : ComboboxScope, value~ : String, children : C, disabled? : Bool) ->
    Node

    combobox_label

    fn[C :
    IsChildren
    ] combobox_label(children : C, id? : String, class? : String, style? : String) ->
    Node

    combobox_list

    fn[C :
    IsChildren
    ] combobox_list(children : C, id? : String, class? : String, style? : String) ->
    Node

    combobox_option

    fn combobox_option(value~ : String, label~ : String, disabled? : Bool) -> ChoiceOption

    combobox_provider

    fn combobox_provider(context : UiContext, id~ : String, options~ :
    Val
    [Array[ChoiceOption]], initial? : ComboboxState, multiple? : Bool, disabled? : Bool, invalid? : Bool, required? : Bool, on_query_change? :
    Emit
    [String], on_values_change? :
    Emit
    [Array[String]], on_open_change? :
    Emit
    [Bool], render? : (ComboboxScope) ->
    Node
    ) ->
    Val
    [
    Node
    ]

    combobox_provider_controlled

    fn combobox_provider_controlled(context : UiContext, id~ : String, options~ :
    Val
    [Array[ChoiceOption]], state~ :
    Val
    [ComboboxState], on_change~ :
    Emit
    [ComboboxState], multiple? : Bool, disabled? : Bool, invalid? : Bool, required? : Bool, placeholder? : String, empty_text? : String, on_query_change? :
    Emit
    [String], on_values_change? :
    Emit
    [Array[String]], on_open_change? :
    Emit
    [Bool], filter? : (ChoiceOption, String) -> Bool, render? : (ComboboxScope) ->
    Node
    ) ->
    Val
    [
    Node
    ]

    combobox_separator

    fn combobox_separator() ->
    Node

    combobox_state

    fn combobox_state(values? : Array[String], query? : String, open? : Bool) -> ComboboxState

    combobox_trigger

    fn combobox_trigger(scope : ComboboxScope, label? : String) ->
    Node

    combobox_value

    fn combobox_value(scope : ComboboxScope, placeholder? : String) ->
    Node

    command

    fn command(id~ : String, items~ :
    Val
    [Array[MenuItem]], placeholder? : String) ->
    Val
    [
    Node
    ]

    command_close

    fn command_close(scope : CommandScope) ->
    Cmd

    command_dialog

    fn command_dialog(context : UiContext, id~ : String, title~ : String, trigger_label~ : String, render~ : (CommandScope) ->
    Node
    , initial_query? : String, initially_open? : Bool, should_filter? : Bool, filter? : (String, String, Array[String]) -> Bool, close_on_select? : Bool, close_on_overlay? : Bool, on_query_change? :
    Emit
    [String], on_value_select? :
    Emit
    [String], on_open_change? :
    Emit
    [Bool]) ->
    Val
    [
    Node
    ]

    command_dialog_trigger

    fn[C :
    IsChildren
    ] command_dialog_trigger(scope : CommandScope, children : C, disabled? : Bool) ->
    Node

    command_empty

    fn[C :
    IsChildren
    ] command_empty(children : C, visible~ : Bool) ->
    Node

    command_group

    fn[C :
    IsChildren
    ] command_group(children : C, heading? : String) ->
    Node

    command_input

    fn command_input(scope : CommandScope, placeholder? : String, disabled? : Bool) ->
    Node

    command_is_open

    fn command_is_open(scope : CommandScope) -> Bool

    command_item

    fn[C :
    IsChildren
    ] command_item(scope : CommandScope, value~ : String, children : C, keywords? : Array[String], disabled? : Bool, force_mount? : Bool, on_select? :
    Emit
    [String], on_click? :
    Cmd
    ) ->
    Node

    command_list

    fn[C :
    IsChildren
    ] command_list(children : C, id? : String, class? : String, style? : String) ->
    Node

    command_open

    fn command_open(scope : CommandScope) ->
    Cmd

    command_provider

    fn command_provider(id~ : String, render~ : (CommandScope) ->
    Node
    , initial_query? : String, on_value_select? :
    Emit
    [String], on_query_change? :
    Emit
    [String], should_filter? : Bool, filter? : (String, String, Array[String]) -> Bool) ->
    Val
    [
    Node
    ]

    command_provider_controlled

    fn command_provider_controlled(id~ : String, query~ :
    Val
    [String], on_query_change~ :
    Emit
    [String], render~ : (CommandScope) ->
    Node
    , on_value_select? :
    Emit
    [String], should_filter? : Bool, filter? : (String, String, Array[String]) -> Bool) ->
    Val
    [
    Node
    ]

    command_query

    fn command_query(scope : CommandScope) -> String

    command_separator

    fn command_separator() ->
    Node

    command_shortcut

    fn[C :
    IsChildren
    ] command_shortcut(children : C, id? : String, class? : String, style? : String) ->
    Node

    context_menu

    fn context_menu(context : UiContext, id~ : String, trigger_label~ : String, items~ :
    Val
    [Array[MenuItem]]) ->
    Val
    [
    Node
    ]

    data_column

    fn[T] data_column(key~ : String, label~ : String, text~ : (T) -> String, render? : (T) ->
    Node
    , sortable? : Bool, searchable? : Bool, hideable? : Bool, compare? : (T, T) -> Int, numeric_value? : (T) -> Double) -> DataColumn[T]

    data_table

    fn[T : Eq] data_table(id~ : String, rows~ :
    Val
    [Array[T]], columns~ : Array[DataColumn[T]], row_key~ : (T) -> String, page_size? : Int, selectable? : Bool) ->
    Val
    [
    Node
    ]

    data_table_controlled

    fn[T : Eq] data_table_controlled(id~ : String, rows~ :
    Val
    [Array[T]], columns~ : Array[DataColumn[T]], row_key~ : (T) -> String, state~ :
    Val
    [TableState], on_change~ :
    Emit
    [TableState], selectable? : Bool) ->
    Val
    [
    Node
    ]

    date_picker

    fn date_picker(context : UiContext, id~ : String, label~ : String, initial_month~ :
    CalendarDate
    , selected~ :
    Val
    [
    DateSelection
    ], on_change~ :
    Emit
    [
    DateSelection
    ], disabled_date? : (
    CalendarDate
    ) -> Bool, disabled? : Bool, today? :
    CalendarDate
    , show_outside_days? : Bool, week_start? : Int, presets? : Array[DatePickerPreset], format_value? : (
    DateSelection
    ) -> String, initially_open? : Bool, on_open_change? :
    Emit
    [Bool], close_on_select? : Bool) ->
    Val
    [
    Node
    ]

    date_picker_controlled

    date_picker_preset

    fn date_picker_preset(label~ : String, value~ :
    CalendarDate
    ) -> DatePickerPreset

    date_range_picker

    Range values use the same typed DateSelection as Calendar; incomplete ranges stay open.

    date_range_picker_preset

    dialog

    fn dialog(context : UiContext, id~ : String, title~ : String, trigger_label~ : String, content~ :
    Val
    [
    Node
    ], initially_open? : Bool) ->
    Val
    [
    Node
    ]

    dialog_controlled

    fn dialog_controlled(context : UiContext, id~ : String, title~ : String, trigger_label~ : String, content~ :
    Val
    [
    Node
    ], open~ :
    Val
    [Bool], on_change~ :
    Emit
    [Bool], close_on_overlay? : Bool) ->
    Val
    [
    Node
    ]

    dismiss_all_toasts

    fn dismiss_all_toasts(context : UiContext) ->
    Cmd

    dismiss_toast

    fn dismiss_toast(context : UiContext, id : String) ->
    Cmd

    drawer

    fn drawer(context : UiContext, id~ : String, title~ : String, trigger_label~ : String, content~ :
    Val
    [
    Node
    ], side? : Side, initially_open? : Bool, disabled? : Bool) ->
    Val
    [
    Node
    ]

    drawer_controlled

    fn drawer_controlled(context : UiContext, id~ : String, title~ : String, trigger_label~ : String, content~ :
    Val
    [
    Node
    ], open~ :
    Val
    [Bool], on_change~ :
    Emit
    [Bool], side? : Side, disabled? : Bool, close_on_overlay? : Bool) ->
    Val
    [
    Node
    ]

    fn dropdown_menu(context : UiContext, id~ : String, trigger_label~ : String, items~ :
    Val
    [Array[MenuItem]]) ->
    Val
    [
    Node
    ]

    fn dropdown_menu_controlled(context : UiContext, id~ : String, trigger_label~ : String, items~ :
    Val
    [Array[MenuItem]], open~ :
    Val
    [Bool], on_change~ :
    Emit
    [Bool], context_menu? : Bool) ->
    Val
    [
    Node
    ]

    empty

    fn[C :
    IsChildren
    ] empty(id? : String, class? : String, style? : String, children : C) ->
    Node

    empty_content

    fn[C :
    IsChildren
    ] empty_content(id? : String, class? : String, style? : String, children : C) ->
    Node

    empty_description

    fn[C :
    IsChildren
    ] empty_description(id? : String, class? : String, style? : String, children : C) ->
    Node

    empty_header

    fn[C :
    IsChildren
    ] empty_header(id? : String, class? : String, style? : String, children : C) ->
    Node

    empty_media

    fn[C :
    IsChildren
    ] empty_media(variant? : MediaVariant, id? : String, class? : String, style? : String, children : C) ->
    Node

    empty_title

    fn[C :
    IsChildren
    ] empty_title(id? : String, class? : String, style? : String, children : C) ->
    Node

    field

    fn[C :
    IsChildren
    ] field(state : FieldState, orientation? : Orientation, children : C) ->
    Node

    field_content

    fn[C :
    IsChildren
    ] field_content(id? : String, class? : String, style? : String, children : C) ->
    Node

    field_description

    fn[C :
    IsChildren
    ] field_description(id? : String, class? : String, style? : String, children : C) ->
    Node

    field_error

    fn[C :
    IsChildren
    ] field_error(id? : String, class? : String, style? : String, children : C) ->
    Node

    field_group

    fn[C :
    IsChildren
    ] field_group(id? : String, class? : String, style? : String, children : C) ->
    Node

    field_label

    fn[C :
    IsChildren
    ] field_label(for_id~ : String, children : C) ->
    Node

    field_legend

    fn[C :
    IsChildren
    ] field_legend(id? : String, class? : String, style? : String, children : C) ->
    Node

    field_separator

    fn[C :
    IsChildren
    ] field_separator(id? : String, class? : String, style? : String, children : C) ->
    Node

    field_set

    fn[C :
    IsChildren
    ] field_set(id? : String, class? : String, style? : String, children : C) ->
    Node

    field_state

    fn field_state(id~ : String, label~ : String, description? : String, error? : String, required? : Bool, disabled? : Bool) -> FieldState

    field_title

    fn[C :
    IsChildren
    ] field_title(id? : String, class? : String, style? : String, children : C) ->
    Node

    field_with_input

    form

    fn[C :
    IsChildren
    ] form(on_submit~ :
    Emit
    [Map[String, Json]], on_reset? :
    Cmd
    , values? : Map[String, Json], submit_key? : String, reset_key? : String, id? : String, children : C) ->
    Node

    form_control

    fn[C :
    IsChildren
    ] form_control(id? : String, class? : String, style? : String, children : C) ->
    Node

    form_description

    fn[C :
    IsChildren
    ] form_description(id? : String, class? : String, style? : String, children : C) ->
    Node

    form_field

    form_item

    fn[C :
    IsChildren
    ] form_item(id? : String, class? : String, style? : String, children : C) ->
    Node

    form_label

    fn[C :
    IsChildren
    ] form_label(for_id~ : String, children : C) ->
    Node

    form_message

    fn[C :
    IsChildren
    ] form_message(id? : String, class? : String, style? : String, children : C) ->
    Node

    hover_card

    fn hover_card(context : UiContext, id~ : String, title~ : String, trigger_label~ : String, content~ :
    Val
    [
    Node
    ]) ->
    Val
    [
    Node
    ]

    input

    Pure controlled input, following RUI's input/on_input authoring convention. focused controls the focus style; options.focus requests native focus. No state is allocated here, so this builder is safe inside a Val view.

    input_group

    fn[C :
    IsChildren
    ] input_group(id? : String, class? : String, style? : String, children : C) ->
    Node

    input_group_addon

    fn[C :
    IsChildren
    ] input_group_addon(align? : AddonAlign, id? : String, class? : String, style? : String, children : C) ->
    Node

    input_group_button

    fn[C :
    IsChildren
    ] input_group_button(variant? : ButtonVariant, size? : ButtonSize, on_tap~ :
    Cmd
    , disabled? : Bool, id? : String, class? : String, children : C) ->
    Node

    input_group_control

    fn input_group_control(content :
    Node
    ) ->
    Node

    input_group_input

    fn input_group_input(id~ : String, value~ :
    Val
    [String], on_change~ :
    Emit
    [String], options? : InputOptions) ->
    Val
    [
    Node
    ]

    input_group_text

    fn[C :
    IsChildren
    ] input_group_text(id? : String, class? : String, style? : String, children : C) ->
    Node

    input_group_textarea

    fn input_group_textarea(id~ : String, value~ :
    Val
    [String], on_change~ :
    Emit
    [String], options? : InputOptions) ->
    Val
    [
    Node
    ]

    input_options

    fn input_options(disabled? : Bool, read_only? : Bool, invalid? : Bool, placeholder? : String, maxlength? : Int, input_type? :
    InputType
    , password? : Bool, focus? : Bool, name? : String, selection_start? : Int, selection_end? : Int) -> InputOptions

    input_otp

    fn input_otp(id~ : String, initial_value? : String, length? : Int, disabled? : Bool, numeric? : Bool, separator_after? : Int, invalid? : Bool, label? : String, accept? : (Char) -> Bool, render? : (OtpScope) ->
    Node
    , on_complete? :
    Emit
    [String]) ->
    Val
    [
    Node
    ]

    input_otp_controlled

    fn input_otp_controlled(id~ : String, value~ :
    Val
    [String], on_change~ :
    Emit
    [String], length? : Int, disabled? : Bool, numeric? : Bool, separator_after? : Int, invalid? : Bool, label? : String, accept? : (Char) -> Bool, render? : (OtpScope) ->
    Node
    , on_complete? :
    Emit
    [String]) ->
    Val
    [
    Node
    ]

    input_otp_group

    fn[C :
    IsChildren
    ] input_otp_group(id? : String, class? : String, style? : String, children : C) ->
    Node

    input_otp_separator

    fn input_otp_separator() ->
    Node

    input_otp_slot

    fn input_otp_slot(value? : String, active? : Bool, id? : String) ->
    Node

    input_stateful

    A convenience input that owns its value and focus for this component lifetime.

    item

    fn[C :
    IsChildren
    ] item(variant? : Tone, size? : Size, children : C) ->
    Node

    item_actions

    fn[C :
    IsChildren
    ] item_actions(id? : String, class? : String, style? : String, children : C) ->
    Node

    item_content

    fn[C :
    IsChildren
    ] item_content(id? : String, class? : String, style? : String, children : C) ->
    Node

    item_description

    fn[C :
    IsChildren
    ] item_description(id? : String, class? : String, style? : String, children : C) ->
    Node

    fn[C :
    IsChildren
    ] item_footer(id? : String, class? : String, style? : String, children : C) ->
    Node

    item_group

    fn[C :
    IsChildren
    ] item_group(id? : String, class? : String, style? : String, children : C) ->
    Node

    item_header

    fn[C :
    IsChildren
    ] item_header(id? : String, class? : String, style? : String, children : C) ->
    Node

    fn[C :
    IsChildren
    ] item_link(on_tap~ :
    Cmd
    , variant? : Tone, size? : Size, disabled? : Bool, id? : String, class? : String, children : C) ->
    Node

    item_media

    fn[C :
    IsChildren
    ] item_media(variant? : MediaVariant, id? : String, class? : String, style? : String, children : C) ->
    Node

    item_separator

    fn item_separator() ->
    Node

    item_title

    fn[C :
    IsChildren
    ] item_title(id? : String, class? : String, style? : String, children : C) ->
    Node

    kbd

    fn[C :
    IsChildren
    ] kbd(id? : String, class? : String, style? : String, children : C) ->
    Node

    kbd_group

    fn[C :
    IsChildren
    ] kbd_group(id? : String, class? : String, style? : String, children : C) ->
    Node

    label

    fn[C :
    IsChildren
    ] label(for_id~ : String, required? : Bool, disabled? : Bool, children : C) ->
    Node

    marker_content

    fn[C :
    IsChildren
    ] marker_content(id? : String, class? : String, style? : String, children : C) ->
    Node

    marker_icon

    fn[C :
    IsChildren
    ] marker_icon(id? : String, class? : String, style? : String, children : C) ->
    Node

    fn[C :
    IsChildren
    ] marker_link(on_tap~ :
    Cmd
    , variant? : MarkerVariant, disabled? : Bool, id? : String, class? : String, children : C) ->
    Node

    fn menu_checkbox_item(key~ : String, label~ : String, checked~ : Bool, on_change~ :
    Emit
    [Bool], disabled? : Bool) -> MenuItem

    fn menu_customize(item : MenuItem, content? :
    Node
    , shortcut? : String, inset? : Bool, destructive? : Bool, close_on_select? : Bool, indicator_placement? : MenuIndicatorPlacement) -> MenuItem

    fn menu_group(key~ : String, items~ : Array[MenuItem], label? : String) -> MenuItem

    fn menu_item(key~ : String, label~ : String, on_select~ :
    Cmd
    , disabled? : Bool) -> MenuItem

    fn menu_label(key~ : String, label~ : String) -> MenuItem

    fn menu_radio_item(key~ : String, label~ : String, selected~ : Bool, on_select~ :
    Cmd
    , disabled? : Bool) -> MenuItem

    fn menu_separator(key~ : String) -> MenuItem

    fn menu_submenu(key~ : String, label~ : String, items~ : Array[MenuItem], disabled? : Bool) -> MenuItem

    fn menubar(context : UiContext, id~ : String, groups~ : Array[MenuGroup]) ->
    Val
    [
    Node
    ]

    fn menubar_controlled(context : UiContext, id~ : String, groups~ : Array[MenuGroup], value~ :
    Val
    [String?], on_value_change~ :
    Emit
    [String?]) ->
    Val
    [
    Node
    ]

    A controlled menubar has at most one active menu; all children share one application-owned value and report selection through its Emit.

    message

    message_avatar

    fn[C :
    IsChildren
    ] message_avatar(id? : String, class? : String, style? : String, children : C) ->
    Node

    message_content

    fn[C :
    IsChildren
    ] message_content(id? : String, class? : String, style? : String, children : C) ->
    Node

    fn[C :
    IsChildren
    ] message_footer(id? : String, class? : String, style? : String, children : C) ->
    Node

    message_group

    fn[C :
    IsChildren
    ] message_group(id? : String, class? : String, style? : String, children : C) ->
    Node

    message_header

    fn[C :
    IsChildren
    ] message_header(id? : String, class? : String, style? : String, children : C) ->
    Node

    message_item

    fn message_item(key~ : String, content~ :
    Node
    ) -> MessageItem

    message_scroller

    fn message_scroller(context : UiContext, id~ : String, items~ :
    Val
    [Array[MessageItem]], content_revision? :
    Val
    [Int], initially_at_end? : Bool, height? : String, show_buttons? : Bool, render_button? : (MessageScrollDirection,
    Cmd
    , Bool) ->
    Node
    ) ->
    Val
    [
    Node
    ]

    Increment content_revision for streamed edits or asynchronously resized content without a key change. Appending/prepending keyed items is observed automatically. render_button receives direction, guarded jump command, and disabled state. Keyed height-delta anchoring replaces browser per-element overflow-anchor.

    native_select

    fn native_select(name? : String, id~ : String, options~ :
    Val
    [Array[ChoiceOption]], initial_value? : String, placeholder? : String, disabled? : Bool, invalid? : Bool, required? : Bool, size? : Size) ->
    Val
    [
    Node
    ]

    native_select_controlled

    fn native_select_controlled(name? : String, id~ : String, options~ :
    Val
    [Array[ChoiceOption]], value~ :
    Val
    [String], on_change~ :
    Emit
    [String], placeholder? : String, disabled? : Bool, invalid? : Bool, required? : Bool, size? : Size) ->
    Val
    [
    Node
    ]

    native_select_optgroup

    fn native_select_optgroup(label~ : String, options : Array[ChoiceOption]) -> Array[ChoiceOption]

    native_select_option

    fn native_select_option(key~ : String, label~ : String, disabled? : Bool, group? : String) -> ChoiceOption

    fn navigation_menu(items : Array[NavigationItem], id? : String) ->
    Node

    fn navigation_menu_activate(scope : NavigationMenuScope, value : String) ->
    Cmd

    fn navigation_menu_close(scope : NavigationMenuScope) ->
    Cmd

    fn[C :
    IsChildren
    ] navigation_menu_content(scope : NavigationMenuItemScope, children : C, class? : String, style? : String) ->
    Node

    fn navigation_menu_indicator(scope : NavigationMenuItemScope, class? : String) ->
    Node

    fn navigation_menu_item(scope : NavigationMenuScope, value~ : String, render~ : (NavigationMenuItemScope) ->
    Node
    , disabled? : Bool, class? : String, style? : String) ->
    Node

    fn navigation_menu_item_is_open(scope : NavigationMenuItemScope) -> Bool

    fn[C :
    IsChildren
    ] navigation_menu_link(target~ :
    Route
    , children : C, active? : Bool, scope? : NavigationMenuScope, class? : String, style? : String, on_tap? :
    Cmd
    ) ->
    Node

    fn[C :
    IsChildren
    ] navigation_menu_list(scope : NavigationMenuScope, children : C, class? : String, style? : String) ->
    Node

    fn navigation_menu_provider_controlled(context : UiContext, id~ : String, value~ :
    Val
    [String?], on_value_change~ :
    Emit
    [String?], render~ : (NavigationMenuScope) ->
    Node
    , viewport? : Bool, aria_label? : String, side_offset? : Double, align_offset? : Double) ->
    Val
    [
    Node
    ]

    fn[Input : Eq] navigation_menu_provider_controlled_with_input(context : UiContext, id~ : String, input~ :
    Val
    [Input], value~ :
    Val
    [String?], on_value_change~ :
    Emit
    [String?], render~ : (NavigationMenuScope, Input) ->
    Node
    , viewport? : Bool, aria_label? : String, side_offset? : Double, align_offset? : Double) ->
    Val
    [
    Node
    ]

    fn[Input : Eq] navigation_menu_provider_with_input(context : UiContext, id~ : String, input~ :
    Val
    [Input], render~ : (NavigationMenuScope, Input) ->
    Node
    , default_value? : String, viewport? : Bool, on_value_change? :
    Emit
    [String?], aria_label? : String, side_offset? : Double, align_offset? : Double) ->
    Val
    [
    Node
    ]

    fn navigation_menu_root(context : UiContext, id~ : String, render~ : (NavigationMenuScope) ->
    Node
    , default_value? : String, viewport? : Bool, on_value_change? :
    Emit
    [String?], aria_label? : String, side_offset? : Double, align_offset? : Double) ->
    Val
    [
    Node
    ]

    fn[C :
    IsChildren
    ] navigation_menu_trigger(scope : NavigationMenuItemScope, children : C, disabled? : Bool, class? : String, on_tap? :
    Cmd
    ) ->
    Node

    fn navigation_menu_value(scope : NavigationMenuScope) -> String?

    fn[C :
    IsChildren
    ] navigation_menu_viewport(scope : NavigationMenuScope, children : C, class? : String, style? : String) ->
    Node

    Optional shared viewport chrome is collected only within the current render.

    overlay_action

    fn[C :
    IsChildren
    ] overlay_action(scope : OverlayScope, children : C, on_tap~ :
    Cmd
    , close? : Bool, key? : String) ->
    Node

    overlay_arrow

    fn overlay_arrow(side? : Side) ->
    Node

    overlay_close

    fn overlay_close(scope : OverlayScope, reason? : OverlayCloseReason) ->
    Cmd

    overlay_close_button

    fn[C :
    IsChildren
    ] overlay_close_button(scope : OverlayScope, children : C, on_tap? :
    Cmd
    , key? : String) ->
    Node

    overlay_content

    fn[C :
    IsChildren
    ] overlay_content(scope : OverlayScope, children : C, show_close? : Bool, close_label? : String, class? : String, style? : String) ->
    Node

    overlay_controlled

    fn overlay_controlled(context : UiContext, id~ : String, title~ : String, trigger_label~ : String, trigger_label_value? :
    Val
    [String], content~ :
    Val
    [
    Node
    ], open~ :
    Val
    [Bool], on_change~ :
    Emit
    [Bool], kind? : OverlayKind, disabled? : Bool, close_on_overlay? : Bool, placement? :
    Placement
    ) ->
    Val
    [
    Node
    ]

    One controlled native overlay; content stays reactive while open.

    overlay_description

    fn[C :
    IsChildren
    ] overlay_description(scope : OverlayScope, children : C) ->
    Node

    overlay_header

    overlay_is_open

    fn overlay_is_open(scope : OverlayScope) -> Bool

    overlay_open

    fn overlay_open(scope : OverlayScope) ->
    Cmd

    overlay_provider

    fn overlay_provider(context : UiContext, id~ : String, render~ : (OverlayScope) ->
    Node
    , initially_open? : Bool, kind? : OverlayKind, disabled? : Bool, modal? : Bool, close_on_overlay? : Bool, force_mount? : Bool, placement? :
    Placement
    , side_offset? : Double, align_offset? : Double, delay_ms? : Int, close_delay_ms? : Int, on_close? :
    Emit
    [OverlayCloseReason], on_open_change? :
    Emit
    [Bool]) ->
    Val
    [
    Node
    ]

    overlay_provider_controlled

    fn overlay_provider_controlled(context : UiContext, id~ : String, open~ :
    Val
    [Bool], on_open_change~ :
    Emit
    [Bool], render~ : (OverlayScope) ->
    Node
    , kind? : OverlayKind, disabled? : Bool, modal? : Bool, close_on_overlay? : Bool, force_mount? : Bool, placement? :
    Placement
    , side_offset? : Double, align_offset? : Double, delay_ms? : Int, close_delay_ms? : Int, on_close? :
    Emit
    [OverlayCloseReason]) ->
    Val
    [
    Node
    ]

    overlay_provider_controlled_with_input

    fn[Input : Eq] overlay_provider_controlled_with_input(context : UiContext, id~ : String, input~ :
    Val
    [Input], open~ :
    Val
    [Bool], on_open_change~ :
    Emit
    [Bool], render~ : (OverlayScope, Input) ->
    Node
    , kind? : OverlayKind, disabled? : Bool, modal? : Bool, close_on_overlay? : Bool, force_mount? : Bool, placement? :
    Placement
    , side_offset? : Double, align_offset? : Double, delay_ms? : Int, close_delay_ms? : Int, on_close? :
    Emit
    [OverlayCloseReason]) ->
    Val
    [
    Node
    ]

    overlay_title

    overlay_toggle

    fn overlay_toggle(scope : OverlayScope) ->
    Cmd

    overlay_trigger

    fn[C :
    IsChildren
    ] overlay_trigger(scope : OverlayScope, children : C, on_tap? :
    Cmd
    , class? : String) ->
    Node

    fn pagination(id~ : String, total~ :
    Val
    [Int], page_size? : Int) ->
    Val
    [
    Node
    ]

    pagination_controlled

    fn pagination_controlled(id~ : String, page~ :
    Val
    [Int], total~ :
    Val
    [Int], on_change~ :
    Emit
    [Int], page_size? : Int) ->
    Val
    [
    Node
    ]

    panel

    fn panel(key~ : String, title~ : String, content~ :
    Node
    , disabled? : Bool, icon? :
    Node
    , trigger? :
    Node
    ) -> Panel

    popover

    fn popover(context : UiContext, id~ : String, title~ : String, trigger_label~ : String, content~ :
    Val
    [
    Node
    ], placement? :
    Placement
    ) ->
    Val
    [
    Node
    ]

    progress

    fn progress(value~ : Double, min? : Double, max? : Double, label? : String, indeterminate? : Bool, show_value? : Bool) ->
    Node

    progress_indicator

    fn progress_indicator(value~ : Double, min? : Double, max? : Double) ->
    Node

    progress_label

    fn[C :
    IsChildren
    ] progress_label(id? : String, class? : String, style? : String, children : C) ->
    Node

    progress_track

    fn[C :
    IsChildren
    ] progress_track(id? : String, class? : String, style? : String, children : C) ->
    Node

    progress_value

    fn progress_value(value~ : Double, min? : Double, max? : Double, text? : String) ->
    Node

    radio_group

    fn radio_group(name? : String, id~ : String, options~ :
    Val
    [Array[ChoiceOption]], initial_value? : String, disabled? : Bool, orientation? : Orientation) ->
    Val
    [
    Node
    ]

    radio_group_controlled

    fn radio_group_controlled(name? : String, id~ : String, options~ :
    Val
    [Array[ChoiceOption]], value~ :
    Val
    [String], on_change~ :
    Emit
    [String], disabled? : Bool, orientation? : Orientation) ->
    Val
    [
    Node
    ]

    radio_group_item

    fn radio_group_item(value~ : String, checked? : Bool, disabled? : Bool, label? : String, id? : String) ->
    Node

    radio_group_root

    fn[C :
    IsChildren
    ] radio_group_root(on_change~ :
    Emit
    [String], name? : String, id? : String, orientation? : Orientation, children : C) ->
    Node

    resizable

    fn resizable(context : UiContext, id~ : String, panes~ :
    Val
    [Array[ResizablePane]], initial_sizes? : Array[Double], orientation? : Orientation, direction? :
    TextDirection
    , disabled? : Bool, style? : String) ->
    Val
    [
    Node
    ]

    resizable_controlled

    fn resizable_controlled(context : UiContext, id~ : String, panes~ :
    Val
    [Array[ResizablePane]], sizes~ :
    Val
    [Array[Double]], on_change~ :
    Emit
    [Array[Double]], on_commit? :
    Emit
    [Array[Double]], orientation? : Orientation, direction? :
    TextDirection
    , disabled? : Bool, style? : String) ->
    Val
    [
    Node
    ]

    resizable_pane

    fn resizable_pane(key~ : String, content~ :
    Node
    , minimum? : Double, maximum? : Double) -> ResizablePane

    scroll_area

    fn[C :
    IsChildren
    ] scroll_area(children : C, id? : String, horizontal? : Bool, vertical? : Bool, height? : Int, on_scroll? :
    Emit
    [
    ScrollDetail
    ], on_upper? :
    Cmd
    , on_lower? :
    Cmd
    ) ->
    Node

    select

    fn select(context : UiContext, id~ : String, options~ :
    Val
    [Array[ChoiceOption]], initial_value? : String, placeholder? : String, disabled? : Bool) ->
    Val
    [
    Node
    ]

    select_content

    fn[C :
    IsChildren
    ] select_content(id? : String, class? : String, style? : String, children : C) ->
    Node

    select_controlled

    fn select_controlled(context : UiContext, id~ : String, options~ :
    Val
    [Array[ChoiceOption]], value~ :
    Val
    [String], on_change~ :
    Emit
    [String], placeholder? : String, disabled? : Bool, open? :
    Val
    [Bool], initially_open? : Bool, on_open_change? :
    Emit
    [Bool], invalid? : Bool, required? : Bool, placement? :
    Placement
    , side_offset? : Double, align_offset? : Double, render_option? : (ChoiceOption, Bool) ->
    Node
    , render_value? : (String, Array[ChoiceOption]) ->
    Node
    , render_content? : (Array[
    Node
    ]) ->
    Node
    ) ->
    Val
    [
    Node
    ]

    Select uses a page-owned native layer; application must declare MeasureNodes.

    select_group

    fn[C :
    IsChildren
    ] select_group(id? : String, class? : String, style? : String, children : C) ->
    Node

    select_item

    fn[C :
    IsChildren
    ] select_item(on_tap~ :
    Cmd
    , selected? : Bool, disabled? : Bool, id? : String, children : C) ->
    Node

    select_label

    fn[C :
    IsChildren
    ] select_label(id? : String, class? : String, style? : String, children : C) ->
    Node

    select_option

    fn select_option(key~ : String, label~ : String, disabled? : Bool, group? : String) -> ChoiceOption

    select_scroll_down_button

    fn select_scroll_down_button(on_scroll~ :
    Cmd
    , disabled? : Bool) ->
    Node

    select_scroll_up_button

    fn select_scroll_up_button(on_scroll~ :
    Cmd
    , disabled? : Bool) ->
    Node

    select_separator

    fn select_separator() ->
    Node

    select_trigger

    fn select_trigger(on_tap~ :
    Cmd
    , value~ : String, id~ : String, expanded? : Bool, disabled? : Bool, invalid? : Bool, required? : Bool, content? :
    Node
    ) ->
    Node

    select_value

    fn select_value(options : Array[ChoiceOption], value : String, placeholder? : String) -> String

    separator

    fn separator(orientation? : Orientation, decorative? : Bool) ->
    Node

    sheet

    fn sheet(context : UiContext, id~ : String, title~ : String, trigger_label~ : String, content~ :
    Val
    [
    Node
    ], side? : Side) ->
    Val
    [
    Node
    ]

    fn sidebar(id~ : String, content~ :
    Val
    [
    Node
    ], initially_collapsed? : Bool, label? : String, width? : Int) ->
    Val
    [
    Node
    ]

    fn sidebar_close_mobile(scope : SidebarScope) ->
    Cmd

    fn sidebar_collapse(scope : SidebarScope) ->
    Cmd

    fn[C :
    IsChildren
    ] sidebar_content(children : C, id? : String, class? : String, height? : String) ->
    Node

    fn sidebar_controlled(id~ : String, content~ :
    Val
    [
    Node
    ], collapsed~ :
    Val
    [Bool], on_change~ :
    Emit
    [Bool], label? : String, width? : Int) ->
    Val
    [
    Node
    ]

    fn sidebar_expand(scope : SidebarScope) ->
    Cmd

    fn[C :
    IsChildren
    ] sidebar_footer(children : C, id? : String, class? : String, style? : String) ->
    Node

    fn[C :
    IsChildren
    ] sidebar_group(children : C, id? : String, class? : String, style? : String) ->
    Node

    fn[C :
    IsChildren
    ] sidebar_group_action(scope : SidebarSurfaceScope, on_tap~ :
    Cmd
    , children : C, disabled? : Bool, class? : String) ->
    Node

    fn[C :
    IsChildren
    ] sidebar_group_content(children : C, id? : String, class? : String, style? : String) ->
    Node

    fn[C :
    IsChildren
    ] sidebar_group_label(scope : SidebarSurfaceScope, children : C, class? : String) ->
    Node

    fn[C :
    IsChildren
    ] sidebar_header(children : C, id? : String, class? : String, style? : String) ->
    Node

    fn sidebar_input(value~ : String, on_input~ :
    Emit
    [String], name? : String, placeholder? : String, disabled? : Bool, id? : String, event_key? : String, class? : String) ->
    Node

    fn[C :
    IsChildren
    ] sidebar_inset(children : C, id? : String, class? : String, style? : String) ->
    Node

    fn sidebar_is_collapsed(scope : SidebarScope) -> Bool

    fn sidebar_is_mobile_open(scope : SidebarScope) -> Bool

    fn[C :
    IsChildren
    ] sidebar_menu(children : C, id? : String, class? : String, style? : String) ->
    Node

    fn[C :
    IsChildren
    ] sidebar_menu_action(scope : SidebarSurfaceScope, on_tap~ :
    Cmd
    , children : C, disabled? : Bool, class? : String) ->
    Node

    fn[C :
    IsChildren
    ] sidebar_menu_badge(scope : SidebarSurfaceScope, children : C, class? : String) ->
    Node

    fn[C :
    IsChildren
    ] sidebar_menu_button(scope : SidebarSurfaceScope, children : C, target? :
    Route
    , is_active? : Bool, variant? : SidebarMenuButtonVariant, size? : SidebarMenuButtonSize, disabled? : Bool, aria_label? : String, on_tap? :
    Cmd
    , icon? :
    Node
    , id? : String, event_key? : String, class? : String, style? : String) ->
    Node

    fn[C :
    IsChildren
    ] sidebar_menu_button_with_tooltip(scope : SidebarSurfaceScope, id~ : String, tooltip~ : String, children : C, target? :
    Route
    , is_active? : Bool, variant? : SidebarMenuButtonVariant, size? : SidebarMenuButtonSize, disabled? : Bool, aria_label? : String, on_tap? :
    Cmd
    , icon? :
    Node
    , tooltip_side? : Side, tooltip_align? : Alignment, tooltip_side_offset? : Double, tooltip_align_offset? : Double, tooltip_show_arrow? : Bool, class? : String) ->
    Node

    Long press and the adjacent Help action replace hover, without nested buttons.
    fn[C :
    IsChildren
    ] sidebar_menu_item(children : C, id? : String, class? : String, style? : String) ->
    Node

    fn sidebar_menu_skeleton(show_icon? : Bool, width? : Int, class? : String) ->
    Node

    fn[C :
    IsChildren
    ] sidebar_menu_sub(scope : SidebarSurfaceScope, children : C, class? : String) ->
    Node

    fn[C :
    IsChildren
    ] sidebar_menu_sub_button(scope : SidebarSurfaceScope, children : C, target? :
    Route
    , is_active? : Bool, disabled? : Bool, on_tap? :
    Cmd
    , class? : String) ->
    Node

    fn[C :
    IsChildren
    ] sidebar_menu_sub_item(children : C, id? : String, class? : String, style? : String) ->
    Node

    fn sidebar_open_mobile(scope : SidebarScope) ->
    Cmd

    fn sidebar_provider(context : UiContext, id~ : String, render~ : (SidebarScope) ->
    Node
    , default_collapsed? : Bool, default_mobile_open? : Bool, default_width? : Double, on_collapsed_change? :
    Emit
    [Bool], on_mobile_open_change? :
    Emit
    [Bool], on_width_change? :
    Emit
    [Double], style? : String) ->
    Val
    [
    Node
    ]

    fn sidebar_provider_controlled(context : UiContext, id~ : String, state~ :
    Val
    [SidebarState], on_change~ :
    Emit
    [SidebarState], render~ : (SidebarScope) ->
    Node
    , style? : String) ->
    Val
    [
    Node
    ]

    fn[Input : Eq] sidebar_provider_controlled_with_input(context : UiContext, id~ : String, state~ :
    Val
    [SidebarState], on_change~ :
    Emit
    [SidebarState], input~ :
    Val
    [Input], render~ : (SidebarScope, Input) ->
    Node
    , style? : String) ->
    Val
    [
    Node
    ]

    fn[Input : Eq] sidebar_provider_with_input(context : UiContext, id~ : String, input~ :
    Val
    [Input], render~ : (SidebarScope, Input) ->
    Node
    , default_collapsed? : Bool, default_mobile_open? : Bool, default_width? : Double, on_collapsed_change? :
    Emit
    [Bool], on_mobile_open_change? :
    Emit
    [Bool], on_width_change? :
    Emit
    [Double], style? : String) ->
    Val
    [
    Node
    ]

    fn sidebar_rail(scope : SidebarSurfaceScope, min_width? : Double, max_width? : Double, class? : String) ->
    Node

    fn sidebar_separator(class? : String) ->
    Node

    fn sidebar_set_width(scope : SidebarScope, width : Double) ->
    Cmd

    fn sidebar_state(collapsed? : Bool, mobile_open? : Bool, width? : Double) -> SidebarState

    fn sidebar_surface(scope : SidebarScope, render~ : (SidebarSurfaceScope) ->
    Node
    , side? : SidebarSide, variant? : SidebarVariant, collapsible? : SidebarCollapsible, mobile? : Bool, hidden? : Bool, aria_label? : String, id? : String, class? : String, style? : String) ->
    Node

    fn[C :
    IsChildren
    ] sidebar_trigger(scope : SidebarScope, children : C, mobile? : Bool, disabled? : Bool, id? : String, class? : String, on_tap? :
    Cmd
    ) ->
    Node

    fn sidebar_width(scope : SidebarScope) -> Double

    skeleton

    fn skeleton(width? : Int, height? : Int, round? : Bool) ->
    Node

    slider

    fn slider(context : UiContext, id~ : String, default_value? : Int, spec? :
    SliderSpec
    , orientation? : Orientation, direction? :
    TextDirection
    , disabled? : Bool, label? : String, on_value_change? :
    Emit
    [Int], on_value_commit? :
    Emit
    [Int]) ->
    Val
    [
    Node
    ]

    slider_controlled

    fn slider_controlled(context : UiContext, id~ : String, value~ :
    Val
    [Int], on_change~ :
    Emit
    [Int], on_commit? :
    Emit
    [Int], spec? :
    SliderSpec
    , orientation? : Orientation, direction? :
    TextDirection
    , disabled? : Bool, label? : String) ->
    Val
    [
    Node
    ]

    slider_values

    fn slider_values(context : UiContext, id~ : String, default_values~ : Array[Int], spec? :
    SliderSpec
    , orientation? : Orientation, direction? :
    TextDirection
    , disabled? : Bool, label? : String, on_value_change? :
    Emit
    [Array[Int]], on_value_commit? :
    Emit
    [Array[Int]]) ->
    Val
    [
    Node
    ]

    slider_values_controlled

    fn slider_values_controlled(context : UiContext, id~ : String, values~ :
    Val
    [Array[Int]], on_change~ :
    Emit
    [Array[Int]], on_commit? :
    Emit
    [Array[Int]], spec? :
    SliderSpec
    , orientation? : Orientation, direction? :
    TextDirection
    , disabled? : Bool, label? : String) ->
    Val
    [
    Node
    ]

    sonner

    fn sonner(context : UiContext, position? : ToastPosition, rich_colors? : Bool) ->
    Val
    [
    Node
    ]

    spinner

    fn spinner(label? : String, size? : Size) ->
    Node

    stack

    Combine independently owned components without allocating state in a view.

    switch

    fn switch(name? : String, id~ : String, initially_checked? : Bool, label? : String, disabled? : Bool, read_only? : Bool, invalid? : Bool, size? : Size) ->
    Val
    [
    Node
    ]

    switch_controlled

    fn switch_controlled(name? : String, id~ : String, checked~ :
    Val
    [Bool], on_change~ :
    Emit
    [Bool], label? : String, disabled? : Bool, read_only? : Bool, invalid? : Bool, size? : Size) ->
    Val
    [
    Node
    ]

    table

    fn[C :
    IsChildren
    ] table(children : C, id? : String, class? : String) ->
    Node

    table_body

    table_caption

    fn table_caption(text : String) ->
    Node

    table_cell

    table_head

    table_header

    table_row

    fn[C :
    IsChildren
    ] table_row(children : C, selected? : Bool) ->
    Node

    table_span_cell

    fn[C :
    IsChildren
    ] table_span_cell(children : C, colspan? : Int, rowspan? : Int, header? : Bool) -> TableSpanCell

    table_span_head

    fn[C :
    IsChildren
    ] table_span_head(children : C, colspan? : Int, rowspan? : Int) -> TableSpanCell

    table_spanning

    fn table_spanning(rows~ : Array[Array[TableSpanCell]], columns~ : Int, row_height? : Int, min_width? : Int, id? : String) ->
    Node

    Equal-width columns and explicit row height provide real two-dimensional spans without depending on HTML table or CSS grid behavior in Skyline. Empty rows reserve space for cells carried from previous rows. Children must fit their bounded cell; overflowing content is clipped. Invalid overlap/bounds abort.

    table_state

    fn table_state(page_size? : Int) -> TableState

    tabs

    fn tabs(id~ : String, items~ :
    Val
    [Array[Panel]], initial_selected? : String, vertical? : Bool, force_mount? : Bool, list_variant? : TabsListVariant) ->
    Val
    [
    Node
    ]

    tabs_content

    fn[C :
    IsChildren
    ] tabs_content(id? : String, selected? : Bool, force_mount? : Bool, labelled_by? : String, children : C) ->
    Node

    tabs_controlled

    fn tabs_controlled(id~ : String, items~ :
    Val
    [Array[Panel]], selected~ :
    Val
    [String?], on_change~ :
    Emit
    [String?], vertical? : Bool, force_mount? : Bool, list_variant? : TabsListVariant) ->
    Val
    [
    Node
    ]

    tabs_list

    fn[C :
    IsChildren
    ] tabs_list(id? : String, vertical? : Bool, variant? : TabsListVariant, children : C) ->
    Node

    tabs_root

    fn[C :
    IsChildren
    ] tabs_root(id? : String, vertical? : Bool, children : C) ->
    Node

    tabs_trigger

    fn[C :
    IsChildren
    ] tabs_trigger(value~ : String, on_change~ :
    Emit
    [String], selected? : Bool, disabled? : Bool, controls? : String, id? : String, children : C) ->
    Node

    text_field

    Bind application-owned text and validation to one native input. Create this component once in the page/component builder, not inside a view. Validation and submitted/touched policy remain application-owned; focus is component-owned and survives value, validation and option updates.

    textarea

    Pure controlled textarea; native focus/blur details remain typed.

    textarea_stateful

    A convenience textarea that owns its value and native focus state.

    toast

    fn toast(context : UiContext, notice : Toast) ->
    Cmd

    toast_close

    fn toast_close(context : UiContext, id~ : String, label? : String) ->
    Node

    toast_description

    fn toast_description(text : String) ->
    Node

    toast_notice

    fn toast_notice(id~ : String, title~ : String, description? : String, duration_ms? : Int, variant? : ToastVariant, action_label? : String, action? :
    Cmd
    , on_close? :
    Cmd
    ) -> Toast

    toast_surface

    fn[C :
    IsChildren
    ] toast_surface(children : C, variant? : ToastVariant, open? : Bool, id? : String) ->
    Node

    toast_title

    fn toast_title(text : String) ->
    Node

    toaster

    fn toaster(context : UiContext, position? : ToastPosition, rich_colors? : Bool) ->
    Val
    [
    Node
    ]

    toggle

    fn toggle(id~ : String, content~ :
    Val
    [
    Node
    ], initially_pressed? : Bool, disabled? : Bool, variant? : ButtonVariant, size? : Size, invalid? : Bool) ->
    Val
    [
    Node
    ]

    toggle_controlled

    fn toggle_controlled(id~ : String, pressed~ :
    Val
    [Bool], on_change~ :
    Emit
    [Bool], content~ :
    Val
    [
    Node
    ], disabled? : Bool, variant? : ButtonVariant, size? : Size, invalid? : Bool) ->
    Val
    [
    Node
    ]

    toggle_group

    fn toggle_group(id~ : String, options~ :
    Val
    [Array[ChoiceOption]], initial_value? : Array[String], multiple? : Bool, disabled? : Bool, orientation? : Orientation, variant? : ButtonVariant, size? : Size, spacing? : Int, render? : (ChoiceOption, Bool) ->
    Node
    ) ->
    Val
    [
    Node
    ]

    toggle_group_controlled

    fn toggle_group_controlled(id~ : String, options~ :
    Val
    [Array[ChoiceOption]], value~ :
    Val
    [Array[String]], on_change~ :
    Emit
    [Array[String]], multiple? : Bool, disabled? : Bool, orientation? : Orientation, variant? : ButtonVariant, size? : Size, spacing? : Int, render? : (ChoiceOption, Bool) ->
    Node
    ) ->
    Val
    [
    Node
    ]

    toggle_group_item

    fn[C :
    IsChildren
    ] toggle_group_item(on_tap~ :
    Cmd
    , pressed? : Bool, disabled? : Bool, id? : String, children : C) ->
    Node

    tooltip

    fn tooltip(context : UiContext, id~ : String, trigger_label~ : String, text~ : String) ->
    Val
    [
    Node
    ]

    typography_blockquote

    fn[C :
    IsChildren
    ] typography_blockquote(id? : String, class? : String, style? : String, children : C) ->
    Node

    typography_h1

    fn[C :
    IsChildren
    ] typography_h1(id? : String, class? : String, style? : String, children : C) ->
    Node

    typography_h2

    fn[C :
    IsChildren
    ] typography_h2(id? : String, class? : String, style? : String, children : C) ->
    Node

    typography_h3

    fn[C :
    IsChildren
    ] typography_h3(id? : String, class? : String, style? : String, children : C) ->
    Node

    typography_h4

    fn[C :
    IsChildren
    ] typography_h4(id? : String, class? : String, style? : String, children : C) ->
    Node

    typography_inline_code

    fn[C :
    IsChildren
    ] typography_inline_code(id? : String, class? : String, style? : String, children : C) ->
    Node

    typography_large

    fn[C :
    IsChildren
    ] typography_large(id? : String, class? : String, style? : String, children : C) ->
    Node

    typography_lead

    fn[C :
    IsChildren
    ] typography_lead(id? : String, class? : String, style? : String, children : C) ->
    Node

    typography_list

    fn[C :
    IsChildren
    ] typography_list(id? : String, class? : String, style? : String, children : C) ->
    Node

    typography_muted

    fn[C :
    IsChildren
    ] typography_muted(id? : String, class? : String, style? : String, children : C) ->
    Node

    typography_p

    fn[C :
    IsChildren
    ] typography_p(id? : String, class? : String, style? : String, children : C) ->
    Node

    typography_small

    fn[C :
    IsChildren
    ] typography_small(id? : String, class? : String, style? : String, children : C) ->
    Node