Komponen / Grafik & jadwal
WaffleChart
Satu ikon = satu orang untuk cakupan populasi kecil (cakupan populasi vs PE); sel kotak tanpa nama untuk populasi besar.
Cakupan populasi vs PE
Lingkaran 48 berikon user.fill + nama di bawah. Legenda "Aktif di PE · 5 (83%)"; kelompok nol tetap tertulis "· 0".
Cakupan populasi vs PE
Satu ikon = satu orang aktif di jendela periode.
| Kelompok | Jumlah | Persen |
|---|---|---|
| Aktif di PE | 5 | 83% |
| Relieving di jendela | 1 | 17% |
| Aktif belum di PE | 0 | 0% |
import { Card, WaffleChart } from '@divistant/circca-react';
// Monitoring payroll › Cakupan populasi vs PE: satu ikon = satu orang aktif di jendela periode.
// Jumlah kelompok dihitung dari item ber-tone sama; kelompok nol tetap tampil di legenda.
export default function Example() {
return (
<Card
className="w-full max-w-[548px]"
title="Cakupan populasi vs PE"
subtitle="Satu ikon = satu orang aktif di jendela periode."
action={
<a href="#karyawan" className="type-footnote-default text-accent-fg hover:underline">
Daftar Karyawan ›
</a>
}
>
<WaffleChart
label="Cakupan populasi vs Payroll Entry"
items={[
{ id: 'raka', label: 'Raka', tone: 'accent' },
{ id: 'sinta', label: 'Sinta', tone: 'accent' },
{ id: 'dewi', label: 'Dewi', tone: 'accent' },
{ id: 'andi', label: 'Andi', tone: 'accent' },
{ id: 'maya', label: 'Maya', tone: 'accent' },
{ id: 'budi', label: 'Budi', tone: 'warning' },
]}
groups={[
{ label: 'Aktif di PE', tone: 'accent' },
{ label: 'Relieving di jendela', tone: 'warning' },
{ label: 'Aktif belum di PE', tone: 'neutral' },
]}
/>
</Card>
);
}Populasi besar & kosong
Lebih dari 60 orang: mode otomatis berganti ke sel kotak 12 dari `groups`. Populasi kosong = empty state.
Cakupan populasi vs PE
Satu kotak = satu orang.
| Kelompok | Jumlah | Persen |
|---|---|---|
| Aktif di PE | 132 | 93% |
| Relieving di jendela | 6 | 4% |
| Aktif belum di PE | 4 | 3% |
Cakupan populasi vs PE
Entitas baru.
Belum ada orang aktif di jendela periode.
| Kelompok | Jumlah | Persen |
|---|---|---|
| Aktif di PE | 0 | 0% |
| Relieving di jendela | 0 | 0% |
import { Card, WaffleChart } from '@divistant/circca-react';
// Populasi besar (> 60 orang): mode otomatis berganti ke sel kotak tanpa nama, dibangkitkan dari `groups`.
// Kanan: populasi kosong = empty state.
export default function Example() {
return (
<div className="grid w-full gap-4 md:grid-cols-2">
<Card title="Cakupan populasi vs PE" subtitle="Satu kotak = satu orang.">
<WaffleChart
label="Cakupan populasi vs Payroll Entry"
groups={[
{ label: 'Aktif di PE', count: 132, tone: 'accent' },
{ label: 'Relieving di jendela', count: 6, tone: 'warning' },
{ label: 'Aktif belum di PE', count: 4, tone: 'neutral' },
]}
/>
</Card>
<Card title="Cakupan populasi vs PE" subtitle="Entitas baru.">
<WaffleChart
label="Cakupan populasi vs Payroll Entry"
emptyMessage="Belum ada orang aktif di jendela periode."
groups={[
{ label: 'Aktif di PE', count: 0, tone: 'accent' },
{ label: 'Relieving di jendela', count: 0, tone: 'warning' },
]}
/>
</Card>
</div>
);
}