interface A2uiComponent

Known direct subclasses
A2uiBasicCatalogV1.AudioPlayer

The A2UI "AudioPlayer" component for playing audio content from a URL.

A2uiBasicCatalogV1.Button

The A2UI "Button" component for clickable buttons that dispatch actions.

A2uiBasicCatalogV1.Card

The A2UI "Card" component for displaying content in a styled container.

A2uiBasicCatalogV1.CheckBox

The A2UI "CheckBox" component for displaying a checkable control with an associated label.

A2uiBasicCatalogV1.ChoicePicker

The A2UI "ChoicePicker" component for selecting one or more options from a list.

A2uiBasicCatalogV1.Column

The A2UI "Column" component for arranging children vertically.

A2uiBasicCatalogV1.DateTimeInput

The A2UI "DateTimeInput" component for selecting date and/or time.

A2uiBasicCatalogV1.Divider

The A2UI "Divider" component for displaying a horizontal or vertical dividing line.

A2uiBasicCatalogV1.Icon

The A2UI "Icon" component for displaying an icon.

A2uiBasicCatalogV1.Image

The A2UI "Image" component for displaying an image from a URL.

A2uiBasicCatalogV1.List

The A2UI "List" component for displaying a scrollable list of components.

A2uiBasicCatalogV1.Modal

The A2UI "Modal" component for displaying a dialog window.

A2uiBasicCatalogV1.Row

The A2UI "Row" component for displaying content in a horizontal layout.

A2uiBasicCatalogV1.Slider

The A2UI "Slider" component for selecting a numeric value within a range.

A2uiBasicCatalogV1.Tabs

The A2UI "Tabs" component for displaying a set of tabs.

A2uiBasicCatalogV1.TextField

The A2UI "TextField" component for user text input.

A2uiBasicCatalogV1.Text

The A2UI "Text" component for displaying text.

A2uiBasicCatalogV1.Video

The A2UI "Video" component for displaying a video from a URL.


Defines the schema and Jetpack Compose rendering implementation for a single A2UI component.

Implementations of this interface bridge the gap between the A2UI protocol and Jetpack Compose UI. They declare the component's structural requirements via properties (which are communicated to the during capability negotiation) and map the incoming A2uiComponentProperties to actual composable UI elements in Content.

Summary

Public functions

Unit
@Composable
A2uiComponentScope.Content(
    properties: A2uiComponentProperties,
    modifier: Modifier
)

Emits the UI for this component.

open Boolean

Determines whether this component is ready to be rendered.

Public properties

String

A semantic description of the component's behavior and purpose.

String

The unique string identifier for this component type (e.g., "Text", "Button").

List<A2uiProperty<*>>

The list of typed properties expected by this component.

Public functions

A2uiComponentScope.Content

@Composable
fun A2uiComponentScope.Content(
    properties: A2uiComponentProperties,
    modifier: Modifier
): Unit

Emits the UI for this component.

This function is invoked within the A2uiComponentScope, which provides access to extensions for evaluating reactive data bindings, rendering nested children, dispatching user actions, and reporting runtime errors.

Parameters
properties: A2uiComponentProperties

The stable properties wrapper from which to extract static payloads or bind dynamic data paths.

modifier: Modifier

The Modifier applied to the root of this component's layout.

A2uiComponentScope.isReady

@Composable
open fun A2uiComponentScope.isReady(properties: A2uiComponentProperties): Boolean

Determines whether this component is ready to be rendered.

This is evaluated during component state resolution to determine if the component should transition from the androidx.a2ui.compose.runtime.A2uiComponentState.Loading state to the androidx.a2ui.compose.runtime.A2uiComponentState.Success state. The readiness is automatically re-evaluated when any reactive state read in this composable function changes (such as dynamic data bindings observed via properties.bind(...)).

By default, components are considered instantly ready. Override this method to support progressive rendering—for example, returning false until a required dynamic data binding (like an image URL or text string) has been successfully resolved from the surface's data model.

Parameters
properties: A2uiComponentProperties

The stable properties wrapper provided by the A2UI protocol.

Returns
Boolean

true if the component is fully ready to be composed, false if it is still loading.

Public properties

description

Added in 1.0.0-alpha01
val descriptionString

A semantic description of the component's behavior and purpose.

This is included in the generated schema to help the agent understand when and how it should output this component.

name

Added in 1.0.0-alpha01
val nameString

The unique string identifier for this component type (e.g., "Text", "Button").

This matches the "component" field in the A2UI protocol's component payloads and is used by the framework to route incoming payloads to this specific implementation.

Note: This name must be unique within an A2uiCatalog.

properties

Added in 1.0.0-alpha01
val propertiesList<A2uiProperty<*>>

The list of typed properties expected by this component.

The properties serve two purposes:

  1. To automatically generate the component's JSON schema for the agent.

  2. To serve as type-safe tokens for extracting payloads or resolving dynamic data bindings from A2uiComponentProperties at runtime.