Saltar al contenido
Índice de Kit UI
Kit UI Componentes

Conversación.

Patrón canónico de conversación para usaia, scribe, periodismo2 admin y claudia.

Verlo por niveles

Primero el componente, después la variación de marca y finalmente su uso dentro de una página.

Nivel 1Componente canónico
Tú

Resume los cambios de empleo y conserva las fuentes.

usaia

La desocupación subió 0,3 puntos en Valparaíso.

Nivel 2Compañía de Innovación de Santiago · variación
Tú

Resume los cambios de empleo en Valparaíso y conserva las fuentes.

usaia

La desocupación subió 0,3 puntos en Valparaíso entre mayo y julio.

Tú

¿Y en Biobío, en el mismo trimestre?

usaia

No encontré el boletín regional de Biobío para ese trimestre, así que no incluí la cifra.

Nivel 3Dentro de una página
Sitio · sección
Tú

Resume los cambios de empleo y conserva las fuentes.

usaia

La desocupación subió 0,3 puntos en Valparaíso.

Ver y copiar el código de este render
HTML del nivel canónico
<section class="ui-sample ui-ai" data-chat-thread="true" aria-label="Conversación con usaia"><article data-message-role="user"><header><strong>Tú</strong><time>18:20</time></header><p>Resume los cambios de empleo y conserva las fuentes.</p></article><article data-message-role="assistant"><header><strong>usaia</strong><time>18:21</time></header><p>La desocupación subió 0,3 puntos en Valparaíso.</p><footer><a href="#fuentes">3 fuentes</a></footer></article></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.

usaia.cl

usaia

Autoridad: CANON.md + decisión de producto usaia
Tú

Resume los cambios de empleo y conserva las fuentes.

usaia

La desocupación subió 0,3 puntos en Valparaíso.

Cambia en esta marca

  • Namebrand usaia en minúsculas y acento morado
  • Superficies para evidencia, herramientas y aprobación

Permanece canónico

  • Acciones explícitas y estados conectados
  • Misma anatomía, tipografía y navegación
innovacionsantiago.cl

Compañía de Innovación de Santiago

Autoridad: CONSTITUTION.md + LOGOS-CANONICOS.md
Tú

Resume los cambios de empleo en Valparaíso y conserva las fuentes.

usaia

La desocupación subió 0,3 puntos en Valparaíso entre mayo y julio.

Tú

¿Y en Biobío, en el mismo trimestre?

usaia

No encontré el boletín regional de Biobío para ese trimestre, así que no incluí la cifra.

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

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
Conversación tiene 1 implementaciones observadas en 1 repositorios: cochid/cochid-scribe.
Cambio propuesto
Publicar en r19 el contrato de Conversación para Patrón canónico de conversación para usaia, scribe, periodismo2 admin y claudia.
Qué ocurre si respondes No
No se adopta el contrato r19 de Conversación; las 1 implementaciones observadas permanecen sin migración.

Preparando comparación histórica…

Antes / r19

La comparación convierte una regla abstracta en una diferencia visible y verificable.

r19 · correctoContrato canónico renderizado
Tú

Resume los cambios de empleo y conserva las fuentes.

usaia

La desocupación subió 0,3 puntos en Valparaíso.

  • Separa propuesta, evidencia, herramientas y aprobación humana.
  • Muestra procedencia, impacto y estado de cada tarea.
Antes · problema observadoAnti-ejemplo no interactivo
ListoLa tarea fue realizada correctamenteSin evidencia, herramientas, impacto ni aprobación
  • No presentes razonamiento sintético como evidencia.
  • No ejecutes mutaciones externas desde un control ambiguo.

Responsive

La misma anatomía debe conservar lectura, foco y acciones sin cortar contenido ni crear scroll horizontal en la página.

320 pxMóvil y zoom
Tú

Resume los cambios de empleo y conserva las fuentes.

usaia

La desocupación subió 0,3 puntos en Valparaíso.

1280 pxEscritorio
Tú

Resume los cambios de empleo en Valparaíso y conserva las fuentes.

usaia

La desocupación subió 0,3 puntos en Valparaíso entre mayo y julio.

Tú

¿Y en Biobío, en el mismo trimestre?

usaia

No encontré el boletín regional de Biobío para ese trimestre, así que no incluí la cifra.

Cobertura

DimensiónContrato
Propietario canónicoSistema de diseño CIS y usaia · core/core-style
Consumidoresusaia, Scribe, Periodismo2 Admin y Claudia
DependenciasAI Elements adaptado, contrato de evidencia
Estadocandidato

Evidencia de adopción

Patrón observado. 1 implementaciones observadas en 1 repositorios.

La observación demuestra uso existente; la aceptación canónica sigue dependiendo de esta ficha y de su propietario.

