* feat: enable linking to settings items
* feat: integrate command palette with global state and styles
* feat: add command pallete ui and fuzzy search
* feat: add command palette with global state and styles
* feat: add command registry and search dependencies
* fix: open command palette with shortcuts in reader page
---------
Co-authored-by: Huang Xin <chrox.huang@gmail.com>
* fix(settings): ensure global settings sync across all open panes
Previously, changing a global setting (like font size) only updated the currently active book pane, causing split-view panes to desynchronize.
This commit updates the settings logic to propagate global changes to all open book instances immediately. It also ensures that settings UI panels correctly re-render when preferences are updated from outside the component.
* refactor to reuse some code
* fix: pointer in doc check
---------
Co-authored-by: André Angelantoni <andre.angelantoni@performantlabs.com>
Co-authored-by: Huang Xin <chrox.huang@gmail.com>
* fix(annotator): enhance PDF context menu for translation and improve touch handling
* feat(annotator, shortcuts): add keyboard shortcuts for selection actions
* feat(annotator): reposition popups on scroll to enhance user experience
* feat(annotator): disable currently unsupported annotator functions for PDFs
---------
Co-authored-by: Huang Xin <chrox.huang@gmail.com>
* fix: don't open book if failed to download book
* fix: various fixes for updater, footerbar and note item
1. now footerbar when invisible won't process pointer events
2. manually check updater won't be prevented by check interval
3. get rid of clamped text in note item
* Add shortcut to page turning with the space key on keyboard
* Properly handle auto refresh token with supabase
* Fix settings not stored in direct quit of app, closes#94
* Add H and L keyboard shortcuts for back and forward navigation, consistent with Vimium
* Fallback bookmark text to page number if current page has no text, closes#51
* Add delete and edit buttons for highlights and booknotes in the sidebar, closes#57
* Each book now has its own sidebar default tab
* Add missing translation for progress synced toast
* Graceful shutdown after all books closed, closes#50
* Throttle app update check to once every day
* Avoid infinite loop to redirect to the login page, closes#54