feat: inspect image previews at actual size

Merged
JC
2d ago
+904-24

[!TIP]
PR walkthrough: Open the visual walkthrough

Large screenshots in ordinary image previews were fitted to the viewport, making fine detail difficult to inspect. The shared viewer now offers actual-size inspection with bounded scrolling, while each opening starts fitted.

Validation

  • Focused Vitest: 75 tests passed across the shared viewer, composer, chat messages, and rich-output renderer.
  • Managed Playwright: three Chromium and two mobile Chrome scenarios passed, including the existing Quick Chat cases, keyboard and touch scrolling, focus return, and composer previews.
  • Scoped ESLint, i18n:check, specification catalog and lint, and public documentation validators passed.
  • Normal pre-commit and commit-message hooks passed.

Checklist

  • If I do not have repository write access and this is a large architectural change, I discussed the direction in a linked issue before opening this PR.
  • This PR contains one logical change; unrelated work is split into separate PRs.
  • I have performed a self-review of my code.
  • I have manually tested my changes and they work as expected.
  • My changes have tests that cover the new functionality and edge cases.
  • If my change touches UI files (apps/web/), I have added or updated Playwright e2e tests in apps/web/e2e/ and verified them with make test-e2e.
  • I checked whether this affects public docs in docs/public/** and updated them or noted why no docs change is needed.

Screenshots

Desktop actual-size image inspection

Phone actual-size image inspection