<!-- source-hash: 87dfd7f5b94bff0f44ed579685785b88 -->
Reusable editor component for entity summary fields with AI generation badges and confidence score display.

## Key Components

**`EntitySummaryEditor`** — Default export. A controlled textarea editor with optional AI metadata indicators.

**`EntitySummaryEditorProps`** — TypeScript interface defining all configurable props:

| Prop | Type | Default | Description |
|------|------|---------|-------------|
| `summary` | `string` | `''` | Controlled text value |
| `onSummaryChange` | `(value: string) => void` | required | Change handler |
| `isAIGenerated` | `boolean` | `false` | Shows AI Generated badge |
| `summaryConfidence` | `number \| null` | — | Confidence score (0–100) |
| `label` | `string` | `'Summary (Markdown supported)'` | Field label |
| `helperText` | `string` | `'Entity summary...'` | Subtext below label |
| `placeholder` | `string` | `'Brief summary...'` | Textarea placeholder |
| `minHeight` | `number` | `200` | Minimum height in px |
| `disabled` | `boolean` | `false` | Disables the textarea |
| `className` | `string` | `''` | Container class override |

## Usage Example

```typescript
import { EntitySummaryEditor } from './entity-summary-editor';

function ReleaseForm() {
  const [summary, setSummary] = React.useState('');

  return (
    <EntitySummaryEditor
      summary={summary}
      onSummaryChange={setSummary}
      isAIGenerated={true}
      summaryConfidence={87}
      label="Release Summary (Markdown supported)"
      helperText="Displayed on release cards and detail page."
      placeholder="Describe this release..."
      minHeight={240}
    />
  );
}
```

When `isAIGenerated` is `true`, a `Sparkles` icon badge renders next to the label. When `summaryConfidence` is provided, `ConfidenceBadge` renders inline showing the AI confidence percentage.