Data

Data tables, Kanban boards, searchable tables, and timeline components.

Full Data Table

Feature-rich data table with sorting, filtering, pagination, and bulk actions.

Preview
NameEmailRoleStatus
Alice Johnsonalice@example.comAdminActive
Bob Smithbob@example.comMemberActive
Carol Whitecarol@example.comMemberInactive
Dave Browndave@example.comViewerActive

0 of 4 row(s) selected

Rows per page:
Page 1 of 1
Full Data Table.tsx
import { FullDataTable } from "@launchapp/design-system/blocks/data";import type { ColumnDef } from "@tanstack/react-table";interface User {  id: string;  name: string;  email: string;  role: string;  status: "active" | "inactive";}const columns: ColumnDef<User>[] = [  { accessorKey: "name", header: "Name" },  { accessorKey: "email", header: "Email" },  { accessorKey: "role", header: "Role" },  { accessorKey: "status", header: "Status" },];const data: User[] = [  { id: "1", name: "Alice Johnson", email: "alice@example.com", role: "Admin", status: "active" },  { id: "2", name: "Bob Smith", email: "bob@example.com", role: "Member", status: "active" },  { id: "3", name: "Carol White", email: "carol@example.com", role: "Member", status: "inactive" },];export default function Page() {  return <FullDataTable columns={columns} data={data} searchColumn="name" />;}

Kanban Board

Drag-and-drop Kanban board with columns and cards.

Preview

To Do

2

Research competitors

Research

Design wireframes

Design

In Progress

2

Build API endpoints

Engineering

Write unit tests

QA

Done

1

Project kickoff

Planning
Kanban Board.tsx
import { KanbanBoard } from "@launchapp/design-system/blocks/data";const initialColumns = [  {    id: "todo",    title: "To Do",    cards: [      { id: "1", title: "Research competitors", badge: "Research" },      { id: "2", title: "Design wireframes", badge: "Design" },    ],  },  {    id: "in-progress",    title: "In Progress",    cards: [      { id: "3", title: "Build API endpoints", badge: "Engineering" },    ],  },  {    id: "done",    title: "Done",    cards: [      { id: "4", title: "Project kickoff", badge: "Planning" },    ],  },];export default function Page() {  return <KanbanBoard initialColumns={initialColumns} />;}

Searchable Data Table

Data table with search input and column visibility controls.

Preview

4 results

NameEmailRoleStatus
Alice Johnsonalice@example.comAdminActive
Bob Smithbob@example.comMemberActive
Carol Whitecarol@example.comMemberInactive
Dave Browndave@example.comViewerActive

Page 1 of 1

Rows:
Searchable Data Table.tsx
import { SearchableDataTable } from "@launchapp/design-system/blocks/data";import type { ColumnDef } from "@tanstack/react-table";interface Product {  id: string;  name: string;  category: string;  price: number;}const columns: ColumnDef<Product>[] = [  { accessorKey: "name", header: "Name" },  { accessorKey: "category", header: "Category" },  { accessorKey: "price", header: "Price" },];const data: Product[] = [  { id: "1", name: "Wireless Headphones", category: "Electronics", price: 99 },  { id: "2", name: "Running Shoes", category: "Sports", price: 75 },  { id: "3", name: "Coffee Maker", category: "Appliances", price: 49 },];export default function Page() {  return (    <SearchableDataTable      columns={columns}      data={data}      searchColumn="name"      searchPlaceholder="Search products..."    />  );}

Timeline

Vertical timeline for displaying chronological events with icons and badges.

Preview
  1. Completed

    Project kickoff

    Initial planning meeting with all stakeholders.

  2. Completed

    Design phase

    Created wireframes and design system tokens.

  3. In Progress

    Development sprint

    Building core features and API integration.

  4. Upcoming

    Launch

    Public release and marketing campaign.

Timeline.tsx
import { Timeline } from "@launchapp/design-system/blocks/data";const items = [  {    id: "1",    title: "Project kickoff",    description: "Initial planning meeting with all stakeholders.",    date: "Jan 15, 2025",    status: "completed",  },  {    id: "2",    title: "Design phase",    description: "Created wireframes and design system.",    date: "Feb 1, 2025",    status: "completed",  },  {    id: "3",    title: "Development sprint",    description: "Building core features and API integration.",    date: "Mar 10, 2025",    status: "current",  },  {    id: "4",    title: "Launch",    description: "Public release and marketing campaign.",    date: "Apr 1, 2025",    status: "upcoming",  },];export default function Page() {  return <Timeline items={items} />;}

