import { Crop, Download, Grid2X2, ImageOff, Loader2, PersonStanding, Scissors, Sparkles, WandSparkles, } from 'lucide-react'; import type { CSSProperties } from 'react'; import { PlatformIconButton } from '../common/PlatformIconButton'; import { EditorIconButton } from './ImageCanvasEditorPrimitives'; import type { CanvasLayer } from './ImageCanvasEditorTypes'; import { isQuickEditUnsupportedAssetKind } from './ImageCanvasGenerationModel'; type ImageCanvasSelectedLayerToolbarViewProps = { selectedLayer: CanvasLayer | null; selectedToolbarStyle: CSSProperties | null; onOpenQuickEditPanel: (layer: CanvasLayer) => void; onOpenRedrawPanel: (layer: CanvasLayer) => void; onOpenCropExpandPanel: (layer: CanvasLayer) => void; onRemoveBackground: (layer: CanvasLayer) => void; onPerfectPixel: (layer: CanvasLayer) => void; isPerfectPixelProcessing: boolean; isSplittingIconSpritesheet: boolean; isPersistingAssetKind: boolean; onSplitIconSpritesheet: (layer: CanvasLayer) => void; onExtractUiDesignAssets: (layer: CanvasLayer) => void; onOpenCharacterAnimationPanel: (layer: CanvasLayer) => void; onDownloadLayer: (layer: CanvasLayer) => void; }; export function ImageCanvasSelectedLayerToolbarView({ selectedLayer, selectedToolbarStyle, onOpenQuickEditPanel, onOpenRedrawPanel, onOpenCropExpandPanel, onRemoveBackground, onPerfectPixel, isPerfectPixelProcessing, isSplittingIconSpritesheet, isPersistingAssetKind, onSplitIconSpritesheet, onExtractUiDesignAssets, onOpenCharacterAnimationPanel, onDownloadLayer, }: ImageCanvasSelectedLayerToolbarViewProps) { if (!selectedLayer || !selectedToolbarStyle) { return null; } if (selectedLayer.mediaType === 'audio') { return (