delete_para and delete_char previously reassigned only the story text
runs/paragraphs using the deleted style, leaving other styles' Based
On, paragraph styles' nested/nested-line/GREP style refs, the drop cap
style, and the footnote reference style pointed at a name that no
longer exists.
Extract redirect_style_refs() from rename_style() (everything it does
except updating the registry entry's own name) and reuse it from both
delete commands, so deleting a style now redirects every reference
type to the replacement style before removing the registry entry.
Also teach rename_char_refs() about drop_cap_style, which it missed
even for renames.
Add validation: name must be non-empty and refer to an existing
style, and replaceWith (if given) must refer to an existing style and
can't be the style being deleted.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
LYH Studio episode 6 colours the "1969" headline (8:28) and the loop's
stroke (9:15) from the Swatches panel, whose header holds InDesign's
Fill/Stroke proxy, Formatting Affects Container/Text and the Tint field.
- Header: a Fill/Stroke proxy showing the colours of what colour edits
apply to (panels::color_target; a click brings the other to the front,
as X does), the container/text buttons (app.formattingAffectsText) and
the tint of the colour in front.
- The Tint field sends only the tint, so each selected object (or run of
text) keeps its own swatch: object.fill takes a tint without a swatch,
and a stroke tint alone doesn't give a stroke-less object a stroke.
- Clicking a swatch applies it to the fill or stroke in front
(panels::apply_swatch, to the text when colours affect text); that row
is highlighted.
- Bottom row: New Color Group, New Swatch, Delete Swatch (the swatch last
clicked). Rows and the proxy are named for accessibility (and tests).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Add multi-click text selection, pending caret formatting and clipboard support, text-aware colour controls, guide/grid snapping, and frame threading with loaded-port interactions.
Include the layout, drop-cap and IDML updates carried from #83, with safeguards for generated and linked stories, external text references, local IDs, locked frames and atomic colour edits.
Fixes#23.
Co-authored-by: Sean Hammond <sean.hammond@und.edu>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The Pages panel menu in Chris Cicchino's "Adobe InDesign – Page Tool
and Liquid Layout" (0:47) reads: Insert Pages…, Move Pages…, Duplicate
Spread, Duplicate Spread at End of Document, Delete Spread, … New
Parent…, Apply Parent to Pages…, Override All Parent Page Items, Parent
Pages ▸, Create Alternate Layout…, Numbering & Section Options…, Allow
Selected Spread to Shuffle. DesignCraft's menu (and the page thumbnails'
context menu) had Insert Page After, Delete Page, Duplicate Spread, Add
to Previous Spread, Allow Spread to Shuffle and the parent items in
another order.
- Pages panel menu and page context menu in InDesign's order and labels:
Insert Pages… and Move Pages… open their dialogs for the page; Delete
Spread for a spread of several pages; Parent Pages ▸ holds Remove All
Local Overrides and Detach All Objects from Parent; Create Alternate
Layout… and Numbering & Section Options… open theirs. Add to Previous
Spread stays last (InDesign drags pages into spreads instead).
- Translations (pt-BR gains the existing items it lacked).
Builds on #869 (Duplicate Spread at End of Document).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Chris Cicchino's "Adobe InDesign – Page Tool and Liquid Layout" (0:42,
2:06) holds Option and drags a page in the Pages panel to copy it,
drags a page onto the New Page button to duplicate it ("click and drag
onto my plus sign I can duplicate that"), and resizes pages; InDesign's
panel also has an Edit page size button. DesignCraft's panel only moved
pages on drag, had no Edit page size button, and duplicating a page gave
the copy the size of the page before it (not its own) without its
liquid rule or guides. A page of its own size also drew its thumbnail
at the document's scale, over the panel's footer.
- Pages panel: Alt-drag copies the page to where it's dropped; a page
dropped on Create new page is duplicated at the end of the document;
Edit page size lists the presets (in the page's orientation) and
Custom Page Size…; InDesign's tooltips (Create new page, Delete
selected pages).
- Thumbnails share one scale (the document's page size, smaller when a
taller page would pass 1.8 times the usual height); rows fit their
spread's tallest page.
- engine: layout.pages.duplicateSpread copies the pages' size, margins,
columns, guides and liquid rule, takes `atEnd`, and returns the copy's
first page.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Chris Cicchino's "Adobe InDesign – Page Tool and Liquid Layout" (11:00–
13:30) drags guides out of the rulers with the Page tool on a
guide-based page: "these guides are a little bit different... they are a
dashed line, a cyan dashed line" - liquid guides, which let the objects
they cross stretch with the page. DesignCraft drew liquid guides dashed
and applied them, but a guide could only become liquid through the
Liquid Layout panel's list: ruler drags always made ruler guides.
- canvas: with the Page tool, a page guide dragged from a ruler is a
liquid guide; its preview is dashed while it's dragged.
- engine: guide.add takes `liquid`.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>