import type { Milestone } from "../lib/types"; import { faNum } from "../lib/formatters"; import { MilestoneRow } from "./MilestoneRow"; export interface TermsheetItem { tempId: string; label: string; } export interface TermsheetCardProps { index: number; milestones: Milestone[]; onMilestonesChange: (ms: Milestone[]) => void; items?: TermsheetItem[]; coveredIds?: string[]; onCoverageChange?: (ids: string[]) => void; onRemove?: () => void; defaultAll?: boolean; removable?: boolean; } export function TermsheetCard({ index, milestones, onMilestonesChange, items = [], coveredIds = [], onCoverageChange, onRemove, defaultAll = false, removable = true, }: TermsheetCardProps) { const covered = new Set(coveredIds); const effectiveCovered = covered.size === 0 && defaultAll ? items.map((i) => i.tempId) : coveredIds; const toggle = (tempId: string, checked: boolean) => { if (!onCoverageChange) return; const next = new Set(covered); if (checked) next.add(tempId); else next.delete(tempId); onCoverageChange([...next]); }; const addMilestone = () => { onMilestonesChange([...milestones, { when_iso: null, amount: null }]); }; return (