feat: theme selector dialog with live preview (t key)

Replace the simple cycleTheme() with a modal dialog that shows all
19 themes with color swatches, live preview on Up/Down navigation,
and commit/revert on Enter/Esc.

Changes:
- Add modalThemeSelect kind to modalKind enum
- Add themeSelectorState struct + field to Model
- Add openThemeSelector() replacing cycleTheme() call
- Add handleModalKey case for modalThemeSelect (Up/Down/Enter/Esc)
- Add applyThemePreview() and finalizeTheme() helper methods
- Add renderThemeSelectModal() with aligned theme names + swatches
- Update renderModal() dispatch and widen modal for theme selector
- Update help text: 't' now shows 'select theme'
This commit is contained in:
vrubelroman 2026-04-29 16:13:29 +03:00
parent cd877ab584
commit 92e72bc8c6
4 changed files with 433 additions and 5 deletions

View file

@ -4,7 +4,7 @@ right_path = ''
[ui]
app_title = 'vcom'
theme = 'ayu-dark'
theme = 'catppuccin-mocha'
icon_mode = 'auto'
show_title_bar = true
show_footer = true