Command Palette

Search for a command to run...

GitHub
ComponentsActivity Timeline

Activity Timeline

A beautiful, responsive, and composable timeline/stepper component system. Built specifically for LGU document routing audit trails, leave application steppers, and system administrator event logs.

React
LGU Workflow
Data-Driven & Composable

Interactive Demo

Explore three distinct municipal configurations: Document Routing History, Leave Application Stepper, and Composable IT Audit Logs.

Document Routing Audit Trail

Using <ActivityTimelineList items={DOCUMENT_HISTORY} /> shorthand.

Routing History: PR-2026-009
Real-time document lifecycle tracker for Municipal ICT Office procurement.
Status: In Budget Review

Purchase Request Submitted

Oct 24, 2026 · 09:15 AM
N
Nehry DedoroLead Architect

PR-2026-009 submitted for IT Equipment procurement (20x Laptops).

Budget: ICT Fund
Priority: High

Endorsed by Department Head

Oct 24, 2026 · 11:30 AM
C
Clara BautistaDepartment Head

Reviewed and endorsed by Municipal ICT Officer. Verified itemized budget allocation.

Endorsed

Pending Budget Clearance

Oct 25, 2026 · 02:00 PM
R
Reyna GarciaBudget Officer

Forwarded to Municipal Budget Office for CAO (Certificate of Availability of Funds).

In Review

Mayor's Final Approval

Awaiting final electronic signature from Office of the Municipal Mayor.

Release & Bidding

Endorsed to BAC (Bids and Awards Committee) for posting on PhilGEPS.

Interactive Leave Approval Stepper

Horizontal orientation for multi-step wizards or application progress.

Filing

Submit Form 6

HRMO Review

Leave credits check

Supervisor

Workload clearance

Approved

Final notice

Composable API & Custom Dots

Using individual <ActivityTimelineItem> nodes for absolute layout control.

User Authentication Success10:02:14 AM

IP: 192.168.1.45 via HRMO Biometrics Gateway

Database Sync Failure10:05:00 AM

Timeout waiting for MSWD Angono Cloud Replica.

Automatic Retry Attempt #2Just now

Re-establishing handshake protocol...

Installation

Install the component via the shadcn/ui CLI.

pnpm dlx shadcn@latest add https://micto-ui-kit.misangono.net/r/micto/activity-timeline.json

Data-Driven Shorthand

Pass an array of structured items to ActivityTimelineList for instant rendering of document routing histories.

import { ActivityTimelineList } from "@/components/micto/activity-timeline"
import { Badge } from "@/components/ui/badge"

const history = [
  {
    id: 1,
    title: "Purchase Request Submitted",
    description: "PR-2026-009 submitted for IT Equipment procurement.",
    timestamp: "Oct 24, 2026 · 09:15 AM",
    status: "completed" as const,
    actor: { name: "Nehry Dedoro", avatar: "/avatars/nehry.jpg", role: "Lead Architect" },
    metadata: [<Badge key="1">ICT Fund</Badge>],
    attachments: [{ label: "Specs.pdf", url: "#" }]
  },
  {
    id: 2,
    title: "Pending Budget Clearance",
    description: "Forwarded to Municipal Budget Office.",
    status: "in-progress" as const,
  }
]

export default function DocumentHistory() {
  return <ActivityTimelineList items={history} orientation="vertical" />
}

Horizontal Stepper

Change orientation to horizontal for multi-step wizards or application progress tracking.

import { ActivityTimelineList } from "@/components/micto/activity-timeline"

const steps = [
  { id: 1, title: "Filing", description: "Submit Form 6", status: "completed" as const },
  { id: 2, title: "HRMO Review", description: "Leave credits check", status: "in-progress" as const },
  { id: 3, title: "Supervisor Approval", description: "Workload clearance", status: "pending" as const },
]

export default function LeaveStepper() {
  return <ActivityTimelineList items={steps} orientation="horizontal" />
}

Composable Primitives

Use individual ActivityTimelineItem nodes for absolute layout control and custom status icons.

import {
  ActivityTimeline,
  ActivityTimelineItem,
  ActivityTimelineTrack,
  ActivityTimelineConnector,
  ActivityTimelineDot,
  ActivityTimelineContent,
} from "@/components/micto/activity-timeline"
import { UserCheck, AlertTriangle } from "lucide-react"

export default function SystemAuditLog() {
  return (
    <ActivityTimeline orientation="vertical" className="gap-2">
      <ActivityTimelineItem status="completed">
        <ActivityTimelineTrack>
          <ActivityTimelineConnector />
          <ActivityTimelineDot className="border-blue-500 bg-blue-50 text-blue-600">
            <UserCheck className="size-4" />
          </ActivityTimelineDot>
        </ActivityTimelineTrack>
        <ActivityTimelineContent>
          <div className="flex justify-between items-center">
            <span className="text-xs font-bold">User Auth Success</span>
            <span className="text-[10px] text-muted-foreground">10:02:14 AM</span>
          </div>
          <p className="text-[11px] text-muted-foreground">IP: 192.168.1.45 via Biometrics Gateway</p>
        </ActivityTimelineContent>
      </ActivityTimelineItem>
    </ActivityTimeline>
  )
}

ActivityTimeline Props

Root container configuration.

PropTypeDefaultDescription
orientation'vertical' | 'horizontal''vertical'Defines the layout orientation. Vertical stacks items down; horizontal places them side-by-side.
classNamestringundefinedAdditional CSS classes for the outer wrapper container.

ActivityTimelineList Props

High-level shorthand wrapper configuration.

PropTypeDefaultDescription
itemsActivityTimelineItemData[]Array of structured item configuration objects for the data-driven shorthand.
orientation'vertical' | 'horizontal''vertical'Forwarded to the root container to dictate layout flow.

ActivityTimelineItemData

Structure of each item object in the items array.

PropTypeDefaultDescription
idstring | numberUnique identifier for React list keys.
titleReactNodePrimary title of the timeline step or event.
descriptionReactNodeundefinedSecondary details text or paragraph.
timestampstringundefinedFormatted date/time string displayed next to or below the title.
status'completed' | 'in-progress' | 'pending' | 'error' | 'muted''pending'Visual status state for this step.
actor{ name?: string; avatar?: string; role?: string }undefinedActor information. Renders a clickable tooltip badge in vertical mode, or a pill in horizontal mode.
metadataReactNode[]undefinedArray of Badge components or status pills rendered below the description.
attachments{ label: string; url?: string; onClick?: () => void }[]undefinedDocument attachments. Renders underlined clickable attachment links.
customDotReactNodeundefinedCompletely replaces the built-in status dot with a custom React element.

ActivityTimelineItem Props

Individual composable node configuration.

PropTypeDefaultDescription
status'completed' | 'in-progress' | 'pending' | 'error' | 'muted''pending'Sets the visual styling state of the dot and connector line.
isLastbooleanfalseWhen true, hides the connector line running from this item.