CTR- Serie
- Contratos generales
- Orden
- Año y correlativo
- Inventario
- Abrir 18 documentos
Patrón canónico de serie documental para firmas y documentos, scribe, medicamentos y editorial sebastián.
Primero el componente, después la variación de marca y finalmente su uso dentro de una página.
CTRPRECTR<section class="ui-sample ui-document" data-archive-series="true"><header><strong>S3 · Contratos</strong><code>CTR</code></header><dl><div><dt>Serie</dt><dd>Contratos generales</dd></div><div><dt>Orden</dt><dd>Año y correlativo</dd></div><div><dt>Inventario</dt><dd><a href="#inventario">Abrir 18 documentos</a></dd></div></dl></section>Cada cambio visible declara su autoridad; lo que permanece canónico no se vuelve a inventar en el producto.
CTRPRECompara la propuesta con cortes reales del repositorio. La ausencia de una muestra se declara y nunca se reconstruye de memoria.
Preparando comparación histórica…
La comparación convierte una regla abstracta en una diferencia visible y verificable.
CTRLa misma anatomía debe conservar lectura, foco y acciones sin cortar contenido ni crear scroll horizontal en la página.
CTRPRE| Dimensión | Contrato |
|---|---|
| Propietario canónico | Sistema de diseño CIS y Firmas y Documentos · core/core-style |
| Consumidores | Firmas y Documentos, Scribe, Medicamentos y Editorial Sebastián |
| Dependencias | contrato documental, representaciones versionadas |
| Estado | candidato |
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 |
El inventario conserva repositorio, archivo fuente y criterio de asociación. Observar una implementación no la convierte automáticamente en canónica.
| Estado requerido |
|---|
| borrador |
| en revisión |
| firmado |
| archivado |
Copia el bloque completo; después cambia contenido y destinos, no su anatomía.
<section class="ui-sample ui-document" data-archive-series="true"><header><strong>S3 · Contratos</strong><code>CTR</code></header><dl><div><dt>Serie</dt><dd>Contratos generales</dd></div><div><dt>Orden</dt><dd>Año y correlativo</dd></div><div><dt>Inventario</dt><dd><a href="#inventario">Abrir 18 documentos</a></dd></div></dl></section>Copia el bloque completo; después cambia contenido y destinos, no su anatomía.
<section class="ui-sample ui-document border border-slate-300 bg-white p-4 text-slate-950 grid gap-3" data-archive-series="true"><header class="flex flex-wrap items-center justify-between gap-3"><strong>S3 · Contratos</strong><code>CTR</code></header><dl class="grid gap-2"><div><dt>Serie</dt><dd>Contratos generales</dd></div><div><dt>Orden</dt><dd>Año y correlativo</dd></div><div><dt>Inventario</dt><dd><a class="underline underline-offset-4" href="#inventario">Abrir 18 documentos</a></dd></div></dl></section>Copia el bloque completo; después cambia contenido y destinos, no su anatomía.
export interface ArchiveSeriesItem {
/** Nombre del dato (`<dt>`). */
label: string;
value: string;
/** Si existe, el valor es un enlace a esta dirección (por ejemplo, el inventario de la serie). */
href?: string;
}
export interface ArchiveSeriesProps {
/** Sección a la que pertenece la serie, con su sigla («S3 · Contratos»). */
title?: string;
/** Sigla de la serie, la que va en sus números documentales («CTR»); vacío la oculta. */
code?: string;
/** Datos de la serie: nombre, criterio de orden y enlace al inventario. */
items?: ArchiveSeriesItem[];
className?: string;
}
const ARCHIVE_SERIES_ITEMS: ArchiveSeriesItem[] = [
{ label: "Serie", value: "Contratos generales" },
{ label: "Orden", value: "Año y correlativo" },
{ label: "Inventario", value: "Abrir 18 documentos", href: "#inventario" },
];
/**
* Ficha de una serie documental dentro de una sección del fondo, con su sigla, nombre, criterio de orden y enlace al inventario; se usa al navegar el archivo hasta los documentos.
*
* @example <ArchiveSeries code="PRE" items={[{ label: "Serie", value: "Prestación de servicios" }, { label: "Orden", value: "Año y correlativo" }, { label: "Inventario", value: "Abrir 18 documentos", href: "/archivo/cds/s3/pre" }]} />
*/
export function ArchiveSeries({
title = "S3 · Contratos",
code = "CTR",
items = ARCHIVE_SERIES_ITEMS,
className,
}: ArchiveSeriesProps) {
return (
<section className={["ui-document", className].filter(Boolean).join(" ")} data-archive-series>
{title || code ? (
<header>
{title ? <strong>{title}</strong> : null}
{code ? <code>{code}</code> : null}
</header>
) : null}
{items.length ? (
<dl>
{items.map((item, i) => (
<div key={`${item.label}-${i}`}>
<dt>{item.label}</dt>
<dd>{item.href ? <a href={item.href}>{item.value}</a> : item.value}</dd>
</div>
))}
</dl>
) : null}
</section>
);
}