metis-desk/docs/inventario-de-modales.md

194 lines
13 KiB
Markdown

# Inventario de interacciones modales
Revisión de 2026-10-08. Se inspeccionaron las primitivas y wrappers importados, sus consumidores,
los bloques condicionales y las implementaciones manuales posibles: Dialog, AlertDialog, Sheet,
Drawer, FormDialog, portales, elementos dialog, aria-modal y roles dialog/alertdialog.
La búsqueda no dependió del nombre de los componentes.
El código propio contiene **81 componentes que construyen una interacción modal**. Todos
usan FormDialog de @repo/rdx-ui y tienen un componente principal por fichero. Un componente
puede representar variantes de alta, edición o copia, y catálogos con distintos tipos; el número
no es un recuento de todos los estados posibles de las ventanas. No se encontraron otras
implementaciones propias con AlertDialog, Sheet, Drawer ni diálogos HTML/manuales.
Actualización de 2026-10-09: se añade DeleteBrandDialog para confirmar la eliminación de
marcas personalizadas; el inventario pasa a 82 componentes. Se ha comprobado esta operación
en navegador con API simulada: Cancelar/Escape, errores, bloqueo durante el envío, éxito,
español/inglés y anchura móvil. Esta comprobación no amplía la revisión al resto de modales.
La implementación vendor de packages/shadcn-ui queda fuera de la refactorización según AGENTS.md.
Sus primitivas y el diálogo de configuración de tablas se consultan y consumen, no se duplican
ni reorganizan. Los popovers de selectores y menús de acciones no se contabilizan como formularios
o ventanas modales funcionales.
## Responsabilidades y consumidores
Las páginas y listados conservan apertura, selección y callbacks. Los componentes enumerados
encapsulan título, disposición, anchura, contenido y cierre. Los formularios existentes mantienen
sus schemas, borradores, mutaciones, ayuda y errores. EndRelationshipDialog posee además la
mutación de confirmación y sus estados pendientes y de error.
CompanyEditorDialog, PersonEditorDialog, DepartmentEditorDialog y SiteEditorDialog se reutilizan
desde listados y altas rápidas equivalentes. BrandEditorDialog y SupportToolEditorDialog comparten
el patrón entre catálogo y selector. Los callbacks de selección permanecen en el consumidor que
posee el borrador. Las altas anidadas conservan sus restricciones existentes.
Se integró el contenido exclusivo de los antiguos SupportHistory, ApplicationHistory,
CertificateHistory y PrinterHistory en sus respectivos componentes de diálogo, tras comprobar
sus referencias. No se eliminaron historiales ni acciones. Los archivos anteriores se pueden
recuperar desde Git.
## Componentes por área
Las rutas reflejan la [estructura por entidades y operaciones](estructura-web-por-entidades-y-operaciones.md).
### modules/assets/src/web
- [AssetDetailDialog](../modules/assets/src/web/assets/detail/ui/asset-detail-dialog.tsx)
- [AssetEditorDialog](../modules/assets/src/web/assets/shared/ui/asset-editor-dialog.tsx)
- [BrandEditorDialog](../modules/assets/src/web/brands/shared/ui/brand-editor-dialog.tsx)
- [DeleteBrandDialog](../modules/assets/src/web/brands/delete/ui/delete-brand-dialog.tsx)
- [CatalogDefinitionDialog](../modules/assets/src/web/catalog/detail/ui/catalog-definition-dialog.tsx)
- [CatalogEditorDialog](../modules/assets/src/web/catalog/shared/ui/catalog-editor-dialog.tsx)
- [CatalogFieldCreateDialog](../modules/assets/src/web/catalog-fields/create/ui/catalog-field-create-dialog.tsx)
- [CatalogRelationCreateDialog](../modules/assets/src/web/catalog-relations/create/ui/catalog-relation-create-dialog.tsx)
- [CatalogTemplateCreateDialog](../modules/assets/src/web/catalog-templates/create/ui/catalog-template-create-dialog.tsx)
- [EndRelationshipDialog](../modules/assets/src/web/asset-relationships/end/ui/end-relationship-dialog.tsx)
- [RelationshipEditorDialog](../modules/assets/src/web/asset-relationships/shared/ui/relationship-editor-dialog.tsx)
- [SupportConnectionEditorDialog](../modules/assets/src/web/support-connections/shared/ui/support-connection-editor-dialog.tsx)
- [SupportHistoryDialog](../modules/assets/src/web/support-connections/history/ui/support-history-dialog.tsx)
- [SupportToolEditorDialog](../modules/assets/src/web/support-tools/shared/ui/support-tool-editor-dialog.tsx)
- [SupportToolsDialog](../modules/assets/src/web/support-tools/list/ui/support-tools-dialog.tsx)
- [WorkstationAssetCreateDialog](../modules/assets/src/web/assets/create/ui/workstation-asset-create-dialog.tsx)
- [WorkstationEditorDialog](../modules/assets/src/web/workstations/shared/ui/workstation-editor-dialog.tsx)
- [WorkstationHistoryDialog](../modules/assets/src/web/workstations/history/ui/workstation-history-dialog.tsx)
### modules/companies/src/web/access
- [AccessEditorDialog](../modules/companies/src/web/access/shared/ui/access-editor-dialog.tsx)
- [AccessHelpDialog](../modules/companies/src/web/access/help/ui/access-help-dialog.tsx)
- [AccessHistory](../modules/companies/src/web/access/history/ui/access-history.tsx)
- [AccessQuickEditor](../modules/companies/src/web/access/create/ui/access-quick-editor.tsx)
- [QuickCreateDialog](../modules/companies/src/web/access/create/ui/quick-create-dialog.tsx)
### modules/companies/src/web/application-configurations
- [ApplicationConfigurationEditorDialog](../modules/companies/src/web/application-configurations/shared/ui/application-configuration-editor-dialog.tsx)
- [ApplicationHistoryDialog](../modules/companies/src/web/application-configurations/history/ui/application-history-dialog.tsx)
- [ApplicationQuickEditor](../modules/companies/src/web/application-configurations/create/ui/application-quick-editor.tsx)
### modules/companies/src/web/certificate-configurations
- [CertificateConfigurationEditorDialog](../modules/companies/src/web/certificate-configurations/shared/ui/certificate-configuration-editor-dialog.tsx)
- [CertificateHistoryDialog](../modules/companies/src/web/certificate-configurations/history/ui/certificate-history-dialog.tsx)
- [CertificateQuickEditor](../modules/companies/src/web/certificate-configurations/create/ui/certificate-quick-editor.tsx)
### Compañías, organización, dashboard y workspace de companies
- [AssignmentEditorDialog](../modules/companies/src/web/assignments/shared/ui/assignment-editor-dialog.tsx)
- [AssignmentHistoryDialog](../modules/companies/src/web/assignments/history/ui/assignment-history-dialog.tsx)
- [CompanyEditorDialog](../modules/companies/src/web/companies/shared/ui/company-editor-dialog.tsx)
- [ConfigurationQuickEditor](../modules/companies/src/web/shared/ui/configuration-quick-editor.tsx)
- [DashboardDetailsDialog](../modules/companies/src/web/dashboard/detail/ui/dashboard-details-dialog.tsx)
- [DashboardQuickCreate](../modules/companies/src/web/dashboard/create/ui/dashboard-quick-create.tsx)
- [DepartmentEditorDialog](../modules/companies/src/web/departments/shared/ui/department-editor-dialog.tsx)
- [InventoryQuickCreateDialog](../modules/companies/src/web/companies/detail/ui/inventory-quick-create-dialog.tsx)
- [PersonEditorDialog](../modules/companies/src/web/people/shared/ui/person-editor-dialog.tsx)
- [SiteEditorDialog](../modules/companies/src/web/sites/shared/ui/site-editor-dialog.tsx)
- [WorkspaceSettingsDialog](../modules/companies/src/web/workspace/settings/ui/workspace-settings-dialog.tsx)
### modules/companies/src/web/folder-mappings
- [FolderMappingEditorDialog](../modules/companies/src/web/folder-mappings/shared/ui/folder-mapping-editor-dialog.tsx)
- [FolderMappingHistoryDialog](../modules/companies/src/web/folder-mappings/history/ui/folder-mapping-history-dialog.tsx)
- [FolderQuickEditor](../modules/companies/src/web/folder-mappings/create/ui/folder-quick-editor.tsx)
### modules/companies/src/web/intervention-templates
- [InterventionTemplateCreateDialog](../modules/companies/src/web/intervention-templates/create/ui/intervention-template-create-dialog.tsx)
- [InterventionTemplateEditorDialog](../modules/companies/src/web/intervention-templates/shared/ui/intervention-template-editor-dialog.tsx)
### modules/companies/src/web/interventions
- [InterventionDetailDialog](../modules/companies/src/web/interventions/detail/ui/intervention-detail-dialog.tsx)
- [InterventionEditorDialog](../modules/companies/src/web/interventions/shared/ui/intervention-editor-dialog.tsx)
- [TicketInterventionDialog](../modules/companies/src/web/interventions/create/ui/ticket-intervention-dialog.tsx)
### Buzones, usos y configuraciones de correo de companies
- [MailboxCreateDialog](../modules/companies/src/web/mailboxes/create/ui/mailbox-create-dialog.tsx)
- [MailboxUseEditorDialog](../modules/companies/src/web/mailbox-uses/shared/ui/mailbox-use-editor-dialog.tsx)
- [MailConfigurationEditorDialog](../modules/companies/src/web/mail-configurations/shared/ui/mail-configuration-editor-dialog.tsx)
- [MailConfigurationHistoryDialog](../modules/companies/src/web/mail-configurations/history/ui/mail-configuration-history-dialog.tsx)
- [MailQuickEditor](../modules/companies/src/web/mail-configurations/create/ui/mail-quick-editor.tsx)
### modules/companies/src/web/printer-configurations
- [PrinterConfigurationEditorDialog](../modules/companies/src/web/printer-configurations/shared/ui/printer-configuration-editor-dialog.tsx)
- [PrinterHistoryDialog](../modules/companies/src/web/printer-configurations/history/ui/printer-history-dialog.tsx)
- [PrinterProfileCreateDialog](../modules/companies/src/web/printer-configurations/create/ui/printer-profile-create-dialog.tsx)
### modules/companies/src/web/processes
- [ProcessEditDialog](../modules/companies/src/web/processes/update/ui/process-edit-dialog.tsx)
- [ProcessQuickCreateDialog](../modules/companies/src/web/processes/create/ui/process-quick-create-dialog.tsx)
- [ProcessStartDialog](../modules/companies/src/web/processes/start/ui/process-start-dialog.tsx)
### modules/companies/src/web/process-templates
- [ProcessTemplateEditorDialog](../modules/companies/src/web/process-templates/shared/ui/process-template-editor-dialog.tsx)
### modules/companies/src/web/work-profiles
- [WorkProfileEditorDialog](../modules/companies/src/web/work-profiles/shared/ui/work-profile-editor-dialog.tsx)
- [WorkProfileHistoryDialog](../modules/companies/src/web/work-profiles/history/ui/work-profile-history-dialog.tsx)
### modules/companies/src/web/remote-connections
- [RemoteConnectionEditorDialog](../modules/companies/src/web/remote-connections/shared/ui/remote-connection-editor-dialog.tsx)
- [RemoteConnectionHistoryDialog](../modules/companies/src/web/remote-connections/history/ui/remote-connection-history-dialog.tsx)
- [RemoteQuickEditor](../modules/companies/src/web/remote-connections/create/ui/remote-quick-editor.tsx)
### modules/companies/src/web/telework-authorizations
- [TeleworkAuthorizationEditorDialog](../modules/companies/src/web/telework-authorizations/shared/ui/telework-authorization-editor-dialog.tsx)
- [TeleworkAuthorizationHistoryDialog](../modules/companies/src/web/telework-authorizations/history/ui/telework-authorization-history-dialog.tsx)
### modules/companies/src/web/tickets
- [InterventionTicketCreateDialog](../modules/companies/src/web/tickets/create/ui/intervention-ticket-create-dialog.tsx)
- [TicketDetailDialog](../modules/companies/src/web/tickets/detail/ui/ticket-detail-dialog.tsx)
- [TicketEditorDialog](../modules/companies/src/web/tickets/shared/ui/ticket-editor-dialog.tsx)
- [TicketQuickEditor](../modules/companies/src/web/tickets/create/ui/ticket-quick-editor.tsx)
- [TicketQuickForms](../modules/companies/src/web/tickets/create/ui/ticket-quick-forms.tsx)
- [TicketTargetCreateDialog](../modules/companies/src/web/tickets/create/ui/ticket-target-create-dialog.tsx)
### modules/identity/src/web
- [AccountPasswordDialog](../modules/identity/src/web/passwords/change/ui/account-password-dialog.tsx)
- [UserEditorDialog](../modules/identity/src/web/users/shared/ui/user-editor-dialog.tsx)
- [UserManagementDialog](../modules/identity/src/web/users/list/ui/user-management-dialog.tsx)
### modules/resources/src/web
- [CatalogDefinitionDialog](../modules/resources/src/web/catalog/detail/ui/catalog-definition-dialog.tsx)
- [CatalogEditorDialog](../modules/resources/src/web/catalog/shared/ui/catalog-editor-dialog.tsx)
- [CatalogFieldCreateDialog](../modules/resources/src/web/catalog-fields/create/ui/catalog-field-create-dialog.tsx)
- [CatalogTemplateCreateDialog](../modules/resources/src/web/catalog-templates/create/ui/catalog-template-create-dialog.tsx)
- [ResourceDetailDialog](../modules/resources/src/web/resources/detail/ui/resource-detail-dialog.tsx)
- [ResourceEditorDialog](../modules/resources/src/web/resources/shared/ui/resource-editor-dialog.tsx)
## Comprobaciones y límites
Typecheck, lint, pruebas de los módulos y validaciones globales correctos. Las pruebas existentes
comprueban traducciones es/en, listados sin formularios visibles, ayuda, restricciones de altas
anidadas, estados y contratos. Se amplió la prueba del dashboard con datos no vacíos de los
paneles extraídos.
No se ejecutó una sesión interactiva de navegador. Queda por comprobar manualmente apertura,
Escape, restauración del foco, cancelación, envío y error en modales simples y anidados, en español,
inglés y anchura móvil. El render estático y el lint no sustituyen esa comprobación.
Véase [revisión de buenas prácticas](revision-de-buenas-practicas.md) para el alcance y los resultados
globales, y [componentes de interfaz](componentes-de-interfaz.md) para los patrones compartidos.