You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Left pane minimum width now matches the minimum pane content width, preventing controls from being clipped.
Resizing the left pane now displays the current width in the status bar.
Demo app loads additional open Google fonts on startup.
Left pane can no longer be resized below its minimum width.
Export round-trip test now includes a checksum comparison to verify content integrity across export/import cycles.
Text Editing
Bullet, indent, and alignment formatting now correctly targets text inside text boxes and table cells instead of the parent paragraph.
Paragraph formatting (alignment, bullets, indent) is now applied to all paragraphs in a text selection, including partially selected paragraphs.
Formatting Pane
Colour pickers rearranged: "Text:" with colour picker on one row, "Highlight:" with colour picker and clear button on the next, labels right-aligned.
All labels across all panes now consistently use a colon suffix.
Font family and font size controls placed on the same row as their labels, with labels in a right-aligned column.
View pane buttons now wrap correctly at minimum width.
Font Support
External applications can now register custom fonts via the editor API (registerFont()). Available fonts are retrievable with built-in fonts as the default list.
Custom fonts are embedded in exported PDFs when used in the document.
Text Box Pane
Reworked layout: all labels have colon suffixes, Type/Background/Border Style/Padding controls are on the same row as their labels, Apply button removed — changes apply immediately on blur.
Text box padding setting now works correctly.
Table Operations
Fixed table row loop creation failing when no loop previously existed.
Table row loop indicators now match the text flow style (purple "Loop" label, selectable).
Repeating sections on table rows now span the full cell selection range instead of a single row.
Unified table row loop visual style with text flow repeating sections (consistent colour, label size, outlined style, clickable labels).
Repeating Section Pane
Repeating section pane now only appears when a repeating section is actually selected.
Repeating section pane styling now matches other panes.
Conditional Sections (New Feature)
Full conditional section system for dynamically showing/hiding content based on merge data:
Predicate expressions with support for truthiness (isActive), negation (!isArchived), comparisons (==, !=, >, <, >=, <=), regex match (=~, !~), logical operators (&&, ||), parentheses, string/number/boolean literals, and dot-notation data access (customer.isVIP).
Automatic type coercion — ordering operators convert strings to numbers; equality operators coerce when both sides look numeric; regex match coerces left side to string.
Text flow conditional sections — orange indicators with "If" label on the right margin, click-to-select, property pane for editing predicates.
Table row conditionals — orange "If" badge on tables, same predicate system.
Merge pipeline integration — conditional sections evaluated after repeating section expansion; false predicates remove the content.
ConditionalSectionPane — property editor for predicate expressions, shown on selection.
Full serialization — conditional sections persist in document JSON and survive export/import round-trips.
Embedded objects (images, text boxes, tables) now work correctly in headers and footers:
Click events properly select objects in header/footer sections (auto-switches active section).
Relative positioning allows movement via drag.
Correct cursor feedback (move cursor for relative objects, text cursor for editing).
Fixed hit target registration order so header objects are not cleared during body rendering.
Embedded Object Management
Selected embedded objects (text boxes, images, substitution fields, page number fields, tables) can now be deleted by pressing Backspace or Delete when selected but not in edit mode.
Image Pane
Reworked layout:
Position section with "Position" heading and "Type:" label (matching text box pane style).
Fit Mode, Resize Mode, and Alt Text each on a single row with inline label and control.
Apply Changes button removed — all controls apply immediately on blur/change.
Visual separators between position, display, alt text, and source sections.
Table Pane
Reworked layout:
Structure section: "Rows:" and "Columns:" labels in a right-aligned column. Row and column buttons on separate rows. Separator before header controls.
Header Rows and Header Cols on separate rows with aligned labels. Apply Headers button removed — changes apply on blur.
Defaults section: Padding and Border on separate rows with aligned labels. Apply Defaults button removed — changes apply on blur.
Cell Formatting section: Background and Style as inline label+control rows. Separator after merge/split buttons. "Apply to Cell(s)" button removed — all controls (background, borders, width, colour, style) apply immediately on change/blur.