Skip to content
Aggarly OS
  • Getting Started
    • Introduction
  • Foundations
    • Colors
    • Spacing
    • Radius
    • Typography
    • Shadows
    • Z-Index
    • Gradients
    • Tokens
    • RTL & Direction
    • Theming
  • Layout
    • Containers
    • Grid System
    • Layout Utilities
  • Components
    • Alerts
    • Avatars
    • Buttons
    • Button Group
    • Badges
    • Inputs
    • Select
    • Checkbox
    • Counters-timers
    • Radio
    • Switch
    • Stepper
    • Select-pro
    • Cards
    • Modals
    • Dropdown
    • Popover
    • Tooltip
    • Accordion
    • Breadcrumb
    • Tabs
    • Navbar
    • List Group
    • Toasts
    • Skeleton
    • Pagination
    • Progress
    • Table
    • Icons
    • Form
    • Ribbons
    • Spinner
    • Offcanvas
    • Feedback
    • Grid
    • Data UI
  • Data UI
    • Overview
  • Platform
    • Reference DataCore
  • Widgets
    • KPI
    • Analytics
    • Behavior
  • Brand
    • Logo
    • Brand Usage
Data UI/Overview

Data Components

Enterprise-grade “data UI” primitives for dashboards, tables, admin screens, and audit-heavy workflows: status indicators, permission badges, stat cards, toolbars, timelines, audit logs, and empty states.

StatusDot

Compact status indicator for tables, timelines, and operational dashboards.

OnlineDegradedBlockedIdle
Show code
StatusDot (JSX)
import { StatusDot } from "@/design-system/components/data";

export function Example() {
  return (
    <div className="data-docs-row">
      <StatusDot tone="success" label="Online" pulse />
      <StatusDot tone="warning" label="Degraded" />
      <StatusDot tone="danger" label="Blocked" />
      <StatusDot tone="neutral" label="Idle" />
    </div>
  );
}

PermissionBadge

Permission/role label with enterprise styling (Owner/Admin/Editor/Viewer/Restricted).

owneradmineditorviewerrestricted
Show code
PermissionBadge (JSX)
import { PermissionBadge } from "@/design-system/components/data";

export function Example() {
  return (
    <div className="data-docs-row">
      <PermissionBadge level="owner" />
      <PermissionBadge level="admin" variant="outline" />
      <PermissionBadge level="editor" />
      <PermissionBadge level="viewer" />
      <PermissionBadge level="restricted" variant="solid" />
    </div>
  );
}

StatCard

Premium metric cards with tone accents and optional trend pills.

Active students
+8%vs last week
128
Across 6 programs
Last updated: 2m ago
Sessions completed
+12%vs yesterday
42
Last 24 hours
Owner: Clinical
Needs review
Stable
7
Supervisor queue
Next: Supervisor
Blocked exports
-1since Monday
2
Missing permissions
Policy: Finance
Show code
StatCard grid (JSX)
import { StatCard } from "@/design-system/components/data";

export function Example() {
  return (
    <div className="data-docs-grid">
      <StatCard
        tone="primary"
        icon={/* icon */ undefined}
        label="Active students"
        value="128"
        helper="Across 6 programs"
        trend={{ direction: "up", value: "+8%", label: "vs last week" }}
      />

      <StatCard
        tone="success"
        label="Sessions completed"
        value="42"
        helper="Last 24 hours"
        trend={{ direction: "up", value: "+12%", label: "vs yesterday" }}
      />

      <StatCard
        tone="warning"
        label="Needs review"
        value="7"
        helper="Supervisor queue"
        trend={{ direction: "flat", value: "Stable" }}
      />

      <StatCard
        tone="danger"
        label="Blocked exports"
        value="2"
        helper="Missing permissions"
        trend={{ direction: "down", value: "-1", label: "since Monday" }}
      />
    </div>
  );
}

DataToolbar

Toolbar layout for search + filters + actions above tables and lists.

Students
Clinical workspace
128 results
Show code
DataToolbar (JSX)
import { DataToolbar } from "@/design-system/components/data";
import { Button } from "@/design-system/components/Button";

export function Example() {
  return (
    <DataToolbar
      title="Students"
      subtitle="Clinical workspace"
      meta="128 results"
      search={<input className="data-toolbar__searchInput" placeholder="Search students..." />}
      filters={
        <>
          <Button size="sm" variant="ghost">Program</Button>
          <Button size="sm" variant="ghost">Status</Button>
        </>
      }
      actions={
        <>
          <Button size="sm" variant="ghost">Export</Button>
          <Button size="sm" variant="primary">Add student</Button>
        </>
      }
    />
  );
}

EmptyState

Premium empty states for no-results, permissions, and ‘nothing yet’ screens.

No results
Try adjusting your filters, clearing search terms, or expanding your date range.
Show code
EmptyState (JSX)
import { EmptyState } from "@/design-system/components/data";
import { Button } from "@/design-system/components/Button";

export function Example() {
  return (
    <EmptyState
      icon={/* icon */ undefined}
      title="No results"
      description="Try adjusting your filters or search query."
      actions={
        <>
          <Button variant="ghost">Reset filters</Button>
          <Button variant="primary">Add student</Button>
        </>
      }
      variant="dashed"
    />
  );
}

Timeline

A calm activity timeline for record pages, workflow history, and compliance notes.

  1. Plan approved
    2h ago
    Supervisor approval recorded with timestamp and attachments.
  2. Export generated
    Yesterday
    Billing export created for current selection.
  3. Missing consent form
    2 days ago
    Action required before eligibility checks can be completed.
  4. Record created
    Last week
    Student profile initialized by intake admin.
Show code
Timeline (JSX)
import { Timeline } from "@/design-system/components/data";

export function Example() {
  return (
    <Timeline
      items={[
        { tone: "success", title: "Plan approved", description: "Supervisor approval recorded.", time: "2h ago" },
        { tone: "info", title: "Export generated", description: "Billing export created.", time: "Yesterday" },
      ]}
    />
  );
}

AuditLog

Enterprise audit log with table semantics (ideal for compliance-heavy areas).

Recent actions
TimeActorActionStatus
2m ago
Clinical Team
UpdatedStudent Profile
Fields: address, guardian contact
Saved
1h ago
Supervisor
ApprovedPlan Review
Approved
3h ago
Finance Admin
DeniedBilling Export
Reason: missing role permission
Blocked
Yesterday
System
RotatedAPI key
Action required
Show code
AuditLog (JSX)
import { AuditLog } from "@/design-system/components/data";

export function Example() {
  return (
    <AuditLog
      caption="Recent actions"
      items={[
        { at: "2m ago", actor: "Clinical Team", action: "Updated", target: "Student Profile", status: { tone: "success", label: "Saved" } },
        { at: "1h ago", actor: "Finance Admin", action: "Denied", target: "Billing Export", status: { tone: "danger", label: "Blocked" } },
      ]}
    />
  );
}