Commit Graph
589 Commits
Author SHA1 Message Date
moppeeerandClaude Opus 5.5 9da44a042f feat(ui): Liquid Layout panel in InDesign's layout; Create Alternate Layout in the Layout menu
Chris Cicchino's "Adobe InDesign – Page Tool and Liquid Layout" (2:47,
7:24) uses the Liquid Layout panel: "Liquid Page Rule:" with "Page: n",
Content › Auto-Fit, and Object Constraints › Resize with Page (Height,
Width) and Pin (Top, Left, Bottom, Right), greyed until an object on an
object-based page is selected. DesignCraft's panel had a "Page 1" label,
the rule, six wrapped checkboxes ("Resize width", "Pin top"…) only once
an object was selected, and a Create Alternate Layout form.

- Liquid Layout panel: InDesign's layout and labels; the page is the one
  the Page tool selected (else the page in view); Auto-Fit (graphic
  frames) runs object.fittingOptions; the constraints apply on
  object-based pages (also through Controlled by Parent) and stay
  greyed otherwise. The page's liquid guides stay listed below for now.
- Layout menu: Create Alternate Layout… (as in InDesign).
- Translations for the new labels.

Builds on #864 (rule list, Controlled by Parent) and #862.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 01:29:44 +02:00
moppeeerandClaude Opus 5.5 8864307d7c docs: the Page tool's Control panel in the parity notes
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 00:52:06 +02:00
moppeeerandClaude Opus 5.5 59b6125af1 feat(ui): Control panel for the Page tool; Controlled by Parent; Show Parent Page Overlay
Chris Cicchino's "Adobe InDesign – Page Tool and Liquid Layout" (1:02–
2:06, 13:47) sizes pages from the Control panel with the Page tool
selected: X/Y, W/H, the page-size preset ("US Business Card"),
orientation, Liquid Page Rule ("Controlled by Parent"), Objects Move with
Page and Show Parent Page Overlay. DesignCraft's Control panel showed the
(empty) object controls.

