Commit Graph
797 Commits
Author SHA1 Message Date
Brandon Thomas e7d8d5be62 Merge PR #960
# Conflicts:
#	crates/engine/src/cmd/anchors.rs
#	crates/ui-egui/src/i18n.rs
#	crates/ui-egui/src/i18n/ar.rs
#	crates/ui-egui/src/i18n/it.rs
#	crates/ui-egui/src/i18n/ja.rs
#	crates/ui-egui/src/i18n/pt_br.rs
#	crates/ui-egui/src/i18n/uk.rs
#	crates/ui-egui/src/icons.rs
#	docs/target-app-parity.md
2026-10-14 23:17:31 -04:00
Brandon Thomas 94d0c57236 Merge PR #937
# Conflicts:
#	crates/ui-egui/src/dialogs.rs
#	crates/ui-egui/src/i18n.rs
#	crates/ui-egui/src/i18n/ar.rs
#	crates/ui-egui/src/i18n/it.rs
#	crates/ui-egui/src/i18n/ja.rs
#	crates/ui-egui/src/i18n/pt_br.rs
#	crates/ui-egui/src/i18n/uk.rs
2026-10-14 23:14:44 -04:00
Brandon Thomas 47e9e576d4 Merge PR #610 (linked text files read through crate::io, so the automation roots apply) 2026-10-14 23:07:27 -04:00
Brandon Thomas 528264a4a9 Merge PR #823 (with main's radial ellipse: linear gradients go through #823's linear_axis) 2026-10-14 23:07:06 -04:00
Brandon Thomas 2805b3d041 Merge PR #764
# Conflicts:
#	crates/ui-egui/src/lib.rs
2026-10-14 23:00:55 -04:00
Brandon Thomas 0923c8247a Merge PR #797
# Conflicts:
#	crates/textimport/src/docx.rs
2026-10-14 22:57:54 -04:00
Brandon Thomas d4a65a5ea5 Merge PR #688
# Conflicts:
#	crates/engine/src/cmd/paths.rs
2026-10-14 22:56:29 -04:00
Brandon Thomas af45138718 Merge PR #588
# Conflicts:
#	crates/render/src/lib.rs
2026-10-14 22:54:18 -04:00
Brandon Thomas 072ae1d948 Merge PR #975
# Conflicts:
#	crates/idml/src/import.rs
#	crates/idml/src/tests.rs
2026-10-14 22:43:41 -04:00
Brandon Thomas bd023252b2 Merge PR #798
# Conflicts:
#	crates/epub/src/lib.rs
2026-10-14 22:43:39 -04:00
Brandon Thomas ee498ac68f Merge PR #973
# Conflicts:
#	crates/ui-egui/src/i18n.rs
#	crates/ui-egui/src/i18n/ar.rs
#	crates/ui-egui/src/i18n/it.rs
#	crates/ui-egui/src/i18n/ja.rs
#	crates/ui-egui/src/i18n/pt_br.rs
#	crates/ui-egui/src/i18n/uk.rs
#	crates/ui-egui/src/panels/properties.rs
2026-10-14 22:38:58 -04:00
Brandon Thomas 7ed56979c7 Merge PR #977
# Conflicts:
#	crates/compose/src/tests.rs
2026-10-14 22:33:58 -04:00
Brandon Thomas f9b4660ca2 Merge PR #976
# Conflicts:
#	crates/engine/src/tests.rs
2026-10-14 22:33:58 -04:00
Brandon Thomas 2dbf60be6f Merge PR #925
# Conflicts:
#	crates/ui-egui/src/i18n.rs
#	crates/ui-egui/src/i18n/ar.rs
#	crates/ui-egui/src/i18n/it.rs
#	crates/ui-egui/src/i18n/ja.rs
#	crates/ui-egui/src/i18n/pt_br.rs
#	crates/ui-egui/src/i18n/uk.rs
2026-10-14 22:33:55 -04:00
Brandon Thomas e6d6affb37 Merge PR #796 2026-10-14 22:33:52 -04:00
Brandon Thomas ed3acb0f82 Merge PR #979 2026-10-14 22:05:13 -04:00
Brandon Thomas 35563d0f2f Merge PR #978 2026-10-14 22:05:13 -04:00
Brandon Thomas 8cbef21444 Merge PR #974 2026-10-14 22:05:13 -04:00
Brandon Thomas eb874d41fe Merge PR #968 2026-10-14 22:05:13 -04:00
Brandon Thomas 88fee015ce Merge PR #958 2026-10-14 22:05:13 -04:00
Brandon Thomas cb3fbde5de Merge PR #940 2026-10-14 22:05:12 -04:00
Brandon Thomas 79a5c52e9d Merge PR #933 2026-10-14 22:05:12 -04:00
Brandon Thomas b14b1fd805 Merge PR #913 2026-10-14 22:05:12 -04:00
Brandon Thomas 5839d5c7a4 Merge PR #894 2026-10-14 22:05:12 -04:00
Brandon Thomas f4333338b3 Merge PR #889 2026-10-14 22:05:12 -04:00
Brandon Thomas 9449d6c293 Merge PR #832 2026-10-14 22:05:12 -04:00
Brandon Thomas e6660efb7a Merge PR #801 2026-10-14 22:05:11 -04:00
Brandon Thomas 3adc568fc3 Merge PR #799 2026-10-14 22:05:11 -04:00
Brandon Thomas a593ae07af Merge PR #795 2026-10-14 22:05:11 -04:00
Brandon Thomas a666a9f00a Merge PR #793 2026-10-14 22:05:11 -04:00
Brandon Thomas 4bd1fbab37 Merge PR #765 2026-10-14 22:05:11 -04:00
Brandon Thomas 9f5e8cebf1 Merge PR #760 2026-10-14 22:05:11 -04:00
Brandon Thomas 7b76b28a54 Merge PR #759 2026-10-14 22:05:11 -04:00
Brandon Thomas 650aaf3440 Merge PR #751 2026-10-14 22:05:11 -04:00
Brandon Thomas 02dd8ade8d Merge PR #704 2026-10-14 22:05:11 -04:00
Brandon Thomas ab115db100 Merge PR #703 2026-10-14 22:05:11 -04:00
Brandon Thomas 63c3e36644 Merge PR #698 2026-10-14 22:05:11 -04:00
Brandon Thomas 412ce96ff0 Merge PR #691 2026-10-14 22:05:11 -04:00
Brandon Thomas 8d254120e7 Merge PR #658 2026-10-14 22:05:11 -04:00
Brandon Thomas 3cdda36680 Merge PR #657 2026-10-14 22:05:11 -04:00
Brandon Thomas 4cd3a8fa5e Merge PR #648 2026-10-14 22:05:11 -04:00
Brandon Thomas b379a5f0a5 Merge PR #577 2026-10-14 22:05:10 -04:00
Brandon Thomas 7a9570b56e Merge PR #570 2026-10-14 22:05:10 -04:00
Brandon Thomas 0c3e140be3 Merge PR #567 2026-10-14 22:05:10 -04:00
Brandon Thomas f268e17986 Merge PR #559 2026-10-14 22:05:10 -04:00
skylar taylor-barrick 694e662547 fix(pdf): reconcile shared writer with main (PDFW)
Preserve the shared writer migration while incorporating the pinned main
changes and resolving the roadmap entry.

