Photonix

AllocationMatrixWidget

A specialized widget for visualizing resource allocation across multiple projects and team members.

Preview

Resource Allocation

Planning for 2026
Members / Projects
Digital Infrastructure 2026
Brand Identity Reload
Mobile App V2
Sarah Connor
Frontend Lead
40%
60%
John Reese
Backend Engineer
20%
80%
Ellen Ripley
Designer
100%
Usage
import { AllocationMatrixWidget } from '@photonix/ultimate';

const projects = [...];
const members = [...];
const allocations = [...];

<AllocationMatrixWidget
  title="Staffing Matrix"
  projects={projects}
  members={members}
  allocations={allocations}
/>

Component API

AllocationMatrixWidget

Prop
Type
Default
Description
title
string
-
Header title
subtitle
string
-
Header subtitle
projects
MatrixProject[]
[]
Array of project items
members
MatrixMember[]
[]
Array of member items
allocations
MatrixAllocation[]
[]
Array of allocation items
dateRange
AllocationMatrixDateRange
-
Optional date range used to filter or aggregate time-based allocations
loading
boolean
false
Loading state
headerExtraContent
React.ReactNode
-
Component to display in the header (e.g., custom filters)
footer
React.ReactNode
-
Content to display below the matrix
height
string | number
-
Component height
onCellClick
((memberId: string, projectId: string) => void)
-
Click handler for a cell
appearance
WidgetAppearance
'outlined'
Widget appearance
padding
string | number
-
Widget padding (default: 16px)
className
string
-
Custom class name
style
React.CSSProperties
-
Custom style

Variants

With Time Filter

Use dateRange together with allocations that include startDate and endDate to enable native time filtering.

Resource Allocation

Allocation filtered across 1 matching period(s)
Members / Projects
Digital Infrastructure 2026
Brand Identity Reload
Mobile App V2
Sarah Connor
Frontend Lead
40%
60%
John Reese
Backend Engineer
20%
80%
Ellen Ripley
Designer
100%

Selected range: 01/01/2026 - 31/03/2026 • Matching periods: Q1 2026

With Time Filter
const [dateRange, setDateRange] = useState<DateRange | undefined>({
  start: new Date(2026, 0, 1),
  end: new Date(2026, 2, 31),
});

<AllocationMatrixWidget
  title="Resource Allocation"
  subtitle="Allocation filtered by selected date range"
  projects={projects}
  members={members}
  allocations={timedAllocations}
  dateRange={dateRange}
  headerExtraContent={
    <DateRangePicker
      variant="single"
      value={dateRange}
      onChange={setDateRange}
      labelStyle="outside"
      placeholder="Select range"
      showPresets
      fullWidth={false}
    />
  }
/>

Loading State

Displays a skeleton preview while data is being fetched.

Loading State
<AllocationMatrixWidget title="Allocation" projects={[]} members={[]} allocations={[]} loading />

On this page

Preview
Component API
Variants
With Time Filter
Loading State
With Footer
Photonix UI - React Components, Templates & Figma Design System