/** * Dedicated Custom Theme Editor Modal * Standalone modal with two-column layout: editor (left) + preview (right) * Opens on top of ThemeCustomizeModal for creating/editing custom themes. */ import React, { useState, useCallback, useMemo, useEffect } from 'react'; import { createPortal } from 'react-dom'; import { Trash2, X } from 'lucide-react'; import { TerminalTheme } from '../../domain/models'; import { useI18n } from '../../application/i18n/I18nProvider'; import { CustomThemeEditor } from './CustomThemeEditor'; import { Button } from '../ui/button'; import { isAppLockOverlayActive } from '../../infrastructure/appLockOverlayDom'; interface CustomThemeModalProps { open: boolean; theme: TerminalTheme; isNew: boolean; onSave: (theme: TerminalTheme) => void; onDelete?: (themeId: string) => void; onCancel: () => void; } // Minimal terminal preview for the right panel const MiniPreview: React.FC<{ theme: TerminalTheme }> = ({ theme }) => (