2026-10-08 14:43:34 +00:00
|
|
|
# Inventario de interacciones modales
|
|
|
|
|
|
2026-10-15 14:14:26 +00:00
|
|
|
Revisión de código de 2026-10-15 según el [patrón de diseño de diálogos](patron-de-dialogos.md).
|
|
|
|
|
Se buscaron constructores `FormDialog`, `ConfirmDeleteDialog` y `FieldPickerDialog`, además de
|
|
|
|
|
primitivas `Dialog`, `AlertDialog`, `Sheet`, `Drawer`, portales y diálogos manuales. Se revisaron
|
|
|
|
|
los formularios, controles compartidos y contenido de consulta que reciben estos constructores.
|
|
|
|
|
|
|
|
|
|
El código propio contiene **81 componentes modales en módulos** y **3 constructores
|
|
|
|
|
compartidos en @repo/rdx-ui**. El recuento identifica componentes, no cada variante de alta,
|
|
|
|
|
edición, copia o estado. Las dos variantes de CatalogFieldPickerDialog son adaptadores del
|
|
|
|
|
mismo selector genérico. El código vendor de `packages/shadcn-ui` queda fuera de esta revisión
|
|
|
|
|
y no se modifica.
|
|
|
|
|
|
|
|
|
|
## Resultado de la revisión
|
|
|
|
|
|
|
|
|
|
- Los diálogos utilizan la estructura común de cabecera, cuerpo desplazable y pie. Las
|
|
|
|
|
confirmaciones de marcas y catálogo se han adaptado al mismo pie fijo, conservando el
|
|
|
|
|
bloqueo durante el envío y la presentación de errores.
|
|
|
|
|
- Los formularios y sus subcontroles calculan las columnas según su contenedor. Los títulos
|
|
|
|
|
de grupos de consulta, permisos y secciones comparten el estilo de Datos de la plantilla.
|
|
|
|
|
- Las secciones de plantillas conservan dos columnas cuando hay espacio, igual altura por
|
|
|
|
|
fila, plegado, campos compactos, ordenación accesible e incorporación de campos por grupo.
|
|
|
|
|
- AssetPickerDialog y los dos CatalogFieldPickerDialog mantienen altura estable, selección
|
|
|
|
|
compacta al principio, selección desde la fila y confirmación provisional. Los diálogos
|
|
|
|
|
de configuración de columnas son ajustes, no selectores de entidades PickerList.
|
|
|
|
|
- Se extrajeron los diálogos de edición de instalaciones de software, alta de su recurso y
|
|
|
|
|
configuración de columnas. Los padres mantienen apertura y datos, sin definir el modal.
|
|
|
|
|
- Las variantes de selección de compañía del dashboard colocan Continuar en el pie común.
|
|
|
|
|
Los formularios sencillos, historiales y ayudas mantienen su tamaño según contenido; las
|
|
|
|
|
fechas de revisión y nombres de registros conservan su tipografía de datos, no de grupos.
|
|
|
|
|
- Se conservan los pasos de alta de recursos ya existentes: no se ha añadido ningún asistente
|
|
|
|
|
para resolver únicamente espacio. Tampoco se añaden cuadrículas a formularios sencillos.
|
|
|
|
|
|
|
|
|
|
## Componentes revisados
|
|
|
|
|
|
|
|
|
|
Las rutas siguen la [estructura por entidades y operaciones](estructura-web-por-entidades-y-operaciones.md).
|
|
|
|
|
La columna Composición indica el constructor utilizado; las variantes heredan sus reglas comunes.
|
|
|
|
|
|
|
|
|
|
### assets (23)
|
|
|
|
|
|
|
|
|
|
| Componente | Composición |
|
|
|
|
|
| --- | --- |
|
|
|
|
|
| [EndRelationshipDialog](../modules/assets/src/web/asset-relationships/end/ui/end-relationship-dialog.tsx) | `FormDialog` |
|
|
|
|
|
| [RelationshipEditorDialog](../modules/assets/src/web/asset-relationships/shared/ui/relationship-editor-dialog.tsx) | `FormDialog` |
|
|
|
|
|
| [WorkstationAssetCreateDialog](../modules/assets/src/web/assets/create/ui/workstation-asset-create-dialog.tsx) | `FormDialog` |
|
|
|
|
|
| [AssetDetailDialog](../modules/assets/src/web/assets/detail/ui/asset-detail-dialog.tsx) | `FormDialog` |
|
|
|
|
|
| [AssetPickerDialog](../modules/assets/src/web/assets/select/ui/asset-picker-dialog.tsx) | `FormDialog` · altura estable |
|
|
|
|
|
| [AssetEditorDialog](../modules/assets/src/web/assets/shared/ui/asset-editor-dialog.tsx) | `FormDialog` |
|
|
|
|
|
| [DeleteAssetDialog](../modules/assets/src/web/assets/shared/ui/delete-asset-dialog.tsx) | `ConfirmDeleteDialog` |
|
|
|
|
|
| [DeleteBrandDialog](../modules/assets/src/web/brands/delete/ui/delete-brand-dialog.tsx) | `FormDialog` |
|
|
|
|
|
| [BrandEditorDialog](../modules/assets/src/web/brands/shared/ui/brand-editor-dialog.tsx) | `FormDialog` |
|
|
|
|
|
| [DeleteCatalogDefinitionDialog](../modules/assets/src/web/catalog/delete/ui/delete-catalog-definition-dialog.tsx) | `FormDialog` |
|
|
|
|
|
| [CatalogDefinitionDialog](../modules/assets/src/web/catalog/detail/ui/catalog-definition-dialog.tsx) | `FormDialog` |
|
|
|
|
|
| [CatalogEditorDialog](../modules/assets/src/web/catalog/shared/ui/catalog-editor-dialog.tsx) | `FormDialog` |
|
|
|
|
|
| [CatalogFieldCreateDialog](../modules/assets/src/web/catalog-fields/create/ui/catalog-field-create-dialog.tsx) | `FormDialog` |
|
|
|
|
|
| [CatalogFieldPickerDialog](../modules/assets/src/web/catalog-fields/select/ui/catalog-field-picker-dialog.tsx) | `FieldPickerDialog` · altura estable |
|
|
|
|
|
| [CatalogRelationCreateDialog](../modules/assets/src/web/catalog-relations/create/ui/catalog-relation-create-dialog.tsx) | `FormDialog` |
|
|
|
|
|
| [CatalogTemplateCreateDialog](../modules/assets/src/web/catalog-templates/create/ui/catalog-template-create-dialog.tsx) | `FormDialog` |
|
|
|
|
|
| [DeleteRecordDialog](../modules/assets/src/web/shared/ui/delete-record-dialog.tsx) | `ConfirmDeleteDialog` |
|
|
|
|
|
| [SupportHistoryDialog](../modules/assets/src/web/support-connections/history/ui/support-history-dialog.tsx) | `FormDialog` |
|
|
|
|
|
| [SupportConnectionEditorDialog](../modules/assets/src/web/support-connections/shared/ui/support-connection-editor-dialog.tsx) | `FormDialog` |
|
|
|
|
|
| [SupportResourceCreateDialog](../modules/assets/src/web/support-connections/shared/ui/support-resource-create-dialog.tsx) | `FormDialog` |
|
|
|
|
|
| [WorkstationHistoryDialog](../modules/assets/src/web/workstations/history/ui/workstation-history-dialog.tsx) | `FormDialog` |
|
|
|
|
|
| [WorkstationEditorDialog](../modules/assets/src/web/workstations/shared/ui/workstation-editor-dialog.tsx) | `FormDialog` |
|
|
|
|
|
| [WorkstationLifecycleDialog](../modules/assets/src/web/workstations/shared/ui/workstation-lifecycle-dialog.tsx) | `ConfirmDeleteDialog` |
|
|
|
|
|
|
|
|
|
|
### companies (49)
|
|
|
|
|
|
|
|
|
|
| Componente | Composición |
|
|
|
|
|
| --- | --- |
|
|
|
|
|
| [AccessQuickEditor](../modules/companies/src/web/access/create/ui/access-quick-editor.tsx) | `FormDialog` |
|
|
|
|
|
| [QuickCreateDialog](../modules/companies/src/web/access/create/ui/quick-create-dialog.tsx) | `FormDialog` |
|
|
|
|
|
| [AccessHelpDialog](../modules/companies/src/web/access/help/ui/access-help-dialog.tsx) | `FormDialog` |
|
|
|
|
|
| [AccessHistory](../modules/companies/src/web/access/history/ui/access-history.tsx) | `FormDialog` |
|
|
|
|
|
| [AccessEditorDialog](../modules/companies/src/web/access/shared/ui/access-editor-dialog.tsx) | `FormDialog` |
|
|
|
|
|
| [ApplicationQuickEditor](../modules/companies/src/web/application-configurations/create/ui/application-quick-editor.tsx) | `FormDialog` |
|
|
|
|
|
| [ApplicationHistoryDialog](../modules/companies/src/web/application-configurations/history/ui/application-history-dialog.tsx) | `FormDialog` |
|
|
|
|
|
| [ApplicationConfigurationEditorDialog](../modules/companies/src/web/application-configurations/shared/ui/application-configuration-editor-dialog.tsx) | `FormDialog` |
|
|
|
|
|
| [AssignmentHistoryDialog](../modules/companies/src/web/assignments/history/ui/assignment-history-dialog.tsx) | `FormDialog` |
|
|
|
|
|
| [AssignmentEditorDialog](../modules/companies/src/web/assignments/shared/ui/assignment-editor-dialog.tsx) | `FormDialog` |
|
|
|
|
|
| [CertificateQuickEditor](../modules/companies/src/web/certificate-configurations/create/ui/certificate-quick-editor.tsx) | `FormDialog` |
|
|
|
|
|
| [CertificateHistoryDialog](../modules/companies/src/web/certificate-configurations/history/ui/certificate-history-dialog.tsx) | `FormDialog` |
|
|
|
|
|
| [CertificateConfigurationEditorDialog](../modules/companies/src/web/certificate-configurations/shared/ui/certificate-configuration-editor-dialog.tsx) | `FormDialog` |
|
|
|
|
|
| [InventoryQuickCreateDialog](../modules/companies/src/web/companies/detail/ui/inventory-quick-create-dialog.tsx) | `FormDialog` |
|
|
|
|
|
| [CompanyEditorDialog](../modules/companies/src/web/companies/shared/ui/company-editor-dialog.tsx) | `FormDialog` |
|
|
|
|
|
| [DashboardQuickCreate](../modules/companies/src/web/dashboard/create/ui/dashboard-quick-create.tsx) | `FormDialog` |
|
|
|
|
|
| [DashboardDetailsDialog](../modules/companies/src/web/dashboard/detail/ui/dashboard-details-dialog.tsx) | `FormDialog` |
|
|
|
|
|
| [DepartmentEditorDialog](../modules/companies/src/web/departments/shared/ui/department-editor-dialog.tsx) | `FormDialog` |
|
|
|
|
|
| [FolderQuickEditor](../modules/companies/src/web/folder-mappings/create/ui/folder-quick-editor.tsx) | `FormDialog` |
|
|
|
|
|
| [FolderMappingHistoryDialog](../modules/companies/src/web/folder-mappings/history/ui/folder-mapping-history-dialog.tsx) | `FormDialog` |
|
|
|
|
|
| [FolderMappingEditorDialog](../modules/companies/src/web/folder-mappings/shared/ui/folder-mapping-editor-dialog.tsx) | `FormDialog` |
|
|
|
|
|
| [MailQuickEditor](../modules/companies/src/web/mail-configurations/create/ui/mail-quick-editor.tsx) | `FormDialog` |
|
|
|
|
|
| [MailConfigurationHistoryDialog](../modules/companies/src/web/mail-configurations/history/ui/mail-configuration-history-dialog.tsx) | `FormDialog` |
|
|
|
|
|
| [MailConfigurationEditorDialog](../modules/companies/src/web/mail-configurations/shared/ui/mail-configuration-editor-dialog.tsx) | `FormDialog` |
|
|
|
|
|
| [MailboxUseEditorDialog](../modules/companies/src/web/mailbox-uses/shared/ui/mailbox-use-editor-dialog.tsx) | `FormDialog` |
|
|
|
|
|
| [MailboxCreateDialog](../modules/companies/src/web/mailboxes/create/ui/mailbox-create-dialog.tsx) | `FormDialog` |
|
|
|
|
|
| [PersonEditorDialog](../modules/companies/src/web/people/shared/ui/person-editor-dialog.tsx) | `FormDialog` |
|
|
|
|
|
| [PrinterProfileCreateDialog](../modules/companies/src/web/printer-configurations/create/ui/printer-profile-create-dialog.tsx) | `FormDialog` |
|
|
|
|
|
| [PrinterHistoryDialog](../modules/companies/src/web/printer-configurations/history/ui/printer-history-dialog.tsx) | `FormDialog` |
|
|
|
|
|
| [PrinterConfigurationEditorDialog](../modules/companies/src/web/printer-configurations/shared/ui/printer-configuration-editor-dialog.tsx) | `FormDialog` |
|
|
|
|
|
| [ProcessTemplateEditorDialog](../modules/companies/src/web/process-templates/shared/ui/process-template-editor-dialog.tsx) | `FormDialog` |
|
|
|
|
|
| [ProcessQuickCreateDialog](../modules/companies/src/web/processes/create/ui/process-quick-create-dialog.tsx) | `FormDialog` |
|
|
|
|
|
| [ProcessStartDialog](../modules/companies/src/web/processes/start/ui/process-start-dialog.tsx) | `FormDialog` |
|
|
|
|
|
| [ProcessEditDialog](../modules/companies/src/web/processes/update/ui/process-edit-dialog.tsx) | `FormDialog` |
|
|
|
|
|
| [RemoteQuickEditor](../modules/companies/src/web/remote-connections/create/ui/remote-quick-editor.tsx) | `FormDialog` |
|
|
|
|
|
| [RemoteConnectionHistoryDialog](../modules/companies/src/web/remote-connections/history/ui/remote-connection-history-dialog.tsx) | `FormDialog` |
|
|
|
|
|
| [RemoteConnectionEditorDialog](../modules/companies/src/web/remote-connections/shared/ui/remote-connection-editor-dialog.tsx) | `FormDialog` |
|
|
|
|
|
| [ConfigurationQuickEditor](../modules/companies/src/web/shared/ui/configuration-quick-editor.tsx) | `FormDialog` |
|
|
|
|
|
| [DeleteRecordDialog](../modules/companies/src/web/shared/ui/delete-record-dialog.tsx) | `ConfirmDeleteDialog` |
|
|
|
|
|
| [SiteEditorDialog](../modules/companies/src/web/sites/shared/ui/site-editor-dialog.tsx) | `FormDialog` |
|
|
|
|
|
| [SoftwareResourceCreateDialog](../modules/companies/src/web/software-installations/create/ui/software-resource-create-dialog.tsx) | `FormDialog` |
|
|
|
|
|
| [SoftwareHistoryDialog](../modules/companies/src/web/software-installations/history/ui/software-history-dialog.tsx) | `FormDialog` |
|
|
|
|
|
| [SoftwareInstallationEditorDialog](../modules/companies/src/web/software-installations/shared/ui/software-installation-editor-dialog.tsx) | `FormDialog` |
|
|
|
|
|
| [TeleworkAuthorizationHistoryDialog](../modules/companies/src/web/telework-authorizations/history/ui/telework-authorization-history-dialog.tsx) | `FormDialog` |
|
|
|
|
|
| [TeleworkAuthorizationEditorDialog](../modules/companies/src/web/telework-authorizations/shared/ui/telework-authorization-editor-dialog.tsx) | `FormDialog` |
|
|
|
|
|
| [WorkProfileHistoryDialog](../modules/companies/src/web/work-profiles/history/ui/work-profile-history-dialog.tsx) | `FormDialog` |
|
|
|
|
|
| [WorkProfileEditorDialog](../modules/companies/src/web/work-profiles/shared/ui/work-profile-editor-dialog.tsx) | `FormDialog` |
|
|
|
|
|
| [WorkProfileLifecycleDialog](../modules/companies/src/web/work-profiles/shared/ui/work-profile-lifecycle-dialog.tsx) | `ConfirmDeleteDialog` |
|
|
|
|
|
| [WorkspaceSettingsDialog](../modules/companies/src/web/workspace/settings/ui/workspace-settings-dialog.tsx) | `FormDialog` |
|
|
|
|
|
|
|
|
|
|
### identity (2)
|
|
|
|
|
|
|
|
|
|
| Componente | Composición |
|
|
|
|
|
| --- | --- |
|
|
|
|
|
| [AccountPasswordDialog](../modules/identity/src/web/passwords/change/ui/account-password-dialog.tsx) | `FormDialog` |
|
|
|
|
|
| [UserEditorDialog](../modules/identity/src/web/users/shared/ui/user-editor-dialog.tsx) | `FormDialog` |
|
|
|
|
|
|
|
|
|
|
### resources (7)
|
|
|
|
|
|
|
|
|
|
| Componente | Composición |
|
|
|
|
|
| --- | --- |
|
|
|
|
|
| [CatalogDefinitionDialog](../modules/resources/src/web/catalog/detail/ui/catalog-definition-dialog.tsx) | `FormDialog` |
|
|
|
|
|
| [CatalogEditorDialog](../modules/resources/src/web/catalog/shared/ui/catalog-editor-dialog.tsx) | `FormDialog` |
|
|
|
|
|
| [CatalogFieldCreateDialog](../modules/resources/src/web/catalog-fields/create/ui/catalog-field-create-dialog.tsx) | `FormDialog` |
|
|
|
|
|
| [CatalogFieldPickerDialog](../modules/resources/src/web/catalog-fields/select/ui/catalog-field-picker-dialog.tsx) | `FieldPickerDialog` · altura estable |
|
|
|
|
|
| [CatalogTemplateCreateDialog](../modules/resources/src/web/catalog-templates/create/ui/catalog-template-create-dialog.tsx) | `FormDialog` |
|
|
|
|
|
| [ResourceDetailDialog](../modules/resources/src/web/resources/detail/ui/resource-detail-dialog.tsx) | `FormDialog` |
|
|
|
|
|
| [ResourceEditorDialog](../modules/resources/src/web/resources/shared/ui/resource-editor-dialog.tsx) | `FormDialog` |
|
|
|
|
|
|
|
|
|
|
### rdx-ui (3)
|
|
|
|
|
|
|
|
|
|
| Componente | Composición |
|
|
|
|
|
| --- | --- |
|
|
|
|
|
| [ConfirmDeleteDialog](../packages/rdx-ui/src/components/confirm-delete-dialog.tsx) | `FormDialog` |
|
|
|
|
|
| [EntityTableColumnsDialog](../packages/rdx-ui/src/components/entity-table-columns-dialog.tsx) | `FormDialog` |
|
|
|
|
|
| [FieldPickerDialog](../packages/rdx-ui/src/components/field-picker-dialog.tsx) | `FormDialog` · altura estable |
|
|
|
|
|
|
|
|
|
|
## Validación y límites
|
|
|
|
|
|
|
|
|
|
La revisión cubre código y render estático mediante las pruebas existentes. Las comprobaciones
|
|
|
|
|
interactivas de apertura, Escape, restauración de foco, arrastre, envío, errores y altura visual
|
|
|
|
|
en español/inglés y anchos estrecho/amplio quedan pendientes de una sesión de navegador.
|
|
|
|
|
No se dispone de una herramienta de navegador en esta sesión; los análisis de código, tipos,
|
|
|
|
|
formato y pruebas no sustituyen esa revisión visual.
|
|
|
|
|
|
|
|
|
|
Resultados de los comandos ejecutados:
|
|
|
|
|
|
|
|
|
|
| Comprobación | Resultado |
|
|
|
|
|
| --- | --- |
|
|
|
|
|
| Typecheck dirigido a rdx-ui, assets, resources, companies e identity | Correcto |
|
|
|
|
|
| Biome y ESLint dirigidos a los archivos de código modificados | Correctos |
|
|
|
|
|
| `pnpm build` | Correcto; conserva el aviso de chunks grandes |
|
|
|
|
|
| `pnpm test` | UI, activos, recursos, identidad, core y DDD correctos; empresas mantiene el fallo previo de `companies-page.test.tsx` |
|
|
|
|
|
| `pnpm typecheck` | Mantiene TS2375 previo en `packages/shadcn-ui/src/components/calendar.tsx:165` |
|
|
|
|
|
| `pnpm lint` / `pnpm check` | Mantienen respectivamente 14 y 155 errores previos ajenos al cambio |
|
|
|
|
|
| `git diff --check` y enlaces locales de la documentación | Correctos |
|
|
|
|
|
|
|
|
|
|
El fallo de empresas se reprodujo ejecutando directamente el fichero: una prueba de persona
|
|
|
|
|
espera el texto «Esta persona no tiene acceso a Metis Desk», ausente en el render actual.
|
|
|
|
|
No se ha modificado esa prueba ni el contenido de la ayuda para ocultar el fallo.
|
|
|
|
|
Los módulos de tickets, intervenciones y sus plantillas permanecen [archivados](funcionalidades-archivadas.md).
|