API Reference

Timeline

A vertical, dated rail — events with a date, status, body, tags, and typed references.

A Timeline is a vertical, dated rail — each item is an event with a date, a title, an optional body, a status dot, tags, and typed references. It's one of the dual-representation components: it renders a polished rail for humans and hands an agent the parsed, range-queryable data behind it — never a picture to interpret.

The shared knowledge envelope

Every structural knowledge face extends one shape — kind discriminates the node, id is a stable slug addressable as ${pageId}#${id}, and refs[] is the universal graph edge that powers navigate. Shared enums (Status, date precision) let a single query — "everything in-progress", "everything dated in Q3" — work across Timeline, EntityCard, and the rest with no per-component logic.

When to use it

Roadmaps, project histories, release sequences, incident timelines — anything that is fundamentally ordered by time with state. The agent gets parsed dates and statuses, never a description of a rail.

Props

Timeline

PropTypeDefaultDescription
itemsTimelineItemInput[]The events, in order
labelstring"Timeline"Accessible name for the list

TimelineItemInput

FieldTypeDefaultDescription
datestring2026, 2026-Q3, 2026-08, or 2026-07-01 — precision is inferred
titlestringThe event title
bodyReactNodeOptional detail under the title
statusStatusOne of planned · in-progress · blocked · done · deprecated · proposed · accepted · rejected · superseded
tagsstring[]Chips rendered after the body
refs{ rel?, target, label? }[]Typed links rendered as pill-links

Live example

  1. 2026-07-01
    Project kickoff
    Repo, brand, and thesis locked.
  2. 2026-08
    Core extraction
    Components, theme, MCP.
    phase-2
  3. 2026-Q3
    GA launch
    milestoneMCP

What the agent sees

get_component_data returns the data, not the rail — dates parsed to { iso, precision }, the status enum intact, and the ref resolved as internal:

{
  "kind": "timeline",
  "id": "timeline",
  "items": [
    {
      "id": "project-kickoff",
      "date": { "iso": "2026-07-01", "precision": "day" },
      "title": "Project kickoff",
      "body": "Repo, brand, and thesis locked.",
      "status": "done"
    },
    {
      "id": "core-extraction",
      "date": { "iso": "2026-08", "precision": "month" },
      "title": "Core extraction",
      "body": "Components, theme, MCP.",
      "status": "in-progress",
      "tags": ["phase-2"]
    },
    {
      "id": "ga-launch",
      "date": { "iso": "2026-Q3", "precision": "quarter" },
      "title": "GA launch",
      "status": "planned",
      "tags": ["milestone"],
      "refs": [{ "rel": "related", "target": "/docs/agents/mcp", "label": "MCP", "internal": true }]
    }
  ]
}

Why precision matters

Because each date keeps its precision, the MCP can answer "what shipped in Q3?" — matching the quarter-precision 2026-Q3 and any 2026-07/2026-08-12 that fall inside it — without you normalizing dates by hand.

On this page

Built withsuperlore