A2uiBasicCatalogV1.ChoicePicker

interface A2uiBasicCatalogV1.ChoicePicker : A2uiComponent


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

Schema Properties:

  • accessibility (Dynamic Custom, optional): Accessibility attributes for the choice picker.

  • weight (Number, optional): The relative weight of the component within a Row or Column. May only be set when the component is a direct descendant of a Row or Column. See WeightProperty.

  • checks (Dynamic Custom, optional): Client-side check validation rules for the choice picker. See CheckRule.

  • label (Dynamic String, optional): The label for the group of options.

  • variant (String Enum, optional): A hint for how the choice picker should be displayed and behave. Valid options: "mutuallyExclusive", "multipleSelection". Defaults to "mutuallyExclusive".

  • options (NestedList, required): The list of available options to choose from. Each item defines label (Dynamic String, required) and value (String, required).

  • value (Dynamic String List, required): The list of currently selected values. This should be bound to a string array in the data model.

  • displayStyle (String Enum, optional): The display style of the component. Valid options: "checkbox", "chips". Defaults to "checkbox".

  • filterable (Boolean, optional): If true, displays a search input to filter the options. Defaults to false.

Summary

Nested types

Display style for a ChoicePicker.

A selectable option within a ChoicePicker component.

Selection behavior variant for a ChoicePicker.

Public functions

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

Emits the UI for this component.

Unit
@Composable
A2uiComponentScope.TypedContent(
    label: String?,
    options: List<A2uiBasicCatalogV1.ChoicePicker.Option>,
    value: List<String>,
    variant: A2uiBasicCatalogV1.ChoicePicker.Variant,
    displayStyle: A2uiBasicCatalogV1.ChoicePicker.DisplayStyle,
    filterable: Boolean,
    onValueChange: (List<String>) -> Unit,
    enabled: Boolean,
    accessibility: A2uiBasicCatalogV1.AccessibilityAttributes?,
    checks: List<A2uiBasicCatalogV1.CheckRule>,
    modifier: Modifier
)

Renders the ChoicePicker with its resolved property values.

open Boolean

Determines whether this component is ready to be rendered.

Public properties

open String

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

open String

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

open List<A2uiProperty<*>>

The list of typed properties expected by this component.

Public companion properties

AccessibilityProperty

Added in 1.0.0-alpha01
val AccessibilityPropertyDynamicA2uiProperty<A2uiBasicCatalogV1.AccessibilityAttributes>

The A2uiProperty for the "accessibility" property of a ChoicePicker.

ChecksProperty

Added in 1.0.0-alpha01
val ChecksPropertyDynamicA2uiProperty<List<A2uiBasicCatalogV1.CheckRule>>

The A2uiProperty for the "checks" property of a ChoicePicker. See CheckRule.

DisplayStyleProperty

Added in 1.0.0-alpha01
val DisplayStylePropertyStaticA2uiProperty<A2uiBasicCatalogV1.ChoicePicker.DisplayStyle>

The A2uiProperty for the "displayStyle" property of a ChoicePicker.

FilterableProperty

Added in 1.0.0-alpha01
val FilterablePropertyStaticA2uiProperty<Boolean>

The A2uiProperty for the "filterable" property of a ChoicePicker.

LabelProperty

Added in 1.0.0-alpha01
val LabelPropertyDynamicA2uiProperty<String>

The A2uiProperty for the "label" property of a ChoicePicker.

OptionsProperty

Added in 1.0.0-alpha01
val OptionsPropertyDynamicA2uiProperty<List<A2uiBasicCatalogV1.ChoicePicker.Option>>

The A2uiProperty for the "options" property of a ChoicePicker.

ValueProperty

Added in 1.0.0-alpha01
val ValuePropertyDynamicA2uiProperty<List<String>>

The A2uiProperty for the "value" property of a ChoicePicker.

VariantProperty

Added in 1.0.0-alpha01
val VariantPropertyStaticA2uiProperty<A2uiBasicCatalogV1.ChoicePicker.Variant>

The A2uiProperty for the "variant" property of a ChoicePicker.

Public functions

A2uiComponentScope.Content

@Composable
open 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.TypedContent

@Composable
fun A2uiComponentScope.TypedContent(
    label: String?,
    options: List<A2uiBasicCatalogV1.ChoicePicker.Option>,
    value: List<String>,
    variant: A2uiBasicCatalogV1.ChoicePicker.Variant,
    displayStyle: A2uiBasicCatalogV1.ChoicePicker.DisplayStyle,
    filterable: Boolean,
    onValueChange: (List<String>) -> Unit,
    enabled: Boolean,
    accessibility: A2uiBasicCatalogV1.AccessibilityAttributes?,
    checks: List<A2uiBasicCatalogV1.CheckRule>,
    modifier: Modifier
): Unit

Renders the ChoicePicker with its resolved property values.

Parameters
label: String?

the label for the group of options

options: List<A2uiBasicCatalogV1.ChoicePicker.Option>

the list of available options to choose from

value: List<String>

the list of currently selected values

variant: A2uiBasicCatalogV1.ChoicePicker.Variant

Variant selection behavior of the choice picker

displayStyle: A2uiBasicCatalogV1.ChoicePicker.DisplayStyle

DisplayStyle display style of the choice picker

filterable: Boolean

if true, displays a search input to filter the options

onValueChange: (List<String>) -> Unit

callback invoked when user selects or deselects options

enabled: Boolean

controls the enabled state of the choice picker. When false, this component will not respond to user input.

accessibility: A2uiBasicCatalogV1.AccessibilityAttributes?

accessibility attributes for the choice picker

checks: List<A2uiBasicCatalogV1.CheckRule>

validation rules for this choice picker. When any CheckRule.condition is false, the choice picker should indicate an error state. See CheckRule.

modifier: Modifier

Modifier to apply to the 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

open 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

open 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

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