feat: enhance WelcomeDialog, export dialogs, GitStatusPanel, add CommandPalette, FindReplaceBar, and new converter dialogs

- WelcomeDialog: add quick start, feature showcase, keyboard shortcuts, recent files, version display
- ExportDocxDialog/ExportHtmlDialog/ExportPdfDialog: add header/footer, paper size, margin controls
- GitStatusPanel: full staging/unstaging, discard, commit workflow
- CommandPalette: fuzzy command search with keyboard navigation
- FindReplaceBar: find/replace with regex, case, whole-word options
- New dialogs: BatchMediaConverterDialog, HeaderFooterDialog, PdfEditorDialog, UniversalConverterDialog
- Tests: comprehensive coverage for all new/updated components
This commit is contained in:
2026-06-13 19:34:42 +05:30
parent 6b564a4569
commit f2398e6e1a
52 changed files with 4309 additions and 250 deletions
@@ -1,5 +1,6 @@
import { useAppStore } from '@/stores/app-store';
import { AboutDialog } from './AboutDialog';
import { BatchMediaConverterDialog } from './BatchMediaConverterDialog';
import { AsciiGeneratorDialog } from './AsciiGeneratorDialog';
import { ConfirmDialog } from './ConfirmDialog';
import { CrashReportModal } from './CrashReportModal';
@@ -8,11 +9,14 @@ import { ExportDocxDialog } from './ExportDocxDialog';
import { ExportHtmlDialog } from './ExportHtmlDialog';
import { ExportPdfDialog } from './ExportPdfDialog';
import { FindInFilesDialog } from './FindInFilesDialog';
import { HeaderFooterDialog } from './HeaderFooterDialog';
import { SettingsSheet } from './SettingsSheet';
import { TableGeneratorDialog } from './TableGeneratorDialog';
import { UniversalConverterDialog } from './UniversalConverterDialog';
import { WelcomeDialog } from './WelcomeDialog';
import { WordExportDialog } from './WordExportDialog';
import { WritingAnalyticsDialog } from './WritingAnalyticsDialog';
import { PdfEditorDialog } from './PdfEditorDialog';
export function ModalLayer() {
const modal = useAppStore((s) => s.modal);
@@ -47,5 +51,18 @@ export function ModalLayer() {
return <CrashReportModal onClose={useAppStore.getState().closeModal} />;
case 'writing-analytics':
return <WritingAnalyticsDialog />;
case 'pdf-editor':
return (
<PdfEditorDialog
onClose={useAppStore.getState().closeModal}
initialFilePath={modal.props?.filePath}
/>
);
case 'universal-converter':
return <UniversalConverterDialog />;
case 'header-footer':
return <HeaderFooterDialog />;
case 'batch-media-converter':
return <BatchMediaConverterDialog />;
}
}