DatoResultado
ClasificaciónPatrón observado
Implementaciones1 implementaciones observadas
Repositorioscochid/cochid-scribe
Snapshotkit/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
idle
en curso
requiere aprobación
completo
error

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.

Código de referencia
<section class="ui-sample ui-ai" data-chat-thread="true" aria-label="Conversación con usaia"><article data-message-role="user"><header><strong>Tú</strong><time>18:20</time></header><p>Resume los cambios de empleo y conserva las fuentes.</p></article><article data-message-role="assistant"><header><strong>usaia</strong><time>18:21</time></header><p>La desocupación subió 0,3 puntos en Valparaíso.</p><footer><a href="#fuentes">3 fuentes</a></footer></article></section>

Código TAILWIND

Copia el bloque completo; después cambia contenido y destinos, no su anatomía.

Código de referencia
<section class="ui-sample ui-ai border border-slate-300 bg-white p-4 text-slate-950 grid gap-3" data-chat-thread="true" aria-label="Conversación con usaia"><article class="grid gap-3" data-message-role="user"><header class="flex flex-wrap items-center justify-between gap-3"><strong>Tú</strong><time>18:20</time></header><p>Resume los cambios de empleo y conserva las fuentes.</p></article><article class="grid gap-3" data-message-role="assistant"><header class="flex flex-wrap items-center justify-between gap-3"><strong>usaia</strong><time>18:21</time></header><p>La desocupación subió 0,3 puntos en Valparaíso.</p><footer class="flex flex-wrap items-center justify-between gap-3"><a class="underline underline-offset-4" href="#fuentes">3 fuentes</a></footer></article></section>

Código REACT

Copia el bloque completo; después cambia contenido y destinos, no su anatomía.

Código de referencia
export interface ChatThreadMessage {
  /** Quién escribió el mensaje: la persona (`user`) o el asistente (`assistant`). */
  role: "user" | "assistant";
  /** Nombre visible del autor («Tú», «usaia»). */
  author: string;
  /** Hora visible del mensaje («18:20»); vacía no muestra la hora. */
  time?: string;
  /** Fecha y hora en ISO 8601 para el atributo `dateTime` de `<time>`; vacía omite el atributo. */
  dateTime?: string;
  /** Texto del mensaje. */
  text: string;
  /** Texto del enlace a las fuentes («3 fuentes»); vacío oculta el pie del mensaje. */
  sourcesLabel?: string;
  /** Destino del enlace a las fuentes; sin él no se muestra el pie. */
  sourcesHref?: string;
}

export interface ChatThreadProps {
  /** Nombre accesible de la conversación. */
  label?: string;
  /** Mensajes del más antiguo al más reciente; sin mensajes no se renderiza nada. */
  messages?: ChatThreadMessage[];
  className?: string;
}

const CHAT_THREAD_MESSAGES: ChatThreadMessage[] = [
  { role: "user", author: "Tú", time: "18:20", text: "Resume los cambios de empleo y conserva las fuentes." },
  {
    role: "assistant",
    author: "usaia",
    time: "18:21",
    text: "La desocupación subió 0,3 puntos en Valparaíso.",
    sourcesLabel: "3 fuentes",
    sourcesHref: "#fuentes",
  },
];

/**
 * Conversación entre una persona y un asistente de IA, con el autor, la hora y el enlace a fuentes de cada mensaje; se usa para mostrar el historial de una consulta.
 *
 * Cada mensaje es un `<article>` con `data-message-role`; el orden del arreglo es el orden de lectura. Si los mensajes necesitan los botones de editar o copiar, arma la conversación con `ChatMessageUser` y `ChatMessageAssistant`.
 *
 * @example <ChatThread label="Conversación con usaia" messages={[{ role: "user", author: "Tú", time: "18:20", text: "Resume los cambios de empleo." }, { role: "assistant", author: "usaia", time: "18:21", text: "La desocupación subió 0,3 puntos.", sourcesLabel: "3 fuentes", sourcesHref: "#fuentes" }]} />
 */
export function ChatThread({ label = "Conversación con usaia", messages = CHAT_THREAD_MESSAGES, className }: ChatThreadProps) {
  if (!messages.length) return null;
  return (
    <section className={["ui-ai", className].filter(Boolean).join(" ")} data-chat-thread aria-label={label}>
      {messages.map((message, i) => (
        <article key={`${message.role}-${i}`} data-message-role={message.role}>
          <header>
            <strong>{message.author}</strong>
            {message.time ? <time dateTime={message.dateTime || undefined}>{message.time}</time> : null}
          </header>
          <p>{message.text}</p>
          {message.sourcesLabel && message.sourcesHref ? (
            <footer>
              <a href={message.sourcesHref}>{message.sourcesLabel}</a>
            </footer>
          ) : null}
        </article>
      ))}
    </section>
  );
}