New Request} />
{/* Unit hero */}
Your Residence
{R.resident.unit}
{R.resident.property} · resident since {R.resident.moveIn}
{/* Lease status */}
Lease Status
{R.resident.leaseLeft}
days remaining
Ends {R.resident.leaseEnds}{R.resident.term}
{/* Quick actions */}
{[
{ icon: "wrench", label: "Log a Request", tone: "brand", go: onNewRequest },
{ icon: "message-square", label: "Message Office", tone: "accent", go: () => onNavigate("Messages") },
{ icon: "file-text", label: "My Documents", tone: "success", go: () => onNavigate("Documents") },
{ icon: "user", label: "My Profile", tone: "sunken", go: () => onNavigate("Profile") },
].map((a) => (
{a.label}
))}
{/* Open requests */}
{ e.preventDefault(); onNavigate("Requests"); }} style={{ fontSize: 12, fontWeight: 700, letterSpacing: "0.1em", textTransform: "uppercase", color: "var(--terracotta-600)" }}>View all} />
{open.length === 0 && No open requests. All caught up.
}
{open.map((r, i) => (
onNavigate("Requests", r.id)} style={{ display: "flex", gap: 14, alignItems: "center", padding: "16px 24px", borderTop: i ? "1px solid var(--border)" : "none", cursor: "pointer" }}>
{r.title}
{r.id} · {window.WBR.stages[r.stage]}
{r.priority}
))}
{/* Announcements */}
{ e.preventDefault(); onNavigate("Announcements"); }} style={{ fontSize: 12, fontWeight: 700, letterSpacing: "0.1em", textTransform: "uppercase", color: "var(--terracotta-600)" }}>View all} />
{R.announcements.map((a, i) => {
const tones = { danger: ["var(--danger-bg)", "var(--danger)"], accent: ["rgba(194,125,72,0.14)", "var(--terracotta-600)"], success: ["var(--success-bg)", "var(--success)"], brand: ["var(--walnut-100)", "var(--walnut-700)"] }[a.tone];
return (
{a.title}
{a.body}
{a.time}
);
})}