import React from 'react'; import { Box, Card, CardContent, Chip, CircularProgress, Grid, Stack, Typography, } from '@mui/material'; import AutoAwesomeIcon from '@mui/icons-material/AutoAwesome'; import BoltIcon from '@mui/icons-material/Bolt'; import { alpha } from '@mui/material/styles'; import { EditOperationMeta } from '../../hooks/useImageStudio'; interface EditOperationsToolbarProps { operations: Record; selectedOperation: string; onSelect: (key: string) => void; loading?: boolean; } export const EditOperationsToolbar: React.FC = ({ operations, selectedOperation, onSelect, loading, }) => { if (loading) { return ( ); } const entries = Object.entries(operations); return ( {entries.map(([key, meta]) => { const isSelected = selectedOperation === key; return ( onSelect(key)} sx={{ cursor: 'pointer', borderRadius: 3, borderWidth: 2, borderStyle: 'solid', borderColor: isSelected ? alpha('#667eea', 0.8) : 'transparent', background: isSelected ? 'linear-gradient(135deg, rgba(102, 126, 234, 0.2), rgba(118, 75, 162, 0.2))' : 'rgba(255,255,255,0.08)', transition: 'all 0.2s ease', '&:hover': { borderColor: alpha('#667eea', 0.6), }, }} > {meta.label} } label={meta.provider} sx={{ textTransform: 'capitalize', background: alpha('#1f2937', 0.6), color: '#fff', }} /> {meta.description} {meta.async && ( } label="Async" sx={{ background: alpha('#f59e0b', 0.15), color: '#f59e0b', fontWeight: 600, }} /> )} {meta.fields?.mask && ( )} {meta.fields?.background && ( )} ); })} ); };