Charts:
- Shrink axis label fonts and thin/space x-axis labels by actual pixel
spacing so dense or long labels no longer overlap.
- Line tooltip shows only the point nearest the cursor instead of every
series stacked vertically.
- Hovering a legend entry highlights its element: bar/line series fade the
others (pie expands the matching slice), in app and presentation mode.
- Add optional min/max threshold lines per bar/line chart (ignored for pie),
editable in the chart editor and drawn in both the live preview and the
exported SVG.
Theme:
- Resolve relative logo paths in a ThemeProfile against the project path and
home directory so deck logos load regardless of working directory.
Tests cover bound round-trip, editor fields, SVG bounds, legend-hover fading,
and bound-line rendering.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
New export target: a single offline .html rendered from the deck's Marp
Markdown. Bundles (inlines) marked, highlight.js, MathJax (tex-svg, no font
files) and mermaid, so code highlighting, LaTeX math and mermaid diagrams all
render in any browser with no network access.
- MarpHtmlService splits the deck on `---`, strips front-matter, and inlines
the vendored libraries (assets/web_export/) with a </script> breakout guard.
The asset loader is injectable for testing.
- ExportFormat.html wired through ExportService (no rasterization needed),
the export dialog (new button, skips slide rendering) and app_shell
(passes the generated Markdown). Export dialog is now scrollable.
Note: rendered with marked, not Marp Core, so theme fidelity differs from the
in-app preview / PDF / PPTX; the win is a portable, dependency-free deck.
Tests: slide splitting, library inlining, breakout escaping, and an
end-to-end .html export.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>