Pasó el tiempo de inactividad permitido. Conservamos el destino, no el contenido sensible del formulario.
Sesión vencida.
Patrón canónico de sesión vencida para cuenta, admin, usaia, firmas y documentos.
Verlo por niveles
Primero el componente, después la variación de marca y finalmente su uso dentro de una página.
El administrador revocó esta sesión. Conservamos el destino, no el contenido sensible del formulario.
Pasó el tiempo de inactividad permitido. Conservamos el destino, no el contenido sensible del formulario.
Ver y copiar el código de este render
<section class="ui-sample ui-auth-status ui-auth-status--warning" data-auth-source="cis-auth-authentik" data-session-expired><span class="ui-auth-status__symbol" aria-hidden="true">i</span><div><strong>Tu sesión terminó</strong><p>Pasó el tiempo de inactividad permitido. Conservamos el destino, no el contenido sensible del formulario.</p><div class="ui-actions"><a class="btn btn--primary" href="/auth/login?return_to=%2Fdocumentos%2F184">Volver a iniciar sesión</a><a class="btn btn--quiet" href="#inicio">Ir al inicio</a></div></div></section>Variaciones por marca y sitio
Cada cambio visible declara su autoridad; lo que permanece canónico no se vuelve a inventar en el producto.
Compañía de Innovación de Santiago
Autoridad: CONSTITUTION.md + LOGOS-CANONICOS.mdPasó el tiempo de inactividad permitido. Conservamos el destino, no el contenido sensible del formulario.
Cambia en esta marca
- Navegación y contenido propios del servicio
- Acento reservado para acciones y datos
Permanece canónico
- Mark CIS y namebrand de tres líneas
- IBM Plex Sans, foco, espaciado y anatomía
Círculo de Santiago
Autoridad: core-style/DECISIONES.md M10 y LOGOS-CANONICOS.mdEl administrador revocó esta sesión. Conservamos el destino, no el contenido sensible del formulario.
Cambia en esta marca
- Mark circular y namebrand Círculo de Santiago en caja normal
- Contenido societario y navegación propia
Permanece canónico
- Misma estructura, orden de cuenta y footer
- Tipografía, foco y comportamiento canónicos
Comparación histórica recuperable
Compara la propuesta con cortes reales del repositorio. La ausencia de una muestra se declara y nunca se reconstruye de memoria.
- Estado actual
- Sesión vencida no tiene una implementación vigente demostrada; sus ejemplos son material candidato.
- Cambio propuesto
- Publicar en r19 el contrato de Sesión vencida para Patrón canónico de sesión vencida para cuenta, admin, usaia, firmas y documentos.
- Qué ocurre si respondes No
- Sesión vencida queda fuera de r19 y sus ejemplos siguen sólo como evidencia pendiente de reformulación.
Preparando comparación histórica…
Antes / r19
La comparación convierte una regla abstracta en una diferencia visible y verificable.
Pasó el tiempo de inactividad permitido. Conservamos el destino, no el contenido sensible del formulario.
- Usa HTML semántico, foco visible y estados explícitos.
- Conserva contenido útil a 320 px y sin JavaScript.
- No agregues sombras, radios ni franjas laterales decorativas.
- No uses color, placeholder o icono como única explicación.
Responsive
La misma anatomía debe conservar lectura, foco y acciones sin cortar contenido ni crear scroll horizontal en la página.
Pasó el tiempo de inactividad permitido. Conservamos el destino, no el contenido sensible del formulario.
El administrador revocó esta sesión. Conservamos el destino, no el contenido sensible del formulario.
Cobertura
| Dimensión | Contrato |
|---|---|
| Propietario canónico | Sistema de diseño CIS y cis-auth · core/core-style |
| Consumidores | Cuenta, Admin, usaia, Firmas y Documentos |
| Dependencias | HTML nativo, validación de servidor |
| Estado | candidato |
Evidencia de adopción
Patrón propuesto. 0 implementaciones observadas en 0 repositorios.
La observación demuestra uso existente; la aceptación canónica sigue dependiendo de esta ficha y de su propietario.
| Dato | Resultado |
|---|---|
| Clasificación | Patrón propuesto |
| Implementaciones | 0 implementaciones observadas |
| Repositorios | Ningún repositorio observado |
| Snapshot | kit/componentes/componentes-observados.json |
Consumidores observados
El inventario conserva repositorio, archivo fuente y criterio de asociación. Observar una implementación no la convierte automáticamente en canónica.
Estados
| Estado requerido |
|---|
| vacío |
| completo |
| inválido |
| disabled |
Accesibilidad
- Conserva nombre accesible, orden de lectura y foco visible.
- Funciona a 320 px, con zoom de 200% y texto largo.
- El color nunca es la única señal de estado o acción.
- El contenido esencial permanece disponible sin JavaScript.
Código HTML
Copia el bloque completo; después cambia contenido y destinos, no su anatomía.
<section class="ui-sample ui-auth-status ui-auth-status--warning" data-auth-source="cis-auth-authentik" data-session-expired><span class="ui-auth-status__symbol" aria-hidden="true">i</span><div><strong>Tu sesión terminó</strong><p>Pasó el tiempo de inactividad permitido. Conservamos el destino, no el contenido sensible del formulario.</p><div class="ui-actions"><a class="btn btn--primary" href="/auth/login?return_to=%2Fdocumentos%2F184">Volver a iniciar sesión</a><a class="btn btn--quiet" href="#inicio">Ir al inicio</a></div></div></section>Código TAILWIND
Copia el bloque completo; después cambia contenido y destinos, no su anatomía.
<section class="ui-sample ui-auth-status ui-auth-status--warning border border-slate-300 bg-white p-4 text-slate-950 grid gap-3" data-auth-source="cis-auth-authentik" data-session-expired><span class="ui-auth-status__symbol" aria-hidden="true">i</span><div><strong>Tu sesión terminó</strong><p>Pasó el tiempo de inactividad permitido. Conservamos el destino, no el contenido sensible del formulario.</p><div class="ui-actions"><a class="btn btn--primary underline underline-offset-4" href="/auth/login?return_to=%2Fdocumentos%2F184">Volver a iniciar sesión</a><a class="btn btn--quiet underline underline-offset-4" href="#inicio">Ir al inicio</a></div></div></section>Código REACT
Copia el bloque completo; después cambia contenido y destinos, no su anatomía.
export interface SessionExpiredProps {
title?: string;
/** Por qué terminó la sesión y qué se conserva al volver a entrar. */
description?: string;
loginLabel?: string;
/** Entrada de cis-auth con el destino en `return_to`, codificado. */
loginHref?: string;
homeLabel?: string;
homeHref?: string;
className?: string;
}
/**
* Aviso de sesión vencida o revocada, con la acción para volver a iniciar sesión y regresar al mismo destino.
*
* Tono de advertencia fijo. Si ambos enlaces van vacíos, no se muestra la fila de acciones.
*
* @example <SessionExpired loginHref={`/auth/login?return_to=${encodeURIComponent(ruta)}`} />
* @example <SessionExpired description="El administrador revocó esta sesión. Conservamos el destino, no el contenido sensible del formulario." />
*/
export function SessionExpired({
title = "Tu sesión terminó",
description = "Pasó el tiempo de inactividad permitido. Conservamos el destino, no el contenido sensible del formulario.",
loginLabel = "Volver a iniciar sesión",
loginHref = "/auth/login?return_to=%2Fdocumentos%2F184",
homeLabel = "Ir al inicio",
homeHref = "#inicio",
className,
}: SessionExpiredProps) {
return (
<section
className={["ui-auth-status ui-auth-status--warning", className].filter(Boolean).join(" ")}
data-auth-source="cis-auth-authentik"
data-session-expired
>
<span className="ui-auth-status__symbol" aria-hidden="true">i</span>
<div>
<strong>{title}</strong>
{description ? <p>{description}</p> : null}
{loginLabel || homeLabel ? (
<div className="ui-actions">
{loginLabel ? <a className="btn btn--primary" href={loginHref}>{loginLabel}</a> : null}
{homeLabel ? <a className="btn btn--quiet" href={homeHref}>{homeLabel}</a> : null}
</div>
) : null}
</div>
</section>
);
}