Design System

Alert Dialog

Diálogo modal de confirmação que interrompe o fluxo do usuário para ações irreversíveis. Construído sobre Radix UI AlertDialog. Diferente do Dialog, não permite fechar clicando fora.

import {
  AlertDialog, AlertDialogAction, AlertDialogCancel,
  AlertDialogContent, AlertDialogDescription,
  AlertDialogFooter, AlertDialogHeader,
  AlertDialogTitle, AlertDialogTrigger,
} from "@workspace/ui/components/alert-dialog";

<AlertDialog>
  <AlertDialogTrigger asChild>
    <Button variant="destructive">Excluir</Button>
  </AlertDialogTrigger>
  <AlertDialogContent>
    <AlertDialogHeader>
      <AlertDialogTitle>Tem certeza?</AlertDialogTitle>
      <AlertDialogDescription>
        Essa ação não pode ser desfeita.
      </AlertDialogDescription>
    </AlertDialogHeader>
    <AlertDialogFooter>
      <AlertDialogCancel>Cancelar</AlertDialogCancel>
      <AlertDialogAction>Confirmar</AlertDialogAction>
    </AlertDialogFooter>
  </AlertDialogContent>
</AlertDialog>

Confirmação de exclusão

Padrão SYSGO: ícone circular, título, descrição com nome em destaque e botões lado a lado.

DeleteConfirmationDialog

Componente pronto do @workspace/ui que encapsula o padrão acima com loading e tratamento de erros.

import { DeleteConfirmationDialog } from "@workspace/ui/components/delete-confirmation-dialog";

<DeleteConfirmationDialog
  open={open}
  onOpenChange={setOpen}
  onConfirm={handleDelete}
  itemName="Claudia Mendes LTDA"
  itemLabel="a consultora"
  isLoading={isDeleting}
/>

Cancelamento de pedido

Mesmo padrão visual adaptado para cancelamento.

Quando usar cada componente

Padrão de uso de modais no SYSGO.

ComponenteQuando usarExemplos
SheetCriar, editar e visualizar detalhes de registrosCriar consultora, editar produto, ver detalhes do pedido
AlertDialogConfirmações de ações irreversíveis e destrutivasExcluir registro, cancelar pedido, revogar acesso

Regra: Sheet para criar/editar/visualizar detalhes, AlertDialog apenas para confirmações destrutivas. Não usamos Dialog para formulários — o Sheet lateral oferece mais espaço e melhor UX nos portais.

API Reference

PropTypeDefaultDescrição
openbooleanControla o estado aberto/fechado
onOpenChange(open: boolean) => voidCallback quando o estado muda
AlertDialogActionReactNodeBotão de confirmação (usa estilo Button padrão)
AlertDialogCancelReactNodeBotão de cancelamento (usa estilo Button outline)