typograph-editor-documentation
    Preparing search index...

    Release Notes - Version 1.0.0-20261023.1

    A point release after 20261023: the viewer honours an element's permission role again, and the toolbar's drop cap works on a converted document.

    • The viewer ignored permission roles (TYP-1046). An element whose role does not allow it to be selected (Fixed) was still selected, and once anything was selected the toolbar offered every control, including the ones its role denies. Now:
      • an element that may not be selected is not selected; the click counts as a click on empty space, and it no longer lights up on hover when its role turns the hover highlight off;
      • the toolbar offers only what the role allows. Font follows the role's font permission. Size, leading and letter spacing follow its size permission. Font style, alignment, caps, underline, strikethrough, super/subscript, lists, indents and the frame's text layout (vertical alignment, baseline, columns, drop cap, hyphenation) follow its style permission. Flip follows rotate. A picture's fit follows its scale permission and its alignment its move permission;
      • fill and text colour and spellcheck stay available: a role has no colour permission.
    • The toolbar's drop cap did not work on a converted InDesign document (TYP-1048). It showed 0 for a drop cap the document's paragraph style gives, setting one drew nothing (the root paragraph style says "no drop cap" and outranked it), and setting 0 could not remove one. The control now shows the drop cap the frame's first paragraph has, wherever it comes from, and changes that paragraph, so 0 removes a drop cap a style gives. One undo puts it back.
    • Flip is no longer offered in the viewer under the default permissions, which do not allow rotating. A template that wants it gives the element a role that allows rotate (Full edit, or a role of your own).
    • The editor's permissions are unchanged: it lets its user do everything, as before. Its drop cap control changed with the viewer's (above): it edits the first paragraph's drop cap.
    • Canvas pin 23a2099 (from beb267a): canvas #212 (TYP-1048). Nothing else landed on canvas master in that range.
    • TYP-1048, editor: the drop cap palette reads the first paragraph's drop cap through canvas's resolve_drop_cap() and writes that paragraph's own override (drop_cap_lines, _characters, _font_size), which outranks its styles; the frame's own values are set back to none in the same undo step, so one setting decides. A chained frame edits the root's first paragraph. The rule is src/dropcapcontrol.ts; vitest tests/dropcapcontrol.test.ts: 8.
    • TYP-1048, canvas: resolve_drop_cap() (src/dropcap.ts) orders a paragraph's drop cap as its own override, then the frame's (first paragraph, lines > 0), then its styles. InDesign's [No paragraph style] states DropCapLines 0, so the frame's value used to lose on every converted paragraph. Vitest tests/dropcap.test.ts: 7. The PDF needs nothing: the layout carries the drop cap.
    • TYP-1046: EditoMouseManager.select_element() (and Shift-click's modify_selection()) asks can(el, 'select'), and highlight_element() asks can_highlight(). state_permitted() could not catch it: it asks about what is already selected, and the click is what selects. Canvas's own viewer (mousemanagers.ts) always did.
    • TYP-1046: kGroupAction in toolbarpermissions.ts names the edit_action each data-toolbar-group needs; drop_denied_groups() removes the denied groups, the containers left empty and the separators left over, before _apply_toolbar(), and the Toolbar lets go of the controls that lived in them. The image frame's Scale / Hor / Ver popups are a group each (image_fit, image_align_h, image_align_v). A new toolbar group that edits the element belongs in that table. See .claude/rules/viewer-permissions.md and the new section in docs/EditPermissions.md. Vitest tests/toolbarpermissions.test.ts: 10.
    • canvas-service needs no pin bump: the converter writes drop caps on paragraph styles only, never on a frame, so a conversion's layout does not change.