Radio Group
Um conjunto de opções mutuamente exclusivas, construído sobre radios nativos.
Instalação
O Shadwire segue o modelo open-code do shadcn/ui: o código-fonte do componente é copiado para a sua aplicação e passa a ser seu. Instale com a CLI:
O item radio-group
do registry instala estes arquivos:
-
app/components/ui_component.rb -
app/components/ui/radio_group_component.rb -
app/components/ui/radio_group/item_component.rb -
app/helpers/ui/radio_group_helper.rb -
vendor/shadwire/shadwire.css
Ainda não instalou a CLI?
gem install shadwire
e depois shadwire init.
Uso
Itens com o mesmo name:
formam o grupo — seleção única e navegação por setas vêm do navegador.
Rotule o grupo com aria: { label: }.
Ou renderize os componentes diretamente:
Composição
Cada item é um <input type="radio">
nativo; o name: é repetido por item
porque o ViewComponent não injeta contexto do pai.
Exemplos
Padrão
Radios nativos compartilhando o mesmo name: — a navegação por setas vem do navegador.
Item desabilitado
disabled: true desabilita um item específico sem afetar o grupo.
Com form_with
Use form.field_name para o name compartilhado e form.field_id(attr, valor) para cada id.
Referência da API
ui_radio_group(**options, &block) e
ui_radio_group_item(**options)
encapsulam os componentes correspondentes.
| Componente | Argumento | Padrão | Descrição |
|---|---|---|---|
RadioGroup |
class / class_name, **attrs |
— | Container role="radiogroup"; rotule com aria: { label: }. |
RadioGroup::Item |
name: (obrigatório) |
— | Nome compartilhado do grupo de radios. |
RadioGroup::Item |
value: (obrigatório) |
— | Valor submetido quando o item está selecionado. |
RadioGroup::Item |
checked / disabled |
false |
Estado inicial do input nativo. |
RadioGroup::Item |
**attrs |
{} |
Atributos HTML livres (id, data:, aria:, …). |