Commit Graph
2702 Commits
Author SHA1 Message Date
aiongg 977b4b26f3 Integration: #753 Fixed Width columns resize the frame to fit them; columnWidth and firstBaselineMin are range-checked 2026-10-13 19:32:38 +00:00
aiongg 1907d14699 Merge #753: Text Frame Options laid out as InDesign's: columns type and width, inset link, Ignore Text Wrap, Baseline Options 2026-10-13 19:31:44 +00:00
aiongg 1847b8cef5 Merge #825: Gradient swatches on text, laid across the text frame
# Conflicts:
#	ROADMAP.md
#	crates/pdf/src/export.rs
#	crates/pdf/src/text.rs
#	crates/render/src/text.rs
#	docs/target-app-parity.md
2026-10-13 19:30:47 +00:00
aiongg 6db40bdbb5 Integration: #823 a radial gradient on a box with no width or height is a circle across it 2026-10-13 19:29:28 +00:00
aiongg 42f000e95a Merge #832: Window menu in InDesign's order; Window > Workspace with Essentials Classic
# Conflicts:
#	ROADMAP.md
#	crates/ui-egui/src/chrome.rs
#	crates/ui-egui/src/dock.rs
#	crates/ui-egui/src/menus.rs
2026-10-13 19:28:59 +00:00
aiongg f60eb24656 Merge #823: Gradient strokes: on screen, in PDF, in IDML and the Gradient panel
# Conflicts:
#	ROADMAP.md
#	crates/engine/src/cmd/object.rs
#	crates/engine/src/cmd/style.rs
#	crates/idml/src/tests.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/panels/swatches.rs
#	docs/target-app-parity.md
2026-10-13 19:28:11 +00:00
aiongg 7f940dc4f8 Merge #253: Integrate Windows window controls into the menu bar
# Conflicts:
#	apps/designcraft/src/main.rs
#	crates/ui-egui/src/chrome.rs
#	crates/ui-egui/src/lib.rs
#	crates/ui-egui/src/menus.rs
#	crates/ui-egui/src/theme.rs
2026-10-13 19:27:09 +00:00
aiongg ba95ae2dae Integration: #826 grey stops keep their value (model form); a stale ramp drag can't index past the stops 2026-10-13 19:26:54 +00:00
aiongg da8aaa9cdc Merge #826: Gradient panel layout; drop swatches from the Swatches panel onto its stops
# Conflicts:
#	ROADMAP.md
#	crates/ui-egui/src/panels/swatches.rs
#	docs/target-app-parity.md
2026-10-13 19:25:12 +00:00
aiongg aad9db158f Integration: #763 New Swatch with nothing selected makes a colour swatch in the engine; the panel sends the Fill/Stroke target 2026-10-13 19:24:47 +00:00
aiongg 0c45a8420f Merge t13-epub: EPUB/HTML export PRs #785 #787 #783 #789 #779 #780 #782 #791 #121 2026-10-13 19:23:54 +00:00
aiongg fce28331ec Merge #763: New Swatch names a gradient "New Gradient Swatch"; gradient swatches from colour swatches
# Conflicts:
#	ROADMAP.md
#	crates/engine/src/cmd/style.rs
#	docs/target-app-parity.md
2026-10-13 19:23:33 +00:00
aiongg 0011cfee95 Integration: the grouped reading-order test finds its image by alt text (#785 writes no file name) 2026-10-13 19:23:22 +00:00
aiongg 9d5d341a7d Merge #765: Radial gradients stretch with the object's box (an ellipse) 2026-10-13 19:21:58 +00:00
skylar taylor-barrick efd2310c83 refactor(pdf): share writer backend (PDFW) 2026-10-13 13:20:47 -06:00
aiongg 694878463c Integration: cargo fmt 2026-10-13 19:16:58 +00:00
aiongg a8e0af254f Integration: #816's test checks for color.sample by name (the tool also passes matchFrom) 2026-10-13 19:16:49 +00:00
aiongg a6621723b9 Merge #121: README: install on Gentoo from the ::snakebyte overlay
# Conflicts:
#	contributors/people.toml
2026-10-13 19:16:01 +00:00
aiongg 0b353c6f57 Integration: #791 points note links at the chapter file of their target 2026-10-13 19:15:53 +00:00
moppeeerandClaude Opus 5.5 08386d03b1 feat(ui): Object > Fitting with InDesign's shortcuts
LYH Studio episode 6 (7:00) fills its photo frames with the caption
"Fit Content to Frame (Ctrl + Shift + Alt + C)", InDesign's shortcut for
Fill Frame Proportionally. DesignCraft's Fitting items were object.fit
variants without shortcuts (a menu shortcut belongs to a command id, and
the five modes share one).

- Five UI commands, one per mode, with InDesign's keys:
  fit.fillFrameProportionally Cmd+Alt+Shift+C,
  fit.contentProportionally Cmd+Alt+Shift+E, fit.frameToContent
  Cmd+Alt+C, fit.contentToFrame Cmd+Alt+E, fit.centerContent
  Cmd+Shift+E (Ctrl on Windows and Linux); each runs object.fit.
- Object > Fitting lists them (with their shortcuts), enabled as
  object.fit is.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 21:15:35 +02:00
aiongg e12fa9ba2d Merge #791: EPUB: one content file per chapter, split before each h1
# Conflicts:
#	crates/epub/src/lib.rs
2026-10-13 19:15:22 +00:00
aiongg bc9b89fc68 Integration: #782 nests a heading under its parent when it is shallower than the heading before it 2026-10-13 19:14:29 +00:00
aiongg 1486f82212 Merge #782: EPUB: the navigation lists the headings, with a title in the book's language
# Conflicts:
#	crates/engine/src/cmd/export.rs
#	crates/epub/src/lib.rs
2026-10-13 19:14:13 +00:00
aiongg c3b3927ef2 Integration: #780 closes an open list or pre block before a footnote or a table 2026-10-13 19:12:37 +00:00
aiongg efbd516ee7 Merge #780: EPUB/HTML: list paragraphs share one ul/ol, and pre lines one block
# Conflicts:
#	crates/epub/src/lib.rs
2026-10-13 19:12:15 +00:00
aiongg d6ecd3d2b4 Merge #779: EPUB/HTML: anchored objects are exported where they are anchored
# Conflicts:
#	crates/epub/src/lib.rs
2026-10-13 19:11:12 +00:00
aiongg 033611d518 Integration: cargo fmt 2026-10-13 19:09:21 +00:00
aiongg 6477435e81 fix(transform): rotate and flip turn about the chosen reference point 2026-10-13 19:08:36 +00:00
aiongg ee2c450829 Merge #789: Styles: name the attributes in the params docs, and a wrong one in the command's error
# Conflicts:
#	crates/engine/src/cmd/style.rs
2026-10-13 19:07:52 +00:00
aiongg 258fd2d7c9 Integration: CMYK TIFFs with alpha report their pixel size (from #830) 2026-10-13 19:07:39 +00:00
aiongg 891e29ea92 Integration: #816's test (eyedropper ignores inactive states of a multi-state object) 2026-10-13 19:07:03 +00:00
aiongg 6eae3620ed Integration: #783 reads the cover image with a size cap (256 MiB), devices included 2026-10-13 19:07:02 +00:00
aiongg 3cb3f342c8 Integration: #812's test (overset preflight names the page of a frame in a moved group) 2026-10-13 19:07:02 +00:00
aiongg 73112e882f Merge #783: EPUB: real modified time, a stable unique identifier, and a cover image file
# Conflicts:
#	crates/engine/src/cmd/export.rs
#	crates/epub/src/lib.rs
2026-10-13 19:06:49 +00:00
aiongg 5917b24aaa Integration: #819 a pasted missing graphic always gets a fresh asset id from the target 2026-10-13 19:06:46 +00:00
aiongg 0016b8260e Merge #819: Keep a missing graphic missing when it is pasted into another document (#720)
# Conflicts:
#	crates/engine/src/cmd/object.rs
2026-10-13 19:06:14 +00:00
aiongg c24f658ab6 Merge #828: Compose: spaces at the end of a paragraph take no room on the line
# Conflicts:
#	crates/compose/src/tests.rs
2026-10-13 19:05:35 +00:00
aiongg 8f54d1cce4 Integration: #787 refuses bitmap-only fonts for embedding, and styles name the face's numeric weight 2026-10-13 19:05:28 +00:00
aiongg 693ca18713 Merge #807: Preferences: OK without vertical units keeps them
# Conflicts:
#	crates/ui-egui/src/dialogs.rs
2026-10-13 19:05:24 +00:00
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 11e4a7f60e Merge #787: EPUB/HTML: generic font fallback from the font's class, and optional font embedding
# Conflicts:
#	crates/engine/src/cmd/export.rs
#	crates/epub/src/lib.rs
2026-10-13 19:04:24 +00:00
aiongg 6409cae252 Integration: #785's test builds Asset and Graphic with next's fields 2026-10-13 19:03:47 +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
Govinda RoyandClaude Opus 5.5 82ffb692fc INDD: graphics whose linked file is missing show InDesign's preview
An InDesign document holds a screen preview of each placed graphic, which
InDesign shows while the linked file is missing. indd-utils returns them
beside the IDML (`Conversion::previews`); opening an .indd now passes them
to the importer through `import_idml_report_with_previews`, and a graphic
whose file neither the package nor the folder provides takes its preview.
The graphic keeps its link, so relinking replaces it; IDML import without
previews is unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 01:03:19 +06: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 5f3a2fbb61 Merge #785: EPUB/HTML: no file name as alt text, readable image names in the package 2026-10-13 19:02:00 +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