Stats Card

Single-metric stat card with trend indicator and sparkline.

Preview

Total Revenue

$45,231

Monthly recurring revenue

+20.1%
vs last month
Stats Card.tsx
import { StatsCard } from "@launchapp/design-system/blocks/data";export default function Page() {  return (    <StatsCard      label="Total Revenue"      value="$45,231"      trend="up"      trendValue="+20.1% from last month"      sparklineData={[30, 40, 35, 50, 49, 60, 70]}    />  );}

Metric Grid

Responsive grid of metric cards for dashboard overview sections.

Preview

Revenue

$45,231
+20.1%

Active Users

2,350
+8.2%

Churn Rate

3.2%
-1.1%
Metric Grid.tsx
import { MetricGrid } from "@launchapp/design-system/blocks/data";const metrics = [  { id: "revenue", label: "Revenue", value: "$45,231", trend: "up" as const, trendValue: "+20.1%" },  { id: "users", label: "Active Users", value: "2,350", trend: "up" as const, trendValue: "+15.3%" },  { id: "orders", label: "Orders", value: "1,247", trend: "down" as const, trendValue: "-4.2%" },  { id: "conversion", label: "Conversion", value: "3.24%", trend: "neutral" as const, trendValue: "0.0%" },];export default function Page() {  return <MetricGrid metrics={metrics} />;}

Activity Feed

Paginated activity feed for data dashboards with filtering.

Preview

No preview available

See the code snippet below for usage.

Activity Feed.tsx
import { ActivityFeed } from "@launchapp/design-system/blocks/data";const items = [  { id: "1", user: { name: "Alice", initials: "AJ" }, action: "Created a project", timestamp: "2 min ago", actionType: "create" },  { id: "2", user: { name: "Bob", initials: "BS" }, action: "Merged a PR", timestamp: "1 hour ago", actionType: "merge" },];export default function Page() {  return <ActivityFeed items={items} />;}

Empty State

Empty state placeholder with icon, title, description, and CTA.

Preview

No preview available

See the code snippet below for usage.

Empty State.tsx
import { EmptyState } from "@launchapp/design-system/blocks/data";export default function Page() {  return (    <EmptyState      title="No projects yet"      description="Get started by creating your first project."      action={<button type="button">Create project</button>}    />  );}

Calendar View

Monthly calendar view with event markers and day selection.

Preview

No preview available

See the code snippet below for usage.

Calendar View.tsx
import { CalendarView } from "@launchapp/design-system/blocks/data";const events = [  { id: "1", date: "2024-01-15", title: "Team standup", color: "blue" },  { id: "2", date: "2024-01-20", title: "Product launch", color: "green" },];export default function Page() {  return <CalendarView events={events} onDateSelect={(date) => console.log("selected", date)} />;}

Chart Card

Card wrapper for charts with title, description, period selector, and actions.

Preview

No preview available

See the code snippet below for usage.

Chart Card.tsx
import { ChartCard } from "@launchapp/design-system/blocks/data";export default function Page() {  return (    <ChartCard      title="Revenue Over Time"      description="Monthly revenue for the past 6 months"      periods={["1W", "1M", "3M", "6M", "1Y"]}    >      <div className="h-48 flex items-center justify-center text-muted-foreground text-sm">        Chart goes here      </div>    </ChartCard>  );}

Data Trend

Trend indicator card showing metric value with percentage change and sparkline.

Preview

No preview available

See the code snippet below for usage.

Data Trend.tsx
import { DataTrend } from "@launchapp/design-system/blocks/data";export default function Page() {  return (    <DataTrend      label="Monthly Active Users"      value={12450}      previousValue={10800}      format="number"      sparklineData={[8200, 9100, 10200, 10800, 11400, 12450]}    />  );}

Empty State Card

Card-styled empty state for table and list components.

Preview

No preview available

See the code snippet below for usage.

Empty State Card.tsx
import { EmptyStateCard } from "@launchapp/design-system/blocks/data";export default function Page() {  return (    <EmptyStateCard      title="No results found"      description="Try adjusting your search or filters to find what you're looking for."    />  );}

