# `NervesGateWeb.CoreComponents`

Reusable, stateless controls and surfaces for the local gateway UI.

# `back_link`

## Attributes

* `navigate` (`:string`) (required)
## Slots

* `inner_block` (required)

# `button`

## Attributes

* `href` (`:string`) - Defaults to `nil`.
* `type` (`:string`) - Defaults to `"button"`.
* `variant` (`:string`) - Defaults to `"primary"`. Must be one of `"primary"`, `"secondary"`, `"quiet"`, or `"danger"`.
* `icon` (`:string`) - Defaults to `nil`.
* `class` (`:string`) - Defaults to `nil`.
* `loading` (`:boolean`) - Defaults to `false`.
* `disabled` (`:boolean`) - Defaults to `false`.
* Global attributes are accepted. Supports all globals plus: `["form", "name", "value", "target", "rel", "referrerpolicy"]`.
## Slots

* `inner_block`

# `choice_group`

A native, keyboard-accessible radio group. Choices stay visible; no popup or custom JS.
## Attributes

* `field` (`Phoenix.HTML.FormField`) (required)
* `label` (`:string`) (required)
* `description` (`:string`) - Defaults to `nil`.
## Slots

* `option` (required) - Accepts attributes:

  * `value` (`:string`) (required)
  * `title` (`:string`) (required)
  * `description` (`:string`)
  * `icon` (`:string`)

# `field`

## Attributes

* `field` (`Phoenix.HTML.FormField`) (required)
* `label` (`:string`) (required)
* `help` (`:string`) - Defaults to `nil`.
* Global attributes are accepted. Supports all globals plus: `["required", "placeholder", "autocomplete", "inputmode", "disabled"]`.

# `icon`

## Attributes

* `name` (`:string`) (required)
* `class` (`:string`) - Defaults to `nil`.

# `menu`

An icon button that opens a short list of buttons or links. LiveView closes it.
## Attributes

* `id` (`:string`) (required)
* `label` (`:string`) (required)
## Slots

* `inner_block` (required)

# `navigation_card`

## Attributes

* `title` (`:string`) (required)
* `icon` (`:string`) (required)
* `href` (`:string`) (required)
* `status` (`:string`) - Defaults to `nil`.
* `tone` (`:string`) - Defaults to `"neutral"`.
* Global attributes are accepted.
## Slots

* `inner_block` (required)

# `notice`

## Attributes

* `title` (`:string`) - Defaults to `nil`.
* `tone` (`:string`) - Defaults to `"neutral"`. Must be one of `"neutral"`, `"warning"`, or `"good"`.
* `icon` (`:string`) - Defaults to `"info"`.
* Global attributes are accepted.
## Slots

* `inner_block` (required)

# `notifications`

## Attributes

* `flash` (`:map`) (required)

# `page_header`

## Attributes

* `eyebrow` (`:string`) - Defaults to `nil`.
* `title` (`:string`) (required)
* `description` (`:string`) - Defaults to `nil`.
## Slots

* `actions`

# `panel`

## Attributes

* `title` (`:string`) (required)
* `description` (`:string`) - Defaults to `nil`.
* `icon` (`:string`) - Defaults to `nil`.
* `class` (`:string`) - Defaults to `nil`.
* Global attributes are accepted.
## Slots

* `meta`
* `inner_block` (required)
* `footer`

# `setting_row`

## Attributes

* `label` (`:string`) (required)
* `description` (`:string`) - Defaults to `nil`.
## Slots

* `inner_block` (required)

# `status`

## Attributes

* `tone` (`:string`) - Defaults to `"neutral"`. Must be one of `"neutral"`, `"good"`, `"warning"`, or `"busy"`.
## Slots

* `inner_block` (required)

# `theme_toggle`

Phoenix's generated theme toggle; the root layout's script applies the choice.

---

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