# `FrappeUIPhx.Components.NavItem`
[🔗](https://github.com/moacirbishopcamata/frappe_ui_phx/blob/v0.3.1/lib/frappe_ui_phx/components/nav_item.ex#L1)

Item de navegação com ícone e rótulo (Tabs, TabButtons, Sidebar, SidebarRail,
SettingsDialog, MobileShell). Navega por `patch`/`navigate`/`href` ou dispara `click`
(evento ou `%JS{}`) — a decisão "link ou botão" é de `FrappeUIPhx.Components.Action`.
O estado ativo é decidido por quem chama (assign do servidor).

Vocabulário **único** dos slots de item (todos os componentes de navegação o aceitam):
`id`, `label`, `icon`, `patch`, `navigate`, `href`, `click`.

# `known_active`

```elixir
@spec known_active(String.t() | nil, [String.t()]) :: String.t() | nil
```

Item ativo seguro: devolve `active` se for um dos `ids`, senão `nil` (nenhum ativo).

`active` costuma vir da URL (`?tab=...`); valor desconhecido é entrada de usuário e
não pode derrubar a página.

# `nav_item`

## Attributes

* `item` (`:map`) (required) - id, label, icon, patch, navigate, href, click.
* `active` (`:boolean`) - Defaults to `false`.
* `class` (`:any`) - Defaults to `nil`.
* `icon_only` (`:boolean`) - esconde o rótulo (continua acessível). Defaults to `false`.
* `stacked` (`:boolean`) - ícone acima do rótulo. Defaults to `false`.
* `role` (`:string`) - Defaults to `nil`.
* Global attributes are accepted. ex.: aria-controls.

---

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