Commit Graph
1660 Commits
Author SHA1 Message Date
paaspaas00andClaude Opus 5.5 a401aba8c4 Clear Fitting Options leaves frames whose options are already clear
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 15:28:11 +02:00
paaspaas00andClaude Opus 5.5 098613b75d Place cursor: a drag under the threshold is a click, with no frame drawn
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 15:05:00 +02:00
paaspaas00andClaude Opus 5.5 03754e381a Paragraph styles: Based On and Next Style must name styles; the dialog resolves over the chosen Based On
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 14:58:44 +02:00
paaspaas00andClaude Opus 5.5 ff56cdde4e Clear Fitting Options: no edit, and no undo step, when nothing can change
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 14:22:35 +02:00
paaspaas00andClaude Opus 5.5 f972cebb96 Paragraph style edits: Reset To Base with a new Based On resolves over it, is checked against it and previewed
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 13:47:05 +02:00
paaspaas00andClaude Opus 5.5 c9e831e732 Effect blend modes: reject an unknown mode; IDML shadows without BlendMode stay Normal
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 12:58:48 +02:00
paaspaas00andClaude Opus 5.5 e811b65e82 Clear Fitting Options skips locked frames
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 12:38:29 +02:00
paaspaas00andClaude Opus 5.5 dcc8aed378 Direct Selection: selected points follow added, deleted and reversed points
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 12:11:06 +02:00
paaspaas00andClaude Opus 5.5 151f54ee46 Paragraph styles: a new style from the selected text, Next Style, Reset To Base
New Paragraph Style with text selected starts from it, as InDesign's: Based On [No Paragraph
Style] and every setting of the text that differs from it, with Apply Style to Selection (on), so
OK gives the paragraph the new style. General has Next Style ([Same style] or a style) and Reset
To Base (the style keeps nothing of its own; edits made in the dialog still apply). Basic
Character Formats is laid out in two columns as InDesign's: the font, then Size | Leading,
Kerning | Tracking, Case | Position.

style.paragraph.edit honours nextStyle (string, or null for [Same style]); it was described but
ignored. It takes resetToBase.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 11:48:16 +02:00
paaspaas00andClaude Opus 5.5 bd340e6648 Text Frame Options: InDesign's layout, Preview and the Paragraph Spacing Limit
The dialog follows InDesign's: General, Column Rules, Baseline Options, Auto-Size; on General,
framed Columns (Number and Width, Gutter and Maximum, Balance Columns), Inset Spacing (Top and
Bottom, the link, Left and Right) and Vertical Justification (Align, Paragraph Spacing Limit),
with spinner fields. With Fixed Number, Width shows each column's width as the number, gutter
and insets change.

Preview shows the options on the page while the dialog is open (redone as fields change); Cancel
puts the frames back, OK sets them once as one undo step.

