Commit Graph

7 Commits

Author SHA1 Message Date
GitHub Copilot 076bf4cd5d Add SVG CSS: dominant-baseline and text-rendering for proper alignment
- Added dominant-baseline: text-before-edge for proper vertical text positioning
- Added text-rendering: optimizeLegibility for crisper text
- Simplified y-position calculation (top-aligned with baseline)
- Added tests for box drawing character detection helpers
- Added test for CSS properties
- Removed unreachable dead code paths (empty span checks)
- svg_exporter.py now has 100% test coverage

Version bump to 0.3.7
2026-01-24 19:14:28 +00:00
GitHub Copilot ba1f89af54 Don't merge box-drawing characters for precise positioning
Box-drawing and block element characters (U+2500-U+259F, U+25A0-U+25FF)
are now rendered as individual tspans with their own x positions to
prevent visual misalignment caused by font rendering variations.
2026-01-24 18:58:19 +00:00
GitHub Copilot 25d689f9c3 Add comprehensive background color rendering tests
- Test rect dimensions and positioning
- Test hex colors with/without # prefix
- Test multiple background spans in one row
- Test wide character background width
- Test same-as-terminal-bg optimization
- Test combined foreground and background colors
2026-01-24 18:41:02 +00:00
GitHub Copilot 631ab33b4d Fix SVG color handling and alignment issues
- Fix hex color conversion for pyte's 256-color/truecolor format (no # prefix)
- Track column count separately from text length for proper wide char alignment
- Add tests for rgb() color format, empty rows, unicode slugify
- Improve test coverage to 80%

Bump version to 0.3.1
2026-01-24 18:39:25 +00:00
GitHub Copilot 4f4b811967 Fix wide character alignment in SVG exporter
Track column count separately from character count to properly
handle wide characters (CJK, emoji) that occupy 2 terminal columns
but have a single character + empty placeholder in pyte buffer.
2026-01-24 18:36:03 +00:00
GitHub Copilot e161d94bcc Fix hex color handling in SVG exporter
pyte provides 256-color/truecolor values without # prefix (e.g., 'ff8700').
Added check to prepend # for 6-digit hex strings.
2026-01-24 18:34:13 +00:00
GitHub Copilot d5a060d6aa Add custom SVG exporter, remove Rich from screenshot rendering
- Created svg_exporter.py with direct pyte-to-SVG rendering
- Eliminates Rich's export_svg() quirks (clip path count mismatch)
- Added 63 comprehensive tests for SVG exporter
- Removed Rich imports from local_server.py, terminal_session.py,
  app_session.py, and cli.py
- Replaced RichHandler with standard logging.basicConfig
- Replaced @rich.repr.auto with standard __repr__ methods
- Rich is no longer directly imported (still transitive via textual-serve)

Bump version to 0.3.0
2026-01-24 17:11:20 +00:00