aiongg
9a07d8a095
Integration: format
2026-10-13 01:19:52 +00:00
aiongg
f2fc69307b
Integration ( #667 ): a character style made at a bare caret captures the typing format
2026-10-13 01:19:14 +00:00
aiongg
4bbafaf055
Merge #672 : PARITY-TABLE-SPLIT: split each original selected cell once
2026-10-13 01:15:47 +00:00
aiongg
f9bc8a17a2
Merge #671 : PARITY-IDML-INDEX: retain index reference source sort keys
2026-10-13 01:15:31 +00:00
aiongg
eba10236e5
Merge #670 : PARITY-EPUB-STYLE: match CSS to exported style mappings
2026-10-13 01:15:20 +00:00
aiongg
df9db7890a
Merge #669 : PARITY-TAB-LEADERS: draw right-indent tab leaders
2026-10-13 01:15:20 +00:00
aiongg
ef4423ab4c
Merge #668 : PARITY-ARRANGE: step past same-layer siblings in Arrange
2026-10-13 01:15:20 +00:00
aiongg
86b3505675
Merge #667 : PARITY-CHARACTER-STYLE: capture selected character formatting
2026-10-13 01:15:19 +00:00
aiongg
95920bff94
Merge #666 : PARITY-DATA-SOURCE: honor quoted delimiters and record boundaries
2026-10-13 01:15:19 +00:00
aiongg
8a6330b170
Integration ( #653 x #643 ): the object style round-trip test expects the default drop shadow angle (120°)
2026-10-13 01:15:06 +00:00
aiongg
8d30e0f41b
Integration: format
2026-10-13 01:07:08 +00:00
aiongg
2e1002cb1b
Integration ( #653 x #418 ): one ObjectStyle BasedOn walk; style effects read the chain #418 's object_style_chain walks
2026-10-13 01:06:15 +00:00
aiongg
b2aa5c1ec8
Merge object-style-effects: Object styles carry effects ( #653 )
2026-10-13 01:05:37 +00:00
aiongg
6b2e319f96
Integration ( #636 ): bracket clamps can't panic on a NaN path length
2026-10-13 01:02:40 +00:00
aiongg
ebae0c7805
Merge parent-based-on: Parents: a parent can be based on another parent ( #652 )
...
# Conflicts:
# ROADMAP.md
# crates/compose/src/cache.rs
# crates/doc/src/build.rs
# crates/engine/src/cmd/file.rs
# crates/engine/src/cmd/layout.rs
# crates/idml/src/import.rs
# crates/idml/src/tests.rs
# crates/pdf/src/tests.rs
# crates/render/src/lib.rs
# crates/render/src/text.rs
# crates/tools/src/snap.rs
# docs/gaps.md
# docs/target-app-parity.md
2026-10-13 01:00:08 +00:00
sanyamsingh001 and Codex
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
aiongg
462831bf81
fix(styles): object style effects keep local effects, validate values, follow BasedOn in IDML ( #653 )
2026-10-13 00:58:47 +00:00
sanyamsingh001 and Codex
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
sanyamsingh001 and Codex
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
sanyamsingh001 and Codex
e507b98601
PARITY-TAB-LEADERS: draw right-indent tab leaders
...
Co-Authored-By: Codex <codex@openai.com >
2026-10-13 10:51:50 +10:00
aiongg
182db943c2
fix(parents): bound every based-on walk; base items follow the parent showing them ( #652 )
...
Cycle checks walk based_on with a seen-set over all parents, so a cycle
longer than the drawing depth cap is still found. Snapping lists parent
items through shown_parent_pages instead of recursing, and offers base
items on a parent spread. A base parent's text on a parent spread is
composed for that spread, so page-number markers show its prefix.
Cmd+Shift-click hits what is drawn: it honours Show Parent Items, hidden
and locked layers, the facing-page filter and layer order. IDML import
warns when a parent spread's pages name different bases or their own
spread.
2026-10-13 00:51:41 +00:00
sanyamsingh001 and Codex
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
sanyamsingh001 and Codex
f7adb11cdc
PARITY-CHARACTER-STYLE: capture selected character formatting
...
Co-Authored-By: Codex <codex@openai.com >
2026-10-13 10:46:10 +10:00
sanyamsingh001 and Codex
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
aiongg
98ff430022
feat(styles): object styles carry effects ( #653 )
2026-10-13 00:40:59 +00:00
aiongg
13f4c37153
Integration ( #662 x next): a null spread is absent (spread 0), as Paste in Place forwards its optional spread and file.place documents null as absent
2026-10-13 00:33:00 +00:00
aiongg
f74664df8d
Integration ( #636 ): the Direct Selection end-anchor test checks only Direct Selection (with the default brackets the Selection tool's thread ports sit there too)
2026-10-13 00:33:00 +00:00
aiongg
5b81bfa9b6
Integration: format
2026-10-13 00:23:24 +00:00
aiongg
2c7e855d7f
Integration ( #645 ): French catalogue test: no duplicate or stale keys, fr.rs disjoint from the shared table, placeholders and edge spaces as in English
2026-10-13 00:22:27 +00:00
aiongg
80803e3ae3
feat(parents): a parent can be based on another parent ( #652 )
...
Pages draw the base parent's items, then the parent's, then their own,
on the canvas, in PDF and image export, and on the parent spread itself.
Chains are followed base first with a depth bound. Overrides, parent hit
testing and the flattener's transparency check include base items.
layout.parents.options {parent, basedOn} sets or clears the base and
refuses cycles; document.inspect reports basedOn per parent. Opening a
.designcraft or IDML file clears a cyclic or dangling base with a warning.
IDML already carried the base as the parent pages' AppliedMaster; a test
covers the round trip.
2026-10-13 00:21:48 +00:00
aiongg
3dff5b9aee
Merge pr/645: i18n: translate the French interface, in page-layout and InDesign vocabulary ( #645 )
...
# Conflicts:
# crates/ui-egui/src/i18n.rs
2026-10-13 00:15:42 +00:00
aiongg
8fe4a5021a
Integration ( #643 ): the Effects dialog's field setter takes the path with split_last (an empty path changes nothing instead of panicking)
2026-10-13 00:13:37 +00:00
aiongg
71db506182
Merge pr/643: UI: the Effects dialog, as in InDesign ( #643 )
...
# Conflicts:
# ROADMAP.md
# crates/engine/src/cmd/object.rs
# 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
# crates/ui-egui/src/menus.rs
# crates/ui-egui/src/panels/properties.rs
2026-10-13 00:12:33 +00:00
aiongg
6797589402
Merge pr/647: Text: edit type on a path along the curve ( #647 )
...
# Conflicts:
# crates/engine/src/cmd/text.rs
2026-10-13 00:10:31 +00:00
aiongg
2732f8c2e6
Integration ( #636 ): with Direct Selection an anchor under the pointer wins over a type-on-a-path bracket, so the end anchors (where the default brackets sit) can be dragged again
2026-10-13 00:09:13 +00:00
aiongg
99e6922981
Merge pr/636: Tools: drag type-on-a-path start and end brackets ( #636 )
...
# Conflicts:
# ROADMAP.md
# crates/idml/src/tests.rs
# crates/tools/src/lib.rs
# crates/tools/src/select.rs
# crates/tools/src/tests.rs
# crates/ui-egui/src/canvas.rs
2026-10-13 00:08:12 +00:00
aiongg
1cf1477183
Integration ( #630 ): the Pen continuing from a path's first anchor adds anchors before it (path.appendAnchor at: start) instead of reversing the path, so arrowheads stay on their ends and a press then Esc leaves no undo step
2026-10-13 00:06:15 +00:00
aiongg
575839cc4f
Merge pr/630: Tools: the Pen continues an open path from either end point ( #630 )
...
# Conflicts:
# ROADMAP.md
# crates/engine/src/cmd/object.rs
# crates/tools/src/lib.rs
# crates/tools/src/pen.rs
# crates/tools/src/tests.rs
# crates/ui-egui/src/canvas.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 00:02:51 +00:00
aiongg
8ad77980ac
Merge pr/648: Eyedropper: a sampled colour goes to the stroke when the Stroke box is in front ( #648 )
...
# Conflicts:
# ROADMAP.md
# crates/tools/src/xform.rs
# crates/ui-egui/src/toolbar.rs
2026-10-13 00:01:26 +00:00
aiongg
d7d71380ad
Merge pr/610: Links: placed text files can stay linked (Word, RTF, text) ( #610 )
...
# Conflicts:
# ROADMAP.md
# crates/engine/src/cmd/file.rs
# crates/engine/src/cmd/linked.rs
# crates/engine/src/cmd/links.rs
# crates/engine/src/cmd/place_text.rs
# crates/engine/src/cmd/prefs.rs
# crates/engine/src/lib.rs
# crates/ui-egui/src/dialogs.rs
2026-10-13 00:00:51 +00:00
aiongg
7e4c75fce9
Merge pr/662: Commands: reject unknown spread values instead of falling back to page 1 ( #662 )
...
# Conflicts:
# crates/engine/src/cmd/file.rs
# crates/engine/src/cmd/guides.rs
# crates/engine/src/cmd/object.rs
2026-10-12 23:59:28 +00:00
aiongg
605b31c6d6
Merge pr/663: CLI: accept a UTF-8 BOM in scripts and document the syntax in script --help ( #663 )
2026-10-12 23:56:41 +00:00
aiongg
5b903c036e
Merge pr/637: Index: keep level 3 and 4 topics in a run-in index ( #637 )
...
# Conflicts:
# contributors/people.toml
2026-10-12 23:56:37 +00:00
aiongg
14eff698dd
Merge pr/639: Fonts: fall back to a font made for Malayalam ( #639 )
2026-10-12 23:56:26 +00:00
aiongg
e7ad004f4d
Merge main: mirror gradient midpoints when reversing; preserve leading empty Tagged Text paragraphs
2026-10-12 23:56:21 +00: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
Marco Arnulfo
9e15d5a17e
fix(cli): accept a UTF-8 BOM in scripts and document the syntax in script --help ( fixes #654 )
2026-10-13 00:41:46 +02:00
Marco Arnulfo
3d59dd5d97
fix(cmd): reject unknown spread values instead of falling back to page 1 (part of #651 )
2026-10-13 00:38:54 +02:00
aiongg
9487b80220
Integration: format
2026-10-12 22:24:41 +00:00