// ============================================================ // page-customer.jsx — CRM company record page. // Header (logo + name + status + actions), 2-col layout: // left — details panel (industry, owner, links, deals) // right — tabbed work area (Overview / Activity / People / Notes) // Pure content. Wrap in any *Chrome to compose. // ============================================================ const CustomerBody = ({ theme = "light" }) => { const dark = theme === "dark"; const c = dark ? { bg: "#0f0f14", panel: "#13131a", border: "#ffffff10", text: "#e8e8ee", subtext: "#9a9aa6", muted: "#6a6a78", rowAlt: "#ffffff04", accent: "#7a78ff", ring: "#5e5cff", chipBg: "#ffffff08", chipText: "#dcdce4", inputBg: "#0a0a10", } : { bg: "#fcfcfb", panel: "#ffffff", border: "#e8e8e3", text: "#111", subtext: "#5a5a5e", muted: "#8a8a90", rowAlt: "#f9f9f6", accent: "#5e5cff", ring: "#5e5cff", chipBg: "#f1f0eb", chipText: "#3a3a3e", inputBg: "#fff", }; const KV = ({ k, v }) => (
{k} {v}
); const Tag = ({ children, color }) => ( {color && } {children} ); const Avatar = ({ name, color = "#d4b8a8", size = 24, ring }) => (
{name}
); return (
{/* Header */}
NS

Northstar Logistics

Customer Tier 1
northstarlogistics.com · Created Aug 2024 · Last touched 2h ago
{/* Body */}
{/* Details rail */}
About
Mira Reyes } />
Tags
Enterprise Renewal Q3 EMEA Logistics
Open opportunities
{[ { name: "Q3 — Carrier API", v: "€84,000", stage: "Negotiation", p: 70 }, { name: "EU expansion", v: "€38,500", stage: "Proposal", p: 40 }, { name: "Renewal · Pro", v: "€24,000", stage: "Discovery", p: 15 }, ].map(d => (
{d.name} {d.v}
{d.stage}{d.p}%
60 ? "#22c55e" : d.p > 30 ? "#f6c560" : "#9a9aa6", }}>
))}
{/* Tabs + work area */}
{["Overview", "Activity", "People", "Notes", "Files"].map((t, i) => (
{t}{t === "Activity" && " · 28"}
))}
{/* KPI row */}
{[ { l: "Pipeline", v: "€146.5k", s: "+€12.4k 30d", up: true }, { l: "Closed-won", v: "€220k", s: "lifetime" }, { l: "Open deals", v: "3", s: "1 stalled", warn: true }, { l: "Health", v: "82 / 100", s: "stable", up: true }, ].map(k => (
{k.l}
{k.v}
{k.s}
))}
{/* Activity timeline */}
Activity
{[ { dot: "#22c55e", t: "Deal moved to Negotiation", who: "Mira Reyes", w: "Q3 — Carrier API · €84,000", when: "2 hours ago" }, { dot: "#5e5cff", t: "Email sent · proposal v4", who: "Mira Reyes", w: "To: Sun Kim, Devi Patel — opened 6 times", when: "Yesterday" }, { dot: "#f6c560", t: "Call logged · 32 min", who: "Theo Roux", w: "Walkthrough with their ops lead — promising", when: "2 days ago" }, { dot: "#9a9aa6", t: "Note added", who: "Mira Reyes", w: "They want SSO and SCIM by Sept. — gating item.", when: "4 days ago" }, ].map((a, i) => (
{a.t} {a.when}
{a.who} · {a.w}
))}
{/* People row */}
People at Northstar · 6
{[ { i: "SK", n: "Sun Kim", r: "VP Operations", c: "#e8a87c" }, { i: "DP", n: "Devi Patel", r: "Procurement", c: "#a8c8e8" }, { i: "TR", n: "Theo Roux", r: "CFO", c: "#c8e8a8" }, ].map(p => (
{p.n}
{p.r}
))}
); }; window.CustomerBody = CustomerBody;