PR #875.
2026-10-14 18:18:19 -06:00
moppeeerandClaude Opus 5.5 ccf4f4aee4 An empty last paragraph isn't overset text, as in InDesign
A story that ends with a paragraph return has an empty last paragraph. When
it didn't fit, DesignCraft marked the story overset at the end of its text
(Preflight: "Overset text: 0 characters"; the out port turned red).
InDesign doesn't: Montilla Design's Flex Layout file has a caption ending
with a return, fitted to its three lines, and InDesign reports no errors.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 01:40:50 +02:00
Davit Matchakhelidze 9792aa025e Merge upstream main into ka-language 2026-10-15 03:38:25 +04:00
moppeeerandClaude Opus 5.5 89f6adb6fb Find Font: a style that differs only in spacing isn't missing
Montilla Design's Flex Layout file names its body face "Regular " (with a
trailing space, as the designer's copy of Articulat CF did). Face lookup
already ignores spacing and case, so the text is drawn in Regular, but
font.list (Find Font) compared names exactly and reported the style
missing. It now uses the lookup's comparison (designcraft_fonts::same_style).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 01:25:04 +02:00
moppeeerandClaude Opus 5.5 6fe0770f47 Flex Layout: containers that lay out their objects, as InDesign 2026's
A Flex Layout container is a frame holding its objects as nested items
(as Edit › Paste Into makes), with a `flex` record: direction, wrap,
justification, cross-axis alignment, Fixed/Auto width and height, padding
and horizontal/vertical spacing. designcraft_doc::flex lays the objects
out (a Flexbox subset: lines, justification, alignment, Auto sizing), and
the engine runs it after every edit, so the container keeps its objects
in place whatever changes.

Commands: flex.add (Add to Flex Layout; detects aligned objects: their
direction, Auto size, Space Between at their own spacing, as InDesign
does), flex.convert (a group or rectangle frame), flex.remove (objects
stay, grouped), flex.set (every panel setting, plus the alignment grid
cell), flex.reorder. Resizing a container by its handles or W/H changes
its box and makes that side Fixed instead of scaling its objects;
dragging an object inside one drops it in the nearest place.

UI: Object › Flex Layout (Add to, Convert to, Remove, Show Flex Controls),
a Flex Layout panel (Window › Panels) laid out as InDesign's (Create Flex
Layout; alignment grid, W/H with Auto/Fixed; justification menu, four
directions, wrap; padding with the link button; spacing, greyed as
InDesign does when the justification works it out or nothing wraps), and
the same section in Properties. Icons are new drawings.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 01:20:50 +02:00