Ir al contenido
Superposiciones

AlertDialog

Confirmar algo que no se puede deshacer. Exige una respuesta.

import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogClose, … } from "sebs7n-ui/alert-dialog"

Ejemplos

Confirmar algo destructivo

`AlertDialogAction` no cierra sola: se envuelve en `AlertDialogClose` o se controla `open`.

import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogClose, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, AlertDialogTrigger } from "sebs7n-ui/alert-dialog"
import { Button } from "sebs7n-ui/button"

function Basico() {
  return (
    <AlertDialog>
      <AlertDialogTrigger render={<Button variant="destructive" />}>Eliminar factura</AlertDialogTrigger>
      <AlertDialogContent>
        <AlertDialogHeader>
          <AlertDialogTitle>¿Eliminar la factura 0012?</AlertDialogTitle>
          <AlertDialogDescription>
            Se borra del listado y del resumen del mes. No se puede deshacer.
          </AlertDialogDescription>
        </AlertDialogHeader>
        <AlertDialogFooter>
          <AlertDialogCancel />
          <AlertDialogClose render={<AlertDialogAction variant="destructive" />}>Eliminar</AlertDialogClose>
        </AlertDialogFooter>
      </AlertDialogContent>
    </AlertDialog>
  )
}

Props

Generadas del TypeScript del paquete. Solo las props propias: las heredadas del primitivo de Base UI o del elemento HTML están en la línea «hereda de».

AlertDialog

Hereda las props de AlertDialog.Root.

Sin props propias: pasa todo al primitivo.

AlertDialogAction

PropTipoPor defectoDescripción
loadingboolean
shape"default" | "pill"La forma del botón. pill es rounded-full con un escalón más de padding horizontal: en una curva completa, el texto que empieza donde empezaba en un rectángulo queda pegado al borde. Solo para los CTA de un hero o de una sección de marketing. Es la regla de vercel.com, donde los dos CTA del hero son píldoras y el resto del sitio no: mezclar las dos formas en la misma pantalla se ve descuidado, así que en el chrome de una app —nav, tablas, formularios, diálogos— no va nunca.
size"sm" | "md" | "lg" | "icon-sm" | "icon-md" | "icon-lg"
variant"default" | "destructive""default"
classNamestring

AlertDialogCancel

Hereda las props de AlertDialog.Close.

PropTipoPor defectoDescripción
size"sm" | "md" | "lg" | "icon-sm" | "icon-md" | "icon-lg"
classNamestring

AlertDialogClose

Hereda las props de AlertDialog.Close.

Sin props propias: pasa todo al primitivo.

AlertDialogContent

Hereda las props de AlertDialog.Popup.

PropTipoPor defectoDescripción
classNamestring

AlertDialogDescription

Hereda las props de AlertDialog.Description.

PropTipoPor defectoDescripción
classNamestring

AlertDialogFooter

Hereda las props de <div>.

PropTipoPor defectoDescripción
classNamestring

AlertDialogHeader

Hereda las props de <div>.

PropTipoPor defectoDescripción
classNamestring

AlertDialogOverlay

Hereda las props de AlertDialog.Backdrop.

PropTipoPor defectoDescripción
classNamestring

AlertDialogTitle

Hereda las props de AlertDialog.Title.

PropTipoPor defectoDescripción
classNamestring

AlertDialogTrigger

Hereda las props de AlertDialog.Trigger.

Sin props propias: pasa todo al primitivo.

Teclado

Escape
Cierra (equivale a cancelar).
Tab
Atrapado entre las acciones.
Click en el fondo
No cierra: es la diferencia con Dialog.

Accesibilidad

  • Emite role="alertdialog", que el lector anuncia con más urgencia que un diálogo común.
  • No tiene botón X: la única salida es una de las dos acciones.
  • El foco arranca en «Cancelar», no en la acción destructiva.

Reglas de uso

  • `AlertDialogAction` no cierra sola — a propósito, para poder mostrar loading mientras corre la acción. O controlás open, o la envolvés: <AlertDialogClose render={<AlertDialogAction variant="destructive" />}>Eliminar</AlertDialogClose>.
  • AlertDialogCancel sí cierra sola.
  • El título es la pregunta («¿Eliminar la factura 0012?»), no «¿Estás seguro?».
  • El botón dice qué va a pasar («Eliminar»), no «Aceptar».

Relacionados