Content plan
Fourteen articles, prioritized by patient intent and visibility gap. Order one at a time. Every article is doctor-reviewed before it reaches a patient.
/* MedSpaCopy v4 — Content Plan screen. Reuses primitives + palette from screens-v4.jsx (P4, FONT_*, Marker_v4, MonoKicker_v4, Wordmark_v4, NavGroup, NavItem). No new visual language. Output: ContentPlan_v4 */ function ContentPlan_v4() { const ink = P4.ink, accent = P4.accent; /* Status badge — text-glyph + tinted background. Same vocabulary as ResearchDashboard's table. */ const StatusBadge = ({ kind }) => { const map = { delivered: { label: '+ delivered', fg: P4.good, bg: `color-mix(in oklab, ${P4.good} 12%, transparent)` }, inprogress:{ label: '~ in progress', fg: P4.accent, bg: `color-mix(in oklab, ${P4.accent} 10%, transparent)` }, notordered:{ label: '[ ] not ordered', fg: P4.inkSoft, bg: `color-mix(in oklab, ${P4.inkSoft} 10%, transparent)` }, }; const m = map[kind]; return ( {m.label} ); }; /* Topic card — three width modes: full (recommended), normal, delivered (deemphasized) */ const TopicCard = ({ t, recommended }) => { const isDelivered = t.status === 'delivered'; const isInProgress = t.status === 'inprogress'; const isOrderable = t.status === 'notordered'; return (
Why {t.why}
{/* In-progress detail rail — only on in-progress cards */} {isInProgress && (Fourteen articles, prioritized by patient intent and visibility gap. Order one at a time. Every article is doctor-reviewed before it reaches a patient.