Design System v0.6.0

Persona Host · v0.2

Host: Villa Owner Dashboard

Komponen untuk dashboard pemilik villa. Memakai Foundation v0.2 dan font yang sama dengan Guest (Fraunces dan Montserrat). Komponen lain (Button, Modal, Toast, Tabs, Badge, Checkbox) diambil dari Guest v0.5. Dasarnya ada di halaman Audit Host. Semua angka dan nama di sini adalah placeholder.

TopNav

Mengikuti navbar CMS: putih, border bawah, tautan aktif teal. Perbedaannya: di bawah 768px tautan dilipat ke menu (CMS lama menyembunyikannya tanpa pengganti). Tautan aktif memakai teal-800 untuk teks (teal-500 di CMS hanya 2.49:1). Kirim current dari rute aktif.

StatCard dan PeriodFilter

Total Transaction
Rp 0
Pending to Disburse
Rp 0
Ready to Disburse
Rp 0
Disbursed
Rp 0

Empat label mengikuti dashboard. Empat kolom mulai 768px, dua kolom di bawahnya. Periode terpilih: week. Rentang tanggal kustom belum ada di kit (CMS punya); akan memakai DateRangeCalendar dari Guest.

DataTable

Last transactions
Villa nameRoomStatusDateNet price
Villa name ARoom 1Selesai00 Mon 0000Rp 0
Villa name BRoom 2Menunggu Konfirmasi00 Mon 0000Rp 0
Villa name CRoom 1Dibatalkan Owner00 Mon 0000Rp 0

Header 12px huruf kapital, sel 16 dan 12px, hover latar ink-50, loading berupa skeleton, keadaan kosong bawaan. Status memakai StatusBadge (di bawah), yang membaca label dan warna dari backend.

StatusBadge

Status backendLabelWarna backendTampil
Waiting Respond from OwnerMenunggu KonfirmasiorangeMenunggu Konfirmasi
Waiting For PaymentMenunggu PembayaranblueMenunggu Pembayaran
Payment In ProgressPembayaran DiprosesbluePembayaran Diproses
Payment ExpiredPembayaran KadaluarsagrayPembayaran Kadaluarsa
PaidMendatangcyanMendatang
Paid (setelah tanggal check-out)SelesaigreenSelesai
FailedGagalredGagal
Payment Canceled By UserDibatalkangrayDibatalkan
RefundRefundpurpleRefund
Cancel By OwnerDibatalkan OwnerredDibatalkan Owner
Canceled By SystemDibatalkan SistemgrayDibatalkan Sistem
pending (disbursement)PendingorangePending
approved (disbursement)ApprovedgreenApproved
disbursed (disbursement)DisbursedgreenDisbursed
rejected (disbursement)RejectedredRejected
failed (disbursement)FailedredFailed

Daftar diambil dari backend (cmsBookingStatus di s_cms_user.go dan peta disbursement di s_cms_dashboard.go); "Selesai" muncul saat status Paid dan tanggal check-out sudah lewat. Backend sudah mengirim label dan nama warna, jadi aplikasi cukup meneruskan keduanya. Usulan pemetaan warna ke tone (lulus AA): orange ke warning, blue dan cyan ke info, green ke success, red ke error, purple dan gray ke neutral. Label selalu tampil, jadi biru dan cyan yang kini sama tetap bisa dibedakan lewat teks. Yang perlu dikonfirmasi: apakah "Mendatang" (cyan) dan "Menunggu Pembayaran" (blue) perlu tampil berbeda.

ChartFrame

Revenue

Belum ada data untuk periode ini.
import { ChartFrame, chartTheme } from '@vilacation/designkit';
const t = chartTheme();   // warna dibaca dari token --vc-*

// ApexCharts (dipakai CMS)
options = {
  chart: { type: 'area', fontFamily: t.fontFamily },
  colors: [t.colors[0]],
  grid: { borderColor: t.gridColor, strokeDashArray: 4 },
  xaxis: { labels: { style: { colors: t.labelColor } } },
  yaxis: { labels: { style: { colors: t.labelColor } } }
}

Bingkai kartu (radius 20, padding 24, tinggi minimum 350 seperti CMS) dengan judul, slot aksi, dan keadaan memuat atau kosong. Kit tidak membundel chart; chartTheme() mengambil warna dari token. Perbedaan dari CMS: garis teal-600 (bukan #2DD4BF), label sumbu ink-600 (kontras 7:1, bukan gray-400 yang hanya 2.54:1), dan font Montserrat (bukan Inter). Tidak ada grafik contoh karena belum ada data nyata.