MindeesUI
Blocks

Dashboard blocks

Ten accessible admin and analytics blocks — KPI cards, audit logs, role and permission controls, filters, bulk actions, user tables, and an admin layout shell.

Admin and analytics building blocks composed from MindeesUI primitives. Blocks never fetch or store — metrics, roles, permissions, and user lists flow through props and out through callbacks.

Import

import {
  AnalyticsCards,
  AuditLog,
  RoleSelector,
  PermissionMatrix,
  SystemStatusPanel,
  Filters,
  SortControl,
  BulkActions,
  UserManagementTable,
  AdminLayout,
} from '@mindees/blocks';

Usage

<AdminLayout title="Console" nav={<SideNav />}>
  <AnalyticsCards metrics={metrics} onPressMetric={(id) => open(id)} />
  <UserManagementTable users={users} onEdit={edit} onRemove={remove} />
</AdminLayout>

Blocks

AnalyticsCards

Responsive grid of KPI cards.

PropTypeDescription
metricsreadonly AnalyticsMetric[]Metrics to render as KPI cards.
columnsnumberColumn count; responsive (1 / 2 / 4) when omitted.
onPressMetric(id: string) => voidCalled with the metric id when a card is pressed.

AuditLog

FlatList of time-stamped audit events.

PropTypeDescription
eventsreadonly AuditEvent[]Audit events, newest-first by convention.
ListEmptyComponentFlatList['ListEmptyComponent']Rendered when empty.
ListHeaderComponentFlatList['ListHeaderComponent']Header slot above the list.
scrollEnabledbooleanDisable internal scrolling when nested.

RoleSelector

Dropdown for selecting a role.

PropTypeDescription
rolesreadonly Role[]Roles available for selection.
valuestringCurrently selected role key.
onChange(key: string) => voidCalled with the newly-selected role key.
placeholderstringTrigger placeholder when nothing is selected.
disabledbooleanForce a disabled state.

PermissionMatrix

Scrollable grid of role × permission toggle cells.

PropTypeDescription
rolesreadonly Role[]Roles forming the columns.
permissionsreadonly Permission[]Permissions forming the rows.
valuePermissionMatrixValueGranted lookup: value[roleKey][permKey].
onToggle(roleKey: string, permKey: string) => voidFired when a cell is toggled.
disabledbooleanDisable every cell.
columnWidthnumberRole column width in px. Defaults to 96.
labelWidthnumberLabel column width in px. Defaults to 160.

SystemStatusPanel

Card listing services and their up/down/degraded status.

PropTypeDescription
servicesreadonly ServiceStatusEntry[]Services to render, in display order.
titlestringOptional panel title.

Filters

Renders a set of filter controls and reports changes.

PropTypeDescription
filtersreadonly FilterDef[]Filter definitions, in display order.
valueFilterValueCurrent filter state.
onChange(key: string, value: string | boolean) => voidFired when a filter changes.

SortControl

Field + direction sort control.

PropTypeDescription
optionsreadonly SortOption[]Fields available for sorting.
valueSortValueCurrent sort state.
onChange(value: SortValue) => voidFired with the next sort state.

BulkActions

Selection toolbar that appears when items are selected.

PropTypeDescription
selectedCountnumberSelected item count; nothing renders when 0.
actionsreadonly BulkAction[]Actions to expose for the selection.
onClear() => voidClear-selection handler; hidden when absent.
renderCount(count: number) => stringBuilds the summary label. Defaults to "N selected".

UserManagementTable

FlatList-backed user table with edit and remove row actions.

PropTypeDescription
usersreadonly ManagedUser[]Users to render.
onEdit(user: ManagedUser) => voidCalled when a user's edit action fires.
onRemove(user: ManagedUser) => voidCalled when a user's remove action fires.
ListEmptyComponentFlatList['ListEmptyComponent']Rendered when empty.
ListHeaderComponentFlatList['ListHeaderComponent']Header slot above the list.
scrollEnabledbooleanDisable internal scrolling when nested.

AdminLayout

Responsive console shell with a header, a collapsing sidebar, and content.

PropTypeDescription
titlestringHeader title when no custom header is given.
navReactNodeSidebar navigation slot; hidden on narrow viewports.
headerReactNodeCustom header slot, overriding the title bar.
childrenReactNodeMain content.
sidebarWidthnumberSidebar width in px on wide viewports. Defaults to 260.

All blocks also accept a style prop spread onto the root container.

On this page