"use client"; import { Input, Textarea, Label } from '../ui'; export interface OGEditorPreviewProps { // SEO fields seoTitle: string; seoDescription: string; seoKeywords: string; ogImageUrl: string; // Auto-populate sources title: string; summary: string; featuredImage: string; categories?: Array<{ name: string; slug: string }>; // Change handlers onSeoTitleChange: (value: string) => void; onSeoDescriptionChange: (value: string) => void; onSeoKeywordsChange: (value: string) => void; onOgImageUrlChange: (value: string) => void; // OG Image Upload Component (passed from parent) OGImageUploadComponent: React.ReactNode; // OG Preview Component (passed from parent) OGPreviewComponent: React.ReactNode; disabled?: boolean; className?: string; } /** * Unified SEO & Open Graph Editor with Preview * Used across blog posts, case studies, and product releases * Combines SEO fields, OG image upload, and preview in one component */ export function OGEditorPreview({ seoTitle, seoDescription, seoKeywords, onSeoTitleChange, onSeoDescriptionChange, onSeoKeywordsChange, OGImageUploadComponent, OGPreviewComponent, disabled = false, className = '' }: OGEditorPreviewProps) { return (