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
Components/Data UI

Data UI

Data UI provides a predictable, enterprise-grade DataTable with selection, sorting, global search, pagination, and column visibility. It is design-system agnostic and ships with safe defaults.

DataTable (basic)

Sortable, searchable table with selection and column visibility.

0 selected
RoleStatusProgressActions
Ahmed HassanWorkspace adminactive
92%
Sara AliSupervisoractive
87%
Omar YoussefAssistantpending
41%
Mona IbrahimWorkspace admininactive
12%
Youssef AdelInternactive
66%
Showing 1–5 of 20
Rows
Show code
Basic table (JSX)
import { DataTable, DataUIProvider, column } from "data-ui";

type Row = { id: string; project: string; manager: string; status: string; occupancy: number };

export function Example({ rows }: { rows: Row[] }) {
  const columns = [
    column.text<Row>("project", { label: "Project", sortable: true, truncate: true }),
    column.text<Row>("manager", { label: "Manager", sortable: true }),
    column.badge<Row>("status", { label: "Status" }),
    column.progress<Row>("occupancy", { label: "Occupancy" }),
  ];

  return (
    <DataUIProvider>
      <DataTable
        data={rows}
        columns={columns}
        getRowId={(r) => r.id}
        enableGlobalSearch
        enableRowSelection
        enableColumnVisibility
        pageSize={5}
      />
    </DataUIProvider>
  );
}

Bulk actions (enterprise pattern)

Select multiple rows and run actions. Uses Set-based selection for performance.

0 selected
RoleStatusActions
A. HassanAdminActive
S. AliEditorActive
O. YoussefViewerSuspended
M. IbrahimViewerActive
Y. AdelEditorActive
Showing 1–5 of 5
Rows
Show code
Bulk actions (JSX)
// Bulk actions are powered by the DataTable API
// See: DataUITableBulkActionsPreview.client.tsx

Controlled state (server-backed tables)

Control global filter, sorting, and pagination from outside the component.

Priority
AGG-1024OperationsHigh
AGG-1025SecurityUrgent
AGG-1026FinanceNormal
AGG-1027SupportLow
AGG-1028OperationsNormal
Showing 1–5 of 7
Rows
Show code
Controlled state (JSX)
// Controlled state (global filter, sorting, pagination)
// Use for server-backed tables.
// See: DataUITableControlledPreview.client.tsx