<!-- source-hash: 3297a26442c5b70d119e373c4687b748 -->
Reusable AI enrichment panel component that renders a full-featured UI section for triggering AI-powered data enrichment, displaying status feedback, confidence scores, warnings, and optional custom instructions.

## Key Components

### Interfaces

| Interface | Purpose |
|-----------|---------|
| `ConfidenceField` | Defines a field with an optional confidence score for display |
| `AIRequiredField` | Describes a required form field, its fill state, and display label |
| `AIEnrichSectionProps` | Full prop contract for the `AIEnrichSection` component |

### Component: `AIEnrichSection`

The main exported component. Renders a card-style panel with:

- **Header** — Icon (defaults to `SparklesIcon`), title, and optional description
- **Custom Instructions** (opt-in) — Controlled `<Textarea>` for user-provided AI focus hints, passed upstream to Claude via `buildEditorFocusBlock()`
- **Action Buttons** — `AIEnrichButton` (primary) and optional cancel button during loading
- **Disabled State** — Shows `disabledMessage` with badge-styled list of unfilled required fields
- **Loading State** — Spinner with live `statusMessage`
- **Results Section** — Success/error status indicator, confidence badge, `AIWarningsSection`, custom `children`, and a clear button

## Usage Example

```typescript
<AIEnrichSection
  title="Enrich Asset"
  description="Use AI to auto-fill missing asset details."
  onEnrich={handleEnrich}
  loading={isLoading}
  canEnrich={hasRequiredFields}
  status={enrichStatus}
  statusMessage="Analyzing asset data..."
  overallConfidence={87}
  warnings={enrichWarnings}
  requiredFields={[
    { key: 'version', label: 'Version', isFilled: !!formValues.version },
    { key: 'vendor', label: 'Vendor', isFilled: !!formValues.vendor },
  ]}
  showCustomInstructions
  customInstructions={instructions}
  onCustomInstructionsChange={setInstructions}
  onClear={handleClear}
  showCancel
  onCancel={handleCancel}
/>
```

## Notes

- Supports `'default'` and `'compact'` layout variants via the `variant` prop
- `customInstructions` is fully controlled — the parent owns the string value
- `requiredFields` drives both `canEnrich` gating and the unfilled-fields badge display