'use client'; import { useState, type ReactNode } from 'react'; import { FlipHorizontal, FlipVertical, ImageUp } from 'lucide-react'; import type { PPTImageElement } from '@openmaic/dsl'; import { ElementToolbarOverlay } from './ElementToolbarOverlay'; import type { ImageEditorLabels, ImagePickerProps } from '../types'; export interface ImageToolbarOverlayProps { readonly element: PPTImageElement; readonly elementIdPrefix?: string; readonly labels: ImageEditorLabels; readonly renderPicker?: (props: ImagePickerProps) => ReactNode; readonly onReplace?: (src: string) => void; readonly onFlip?: (axis: 'H' | 'V') => void; readonly onBringToFront?: () => void; readonly onSendToBack?: () => void; readonly onDelete?: () => void; } export function ImageToolbarOverlay({ element, elementIdPrefix, labels, renderPicker, onReplace, onFlip, onBringToFront, onSendToBack, onDelete, }: ImageToolbarOverlayProps) { const [pickerOpen, setPickerOpen] = useState(false); return ( {renderPicker && onReplace ? ( ) : null} {onFlip ? ( ) : null} {onFlip ? ( ) : null} {pickerOpen && renderPicker && onReplace ? (
{renderPicker({ element, onPick: (src) => { onReplace(src); setPickerOpen(false); }, close: () => setPickerOpen(false), })}
) : null} } /> ); }