# `BB.LiveView.Components`
[🔗](https://github.com/beam-bots/bb_liveview/blob/main/lib/bb/live_view/components.ex#L5)

Shared UI components for the BB Dashboard.

Provides reusable function components for building the dashboard interface.

# `badge`

Renders a status badge.

## Examples

    <.badge variant="success">Armed</.badge>
    <.badge variant="danger">Error</.badge>

## Attributes

* `variant` (`:string`) - Defaults to `"muted"`. Must be one of `"success"`, `"warning"`, `"danger"`, or `"muted"`.
## Slots

* `inner_block` (required)

# `button`

Renders a button.

## Examples

    <.button>Click me</.button>
    <.button variant="primary" disabled={true}>Submit</.button>

## Attributes

* `type` (`:string`) - Defaults to `"button"`.
* `variant` (`:string`) - Defaults to `"outline"`. Must be one of `"primary"`, `"danger"`, or `"outline"`.
* `disabled` (`:boolean`) - Defaults to `false`.
* `class` (`:string`) - Defaults to `nil`.
* Global attributes are accepted.
## Slots

* `inner_block` (required)

# `empty_state`

Renders an empty state message.

## Examples

    <.empty_state message="No events yet" />

## Attributes

* `message` (`:string`) (required)
* `icon` (`:string`) - Defaults to `nil`.

# `error_message`

Renders an error message.

## Examples

    <.error_message message="Failed to load robot data" />

## Attributes

* `message` (`:string`) (required)

# `spinner`

Renders a loading spinner.

# `widget`

Renders a widget card with header and body.

## Examples

    <.widget title="Safety">
      <p>Widget content here</p>
    </.widget>

    <.widget title="Joints" loading={true}>
      <p>Loading...</p>
    </.widget>

## Attributes

* `title` (`:string`) (required)
* `loading` (`:boolean`) - Defaults to `false`.
* `class` (`:string`) - Defaults to `nil`.
## Slots

* `inner_block` (required)
* `actions`

---

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