typograph-editor-documentation
    Preparing search index...

    Release Notes - Version 1.0.0-20261002

    Fold marks on every spread, a layer list that keeps up with the document, and Select → All Groups.

    • Text frames show their text in the layer list. A text frame nobody named — including every unnamed frame in a converted InDesign document, which used to read "Element 12" — is listed by the start of its text. A frame with a name keeps it.
    • Shift-click and Cmd-click on the page. Shift-click an element to add it to the selection, Cmd-click to take it out; the rest of the selection stays. A click without a key still selects just that element. Option-click is unchanged.
    • Editing the picture inside an image frame. Once you click the circle in the middle of an image, the parameter bar shows the picture's own settings under Image content: where it sits in the frame, its size (it keeps its proportions) and its rotation. Rotate turns the picture about its centre; the frame stays as it is. You can now drag the picture from anywhere on it, not only from the circle. Click outside the picture to go back to the frame.
    • Compound paths. Select two or more paths and choose Arrange → Make Compound Path (⌘8): they become one shape, with the colour and stroke of the backmost, and where they overlap there is a hole — a ring, a letter with a counter, a cut-out. Rectangles and other shapes can join once they have been turned into a path with Select → Convert to Path. The path editor now edits every path of a compound path: the others are shown faintly, and clicking one switches to it. Arrange → Release Compound Path (⌥⌘8) splits one back into separate shapes, each where it was.
    • Resizing snaps, like moving. Drag a handle and the edge you drag lines up with the edges and centres of other elements and with ruler guides as it comes near them, shown as on a move: a blue line for an element, the guide itself turning green. The opposite edge stays where it is. As with moving, Ctrl turns it off; with Shift (keeping proportions) it is off too.
    • Pie slices and rings. An ellipse can be opened up, as in Figma. Select one and drag the small circle on its rim round to cut a slice out of it; a second knob turns the slice, and the knob in the middle drags outward to make a hole — a ring, or a ring segment. The parameter bar has the same three under Arc: start (°), sweep (% of a full turn) and ratio (the hole, %). A stroke follows the whole outline, the straight cut edges included. Drag the slice knob back onto the start to close the ellipse again.
    • Select → All Groups selects every group on the page. With several groups selected, Arrange → Ungroup (and its shortcut) now takes all of them apart in one step; it used to ungroup only the topmost.
    • Page thumbnails are full size with facing pages hidden. With facing pages hidden, each page in the page bar was still drawn at the size it has as half of a spread, with empty space beside it — a landscape page came out half as wide as it could be. Each page now uses the whole row. With facing pages shown nothing changes (TYP-793).
    • Deleting all the text in a frame keeps its font. Select everything in a text frame and delete it, and what you typed next came out in the default font, size and colour. It now comes out formatted like the text you deleted. The same applied to Find & Replace replacing a whole paragraph with nothing.
    • Opening a group in the layer list no longer takes a precise click. Only the left half of the arrow beside a group answered — less in a group inside a group. The whole arrow does now, with room around it, and clicking a layer's name selects it.
    • The layer list keeps up with the document. Adding, deleting or undoing something without changing the selection left the list out of date until you clicked something else. It now follows every change. The Manage button, which did nothing, has been removed.
    • Bring to Front, Send to Back and the other Arrange commands can be undone. Changing the stacking order — from the menu, the shortcuts or by dragging in the layer list — was not an undo step, so it could not be undone and did not mark the document as changed.
    • A layer dragged in the layer list lands where the line shows. Dragging a layer down put it one row too far — the top layer dropped on the third row ended up last — and it could not be dropped below the last layer at all. Dropping on the upper half of a row now puts it above that row, the lower half below it, and the empty space under the list moves it to the end. The line that shows where it will land is drawn in the selection blue instead of black.

    These come from the PDF service, not from the editor, and reach users when that service deploys:

    • Fold marks on spreads. A spread printed with crop marks now gets dashed fold marks wherever two of its pages meet, above and below the page: in the middle of a two-page spread, and at every fold of a gatefold. A spread whose pages are stacked folds across, so its marks stand left and right of the page. Covers keep the fold marks they got in the previous release, at both edges of the spine or in the middle when the spine is 0 mm. A spread printed as single pages has only its crop marks (TYP-792).

    • Pie slices and rings print as drawn. The PDF draws an opened ellipse — slice, ring or ring segment — with the same outline as the editor. ⚠️ Until the PDF service has deployed, an opened ellipse prints as a full one (TYP-796).

    • Canvas pin e5bd91b — TYP-793, the delete-keeps-font fix, compound paths and TYP-796 circle arcs.

    • The layer list refreshes on typograph_document_changed. Arrange and the list's drag-reorder are now undo steps, so they reach is_changed() and that event; they did neither before.

    • Canvas fix/delete-all-keeps-font: delete_selection_range() refilled an emptied paragraph with a bare 'default' run, dropping the run's overrides; it now uses empty_run_like() — the first deleted character's style and overrides.

    • Canvas feat/compound-path: Spread.combine_polys() keeps the backmost poly and gives it every path, and Spread.release_compound_path() splits one again — the original keeps its first path and uuid, every other piece gets a fresh uuid; each source is baked first (PageElementPoly.bake_transform() — rotation and flip written into the points), since the result carries one angle. A multi-path poly was already filled even-odd on the canvas and in the PDF, and nativePaths is a list in the schema, so nothing below the canvas changes.

    • RemoveGroup() takes one group or several and brackets its own undo — callers must not wrap it.

    • The layer list moves a dragged element itself, within its own level, instead of calling Spread.reoder_page_elements(): canvas's reoder_element() inserts at to + 2 for a downward move. Nothing else in editor-ui calls it; the canvas method is unchanged.

    • TYP-793 (canvas pagebar.ts, update_row()): with facing pages hidden a single record is fitted to the whole row (2 * kSlotW), not to one spine slot; the drag image follows. Hit-testing reads the preview's zoom, so it needed no change.

    • TYP-792 (document-generator): foldPositions() has one rule for every spread — a fold is an edge two page records share (abutting and overlapping along it, the test innerEdges() makes) that lies strictly inside the trim. A cover is not a special case any more: its records are back | spine | front, so its folds are the spine's edges, coinciding when the spine is 0 mm. ⚠️ A page's own outline is never a fold: beside a shorter flap, the flap's edge is a cut. A mark is drawn only at an end of the fold that reaches the trim, and a spread output as single pages carries crop marks only.

    • TYP-796 — a circle carries arc_start (°, from 3 o'clock, clockwise), arc_sweep (°) and arc_ratio (0–<1, the hole). They are written only when set: a full circle writes none, so an unopened circle's JSON is unchanged. Merge order: document-schema (arcStart / arcSweep / arcRatio, required — ALLOW_EXTRA_ATTRIBUTES=false) → lock bumps in converter-, publisher- and document-service → document-generator → canvas → editor-ui. Canvas: PageElementCircel.get_arc() / set_arc() / trace_outline() and the knob methods; the browser suite is window.run_circle_arc_tests(). editor-ui: parameterbararc.ts, arcknob.ts, and a step in the idle mouse-down before the scale handles. document-generator: outArcOutline() traces the same path; a full circle with no hole keeps TCPDF's Circle() / Ellipse().