# A2uiBasicCatalogV1.TextField

Artifact: [androidx.a2ui.compose:compose-ui](https://developer.android.com/jetpack/androidx/releases/a2ui-compose) [View Source](https://cs.android.com/search?q=file:androidx/a2ui/compose/ui/catalog/A2uiBasicCatalogV1.kt+class:androidx.a2ui.compose.ui.catalog.A2uiBasicCatalogV1.TextField) Added in [1.0.0-alpha02](https://developer.android.com/jetpack/androidx/releases/a2ui-compose#1.0.0-alpha02)


```
interface A2uiBasicCatalogV1.TextField : A2uiComponent
```

<br />

*** ** * ** ***

The A2UI `"TextField"` component for user text input.

**Schema Properties:**

- `accessibility` (Dynamic Custom, optional): Accessibility attributes for the text field.

- `weight` (Number, optional): The relative weight of this component within a Row or Column. This is similar to the CSS 'flex-grow' property. May only be set when the component is a direct descendant of a Row or Column. See `https://developer.android.com/reference/kotlin/androidx/a2ui/compose/ui/catalog/A2uiBasicCatalogV1#WeightProperty()`.

- `checks` (Dynamic Custom, optional): Client-side check validation rules for the text field. See `https://developer.android.com/reference/kotlin/androidx/a2ui/compose/ui/catalog/A2uiBasicCatalogV1.CheckRule`.

- `label` (Dynamic String, required): The text label for the input field.

- `value` (Dynamic String, optional): The value of the text field.

- `variant` (String Enum, optional): The type of input field to display. Valid options: `"longText"`, `"number"`, `"shortText"`, `"obscured"`. Defaults to `"shortText"`.

- `validationRegexp` (String, optional): A regular expression used for client-side validation of the input.

## Summary

| ### Nested types |
|---|
| `enum https://developer.android.com/reference/kotlin/androidx/a2ui/compose/ui/catalog/A2uiBasicCatalogV1.TextField.Variant : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-enum/index.html<https://developer.android.com/reference/kotlin/androidx/a2ui/compose/ui/catalog/A2uiBasicCatalogV1.TextField.Variant>` Input style variant for a `https://developer.android.com/reference/kotlin/androidx/a2ui/compose/ui/catalog/A2uiBasicCatalogV1.TextField`. |

| ### Public companion properties |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/a2ui/compose/runtime/DynamicA2uiProperty<https://developer.android.com/reference/kotlin/androidx/a2ui/compose/ui/catalog/A2uiBasicCatalogV1.AccessibilityAttributes>` | `https://developer.android.com/reference/kotlin/androidx/a2ui/compose/ui/catalog/A2uiBasicCatalogV1.TextField#AccessibilityProperty()` The `https://developer.android.com/reference/kotlin/androidx/a2ui/compose/runtime/A2uiProperty` for the `"accessibility"` property of a `https://developer.android.com/reference/kotlin/androidx/a2ui/compose/ui/catalog/A2uiBasicCatalogV1.TextField`. |
| `https://developer.android.com/reference/kotlin/androidx/a2ui/compose/runtime/DynamicA2uiProperty<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://developer.android.com/reference/kotlin/androidx/a2ui/compose/ui/catalog/A2uiBasicCatalogV1.CheckRule>>` | `https://developer.android.com/reference/kotlin/androidx/a2ui/compose/ui/catalog/A2uiBasicCatalogV1.TextField#ChecksProperty()` The `https://developer.android.com/reference/kotlin/androidx/a2ui/compose/runtime/A2uiProperty` for the `"checks"` property of a `https://developer.android.com/reference/kotlin/androidx/a2ui/compose/ui/catalog/A2uiBasicCatalogV1.TextField`. |
| `https://developer.android.com/reference/kotlin/androidx/a2ui/compose/runtime/DynamicA2uiProperty<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html>` | `https://developer.android.com/reference/kotlin/androidx/a2ui/compose/ui/catalog/A2uiBasicCatalogV1.TextField#LabelProperty()` The `https://developer.android.com/reference/kotlin/androidx/a2ui/compose/runtime/A2uiProperty` for the `"label"` property of a `https://developer.android.com/reference/kotlin/androidx/a2ui/compose/ui/catalog/A2uiBasicCatalogV1.TextField`. |
| `https://developer.android.com/reference/kotlin/androidx/a2ui/compose/runtime/StaticA2uiProperty<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html>` | `https://developer.android.com/reference/kotlin/androidx/a2ui/compose/ui/catalog/A2uiBasicCatalogV1.TextField#ValidationRegexpProperty()` The `https://developer.android.com/reference/kotlin/androidx/a2ui/compose/runtime/A2uiProperty` for the `"validationRegexp"` property of a `https://developer.android.com/reference/kotlin/androidx/a2ui/compose/ui/catalog/A2uiBasicCatalogV1.TextField`. |
| `https://developer.android.com/reference/kotlin/androidx/a2ui/compose/runtime/DynamicA2uiProperty<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html>` | `https://developer.android.com/reference/kotlin/androidx/a2ui/compose/ui/catalog/A2uiBasicCatalogV1.TextField#ValueProperty()` The `https://developer.android.com/reference/kotlin/androidx/a2ui/compose/runtime/A2uiProperty` for the `"value"` property of a `https://developer.android.com/reference/kotlin/androidx/a2ui/compose/ui/catalog/A2uiBasicCatalogV1.TextField`. |
| `https://developer.android.com/reference/kotlin/androidx/a2ui/compose/runtime/StaticA2uiProperty<https://developer.android.com/reference/kotlin/androidx/a2ui/compose/ui/catalog/A2uiBasicCatalogV1.TextField.Variant>` | `https://developer.android.com/reference/kotlin/androidx/a2ui/compose/ui/catalog/A2uiBasicCatalogV1.TextField#VariantProperty()` The `https://developer.android.com/reference/kotlin/androidx/a2ui/compose/runtime/A2uiProperty` for the `"variant"` property of a `https://developer.android.com/reference/kotlin/androidx/a2ui/compose/ui/catalog/A2uiBasicCatalogV1.TextField`. |

| ### Public functions |
|---|---|
| `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/a2ui/compose/runtime/A2uiComponentScope.https://developer.android.com/reference/kotlin/androidx/a2ui/compose/ui/catalog/A2uiBasicCatalogV1.TextField#(androidx.a2ui.compose.runtime.A2uiComponentScope).Content(androidx.a2ui.compose.runtime.A2uiComponentProperties,androidx.compose.ui.Modifier)( properties: https://developer.android.com/reference/kotlin/androidx/a2ui/compose/runtime/A2uiComponentProperties, modifier: https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier )` Emits the UI for this component. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/a2ui/compose/runtime/A2uiComponentScope.https://developer.android.com/reference/kotlin/androidx/a2ui/compose/ui/catalog/A2uiBasicCatalogV1.TextField#(androidx.a2ui.compose.runtime.A2uiComponentScope).TypedContent(kotlin.String,kotlin.String,androidx.a2ui.compose.ui.catalog.A2uiBasicCatalogV1.TextField.Variant,kotlin.String,kotlin.Function1,kotlin.Boolean,androidx.a2ui.compose.ui.catalog.A2uiBasicCatalogV1.AccessibilityAttributes,kotlin.collections.List,androidx.compose.ui.Modifier)( label: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html, value: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html?, variant: https://developer.android.com/reference/kotlin/androidx/a2ui/compose/ui/catalog/A2uiBasicCatalogV1.TextField.Variant, validationRegexp: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html?, onValueChange: (https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html, enabled: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, accessibility: https://developer.android.com/reference/kotlin/androidx/a2ui/compose/ui/catalog/A2uiBasicCatalogV1.AccessibilityAttributes?, checks: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://developer.android.com/reference/kotlin/androidx/a2ui/compose/ui/catalog/A2uiBasicCatalogV1.CheckRule>, modifier: https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier )` Renders the `https://developer.android.com/reference/kotlin/androidx/a2ui/compose/ui/catalog/A2uiBasicCatalogV1.TextField` with its resolved property values. |
| `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/a2ui/compose/runtime/A2uiComponentScope.https://developer.android.com/reference/kotlin/androidx/a2ui/compose/ui/catalog/A2uiBasicCatalogV1.TextField#(androidx.a2ui.compose.runtime.A2uiComponentScope).isReady(androidx.a2ui.compose.runtime.A2uiComponentProperties)(properties: https://developer.android.com/reference/kotlin/androidx/a2ui/compose/runtime/A2uiComponentProperties)` Determines whether this component is ready to be rendered. |

| ### Public properties |
|---|---|
| `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | `https://developer.android.com/reference/kotlin/androidx/a2ui/compose/ui/catalog/A2uiBasicCatalogV1.TextField#description()` A semantic description of the component's behavior and purpose. |
| `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | `https://developer.android.com/reference/kotlin/androidx/a2ui/compose/ui/catalog/A2uiBasicCatalogV1.TextField#name()` The unique string identifier for this component type (e.g., `"Text"`, `"Button"`). |
| `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://developer.android.com/reference/kotlin/androidx/a2ui/compose/runtime/A2uiProperty<*>>` | `https://developer.android.com/reference/kotlin/androidx/a2ui/compose/ui/catalog/A2uiBasicCatalogV1.TextField#properties()` The list of typed properties expected by this component. |

## Public companion properties

### AccessibilityProperty

Added in [1.0.0-alpha02](https://developer.android.com/jetpack/androidx/releases/a2ui-compose#1.0.0-alpha02)

```
val AccessibilityProperty: DynamicA2uiProperty<A2uiBasicCatalogV1.AccessibilityAttributes>
```

The `https://developer.android.com/reference/kotlin/androidx/a2ui/compose/runtime/A2uiProperty` for the `"accessibility"` property of a `https://developer.android.com/reference/kotlin/androidx/a2ui/compose/ui/catalog/A2uiBasicCatalogV1.TextField`.

### ChecksProperty

Added in [1.0.0-alpha02](https://developer.android.com/jetpack/androidx/releases/a2ui-compose#1.0.0-alpha02)

```
val ChecksProperty: DynamicA2uiProperty<List<A2uiBasicCatalogV1.CheckRule>>
```

The `https://developer.android.com/reference/kotlin/androidx/a2ui/compose/runtime/A2uiProperty` for the `"checks"` property of a `https://developer.android.com/reference/kotlin/androidx/a2ui/compose/ui/catalog/A2uiBasicCatalogV1.TextField`. See `https://developer.android.com/reference/kotlin/androidx/a2ui/compose/ui/catalog/A2uiBasicCatalogV1.CheckRule`.

### LabelProperty

Added in [1.0.0-alpha02](https://developer.android.com/jetpack/androidx/releases/a2ui-compose#1.0.0-alpha02)

```
val LabelProperty: DynamicA2uiProperty<String>
```

The `https://developer.android.com/reference/kotlin/androidx/a2ui/compose/runtime/A2uiProperty` for the `"label"` property of a `https://developer.android.com/reference/kotlin/androidx/a2ui/compose/ui/catalog/A2uiBasicCatalogV1.TextField`.

### ValidationRegexpProperty

Added in [1.0.0-alpha02](https://developer.android.com/jetpack/androidx/releases/a2ui-compose#1.0.0-alpha02)

```
val ValidationRegexpProperty: StaticA2uiProperty<String>
```

The `https://developer.android.com/reference/kotlin/androidx/a2ui/compose/runtime/A2uiProperty` for the `"validationRegexp"` property of a `https://developer.android.com/reference/kotlin/androidx/a2ui/compose/ui/catalog/A2uiBasicCatalogV1.TextField`.

### ValueProperty

Added in [1.0.0-alpha02](https://developer.android.com/jetpack/androidx/releases/a2ui-compose#1.0.0-alpha02)

```
val ValueProperty: DynamicA2uiProperty<String>
```

The `https://developer.android.com/reference/kotlin/androidx/a2ui/compose/runtime/A2uiProperty` for the `"value"` property of a `https://developer.android.com/reference/kotlin/androidx/a2ui/compose/ui/catalog/A2uiBasicCatalogV1.TextField`.

### VariantProperty

Added in [1.0.0-alpha02](https://developer.android.com/jetpack/androidx/releases/a2ui-compose#1.0.0-alpha02)

```
val VariantProperty: StaticA2uiProperty<A2uiBasicCatalogV1.TextField.Variant>
```

The `https://developer.android.com/reference/kotlin/androidx/a2ui/compose/runtime/A2uiProperty` for the `"variant"` property of a `https://developer.android.com/reference/kotlin/androidx/a2ui/compose/ui/catalog/A2uiBasicCatalogV1.TextField`.

## Public functions

### A2uiComponentScope.Content

Artifact: [androidx.a2ui.compose:compose-ui](https://developer.android.com/jetpack/androidx/releases/a2ui-compose) [View Source](https://cs.android.com/search?q=file:androidx/a2ui/compose/ui/catalog/A2uiBasicCatalogV1.kt+function:Content)

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

Emits the UI for this component.

This function is invoked within the `https://developer.android.com/reference/kotlin/androidx/a2ui/compose/runtime/A2uiComponentScope`, which provides access to extensions for evaluating reactive data bindings, rendering nested children, dispatching user actions, and reporting runtime errors.

| Parameters |
|---|---|
| `properties: https://developer.android.com/reference/kotlin/androidx/a2ui/compose/runtime/A2uiComponentProperties` | The stable properties wrapper from which to extract static payloads or bind dynamic data paths. |
| `modifier: https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier` | The `https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier` applied to the root of this component's layout. |

### A2uiComponentScope.TypedContent

Artifact: [androidx.a2ui.compose:compose-ui](https://developer.android.com/jetpack/androidx/releases/a2ui-compose) [View Source](https://cs.android.com/search?q=file:androidx/a2ui/compose/ui/catalog/A2uiBasicCatalogV1.kt+function:TypedContent)

```
@Composable
fun A2uiComponentScope.TypedContent(
    label: String,
    value: String?,
    variant: A2uiBasicCatalogV1.TextField.Variant,
    validationRegexp: String?,
    onValueChange: (String) -> Unit,
    enabled: Boolean,
    accessibility: A2uiBasicCatalogV1.AccessibilityAttributes?,
    checks: List<A2uiBasicCatalogV1.CheckRule>,
    modifier: Modifier
): Unit
```

Renders the `https://developer.android.com/reference/kotlin/androidx/a2ui/compose/ui/catalog/A2uiBasicCatalogV1.TextField` with its resolved property values.

| Parameters |
|---|---|
| `label: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html` | the text label for the input field |
| `value: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html?` | the current text value of the field, or `null` if not set |
| `variant: https://developer.android.com/reference/kotlin/androidx/a2ui/compose/ui/catalog/A2uiBasicCatalogV1.TextField.Variant` | `https://developer.android.com/reference/kotlin/androidx/a2ui/compose/ui/catalog/A2uiBasicCatalogV1.TextField.Variant` input style of the text field |
| `validationRegexp: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html?` | an optional regex pattern for client-side input validation, or `null` if none |
| `onValueChange: (https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | callback invoked when the user updates the text in the field |
| `enabled: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | controls the enabled state of the text field. When `false`, this component will not respond to user input. |
| `accessibility: https://developer.android.com/reference/kotlin/androidx/a2ui/compose/ui/catalog/A2uiBasicCatalogV1.AccessibilityAttributes?` | accessibility attributes for the text field |
| `checks: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://developer.android.com/reference/kotlin/androidx/a2ui/compose/ui/catalog/A2uiBasicCatalogV1.CheckRule>` | validation rules for this text field. When any `https://developer.android.com/reference/kotlin/androidx/a2ui/compose/ui/catalog/A2uiBasicCatalogV1.CheckRule#condition()` is false, the text field should display an error state and show the failing `https://developer.android.com/reference/kotlin/androidx/a2ui/compose/ui/catalog/A2uiBasicCatalogV1.CheckRule#message()`. See `https://developer.android.com/reference/kotlin/androidx/a2ui/compose/ui/catalog/A2uiBasicCatalogV1.CheckRule`. |
| `modifier: https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier` to apply to the layout |

### A2uiComponentScope.isReady

Artifact: [androidx.a2ui.compose:compose-ui](https://developer.android.com/jetpack/androidx/releases/a2ui-compose) [View Source](https://cs.android.com/search?q=file:androidx/a2ui/compose/ui/catalog/A2uiBasicCatalogV1.kt+function: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 `https://developer.android.com/reference/kotlin/androidx/a2ui/compose/runtime/A2uiComponentState.Loading` state to the `https://developer.android.com/reference/kotlin/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: https://developer.android.com/reference/kotlin/androidx/a2ui/compose/runtime/A2uiComponentProperties` | The stable properties wrapper provided by the A2UI protocol. |

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `true` if the component is fully ready to be composed, `false` if it is still loading. |

## Public properties

### description

```
open val description: String
```

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 name: String
```

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 `https://developer.android.com/reference/kotlin/androidx/a2ui/compose/ui/A2uiCatalog`.

### properties

```
open val properties: List<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 `https://developer.android.com/reference/kotlin/androidx/a2ui/compose/runtime/A2uiComponentProperties` at runtime.