<!-- source-hash: 396284dd8be1b09a6ecb781dd4fed0ce -->
Unified React component that combines highlight video configuration, AI-powered generation, and video preview/upload into a single composable section used across multiple modal contexts.

## Key Components

### `HighlightVideoCombinedSection`
The primary export. Renders three sequential sub-sections:
1. **`HighlightConfigSection`** — Duration and subtitle burning settings
2. **`AIEnrichSection`** — AI generation trigger with status feedback and cancel support
3. **Preview + Upload** — Inline video preview with manual upload fallback

### `HighlightVideoCombinedSectionProps`
Full interface grouping props into four logical namespaces:
- **Config** — `targetDurationSeconds`, `skipSubtitleBurning`, `configDisabled`
- **Generation** — `onGenerateHighlight`, `isProcessing`, `canEnrich`, `requiredFields`, `status`
- **Preview** — `highlightVideoUrl`, `highlightVideoThumbnail`, `renderVideoPreview`, `onUpload`, `onDelete`
- **Common** — `className`, `title`, `description`, `buttonLabel`

## Usage Example

```typescript
<HighlightVideoCombinedSection
  // Config
  targetDurationSeconds={120}
  onTargetDurationChange={(s) => setDuration(s)}
  skipSubtitleBurning={false}
  onSkipSubtitleBurningChange={(v) => setSkipSubs(v)}
  // Generation
  onGenerateHighlight={handleGenerate}
  isProcessing={isGenerating}
  canEnrich={hasTranscript}
  requiredFields={[{ key: 'transcript', label: 'Transcription' }]}
  status={jobStatus}
  statusMessage={jobMessage}
  onCancel={handleCancel}
  hasResult={!!highlightUrl}
  // Preview
  highlightVideoUrl={highlightUrl}
  onUpload={async (file) => await uploadFile(file)}
  onDelete={async () => await deleteHighlight()}
  renderVideoPreview={({ videoUrl, title, thumbnailUrl, onDelete }) => (
    <VideoPlayer url={videoUrl} thumbnail={thumbnailUrl} onDelete={onDelete} />
  )}
/>
```

> **Note:** `renderVideoPreview` uses a render-prop pattern, keeping the component decoupled from any specific video player implementation. The manual upload uses a hidden `<input type="file">` created programmatically to avoid controlled input complexity.