From f786a650e50e40c698cd7d215e1102a43053256a Mon Sep 17 00:00:00 2001 From: aiongg Date: Thu, 15 Oct 2026 06:13:03 +0000 Subject: [PATCH] fix(type-menu): Define Lists command path matches the Bulleted & Numbered Lists menu --- ROADMAP.md | 1 + crates/doc/src/lib.rs | 2 +- crates/engine/src/cmd/lists.rs | 4 ++-- crates/ui-egui/src/menus.rs | 9 +++++++++ docs/target-app-parity.md | 2 +- 5 files changed, 14 insertions(+), 4 deletions(-) diff --git a/ROADMAP.md b/ROADMAP.md index d60a6bf4..67b66927 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -347,6 +347,7 @@ list) · [roadmap.md](docs/roadmap.md) (milestones, plan) · [parity-checklist.m Newest first. +- **2026-10-15** · Define Lists… is listed under Type › Bulleted & Numbered Lists in command search and Edit › Menus, matching the menu, and the parity doc no longer lists a Type › Paragraph Rules… menu item that does not exist. No readiness percentage change. - **2026-10-14** · The Type tool draws a new text frame over a locked empty frame, as InDesign does, instead of turning the locked frame into a text frame. No readiness percentage change. - **2026-10-14** · 100% black shows as pure black on screen by default, as InDesign's Appearance of Black does out of the box (Display All Blacks as Rich Black); Preferences › Appearance of Black › Display All Blacks Accurately still shows it as the dark grey it prints, and a saved choice is kept. No readiness percentage change. - **2026-10-14** · Pathfinder keeps the frontmost object, as InDesign does: a photo placed over shapes and intersected with them shows through the shapes (it was dropped, and the shapes kept their black fill); Add, Exclude Overlap and Minus Back take the front object's fill too, Subtract still keeps the back one. No readiness percentage change. diff --git a/crates/doc/src/lib.rs b/crates/doc/src/lib.rs index c0fdc8fe..8bf50071 100644 --- a/crates/doc/src/lib.rs +++ b/crates/doc/src/lib.rs @@ -324,7 +324,7 @@ pub struct DocSettings { pub bleed_color: [u8; 3], pub slug_color: [u8; 3], pub keyboard_increment: f64, - /// Named lists (Type › Bulleted and Numbered Lists › Define Lists). + /// Named lists (Type › Bulleted & Numbered Lists › Define Lists). #[serde(default, skip_serializing_if = "Vec::is_empty")] pub lists: Vec, /// The story in the primary text frames (Smart Text Reflow adds and removes pages for it). diff --git a/crates/engine/src/cmd/lists.rs b/crates/engine/src/cmd/lists.rs index f6754562..9f882487 100644 --- a/crates/engine/src/cmd/lists.rs +++ b/crates/engine/src/cmd/lists.rs @@ -1,4 +1,4 @@ -//! Type › Bulleted and Numbered Lists › Define Lists: named lists whose numbers can continue from +//! Type › Bulleted & Numbered Lists › Define Lists: named lists whose numbers can continue from //! story to story. Paragraphs join one with `listName` (and restart with `startAt`). use designcraft_doc::NumberedList; @@ -11,7 +11,7 @@ pub fn specs() -> Vec { cmd!( "list.define", "Define Lists…", - ["Type", "Bulleted and Numbered Lists"], + ["Type", "Bulleted & Numbered Lists"], None, "{name, continueAcrossStories?: true, rename?} — paragraphs join it with type.para {listType: numbers, listName}", has_doc, diff --git a/crates/ui-egui/src/menus.rs b/crates/ui-egui/src/menus.rs index a35261d5..edab4329 100644 --- a/crates/ui-egui/src/menus.rs +++ b/crates/ui-egui/src/menus.rs @@ -2565,6 +2565,15 @@ mod tests { out } + /// A command's menu path names the menu entries that really hold it. + #[test] + fn define_lists_command_path_matches_the_type_menu() { + let spec = designcraft_engine::command_specs().iter().find(|c| c.id == "list.define").expect("list.define is a command"); + assert_eq!(spec.menu[0], "Type"); + assert!(submenu_paths("Type").contains(&spec.menu.join("/")), "{:?} is not a Type submenu", spec.menu); + assert!(menu_ids("Type").contains(&"list.define")); + } + #[test] fn screen_mode_shows_the_current_mode_and_view_submenus_are_translated() { let mut app = DesignApp::new(designcraft_engine::Session::new(), crate::Services::default()); diff --git a/docs/target-app-parity.md b/docs/target-app-parity.md index 62ba7f08..97255115 100644 --- a/docs/target-app-parity.md +++ b/docs/target-app-parity.md @@ -278,7 +278,7 @@ It is evidence of breadth: each item exists. It is not a claim of InDesign-level - EPUB 3 (reflowable) export: stories in reading order, CSS from paragraph/character styles, images, navigation (`file.exportEpub`, CLI `--export x.epub`). - Data Merge (one linked CSV, TSV, text, or Excel file; text, image, QR, and hyperlink placeholders; preview; a new document with one record per page or records tiled on a single page), spell checking (public-domain Moby list + document dictionary, suggestions), Step and Repeat (count or grid, with a previewing dialog), snippets, object styles, Numbering & Section Options. - Footnotes: Type › Insert Footnote (caret moves into the note), Document Footnote Options (numbering style incl. symbols, start/restart per page/spread/section, prefix/suffix, reference position/character style, paragraph style, separator, spacing, first baseline, rule above); notes composed at the bottom of the referencing column with the body text making room, or across all the columns of the frame with Span Footnotes Across Columns; edited in place on the canvas; rendered, exported to PDF (real text) and IDML (InDesign's structure, verified opening in InDesign 2026) and imported from IDML; `footnote.*` commands. -- Paragraph Rules: Rule Above / Rule Below (on, weight, colour, tint, column or text width, offset, left/right indent) set in Type › Paragraph Rules…, the Paragraph panel menu and Paragraph Style Options › Paragraph Rules; inherited style values shown, and `type.para` / `style.paragraph.edit` change only the rule fields named. +- Paragraph Rules: Rule Above / Rule Below (on, weight, colour, tint, column or text width, offset, left/right indent) set in the Paragraph panel menu and Paragraph Style Options › Paragraph Rules; inherited style values shown, and `type.para` / `style.paragraph.edit` change only the rule fields named. - Cross-references and text anchors: Insert Cross-Reference (paragraph by style, or text anchor), 11 formats with InDesign's building blocks (full/partial paragraph, paragraph text/number, page number, anchor name, chapter, file name) plus user formats; resolved live at composition — never out of date, no Update step; unresolved destinations show `??`; PDF link annotations to the destination page; IDML export/import as InDesign cross-reference sources, hyperlinks, text destinations and formats (verified in InDesign 2026); `xref.*` / `anchor.*` commands. - Index: page references (topic from the selection or up to 4 levels, sort keys; current page, to end of story, next n paragraphs, suppressed, See / See also), Generate / Update Index (section headings, nested or run-in, page ranges merged, Index Title / Section Head / Level 1–4 styles); IDML export/import as InDesign topics, page references and topic cross-references (verified in InDesign 2026); `index.*` commands. - Text clipboard keeps formatting (character/paragraph formats, footnotes, cross-references, index markers, tables) and falls back to plain text when the system clipboard changed; Paste without Formatting (⇧⌘V); Change Case (UPPERCASE, lowercase, Title Case, Sentence case — formatting kept); Type › Insert Special Character / White Space / Break Character submenus.