'use client'; import type { PPTElementOutline, PPTImageElement } from '@openmaic/dsl'; import { useElementOutline } from '../shared/useElementOutline'; import { useClipImage } from './useClipImage'; export interface ImageOutlineProps { elementInfo: PPTImageElement; } interface ImageRectOutlineProps { width: number; height: number; outline?: PPTElementOutline; radius?: string; } function ImageRectOutline({ width, height, outline, radius = '0' }: ImageRectOutlineProps) { const { outlineWidth, outlineColor, strokeDashArray } = useElementOutline(outline); if (!outline) return null; return ( ); } interface ImageEllipseOutlineProps { width: number; height: number; outline?: PPTElementOutline; } function ImageEllipseOutline({ width, height, outline }: ImageEllipseOutlineProps) { const { outlineWidth, outlineColor, strokeDashArray } = useElementOutline(outline); if (!outline) return null; return ( ); } interface ImagePolygonOutlineProps { width: number; height: number; createPath: (width: number, height: number) => string; outline?: PPTElementOutline; } function ImagePolygonOutline({ width, height, createPath, outline }: ImagePolygonOutlineProps) { const { outlineWidth, outlineColor, strokeDashArray } = useElementOutline(outline); if (!outline) return null; return ( ); } export function ImageOutline({ elementInfo }: ImageOutlineProps) { const { clipShape } = useClipImage(elementInfo); return (