Dialog
Janela modal sobre a página para tarefas focadas (formulários curtos, confirmações, questionários). Dialog, DialogTrigger, DialogContent (com botão fechar), DialogHeader, DialogTitle, DialogDescription, DialogFooter e DialogClose.
Exemplos
Interaja com o componente e copie o código de cada exemplo.
Formulário
import {
Dialog,
DialogClose,
DialogContent,
DialogDescription,
DialogFooter,
DialogHeader,
DialogTitle,
DialogTrigger,
} from "@t2-educacao/midas";Uso
<Dialog>
<DialogTrigger asChild>
<Button variant="outline">Editar perfil</Button>
</DialogTrigger>
<DialogContent>
<DialogHeader>
<DialogTitle>Editar perfil</DialogTitle>
<DialogDescription>Altere seus dados e salve.</DialogDescription>
</DialogHeader>
<Field>
<FieldLabel htmlFor="nome">Nome</FieldLabel>
<Input id="nome" defaultValue="Ana Souza" />
</Field>
<DialogFooter>
<DialogClose asChild>
<Button variant="outline">Cancelar</Button>
</DialogClose>
<Button>Salvar</Button>
</DialogFooter>
</DialogContent>
</Dialog>Componentes
| Componente | O que é |
|---|---|
Dialog | Raiz (open, defaultOpen, onOpenChange) |
DialogTrigger | Abre o diálogo (use asChild) |
DialogContent | A janela (largura máxima de 448px). showCloseButton={false} esconde o X |
DialogHeader / DialogTitle / DialogDescription | Cabeçalho. O título dá nome ao diálogo |
DialogFooter | Rodapé cinza para as ações |
DialogClose | Fecha o diálogo |
Exemplos
Controlado
const [aberto, setAberto] = useState(false);
<Dialog open={aberto} onOpenChange={setAberto}>
<DialogContent>...</DialogContent>
</Dialog>Com Questionnaire
Veja o exemplo "Dialog" em Questionnaire.
Acessibilidade
- Foco fica preso dentro do diálogo e volta ao gatilho ao fechar.
Escfecha. O fundo fica inerte para leitores de tela.DialogTitleé obrigatório (pode ficar visualmente escondido comclassName="sr-only").
Não faça
- Abrir diálogo dentro de diálogo.
- Usar diálogo para mensagens que não exigem ação: use Toast.
DatePicker
Campo que abre um calendário em popover. Data única ou período (range), formatação em pt-BR, dropdown de mês e ano (data de nascimento), dias desabilitados, estado inválido e input hidden com data ISO para formulários.
DropdownMenu
Menu de ações aberto por um botão. Itens com ícone e atalho, labels, separadores, submenus, itens de checkbox e radio, item destrutivo e itens desabilitados.