# `A2UIAgent.Builder.Basic`
[🔗](https://github.com/a2ui-elixir/a2ui/blob/v0.1.1/umbrella/apps/a2ui_agent/lib/a2ui_agent/builder/basic.ex#L1)

A function for each component of the basic catalog, named after it in
snake case: `text/1`, `text_field/1`, `date_time_input/1` and so on.
Each one is `A2UIAgent.Builder.component/2` with the component's name.

    iex> import A2UIAgent.Builder.Basic
    iex> text(text: "Hello", variant: "caption")
    %A2UIAgent.Builder.Component{component: "Text", props: [{"text", "Hello"}, {"variant", "caption"}]}

The basic catalogs of protocol v0.9 and v1.0 have the same components;
their properties differ a little. Pass the catalog you write for to
`A2UIAgent.Builder.flatten/2` (`:catalog`) to fill in its defaults and
check each component against it.

# `audio_player`
*since 0.1.0* 

```elixir
@spec audio_player(A2UIAgent.Builder.props()) :: A2UIAgent.Builder.Component.t()
```

A `AudioPlayer` component; see `A2UIAgent.Builder.component/2`.

# `button`
*since 0.1.0* 

```elixir
@spec button(A2UIAgent.Builder.props()) :: A2UIAgent.Builder.Component.t()
```

A `Button` component; see `A2UIAgent.Builder.component/2`.

# `card`
*since 0.1.0* 

```elixir
@spec card(A2UIAgent.Builder.props()) :: A2UIAgent.Builder.Component.t()
```

A `Card` component; see `A2UIAgent.Builder.component/2`.

# `check_box`
*since 0.1.0* 

```elixir
@spec check_box(A2UIAgent.Builder.props()) :: A2UIAgent.Builder.Component.t()
```

A `CheckBox` component; see `A2UIAgent.Builder.component/2`.

# `choice_picker`
*since 0.1.0* 

```elixir
@spec choice_picker(A2UIAgent.Builder.props()) :: A2UIAgent.Builder.Component.t()
```

A `ChoicePicker` component; see `A2UIAgent.Builder.component/2`.

# `column`
*since 0.1.0* 

```elixir
@spec column(A2UIAgent.Builder.props()) :: A2UIAgent.Builder.Component.t()
```

A `Column` component; see `A2UIAgent.Builder.component/2`.

# `components`
*since 0.1.0* 

```elixir
@spec components() :: [String.t()]
```

The names of the basic catalog's components, in catalog order.

# `date_time_input`
*since 0.1.0* 

```elixir
@spec date_time_input(A2UIAgent.Builder.props()) :: A2UIAgent.Builder.Component.t()
```

A `DateTimeInput` component; see `A2UIAgent.Builder.component/2`.

# `divider`
*since 0.1.0* 

```elixir
@spec divider(A2UIAgent.Builder.props()) :: A2UIAgent.Builder.Component.t()
```

A `Divider` component; see `A2UIAgent.Builder.component/2`.

# `icon`
*since 0.1.0* 

```elixir
@spec icon(A2UIAgent.Builder.props()) :: A2UIAgent.Builder.Component.t()
```

A `Icon` component; see `A2UIAgent.Builder.component/2`.

# `image`
*since 0.1.0* 

```elixir
@spec image(A2UIAgent.Builder.props()) :: A2UIAgent.Builder.Component.t()
```

A `Image` component; see `A2UIAgent.Builder.component/2`.

# `list`
*since 0.1.0* 

```elixir
@spec list(A2UIAgent.Builder.props()) :: A2UIAgent.Builder.Component.t()
```

A `List` component; see `A2UIAgent.Builder.component/2`.

# `modal`
*since 0.1.0* 

```elixir
@spec modal(A2UIAgent.Builder.props()) :: A2UIAgent.Builder.Component.t()
```

A `Modal` component; see `A2UIAgent.Builder.component/2`.

# `row`
*since 0.1.0* 

```elixir
@spec row(A2UIAgent.Builder.props()) :: A2UIAgent.Builder.Component.t()
```

A `Row` component; see `A2UIAgent.Builder.component/2`.

# `slider`
*since 0.1.0* 

```elixir
@spec slider(A2UIAgent.Builder.props()) :: A2UIAgent.Builder.Component.t()
```

A `Slider` component; see `A2UIAgent.Builder.component/2`.

# `tabs`
*since 0.1.0* 

```elixir
@spec tabs(A2UIAgent.Builder.props()) :: A2UIAgent.Builder.Component.t()
```

A `Tabs` component; see `A2UIAgent.Builder.component/2`.

# `text`
*since 0.1.0* 

```elixir
@spec text(A2UIAgent.Builder.props()) :: A2UIAgent.Builder.Component.t()
```

A `Text` component; see `A2UIAgent.Builder.component/2`.

# `text_field`
*since 0.1.0* 

```elixir
@spec text_field(A2UIAgent.Builder.props()) :: A2UIAgent.Builder.Component.t()
```

A `TextField` component; see `A2UIAgent.Builder.component/2`.

# `video`
*since 0.1.0* 

```elixir
@spec video(A2UIAgent.Builder.props()) :: A2UIAgent.Builder.Component.t()
```

A `Video` component; see `A2UIAgent.Builder.component/2`.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
