A reusable React component for editing entity summaries (e.g., Release Summary, Interview Summary) with built-in support for AI generation badges and confidence score display. ## Key Components ### `EntitySummaryEditor` The primary exported component rendering a labeled textarea with optional AI metadata indicators. ### `EntitySummaryEditorProps` TypeScript interface defining the component's configuration: | Prop | Type | Default | Description | |---|---|---|---| | `summary` | `string` | `''` | Current summary text value | | `onSummaryChange` | `(value: string) => void` | — | Change handler callback | | `isAIGenerated` | `boolean` | `false` | Shows `AIGeneratedBadge` when `true` | | `summaryConfidence` | `number \| null` | — | Confidence score (0–100) shown via `ConfidenceBadge` | | `label` | `string` | `'Summary (Markdown supported)'` | Field label text | | `helperText` | `string` | `'Entity summary...'` | Subtext below label | | `placeholder` | `string` | `'Brief summary...'` | Textarea placeholder | | `minHeight` | `number` | `200` | Minimum textarea height in pixels | | `disabled` | `boolean` | `false` | Disables the textarea | | `className` | `string` | `''` | Additional CSS classes on the container | ## Usage Example ```typescript import { EntitySummaryEditor } from './entity-summary-editor'; function ReleaseForm() { const [summary, setSummary] = React.useState(''); return ( ); } ``` ## Notes - Markdown is supported in the textarea value but rendering is handled upstream by the consumer. - `ConfidenceBadge` only renders when `summaryConfidence` is a non-null, non-undefined number. - Uses ODS design tokens (`ods-text-primary`, `ods-border`, `ods-card`) for theming consistency.