Filter Bar

Horizontal filter bar with multi-select dropdowns and active filter chips.

Preview

No preview available

See the code snippet below for usage.

Filter Bar.tsx
import { FilterBar } from "@launchapp/design-system/blocks/data";const filters = [  { id: "status", label: "Status", options: ["Active", "Inactive", "Pending"] },  { id: "role", label: "Role", options: ["Admin", "Member", "Viewer"] },];export default function Page() {  return (    <FilterBar      filters={filters}      onFilterChange={(id, values) => console.log("filter", id, values)}      onClearAll={() => console.log("clear all")}    />  );}

Funnel Chart Card

Card displaying a conversion funnel chart with stage-by-stage breakdown.

Preview

No preview available

See the code snippet below for usage.

Funnel Chart Card.tsx
import { FunnelChartCard } from "@launchapp/design-system/blocks/data";const stages = [  { label: "Visitors", value: 10000 },  { label: "Sign-ups", value: 3500 },  { label: "Activated", value: 1200 },  { label: "Converted", value: 420 },];export default function Page() {  return <FunnelChartCard title="Conversion Funnel" stages={stages} />;}

Gauge Card

Card with circular gauge meter for displaying a single KPI as a percentage.

Preview

No preview available

See the code snippet below for usage.

Gauge Card.tsx
import { GaugeCard } from "@launchapp/design-system/blocks/data";export default function Page() {  return (    <GaugeCard      title="System Health"      value={87}      unit="%"      threshold={{ warning: 60, critical: 30 }}    />  );}

KPI Comparison Card

Side-by-side KPI comparison card showing current vs previous period.

Preview

No preview available

See the code snippet below for usage.

KPI Comparison Card.tsx
import { KPIComparisonCard } from "@launchapp/design-system/blocks/data";export default function Page() {  return (    <KPIComparisonCard      title="Revenue"      current={{ value: 45231, label: "This Month", formatted: "$45,231" }}      previous={{ value: 37600, label: "Last Month", formatted: "$37,600" }}    />  );}

Sparkline Card

Compact metric card with inline sparkline chart for trend visualization.

Preview

No preview available

See the code snippet below for usage.

Sparkline Card.tsx
import { SparklineCard } from "@launchapp/design-system/blocks/data";export default function Page() {  return (    <SparklineCard      label="Weekly Signups"      value={342}      trend="up"      trendValue="+12%"      data={[180, 220, 195, 280, 310, 290, 342]}    />  );}

Data Table Card

Card-wrapped data table with header, title, and export button.

Preview

No preview available

See the code snippet below for usage.

Data Table Card.tsx
import { DataTableCard } from "@launchapp/design-system/blocks/data";import type { ColumnDef } from "@tanstack/react-table";const columns: ColumnDef<{ name: string; email: string; status: string }>[] = [  { accessorKey: "name", header: "Name" },  { accessorKey: "email", header: "Email" },  { accessorKey: "status", header: "Status" },];const data = [  { name: "Alice Johnson", email: "alice@example.com", status: "Active" },  { name: "Bob Smith", email: "bob@example.com", status: "Pending" },];export default function Page() {  return <DataTableCard title="Users" columns={columns} data={data} />;}

Column Filters

Per-column filter controls for data tables with type-aware input components.

Preview

No preview available

See the code snippet below for usage.

Column Filters.tsx
import { ColumnFilters } from "@launchapp/design-system/blocks/data";const filters = [  { id: "name", label: "Name", type: "text" as const },  { id: "status", label: "Status", type: "select" as const, options: ["active", "inactive"] },];export default function Page() {  return (    <ColumnFilters      filters={filters}      onFiltersChange={(values) => console.log("filters changed", values)}    />  );}

Data Table Toolbar

Toolbar for data tables with global search, filter, column visibility, and bulk actions.

Preview

No preview available

See the code snippet below for usage.

Data Table Toolbar.tsx
import { DataTableToolbar } from "@launchapp/design-system/blocks/data";export default function Page() {  return (    <DataTableToolbar      onSearch={(q) => console.log("search", q)}      onAddNew={() => console.log("add new")}      onExport={() => console.log("export")}    />  );}