* chore: bump nodejs version to 24
* fix(sidebar): use position fixed and transform for mobile sidebar
Use position: fixed to prevent horizontal scrolling on the mobile
bottom sheet, and replace style.top with transform: translateY() for
smooth drag performance. Cache element refs to avoid
document.querySelector on every drag frame. Apply the same position:
fixed fix to the notebook panel. Closes#3492
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add a floating navigation component that appears when search results exist.
The component includes:
- Top bar: displays search term and current section with TOC and close buttons
- Bottom bar: search results, previous, and next navigation buttons
- Page-based navigation using isCfiInLocation to skip between pages with results
* mobile: auto save progress also for iOS
* ux: enhancements on pull-down to dismiss modals
* doc: update reademe
* ux: tricks to dismiss system selection tools on iOS
* Adjusts overlay background opacity dynamically based on drag position
* Ensures smooth transition as the modal is pulled down
* Enhances UX for mobile users by making dismissal more intuitive
* Larger area to toggle header/footer bar
* Don't show rounded window on web platform
* Disable tooltips on mobile platforms as there is no mouse pointer
* Dedupe voices from web speech API
* Fix excerpts cannot be deleted in Chrome browsers
* Show book details in reader sidebar
* Set minimum search term length to 1 for CJK languages
* Use more system fonts as custom fonts, closes#31
* 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