Commit Graph
5340 Commits
Author SHA1 Message Date
FredApps f07bf58d5b 2743: integrate DefaultCMYK export with shared PDF APIs
Resolve main dependency migration; retain flate2 production usage and route new PDF parsing through craft-pdf. Owner directs hosted CI validation for this integration; full local gate not run.
2026-11-14 13:17:29 +01:00
Dylan M. Taylor 7107a64d6c Merge pull request #2766 from storytold/codex/designcraft-craftlibs-clean
Cut over document formats and codecs to craft-libs (#778)
2026-11-13 22:36:04 -05:00
Dylan M. Taylor 614feb8607 Merge remote-tracking branch 'origin/main' into codex/designcraft-craftlibs-clean 2026-11-14 03:36:00 +00:00
Dylan M. Taylor 382fc27a5b fix(idml,images,pptx,textimport): update adapters and tests for craft-libs cutover 2026-11-14 03:35:09 +00:00
Dylan M. Taylor 32274e843a Merge codex/designcraft-craft-libs into origin/main: cut over document formats and codecs to craft-libs 2026-11-14 02:13:28 +00:00
Dylan M. Taylor 77991abe6f fix(file): preserve legacy JSON on INDD paths 2026-11-14 00:40:59 +00:00
jayzed80 c509445ed0 IDML export: keep endnote reference numbers (#2753) (#2764)
The IDML story writer skipped the endnote reference character, so an
exported body story lost every endnote's place: "an endnote here. End."
with nothing between "here" and the full stop. The endnote frame's
story was written with its numbers as text, so nothing linked the
listed endnote back to where it was referenced.

Each reference is now written as its own superscript character range
holding the endnote's number, formatted by Endnote Options (start,
style, prefix and suffix) as the endnote frame lists it. IDML's
Endnote / EndnoteRange elements are not written yet.
2026-11-14 00:34:31 +00:00
Dylan M. Taylor b681b10733 Pin DesignCraft shared codecs to merged fixes 2026-11-13 23:53:29 +00:00
AlPaka1234 3753d9498f Merge remote-tracking branch 'origin/main' into fix/2743-pdf-cmyk-profile
# Conflicts:
#	ROADMAP.md
2026-11-13 22:56:36 +01:00
AlPaka1234 378c8c7ba8 PDF export: bound CmykScan work on self-referencing Form graphs (#2743) 2026-11-13 22:24:13 +01:00
Dylan M. Taylor fe9498cd5f Merge branch 'codex/designcraft-craft-libs' of https://github.com/storytold/designcraft into codex/designcraft-craft-libs
# Conflicts:
#	Cargo.lock
2026-11-13 21:10:04 +00:00
Zinadin Zidan 40cc78d8f8 Text Frame Options: insets and gutter in the ruler units (#2739) (#2754)
The Text Frame Options dialog filled its fields from the document's
ruler unit but never set the dialog's own unit, so it stayed at picas.
The spinner fields (Top, Bottom, Left, Right, a non-rectangular frame's
Inset, the column width and gutter, Paragraph Spacing Limit) showed
their values in picas whatever Preferences > Units & Increments said,
and a bare number typed in any measure field, Min under First Baseline
included, was read as picas.

The dialog now takes the document's horizontal ruler unit when it opens
and keeps it while open, as the Rectangle dialog does (#1964).
2026-11-13 21:08:26 +00:00
Dylan M. Taylor 1284edfa3b Pin shared CSV codec to merge commit 2026-11-13 21:08:18 +00:00
AlPaka1234 13ccea15ca PDF export: address review feedback on DefaultCMYK attachment (#2743)
Do not use font.obj_id() for inline Type3 font resources so the enclosing container is never overwritten; inspect alternate/base spaces of Separation, DeviceN, Pattern, and nested Indexed spaces in uses_device_cmyk; scope scan memoization in CmykScan to each effective resource chain while keeping cycles bounded; return an explicit error when non-cyclic nesting exceeds MAX_DEPTH.
2026-11-13 21:20:37 +01:00
AlPaka1234 618c191166 Window: restore hidden panels when selecting panels, control bar or workspaces (#2742) (#2746)
Fixes #2742.

Make UiState::hidden_panels session-only (#[serde(skip)]) and clear hidden_panels when opening or revealing panels, toggling the Control bar while hidden, or loading/resetting workspaces. Treat hidden panels and flyouts as not visible in checked/toggle checks so Window commands unhide them instead of toggling them off invisibly.
2026-11-13 20:58:53 +01:00
AlPaka1234 dbdc5b697a Tools: snap Gap tool drags to active snapping settings (#2637) (#2749)
* Tools: snap Gap tool drags to active snapping settings (#2637)

* Tools: reject unreachable Gap tool snap targets beyond resize clamp

* Tools: preserve raw Gap tool delta when no reachable snap matches
2026-11-13 20:58:31 +01:00
AlPaka1234 a905cb64e1 PDF export: attach working CMYK profile as /DefaultCMYK (#2743)
Fixes #2743.

Attach /DefaultCMYK [/ICCBased ...] referencing the CMYK working space profile on every page, inherited /Pages resource dict, Form XObject, SMask form, tiling pattern, and Type3 font resource scope outside PDF/X-1a and PDF/A-2b. Plain print exports and booklets embed one shared Flate-compressed /N 4 ICC profile stream without adding /OutputIntents or /Trapped; PDF/X-4 reuses the catalog GTS_PDFX /DestOutputProfile stream; RGB-blend documents attach /DefaultCMYK only when content or resources use DeviceCMYK.
2026-11-13 20:33:05 +01:00
.CooCoo cf4efa1833 Text Frame Options: every dropdown and field has an accessible name (#2733)
* Text Frame Options: every dropdown and field has an accessible name

The Columns and Align dropdowns on the General tab, and the dropdowns and
text fields on the Column Rules, Baseline Options and Auto-Size tabs, had
no accessible name, so a screen reader announced them without a caption
and kittest's accessibility check failed on the dialog. Each one now takes
the caption shown next to it. The non-rectangular frame test runs with the
check on and opens every tab.

* Text Frame Options: numeric fields take their captions as names

The Number, Width, Gutter, Maximum, inset and Paragraph Spacing Limit
fields on the General tab were named by their internal ids, so a screen
reader announced tfo_columnWidth and its spinner read as Increase
tfo_columnWidth. Each field and its spinner buttons now take the caption
shown beside it.

* Text Frame Options: test the numeric editors' accessible names

The test checked only the spinner buttons' names. It now also finds each
numeric editor of the General tab (Number, Width, Gutter, Maximum, Paragraph
Spacing Limit, the four sides and Inset) by the text-input role and its
caption.
2026-11-13 16:27:26 +00:00
Dylan M. Taylor 59db0b67a7 Use shared IDML transparency writer 2026-11-13 09:43:29 -05:00
Dylan M. Taylor b409bccb0f Use shared IDML effect setting writers 2026-11-13 09:40:28 -05:00
Dylan M. Taylor 703ffed779 Use shared IDML text path writer 2026-11-13 09:37:36 -05:00
Dylan M. Taylor dab41a4f60 Use shared IDML hyperlink destination writer 2026-11-13 09:35:55 -05:00
Dylan M. Taylor 4fbe39af99 Use shared IDML index parser 2026-11-13 09:33:26 -05:00
Dylan M. Taylor 6cea56ce01 Remove app-local IDML topic ID helper 2026-11-13 09:30:20 -05:00
Dylan M. Taylor 6bc26299fa Use shared IDML anchored setting writer 2026-11-13 09:30:04 -05:00
Dylan M. Taylor 1cb0c04143 Use shared IDML index writer 2026-11-13 09:27:22 -05:00
Dylan M. Taylor a9c4253e57 Use shared IDML page reference writer 2026-11-13 09:23:32 -05:00
Dylan M. Taylor c74cf007d0 Use shared cell and table style decorations 2026-11-13 09:13:02 -05:00
Dylan M. Taylor 61f6a83de5 Use shared IDML object style values 2026-11-13 09:10:17 -05:00
Dylan M. Taylor 90f6ddba6e Use shared IDML graphic MIME fallback 2026-11-13 09:07:49 -05:00
Dylan M. Taylor c94a29204d Use shared IDML graphic MIME fallback 2026-11-13 09:07:12 -05:00
Dylan M. Taylor 6a980c01c2 Pin IDML API after shared main rebase 2026-11-13 09:06:02 -05:00
Dylan M. Taylor 41bbd27a40 Use shared placed graphic metadata 2026-11-13 09:04:34 -05:00
Dylan M. Taylor 611fe571da Use shared IDML anchored object values 2026-11-13 09:00:48 -05:00
Dylan M. Taylor 7f2ac33275 Use shared IDML frame fitting values 2026-11-13 08:58:46 -05:00
Dylan M. Taylor a92db95301 Delegate IDML object style merging to craft-idml 2026-11-13 08:56:24 -05:00
Dylan M. Taylor 75eeeca16f Use shared IDML table style values 2026-11-13 08:50:49 -05:00
Dylan M. Taylor 862c052c2f Use shared IDML cell style values 2026-11-13 08:49:14 -05:00
Dylan M. Taylor 9ea7beb6f3 Format IDML cross-reference mapper 2026-11-13 08:47:15 -05:00
Dylan M. Taylor ed0543639a Write IDML cross-reference format through craft-idml 2026-11-13 08:47:03 -05:00
Dylan M. Taylor b782bdde6d Read IDML conditions and lists from shared models 2026-11-13 08:44:55 -05:00
Dylan M. Taylor b45c58f2e3 Use shared IDML cross-reference and EPUB models 2026-11-13 08:43:04 -05:00
Dylan M. Taylor 5b524b5554 Read IDML text variables through shared model 2026-11-13 08:39:54 -05:00
Dylan M. Taylor eeb085fb63 Read IDML table of contents styles through shared model 2026-11-13 08:37:27 -05:00
Dylan M. Taylor d939af608a Use shared writer for IDML footnote preferences 2026-11-13 08:35:11 -05:00
Dylan M. Taylor 54a4b1ceec Read footnote preferences through shared IDML model 2026-11-13 08:32:57 -05:00
Dylan M. Taylor c0867e86dd Use shared preference and range accessors 2026-11-13 08:31:08 -05:00
Dylan M. Taylor 14c0ebd166 Use typed IDML range style accessor 2026-11-13 08:30:00 -05:00
Dylan M. Taylor c47dff9b62 Use shared IDML model for preference output 2026-11-13 08:27:49 -05:00
Dylan M. Taylor 5d1b5ccb17 Read document preferences through shared IDML model 2026-11-13 08:24:20 -05:00