Reusable wrapper component around `AIEnrichSection` that provides a standardized UI for triggering and managing video clips extraction from uploaded media. ## Key Components ### `VideoClipsSection` A pre-configured `AIEnrichSection` wrapper that handles the video clips extraction step for `CustomerInterview` and `ProductRelease` entities. Automatically toggles the button label between `"Generate Clips"` and `"Regenerate Clips"` based on whether a result already exists. ### `VideoClipsSectionProps` Full interface for controlling extraction state, UI labels, cancel behavior, and required field validation display. ## Usage Example ```typescript import { VideoClipsSection } from './video-clips-section'; 0} showCancel={true} onCancel={handleCancel} isCancelling={isCancelling} /> ``` ## Props Summary | Prop | Type | Default | Description | |------|------|---------|-------------| | `onExtractClips` | `() => void` | — | Triggers extraction | | `isProcessing` | `boolean` | — | Shows loading state | | `canEnrich` | `boolean` | — | Enables the button | | `hasResult` | `boolean` | `false` | Switches label to "Regenerate" | | `disabledMessage` | `string` | `"Upload a video first"` | Tooltip when disabled | | `loadingLabel` | `string` | `"Extracting clips..."` | In-progress button label | | `showCancel` | `boolean` | `true` | Shows cancel option |