feat: Add CMD+K command palette with ninja-keys integration

Implement a command palette accessible via CMD+K/Ctrl+K using the ninja-keys
web component. Features include:

- New /api/cmd-k endpoint serving dynamic CV entries (experiences, projects, courses)
- Language-aware responses with 1-hour cache headers
- Scroll-to-section functionality for quick navigation
- Enhanced keyboard shortcuts modal with CMD+K documentation
- Comprehensive test coverage for API and UI interactions

Also includes cleanup of deprecated debug test files and various UI polish
improvements to contact form, themes, and action bar components.
This commit is contained in:
juanatsap
2025-12-01 13:03:06 +00:00
parent 976b8ae2e2
commit 9a848e8c53
45 changed files with 3070 additions and 1587 deletions
+24 -20
View File
@@ -100,34 +100,38 @@ def handleScroll()
end
end
-- Back to top button visibility
if currentScroll > 300
set #back-to-top's *display to 'flex'
-- Back to top button visibility (with null check)
set backToTop to #back-to-top
if backToTop is not null
if currentScroll > 300
set backToTop's *display to 'flex'
end
if currentScroll <= 300
set backToTop's *display to 'none'
end
end
if currentScroll <= 300
set #back-to-top's *display to 'none'
end
-- At-bottom class for fixed buttons
-- At-bottom class for fixed buttons (with null checks)
if isAtBottom
add .at-bottom to #back-to-top
add .at-bottom to #info-button
add .at-bottom to #shortcuts-button
add .at-bottom to #download-button
add .at-bottom to #print-friendly-button
if backToTop is not null then add .at-bottom to backToTop end
if #info-button is not null then add .at-bottom to #info-button end
if #shortcuts-button is not null then add .at-bottom to #shortcuts-button end
if #download-button is not null then add .at-bottom to #download-button end
if #print-friendly-button is not null then add .at-bottom to #print-friendly-button end
if #cmd-k-button is not null then add .at-bottom to #cmd-k-button end
add .at-bottom to .color-theme-switcher
add .at-bottom to #zoom-toggle-button
if #zoom-toggle-button is not null then add .at-bottom to #zoom-toggle-button end
end
if not isAtBottom
remove .at-bottom from #back-to-top
remove .at-bottom from #info-button
remove .at-bottom from #shortcuts-button
remove .at-bottom from #download-button
remove .at-bottom from #print-friendly-button
if backToTop is not null then remove .at-bottom from backToTop end
if #info-button is not null then remove .at-bottom from #info-button end
if #shortcuts-button is not null then remove .at-bottom from #shortcuts-button end
if #download-button is not null then remove .at-bottom from #download-button end
if #print-friendly-button is not null then remove .at-bottom from #print-friendly-button end
if #cmd-k-button is not null then remove .at-bottom from #cmd-k-button end
remove .at-bottom from .color-theme-switcher
remove .at-bottom from #zoom-toggle-button
if #zoom-toggle-button is not null then remove .at-bottom from #zoom-toggle-button end
end
-- Update last scroll position