From 6bb9845c8c18bc73519313a9f638cb5317ab907c Mon Sep 17 00:00:00 2001 From: David Date: Thu, 8 Oct 2026 14:24:10 +0200 Subject: [PATCH] =?UTF-8?q?docs:=20a=C3=B1adir=20directrices=20sobre=20di?= =?UTF-8?q?=C3=A1logos,=20modales=20y=20ventanas=20emergentes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AGENTS.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/AGENTS.md b/AGENTS.md index 333144b..3773ee9 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -212,6 +212,19 @@ Estas reglas complementan las convenciones y documentos de arquitectura existent - Mantener accesibilidad semántica: elemento HTML correcto, etiquetas, relaciones entre controles, navegación por teclado y foco. - No implementar manualmente primitivas que shadcn/ui o Base UI ya proporcionen adecuadamente. +#### Diálogos, modales y ventanas emergentes + +- Páginas y listados no deben implementar directamente el contenido de ventanas modales funcionales. Los diálogos de alta, edición, confirmación, selección o detalle son componentes independientes. +- Toda ventana modal, cuadro de diálogo o formulario modal con contenido y responsabilidad propios debe extraerse a un componente React independiente y vivir en su propio fichero `.tsx`. +- Esta regla se aplica especialmente a componentes construidos con primitivas de shadcn/ui como `Dialog`, `AlertDialog`, `Sheet`, `Drawer` o componentes propios como `FormDialog`, pero no depende del nombre concreto utilizado. +- Si un bloque representa una interacción modal reconocible por sí misma —por ejemplo alta, edición, confirmación, selección, detalle, ayuda o cambio de estado— debe considerarse un componente independiente. +- El componente padre debe encargarse de decidir cuándo se abre el diálogo y de suministrarle los datos o callbacks necesarios, evitando contener internamente todo el JSX del modal. +- El componente del diálogo debe encapsular su estructura visual y la lógica de interacción que le pertenezca. +- No mantener grandes bloques de JSX de `DialogContent`, formularios completos o confirmaciones dentro del fichero de una página o listado cuando puedan identificarse como una unidad funcional independiente. +- Los formularios que se muestran dentro de un diálogo pueden separarse además en un componente propio cuando tengan suficiente entidad, reutilización o complejidad. +- No extraer a otro fichero un `Dialog` trivial cuyo único contenido sea un mensaje mínimo sin lógica, estado, formulario ni responsabilidad propia, salvo que forme parte de un patrón reutilizado. +- Antes de crear un diálogo nuevo, comprobar si ya existe un componente equivalente o un patrón común reutilizable en el proyecto. + ### Formularios - Mantener una única fuente de verdad para cada campo.