Commit Graph
1688 Commits
Author SHA1 Message Date
aiongg 71fecf8ad5 Merge #820: fix(geom): decompose of a flattened transform reports 0 shear instead of NaN 2026-10-13 19:04:34 +00:00
aiongg 7894699eaf Integration: #818 the document grid setting also drops the background render 2026-10-13 19:04:33 +00:00
aiongg 769b7f56d0 Merge #818: fix: drop the background render when a display option changes (#730) 2026-10-13 19:03:42 +00:00
aiongg 8a4dac7faa Merge #815: fix(pdf): leave form fields and media out of PDF/A-2b exports (#743) 2026-10-13 19:03:42 +00:00
aiongg 732008dd5a Merge #814: fix(render): cap the failed-image cache at 64 entries (#728)
# Conflicts:
#	crates/render/src/images.rs
2026-10-13 19:02:10 +00:00
aiongg 54c467a779 Merge #813: MCP: render_page and screenshot are not read-only because they can write to path (#733) 2026-10-13 19:01:57 +00:00
aiongg ffcf6e1c78 Merge #810: Images: reject EPS bounding boxes with nonfinite corners or size (#740) 2026-10-13 19:01:57 +00:00
aiongg c154b4325b pdf: right-to-left tests read UTF-16 units with as_chunks (clippy 1.99) 2026-10-13 18:46:47 +00:00
aiongg b4f7286482 Merge text-autosize: opening a file keeps its auto-size frame sizes (#632)
# Conflicts:
#	ROADMAP.md
#	crates/engine/src/cmd/interchange.rs
#	docs/gaps.md
#	docs/target-app-parity.md
2026-10-13 18:40:15 +00:00
aiongg 935741d47c Text frames: opening a file keeps its auto-size frame sizes 2026-10-13 18:40:01 +00:00
Saad Abdullah 3c070a8cdd fix(geom): decompose of a flattened transform reports 0 shear instead of NaN 2026-10-13 16:49:51 +00:00
MarekSpodBiedry 79b9971939 fix(pdf): leave form fields and media out of PDF/A-2b exports (#743) 2026-10-13 18:44:45 +02:00
MarekSpodBiedry 6599521305 fix: drop the background render when a display option changes (#730) 2026-10-13 18:43:26 +02:00
MarekSpodBiedry b8e7e8ede6 fix(render): cap the failed-image cache at 64 entries (#728) 2026-10-13 18:20:29 +02:00
aiongg 7ad3d12883 Merge indd-import: open .indd and .indt files through indd-utils 2026-10-13 16:18:53 +00:00
MarekSpodBiedry 0820ef857c MCP: render_page and screenshot are not read-only because they can write to path (#733) 2026-10-13 18:17:59 +02:00
MarekSpodBiedry ac8f44d749 Images: reject EPS bounding boxes with nonfinite corners or size (#740) 2026-10-13 18:17:58 +02:00
aiongg a7c3e330ec INDD: open .indd and .indt files through indd-utils (#21, #114)
.indd and .indt documents open through File › Open, drop, the web inbox,
file.open, file.openBytes, file.openIdml and the CLI. The engine converts
them to IDML in memory with storytold/indd-utils (pinned by rev, MIT OR
Apache-2.0, no dependencies, builds for wasm) and imports the result
through the existing IDML path. The converter's warnings come first in the
open result's `warnings`, before the IDML importer's and the font
warnings. A file the converter can't read is an open error, shown in the
Can't Open the File alert.

Routing: a path or name ending in .indd/.indt, or bytes starting with the
INDD signature (the web inbox passes the name without its extension).
opens_as_document and the desktop and web Open dialogs list indd/indt.

Tests use synthetic bytes only: signature-bearing junk, a zero-filled
.indd and a short .indt all fail as open errors with no document added;
a dropped unreadable .indd raises the open alert.

(cherry picked from commit bb8a6a23fa)
2026-10-13 16:15:15 +00:00
aiongg 843d471451 Merge menu-wake: macOS menu-bar commands run at once (#784)
# Conflicts:
#	ROADMAP.md
#	apps/designcraft/src/native_menu.rs
2026-10-13 14:58:34 +00:00
aiongg fca75a3302 Merge locked-paths: tests for path edits on locked layers and groups (#735)
# Conflicts:
#	crates/ui-egui/src/panel_docking_tests.rs
2026-10-13 14:58:15 +00:00
aiongg 572f9d3d9e Merge editor-undo: story editor test finds the editor by its text input role 2026-10-13 14:58:08 +00:00
aiongg 2be4588658 test(properties): the Stroke link test starts with Properties active (#736) 2026-10-13 14:51:54 +00:00
aiongg e08f3c5997 test(paths): path edits on a locked layer change nothing (#735) 2026-10-13 14:51:53 +00:00
aiongg 368958ee2f fix(macos): a menu-bar command runs at once instead of on the next input (#784) 2026-10-13 14:51:52 +00:00
aiongg 6d9f6db23d test(story-editor): find the editor by its text input role 2026-10-13 14:50:21 +00:00
aiongg a2ec9b46ae Integration (locked-paths): Stroke link test shows Properties, which floating Layers leaves behind Pages 2026-10-13 14:47:24 +00:00
aiongg d9c766dd16 Integration (editor-undo): Story Editor test focuses the text input, not its text run; paste test sets its stale selection after Undo restores the selection 2026-10-13 14:47:23 +00:00
aiongg 4a349ce1c6 Integration: format 2026-10-13 14:33:51 +00:00
aiongg d087c035b2 Merge recovery-dirs: fix(recovery): an explicit recovery folder never overwrites or deletes another run's checkpoints (#715) 2026-10-13 14:32:52 +00:00
aiongg 67b53772ff Merge pdf-hidden-fields: fix(pdf): form fields, buttons and media that don't print stay out of the PDF (#726) 2026-10-13 14:32:17 +00:00
aiongg a4f4a95901 Merge idml-overrides: fix(idml): export keeps overridden parent items and their local copies' links (#725) 2026-10-13 14:31:45 +00:00
aiongg e04cce9838 Merge epub-tables: fix(epub): EPUB and HTML export include tables, footnotes and endnotes (#724) 2026-10-13 14:31:31 +00:00
aiongg 4e3a5364e5 Merge docx-tables: fix(textimport): Word table cells skip deleted text and field codes; Normal comes in as its own style (#721, #722) 2026-10-13 14:31:03 +00:00
aiongg c538979fc7 Merge cache-keys: fix(compose): text recomposes when the baseline grid, a wrap layer's visibility or section numbering changes (#718) 2026-10-13 14:29:08 +00:00
aiongg a39bb70c5b Merge locked-paths: fix(paths): path edits refuse a path on a locked layer or in a locked group (#735); fix(properties): links to other panels open them when panel docking is on (#736) 2026-10-13 14:28:19 +00:00
aiongg a418a8a309 Merge editor-undo: fix(editing): Story Editor stays with its document; Undo restores the selection from before the command (#729, #716) 2026-10-13 14:27:42 +00:00
aiongg 3d3f02e621 Merge save-result: fix(file): saving never reports success without a file (#741, #708) 2026-10-13 14:27:03 +00:00
aiongg debec75166 fix(textimport): Word table cells skip deleted text and field codes; Normal comes in as its own style (#721, #722)
Table cell paragraphs go through the same run and inline path as body paragraphs, so deleted and moved-from text and field instructions stay out of cells, and field results, tabs and breaks come in.

Word's Normal imports as a paragraph style named Normal whose definition is w:docDefaults with Normal's own properties on top; paragraphs without a style use Word's default paragraph style. A styleMap entry can still map Normal to [Basic Paragraph].
2026-10-13 14:23:08 +00:00
aiongg 4eb786e880 fix(recovery): an explicit recovery folder never overwrites or deletes another run's checkpoints (#715) 2026-10-13 14:22:58 +00:00
aiongg eb83d23040 fix(file): saving never reports success without a file (#741, #708)
to_bytes returns a Result and every caller propagates it, so a document
that can't be written is an error: the existing file, the unsaved state
and the recovery checkpoint stay. Asset entries near or over 4 GiB are
written with zip64 sizes. On the web, Save marks the document saved only
after the browser download has started.
2026-10-13 14:22:27 +00:00
aiongg f606992782 fix(properties): links to other panels open them when panel docking is on (#736) 2026-10-13 14:19:57 +00:00
aiongg 8817e07013 fix(paths): path edits refuse a path on a locked layer or in a locked group (#735) 2026-10-13 14:19:56 +00:00
aiongg c91b9af16d fix(epub): EPUB and HTML export include tables, footnotes and endnotes (#724) 2026-10-13 14:19:45 +00:00
aiongg 2c7e3e53f0 fix(editing): Story Editor stays with its document; Undo restores the selection from before the command (#729, #716) 2026-10-13 14:19:00 +00:00
aiongg e3d7b44f4c fix(pdf): form fields, buttons and media that don't print stay out of the PDF (#726)
Fields, buttons and video or sound are collected with the page content's
inclusion rule: the item's layer is visible and printable, and neither the
item nor any group around it is hidden or non-printing.
2026-10-13 14:18:35 +00:00
aiongg d6f4c0133a fix(compose): text recomposes when the baseline grid, a wrap layer's visibility or section numbering changes (#718) 2026-10-13 14:18:20 +00:00
aiongg 06762c3bfc fix(idml): export keeps overridden parent items and their local copies' links (#725) 2026-10-13 14:17:13 +00:00
aiongg 578818466e Merge craft-cms: Colour management on craft-cms 2026-10-13 13:08:18 +00:00
aiongg fc31f7f14d Merge craft-cms-adoption: colour management on craft-cms (next's image path) 2026-10-13 13:07:32 +00:00
aiongg 73af5d7f63 Merge script-dollar: GREP replacements like $1 stay literal in scripts (#749)
# Conflicts:
#	ROADMAP.md
2026-10-13 13:01:31 +00:00