Vertical Justification › Justify honours the Paragraph Spacing Limit: the extra space goes
between paragraphs, up to the limit each, and what is left spreads over every line (all of it,
with no limit, as before). object.textFrameOptions takes it as paragraphSpacingLimit.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 10:54:06 +02:00
moppeeerandClaude Opus 5.5 75d72c69b5 Effects: blend modes for Drop Shadow, Inner Shadow and Outer Glow
As InDesign's Effects dialog › Blending › Mode: the shadows start Multiply
and the outer glow Screen in white; the renderer blends each with what's
behind it, the commands take mode, IDML reads and writes the drop shadow's
BlendMode. Effects saved before read Normal, as they were drawn.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 08:28:10 +02:00
skylar taylor-barrick 1420d8c79b refactor(pdf): share placed-PDF rendering (PDFR) (#876) 2026-10-20 19:52:28 -06:00
moppeeerandClaude Opus 5.5 af36dc399d Fitting: Clear Frame Fitting Options; the submenu grouped as InDesign's
object.clearFittingOptions puts the frames' auto-fit, crop amounts and
reference point back to their defaults and leaves the picture where it is.
Object > Fitting (and the context menu) groups the proportional fits, the
frame and content fits, Clear Frame Fitting Options and the dialog.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 02:38:12 +02:00
moppeeerandClaude Opus 5.5 5e1fd65dfc Properties: Anchor Point(s) with Convert Points and Delete Point(s)
Points selected with Direct Selection title Properties "Anchor Point(s)"
and show Transform, Appearance, Convert Points and the Delete Point(s)
quick action, as InDesign does. path.deletePoints removes the selected (or
given) points of several paths in one undo step. The Convert Point glyphs
are redrawn after InDesign's: the anchor on a corner or a curve with its
handles.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 01:57:23 +02:00
moppeeerandClaude Opus 5.5 061c4faaf0 Direct Selection: select anchor points with a marquee across paths and move them together
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 22:32:46 +02:00
moppeeerandClaude Opus 5.5 53b8b04141 PR-1392: the place-cursor preview follows place.drop's 2 pt drag threshold
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 21:17:37 +02:00
aiongg 821936c9c3 Merge branch 'print-color' into print-color-x1a 2026-10-20 18:11:37 +00:00
aiongg 52ea9a890a Merge branch 'print-color' into print-color-separations 2026-10-20 18:11:37 +00:00
aiongg 2e0aedbaf6 Print color: the print test retries across a second boundary, as its sibling does 2026-10-20 18:11:27 +00:00
moppeeerandClaude Opus 5.5 e1812231a9 Place cursor: a thumbnail of the loaded graphic; a drag draws a proportional frame with its scale
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 18:52:13 +02:00
moppeeerandClaude Opus 5.5 54c369418a PR-1257: document TOC bookmark ownership across IDML and the createBookmarks default
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 18:16:30 +02:00
aiongg c50321c852 Print color: X-1a written by craft-pdf at PDF 1.4 (craft-libs#194 d30598d)
Repin craft-pdf, craft-prepress, krilla and the hayro crates to d30598d.
flatten_document writes the X-1a file at PDF 1.4 with GTS_PDFXVersion
PDF/X-1:2003 in the Info dictionary and XMP, so DesignCraft's header
rewrite and incremental update are gone. check_pdfx1a refuses DeviceN
NChannel attributes and warns about an ICC v4 output intent profile in a
file of PDF 1.5 or lower; the export names the built-in Coated FOGRA39
(v4) when it is the intent. validate-pdf lists warnings apart from issues.
2026-10-20 16:00:38 +00:00
aiongg 7473fcac78 Print color: drop shadows multiply over what's beneath them in X-1a 2026-10-20 15:32:10 +00:00
aiongg 75c6084a69 Print color: PDF/X-1a export through craft-prepress's flattener
standard x1a writes the PDF/X-4 print file, flattens it with
craft_prepress::flatten::flatten_document at the flattener preset's
resolution (high 300, medium 150, low 72 ppi; default 300), then makes it
PDF/X-1a:2003: the PDF 1.4 header, GTS_PDFXVersion and GTS_PDFXConformance
in the Info dictionary and XMP. check_pdfx1a refuses transparency (soft
masks, transparency groups, CA/ca below 1, blend modes) and color outside
DeviceCMYK, DeviceGray, Separation and DeviceN; export fails when the
flattened file still has either.

The X-1a path skips DesignCraft's RGB transparency flattener. Soft drop
shadows are drawn in their swatch's inks through a coverage mask, so
craft-prepress flattens them per ink instead of an RGB image of the
object. validate-pdf takes --standard x4|x1a; the Export PDF dialog gains
the PDF/X-1a:2003 preset and standard and a Transparency Flattener preset.
2026-10-20 15:04:58 +00:00
moppeeerandClaude Opus 5.5 13576c365d PR-1125: Direct Selection selects pasted-in content too; test in a private temp dir
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 16:57:48 +02:00
NetterSilverandClaude Haiku 5.5 7aba0e15af Saturate table alternating-fill and index paragraph counts
Found while testing crates/engine/src/cmd/table.rs:1396-1403

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 14:10:59 +00:00
aiongg 9c2aa1333a Merge branch 'print-color' into print-color-separations 2026-10-20 13:53:02 +00:00
aiongg 1284bf400d Merge print-color-preview into print-color-separations
Export PDF, File > Print and Separations Preview share one print
pipeline: print_pdf builds the print PDF of a set of pages (flattener,
rasterized layers and effects, PDF boxes, the writer, the blend space
outside print color), pdf_export adds Export PDF's view options for
file.exportPdf and file.print, and the preview separates print_pdf's
page per spread. Gradient stops on spot swatches resolve through the
same InkSet as fills (inks::spot_output). The hayro patches move to
craft-libs 8fbfea8 with craft-pdf, craft-prepress and krilla.
2026-10-20 13:50:13 +00:00
aiongg ab568de0de Print color: the sample's Dusk Gradient stops name their swatches 2026-10-20 13:47:50 +00:00
aiongg 905e33d546 Print color: one spelling for the color swatch error 2026-10-20 13:36:33 +00:00
aiongg 99cb64a779 Print color: US spelling in the new code and docs 2026-10-20 13:36:14 +00:00
aiongg dd1f4b02ed Print color: Separations Preview shows the exported PDF's plates
Each visible spread is exported in memory as Export PDF writes it (its
print settings, the document bleed) and separated with
craft_prepress::plates off the UI thread, at a resolution matched to the
zoom. The canvas draws all inks composited, one plate as film or the ink
limit over gray; Window > Output > Separations Preview lists the plates,
spot plates by name, with each ink's percentage under the pointer.
view.separations takes spot ink names and reports the plates, ui.inspect
shows the preview's sheets, and ink.separations gives coverage and the
areas over an ink limit to automation. The renderer's GCR separation view
is gone; its plate passes stay for the CMYK blend space.
2026-10-20 13:30:14 +00:00
aiongg fa4edee57b Merge branch 'print-color-gradients' into print-color
# Conflicts:
#	crates/pdf/src/lib.rs
2026-10-20 13:16:40 +00:00
aiongg 6c9709e11f Print color: gradient stops keep the swatch they were given
A stop can name a colour swatch (spot, process, tint, [Paper]) next to its
display colour. swatch.create {gradient}, object.gradient, the Gradient panel
and IDML StopColor keep the reference; renames follow it, swatch edits refresh
the stop's colour and a deleted swatch leaves a plain colour. The field is
optional and omitted for plain stops, so saved documents load and save as
before.
2026-10-20 13:12:29 +00:00
aiongg 30c0664142 Print color: File > Print prints the PDF Export PDF writes
file.print builds its PDF with the same pipeline as file.exportPdf
(flattener, placed PDFs with hidden layers and soft effects as images,
print color, view options), accepts Export PDF's settings and returns its
warnings, instead of calling designcraft_pdf::export_pdf with the
hard-edged vector drop shadow.
2026-10-20 13:12:15 +00:00
aiongg c51ff78d2b Print color: Knockout Group and Isolate Blending as group attributes
Groups are pushed with Surface::push_group, so Knockout Group writes
/K true and Isolate Blending /I true, each on its own. File > Export PDF
no longer rasterizes knockout groups.
2026-10-20 13:12:15 +00:00
NetterSilverandClaude Haiku 5.5 0e7e5c3f04 Clamp polygon side count before narrowing to u32
Found while testing crates/engine/src/cmd/object.rs:710-711 (also :975)

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 15:07:40 +02:00
aiongg c6d980b25f Print color: inks on craft-prepress's InkSet
The Ink Manager settings stay saved by swatch name; PDF export and the
ink commands build a craft_prepress::InkSet from the document's spot
swatches and those settings, and ink.options refuses alias loops. The
hayro crates come from craft-libs at the craft-pdf revision, which
craft-prepress's plate mode needs.
2026-10-20 12:53:54 +00:00
aiongg 6a04039f5f Print color: CMYK print output through craft-pdf's print settings
CMYK print exports (a CMYK blend space, and PDF/X-4) take their blending
groups, output intent and /Trapped from write::print::settings instead of
rewriting krilla's bytes. The output intent is the CMYK working space,
Coated FOGRA39 when it has none or its profile can't be written. PDF/X-4
still adds the XMP metadata date and version ID krilla doesn't write.
RGB and PDF/A exports are written as before.
2026-10-20 12:48:50 +00:00
Claude 987c8bbeed Merge remote-tracking branch 'upstream/main' into xref-edited-text
# Conflicts:
#	ROADMAP.md
#	crates/idml/src/tests.rs
2026-10-19 20:21:38 +00:00
Claude 35f8e964a5 Merge remote-tracking branch 'upstream/main' into running-header-order
# Conflicts:
#	ROADMAP.md
2026-10-19 20:21:24 +00:00
Claude 7388c42d51 Running headers: place each story by its first hit on the page
Review fix (CodeRabbit): a story was placed on the page by its highest
hit, so a heading at the top of its later column put the whole story ahead
of another story whose heading sits higher than the first one's. Each story
is now placed by its first hit there in text order.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CgGsJkVe5GYG9qK6VFdECa
2026-10-19 17:48:02 +00:00
moppeeer ebc59b74e1 PR-902: refresh against main and resolve review findings 2026-10-19 14:45:28 +02:00
moppeeer ecd7830e63 PR-1125: refresh against main and resolve review findings 2026-10-19 14:44:54 +02:00
moppeeer b23422b34d PR-1255: refresh against main and resolve review findings 2026-10-19 14:44:46 +02:00
Brandon Thomas affce22f4f Merge remote-tracking branch 'origin/main' into HEAD
# Conflicts:
#	docs/gaps.md
2026-10-19 02:52:49 -04:00
Brandon Thomas f78bf721e8 Merge storytold/main into codex/delete-parent-pages 2026-10-19 02:52:27 -04:00
Brandon Thomas 96957ef53f Merge storytold/main into fix/340-package-relative-links 2026-10-19 02:52:13 -04:00
Brandon Thomas 0e4d1cef7e Merge storytold/main into fonts/reload-changed-fonts 2026-10-19 02:51:28 -04:00
Brandon Thomas fcb83fd12d Merge storytold/main into codex/delete-parent-pages 2026-10-19 02:51:25 -04:00