Uranus® Design System
AI

ResearchPanel

Card que combina StageList + CitationList para o modo "research".

ResearchPanel é o complemento (ou a substituição) da coluna de chat quando mode === 'research'. Exibe etapas em andamento + fontes consultadas lado a lado, com um header sumarizado.

Este exemplo precisa de mais altura para rolar e interagir como em um app real. Abra em tela cheia.

'use client';

import { ResearchPanel } from '@uranus-workspace/ai';

export default function ResearchPanelDefault() {
  return (
    <div className="mx-auto w-full max-w-2xl">
      <ResearchPanel
        title="Pesquisando: padrões de chat para produtos B2B"
        stages={[
          { id: '1', title: 'Reformular consulta', status: 'done' },
          { id: '2', title: 'Buscar em /docs', status: 'done' },
          {
            id: '3',
            title: 'Buscar na web',
            status: 'running',
            description: 'ai-sdk.dev/docs/agents',
          },
          { id: '4', title: 'Sintetizar resposta', status: 'queued' },
        ]}
        citations={[
          {
            id: 'a',
            title: 'AI SDK — UIMessage parts',
            url: 'https://ai-sdk.dev',
            source: 'ai-sdk.dev',
            snippet: 'Streaming text + tool calls em uma única estrutura.',
          },
          {
            id: 'b',
            title: 'Uranus — Padrões de composição',
            url: 'https://design.uranus.com.br',
            source: 'design.uranus.com.br',
          },
        ]}
      />
    </div>
  );
}

Uso

import { ResearchPanel, useUranusChat } from '@uranus-workspace/ai';

const chat = useUranusChat({ api: '/api/research', defaultMode: 'research' });

<ResearchPanel
  title={`Pesquisando: ${chat.research?.query}`}
  stages={chat.research?.stages ?? []}
  citations={chat.research?.citations ?? []}
  summary={chat.research?.summary}
/>

API

  • stagesUranusStage[], mesma forma de StageList.
  • citationsUranusCitation[].
  • title — default "Pesquisa".
  • summary — texto/JSX renderizado abaixo das fontes (ex.: TLDR final).

On this page