Skip to content

1.0.7

Choose a tag to compare

@JBRedcrewAdmin JBRedcrewAdmin released this 17 Mar 21:02
· 20 commits to main since this release

Release Notes

Demo App Improvements

  • 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.
    • See Predicate Expressions for the full syntax reference.

Header & Footer

  • 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.