<!-- source-hash: 9a48f5db58e0fc209ed8daeba5dd9324 -->
A reusable React wrapper around `AIEnrichSection` that provides a standardized UI for triggering AI-powered highlight video generation for `CustomerInterview` and `ProductRelease` entities.

## Key Components

### `HighlightGenerationSection`
The primary export — a thin, opinionated wrapper that pre-configures `AIEnrichSection` with highlight-specific defaults:

| Prop | Type | Default |
|------|------|---------|
| `onGenerateHighlight` | `() => void` | — |
| `isProcessing` | `boolean` | — |
| `canEnrich` | `boolean` | — |
| `requiredFields` | `AIRequiredField[]` | — |
| `targetDurationSeconds` | `number` | `180` |
| `hasResult` | `boolean` | `false` |
| `disabledMessage` | `string` | `"Upload a video and run transcription first"` |
| `showCancel` | `boolean` | `true` |
| `loadingLabel` | `string` | `"Generating highlight..."` |

### `HighlightGenerationSectionProps`
The exported interface describing all configurable props, including optional overrides for `title`, `description`, `buttonLabel`, and cancellation controls.

## Usage Example

```typescript
import { HighlightGenerationSection } from './highlight-generation-section';

<HighlightGenerationSection
  onGenerateHighlight={handleGenerate}
  isProcessing={isGenerating}
  canEnrich={hasTranscription}
  requiredFields={[
    { label: 'Video Upload', satisfied: hasVideo },
    { label: 'Transcription', satisfied: hasTranscription },
  ]}
  hasResult={!!highlightUrl}
  targetDurationSeconds={120}
  onCancel={handleCancel}
  isCancelling={isCancelling}
  status={status}
  statusMessage={statusMessage}
/>
```

> **Note:** Pair this component with `HighlightConfigSection` for the full highlight generation experience. The button label automatically switches between `"Generate Highlight"` and `"Regenerate Highlight"` based on the `hasResult` prop.