Commit Graph
2702 Commits
Author SHA1 Message Date
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
aiongg e1c2265581 Integration (new-doc-preview x #616): the recovery timer's file.recovery.save skips the New Document preview 2026-10-13 04:25:12 +00:00
aiongg 8bccf1de6e Merge new-doc-preview: New Document: Preview shows the new document behind the window (#679)
# Conflicts:
#	ROADMAP.md
#	crates/engine/src/cmd/file.rs
#	crates/engine/src/lib.rs
#	crates/ui-egui/src/control.rs
#	crates/ui-egui/src/dialogs.rs
#	crates/ui-egui/src/i18n.rs
#	crates/ui-egui/src/i18n/it.rs
#	crates/ui-egui/src/lib.rs
#	crates/ui-egui/src/new_document.rs
#	docs/target-app-parity.md
2026-10-13 04:11:58 +00:00
aiongg 7fdca7387b feat(ui): New Document Preview follows side paths and keeps Create in step
- A preview that a menu or script edits or saves while the window is open
  becomes a document of its own: Close keeps it and gives it its Untitled
  number. document.list and the control inspect mark the preview.
- Close shows the previously active document again only if the preview was
  still active; a document opened meanwhile stays active.
- Create refuses invalid fields with a status beside the buttons, keeping
  the window and the preview. When the settings are the previewed ones, the
  preview document becomes the new document; otherwise file.new makes it,
  and a failure puts the window back with the error.
- The preview is rebuilt once the fields have stayed the same for 200 ms,
  and refused settings are not retried until they change.
- No recovery discard for preview documents, which are never written.
- The window's key is _previewedDoc, distinct from the interaction preview
  key, and ending the preview is a no-op without one.
2026-10-13 04:06:10 +00:00
aiongg 5da112a9cb feat(ui): Preview in the New Document window
A Preview checkbox beside Close and Create shows a document with the
window's settings in the workspace and rebuilds it as they change: size,
orientation, pages, facing pages, margins, columns, gutter, bleed and slug.
It is off by default and kept for the session. Fields that don't hold a
value yet, and sizes file.new refuses, keep the last preview.

The engine keeps the preview document (Session::preview_new_document,
end_new_document_preview): it replaces itself in its tab, takes no
Untitled number and is never written as recovery data. Create removes it
and makes the document with file.new, so it starts with a clean undo
history. Close, Escape, ui.dialog.cancel, turning Preview off or another
dialog replacing the window remove it and show the previously active
document again, unchanged.
2026-10-13 03:47:57 +00:00
aiongg e8c6518cb2 Colour: craft-cms 9e2b2b0 (same source as fea1712) 2026-10-13 03:30:00 +00:00
aiongg e31941afc0 Colour: craft-cms fea1712; a document's CMYK profile name resolves through stand_in_for 2026-10-13 03:26:53 +00: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
storybored379andClaude Opus 5.5 5e22a3dbee fix(import): show XLSX numbers as Excel's General format does
Round cached doubles to 15 significant digits, so =0.1+0.2 reads 0.3,
and write very large or small values with an exponent (1E+300).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-12 19:50:14 -07: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
aiongg a7eba8a2ad Colour: craft-cms ace3622 (Result APIs, device white is no ink) 2026-10-13 02:11:23 +00:00
aiongg eef4648175 Merge next into craft-cms-adoption 2026-10-13 01:55:21 +00:00
storybored379andOpenAI Codex d27eff31cd fix(import): preserve XLSX numeric and cached text values
Keep small and high-precision numbers intact in table placement and data merge. Honor cached formula strings as text, including leading zeros and whitespace.

Co-Authored-By: OpenAI Codex <noreply@openai.com>
2026-10-12 18:29:37 -07:00
aiongg 2bc7bcc7d5 Integration (#648): restore the 2026-10-11 and 2026-10-12 progress-log entries the merge dropped 2026-10-13 01:23:39 +00:00
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
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
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
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
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
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
aiongg 98ff430022 feat(styles): object styles carry effects (#653) 2026-10-13 00:40:59 +00:00