Releases: seanghay/sone
Releases · seanghay/sone
Release list
v1.4.0
v1.3.9
v1.3.7
This release adds bidirectional text support, expands the metadata pipeline for document analysis workflows, and introduces a new live
editor example. It also includes several text layout fixes and broader regression coverage.
Highlights
- Added bidirectional text support for Arabic, Hebrew, and mixed LTR/RTL content.
- New Text.baseDir("ltr" | "rtl" | "auto")
- New Span.textDir("ltr" | "rtl")
- Includes new bidi tests and visual coverage
- Expanded the Metadata API for layout analysis and labeling workflows.
- .tag() is now available on spans and is surfaced in metadata
- Text metadata includes laid-out paragraph blocks and segment bounding boxes
- Useful for inspection, overlays, OCR tooling, and dataset generation
- Added toYoloDataset() for YOLO bounding-box export.
- Supports segment, line, block, and node granularity
- Can export text, photo, and layout nodes
- Class names are derived from .tag() labels
- Added a new live editor example under examples/live-editor.
- Responsive editor panels
- Properties panel
- Custom font uploads
- Social/document templates
- Debug mode
- Render cache improvements
Fixes and Improvements
- Improved wrapping for tight unspaced text
- Tightened text layout regressions
- Added multilingual text regression coverage
- Improved README documentation for bidi text, metadata, and YOLO export
- Added benchmark script support
Internal Notes
- Removed jspdf
- Added more visual tests and regression fixtures across text, bidi, and bbox export flows
Full Changelog
- feat: add bidirectional (bidi) text support
- feat: add tag() to spans and surface tag in metadata API, add bbox visual tests
- feat: add toYoloDataset() for YOLO bbox dataset export
- feat: add sone editor
- feat: add responsive editor panels
- feat: support custom font uploads
- feat: add live editor properties panel
- feat: add social templates and debug mode
- fix: tighten text layout regressions
- fix: wrap tight unspaced text
- fix: use sone render cache in live editor
v1.3.6
v1.3.5
v1.2.5
v1.2.4
v1.2.3
- When nowrap and autofit are both set, binary-search for the largest
font size where the single line fits within the container width - Guard height-based autofit to non-nowrap case to avoid conflict
- Write resolved font size back to node.props.size so metadata reflects it
- Add 3 unit tests and visual regression test (text-autofit-1.ts)
- Remove JSON metadata output from writeCanvasToFile in visual test utils
v1.2.2
v1.2.1
- Added automatic page breaking for multi-page documents.
- Added
PageBreakplus repeating page header/footer support. - Added page margins, dynamic header/footer sizing, and uniform page handling.
- Added list support with
ListandListItem, including customizable
markers. - Added styled
SpanNodelist markers and{}placeholders for numbered
markers. - Added table
colspanandrowspan. - Added tab stops for text layout.
- Added layout-aware text orientation at
0/90/180/270degrees. - Added Knuth-Plass line breaking as an alternative to greedy wrapping.
- Added text clipping, path clipping, and SVG color fill support.
- Improved text behavior with fixes for justification, whitespace
preservation, number wrapping, and canvas width semantics.
Improvements
- Expanded metadata and rendering coverage around text, pagination, lists,
tables, grids, paths, and clipping. - Added a large set of visual regression scenarios and showcase assets,
including feature showcase and report PDFs. - Improved line breaking logic for Khmer-related segmentation edge cases.
- Tightened types and added more automated tests.