- ui: with the Page tool, the Control panel shows the selected page (or
  the page in view): the reference point (W/H, preset and orientation
  keep it in place via layout.pageSize's anchor), X/Y (read-only),
  W/H, the preset dropdown, portrait/landscape, Liquid Page Rule, Objects
  Move with Page (always on: pages don't move within spreads yet) and
  Show Parent Page Overlay.
- doc: LiquidRule::ControlledByParent (the parent page's rule, Off
  without one; resolved by liquid::effective_rule); Page.show_parent_overlay.
- engine: layout.pageOptions {pages, showParentOverlay}; liquid.pageRule
  takes controlledByParent.
- canvas: the parent page's size over a page with the overlay on.
- Liquid Layout panel and Control panel share InDesign's rule list
  (Off, Scale, Re-center, Object-based, Guide-based, Controlled by
  Parent); "US Business Card" preset; translations.

Builds on the Page tool PR (#862) for the selected page.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 00:51:47 +02:00
moppeeerandClaude Opus 5.5 cc13e80c9d feat(tools): Page tool selects pages; handles preview the liquid rule, Alt-drag resizes
Chris Cicchino's "Adobe InDesign – Page Tool and Liquid Layout" (0:42–
2:06) selects a page with the Page tool, gets its bounding box with
handles, drags a handle (the page springs back: a liquid-rule preview),
holds Option to really resize it, Shift for proportions, and reads the
size in a tooltip by the cursor. DesignCraft's Page tool only opened a
generic Page Size dialog on click.

- tools: the Page tool selects the page under a click (none on the
  pasteboard); the selected page shows its outline, eight handles and
  its liquid page rule ("Scale", "Object-Based"…) above it. Dragging a
  handle previews layout.pageSize (the liquid rule re-flows the
  objects) and springs back on release; Alt resizes, Shift keeps the
  proportions; a W/H readout follows the pointer; resize cursors on the
  handles. Double-click a page for the Page Size dialog.
- doc: Selection.page (the Page tool's page); engine: layout.selectPage
  (no undo step).
- layout.pageSize `anchor` (0-8): the page grows away from the
  reference point and its objects and guides keep their place relative
  to it (a handle drag anchors the opposite edge); liquid rules work
  from that.
- canvas: PageHandles and Tag overlays; translations for the tags and
  the Resize Page undo label.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 00:29:55 +02:00
Brandon ThomasandClaude Opus 5.5 e862e0a613 fix: integrate batched community PRs (#572 with #662's fallible spread_param; #524's test helper back in its module)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 02:28:50 -04:00
Brandon Thomas 777d8c3251 Merge branch 'pr/572' into batch1
# Conflicts:
#	crates/tools/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
2026-10-13 02:24:24 -04:00
Brandon Thomas d1452a3e3f Merge branch 'pr/524' into batch1
# Conflicts:
#	crates/ui-egui/src/panels/properties.rs
2026-10-13 02:23:58 -04:00
Brandon Thomas 99c229486d Merge branch 'pr/575' into batch1
# 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-13 02:23:57 -04:00
Brandon Thomas 89e9abbc8d Merge branch 'pr/662' into batch1
# Conflicts:
#	crates/engine/src/cmd/object.rs
2026-10-13 02:23:56 -04:00
Brandon Thomas a390905beb Merge branch 'pr/647' into batch1
# Conflicts:
#	crates/tools/src/lib.rs
#	crates/tools/src/tests.rs
#	crates/ui-egui/src/canvas.rs
2026-10-13 02:23:33 -04:00
Brandon Thomas bd9974a420 Merge branch 'pr/552' into batch1 2026-10-13 02:23:12 -04:00
Brandon Thomas ea8dc959d1 Merge branch 'pr/573' into batch1 2026-10-13 02:23:12 -04:00
Brandon Thomas 41ce560ce3 Merge branch 'pr/541' into batch1 2026-10-13 02:23:12 -04:00
Brandon Thomas 0a14d9fb97 Merge branch 'pr/539' into batch1 2026-10-13 02:23:12 -04:00
Brandon Thomas 2103af784a Merge branch 'pr/537' into batch1 2026-10-13 02:23:11 -04:00
Brandon Thomas 055da9f788 Merge branch 'pr/536' into batch1 2026-10-13 02:23:11 -04:00
Brandon Thomas 160ae04b8b Merge branch 'pr/527' into batch1 2026-10-13 02:23:11 -04:00
Brandon Thomas d5613411ca Merge branch 'pr/522' into batch1 2026-10-13 02:23:11 -04:00
Brandon Thomas d6d26d2b38 Merge branch 'pr/519' into batch1 2026-10-13 02:23:11 -04:00
Brandon Thomas 1f6ceea657 Merge branch 'pr/634' into batch1 2026-10-13 02:23:11 -04:00
Brandon Thomas eddf681df1 Merge branch 'pr/677' into batch1 2026-10-13 02:23:11 -04:00
Brandon Thomas 6e551af3e7 Merge branch 'pr/663' into batch1 2026-10-13 02:23:11 -04:00
Brandon Thomas b758c6180a Merge branch 'pr/649' into batch1 2026-10-13 02:23:11 -04:00
Brandon Thomas 9bd099c0ae Merge branch 'pr/639' into batch1 2026-10-13 02:23:11 -04:00
Brandon Thomas bff290c9bd Merge branch 'pr/607' into batch1 2026-10-13 02:23:11 -04:00
Brandon ThomasandClaude Opus 5.5 b70b586a16 fix(path-type): NaN-safe bracket clamping (f64::clamp panics on a NaN path length)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 02:22:34 -04:00
Brandon Thomas 878169130e Merge branch 'pr/600' into batch1 2026-10-13 02:21:53 -04:00
Brandon Thomas 8a36af3af8 Merge branch 'pr/630' into batch1 2026-10-13 02:21:53 -04:00
Brandon Thomas a0330b03a0 Merge branch 'pr/585' into batch1 2026-10-13 02:21:39 -04:00
Brandon Thomas b095274498 Merge branch 'pr/680' into batch1 2026-10-13 02:21:39 -04:00
Brandon Thomas 528f5138df Merge branch 'pr/678' into batch1 2026-10-13 02:21:39 -04:00
Brandon Thomas eb855a1964 Merge branch 'pr/672' into batch1 2026-10-13 02:21:39 -04:00
Brandon Thomas fc0a304750 Merge branch 'pr/671' into batch1 2026-10-13 02:21:39 -04:00
Brandon Thomas aae8ff2138 Merge branch 'pr/670' into batch1 2026-10-13 02:21:39 -04:00
Brandon Thomas f95d58c726 Merge branch 'pr/669' into batch1 2026-10-13 02:21:39 -04:00
Brandon Thomas 392a5c7ab7 Merge branch 'pr/668' into batch1 2026-10-13 02:21:39 -04:00
Brandon Thomas 8255d58c2e Merge branch 'pr/667' into batch1 2026-10-13 02:21:39 -04:00
Brandon Thomas e009a43d10 Merge branch 'pr/666' into batch1 2026-10-13 02:21:39 -04:00
sanyamsingh001andCodex 481b7d2f3b PARITY-EFFECTIVE-PPI: check transformed image resolution
Co-Authored-By: Codex <codex@openai.com>
2026-10-13 13:17:58 +10:00
sanyamsingh001andCodex fa9c7b08b2 PARITY-DISTRIBUTE-LOCKS: preserve locked objects during distribution
Co-Authored-By: Codex <codex@openai.com>
2026-10-13 12:43:50 +10:00
Marco Arnulfo 966b637796 fix(ui): open the dock's panel menu from its three-line button (part of #676) 2026-10-13 04:27:41 +02:00
sanyamsingh001andCodex 5ca6a474b9 PARITY-TABLE-SPLIT: split each original selected cell once
Co-Authored-By: Codex <codex@openai.com>
2026-10-13 10:59:32 +10:00
sanyamsingh001andCodex 8f48869e58 PARITY-IDML-INDEX: retain index reference source sort keys
Co-Authored-By: Codex <codex@openai.com>
2026-10-13 10:56:09 +10:00
sanyamsingh001andCodex b3ec8dc908 PARITY-EPUB-STYLE: match CSS to exported style mappings
Co-Authored-By: Codex <codex@openai.com>
2026-10-13 10:53:54 +10:00
sanyamsingh001andCodex e507b98601 PARITY-TAB-LEADERS: draw right-indent tab leaders
Co-Authored-By: Codex <codex@openai.com>
2026-10-13 10:51:50 +10:00
sanyamsingh001andCodex b4db428608 PARITY-ARRANGE: step past same-layer siblings in Arrange
Co-Authored-By: Codex <codex@openai.com>
2026-10-13 10:48:56 +10:00
sanyamsingh001andCodex f7adb11cdc PARITY-CHARACTER-STYLE: capture selected character formatting
Co-Authored-By: Codex <codex@openai.com>
2026-10-13 10:46:10 +10:00
sanyamsingh001andCodex 7abcbc745f PARITY-DATA-SOURCE: honor quoted delimiters and record boundaries
Co-Authored-By: Codex <codex@openai.com>
2026-10-13 10:44:20 +10:00
Jason Brashear 91263c912f fix(textimport): preserve leading empty Tagged Text paragraphs
Preserve paragraph breaks after a ParaStyle tag starts the story so leading empty paragraphs and their styles survive Tagged Text import.

Validated individually and after #638 with all six cargo xtask ci gates (1,278 tests passed, four existing tests ignored, 15 WASM compilation checks), six independent paragraph/header/Unicode probes, and an actual export-to-placement command smoke test.

Refs #641
2026-10-12 17:21:52 -06:00
Jason Brashear cc5b4a1f0f fix(color): mirror gradient midpoints when reversing
Move and mirror segment midpoints when reversing gradient stops so reversed gradients preserve color and opacity interpolation.

Validated locally on macOS with all six cargo xtask ci gates (1,277 tests passed, four existing tests ignored, 15 WASM compilation checks), plus independent regressions, undo/redo, native and IDML round trips, and PNG/PDF rendering.

Refs #638
2026-10-12 17:20:54 -06:00