interface Props { number: number; keypoints: string[]; color?: 'blue' | 'red' | 'green' | 'yellow' | 'white'; title?: string; } const themeStyles: Record = { blue: { pin: '#3B82F6', pinStroke: '#2563EB', pinInner: '#BFDBFE', badgeBg: '#EFF6FF', badgeText: '#3B82F6', paperBg: '#f0f7ff', border: '#93c5fd', lineColor: '#bfdbfe', }, red: { pin: '#F43F5E', pinStroke: '#E11D48', pinInner: '#FECDD3', badgeBg: '#FFF1F2', badgeText: '#F43F5E', paperBg: '#fff5f5', border: '#fca5a5', lineColor: '#fecaca', }, green: { pin: '#10B981', pinStroke: '#059669', pinInner: '#A7F3D0', badgeBg: '#ECFDF5', badgeText: '#10B981', paperBg: '#f0fdf4', border: '#86efac', lineColor: '#bbf7d0', }, yellow: { pin: '#F59E0B', pinStroke: '#D97706', pinInner: '#FDE68A', badgeBg: '#FFFBEB', badgeText: '#F59E0B', paperBg: '#fefce8', border: '#fcd34d', lineColor: '#fde68a', }, white: { pin: '#94A3B8', pinStroke: '#64748B', pinInner: '#E2E8F0', badgeBg: '#F8FAFC', badgeText: '#64748B', paperBg: '#f8fafc', border: '#cbd5e1', lineColor: '#e2e8f0', }, }; const iconShapes: Record = { blue: '●', red: '◆', green: '▲', yellow: '★', white: '▪', }; export default function PinnedNoteCard({ number, keypoints, color = 'red', title }: Props) { const t = themeStyles[color] || themeStyles.red; const icon = iconShapes[color] || '•'; return (
{/* Push pin */}
{/* Card */}
{/* Title line */}
{icon} {title || `Point ${number}`}
{/* Keypoints */}
{keypoints.map((kp, i) => (
{icon} {kp}
))}
); }