fix: hide popup triangle when inside popup + EPUB image-only paragraph rendering (#4121)

- Popup: hide the inner triangle when its anchor point lands inside
  the popup body. Extracted as a generic `isPointInRect` helper in
  `sel.ts` (with a default 1px padding so edge cases stay visible).
- style.ts: handle `<p[width][height]><img></p>` (common in some
  MOBI conversions) — clear hardcoded width/height and apply
  multiply blend for dark themes so the image doesn't sit on a
  colored box.
- Annotator: shrink dict popup height from 480 to 360 to fit
  smaller screens.
- foliate-js: submodule bump.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Huang Xin
2026-05-11 10:12:37 +08:00
committed by GitHub
parent 1705006b6b
commit d326e1c73d
6 changed files with 68 additions and 5 deletions
@@ -127,7 +127,7 @@ const Annotator: React.FC<{ bookKey: string }> = ({ bookKey }) => {
// Tall enough to fit a header + 2-3 expanded cards comfortably. The popup
// shows all enabled providers stacked (no tabs) so it needs more vertical
// room than the legacy single-tab layout.
const dictPopupHeight = Math.min(480, maxHeight);
const dictPopupHeight = Math.min(360, maxHeight);
const transPopupWidth = Math.min(480, maxWidth);
const transPopupHeight = Math.min(265, maxHeight);
const proofreadPopupWidth = Math.min(440, maxWidth);