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
@@ -70,4 +70,25 @@ describe('modal commands', () => {
props: { sourcePaths: ['/x.md', '/y.md'] },
});
});
it('settings.headerFooter opens header-footer modal', () => {
registerMenuCommands();
useCommandStore.getState().dispatch('settings.headerFooter');
expect(useAppStore.getState().modal).toEqual({ kind: 'header-footer' });
});
it('tools.universalConverter opens universal-converter modal', () => {
registerMenuCommands();
useCommandStore.getState().dispatch('tools.universalConverter');
expect(useAppStore.getState().modal).toEqual({ kind: 'universal-converter' });
});
it('shortcuts.show dispatches command palette toggle event', () => {
const listener = vi.fn();
window.addEventListener('mc:command-palette-toggle', listener);
registerMenuCommands();
useCommandStore.getState().dispatch('shortcuts.show');
expect(listener).toHaveBeenCalled();
window.removeEventListener('mc:command-palette-toggle', listener);
});
});