Shape Format › Text: direction, alignment and linked text boxes (#369) (#380)

- Model: TextBody on text box parts (vert, anchor, next link); chain
  resolution ignores cycles, self-links and second claimants and caps
  chains at 256 boxes; pruning a box clears links to it.
- Layout: text boxes lay out in their own frame and turn like table
  cells (rotate 90°/270°), stacked text one letter to a line, Align Text
  top/middle/bottom; linked boxes split the first box's story by line,
  each at its own line length.
- DOCX: wps:bodyPr vert/anchor, wps:txbx id and wps:linkedTxbx id/seq
  read and written (ECMA-376).
- Commands shape.textDirection, shape.alignText, shape.link,
  shape.breakLink; ribbon Shape Format › Text group with drawn icons;
  Create Link waits for a click on the target box.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Valentin KleinandClaude Opus 5.5 authored and GitHub committed 2026-10-11 14:13:07 -04:00
1 parent 09921dfae8
commit f8f1d80c38
36 files changed
+1217 -39

No files matched your search

+2 -8
View File
@@ -2,7 +2,7 @@
Generated by `cargo xtask parity` (`wordcraft-cli parity --markdown`): the word-processor feature catalog (`crates/engine/src/catalog.rs`) compared with the live command registry.
**425 of 450 catalog features have commands (94.4%).**
**428 of 450 catalog features have commands (95.1%).**
| Tab | Live | Total |
|---|---|---|
@@ -21,7 +21,7 @@ Generated by `cargo xtask parity` (`wordcraft-cli parity --markdown`): the word-
| Table Layout | 31 | 31 |
| Equation | 21 | 22 |
| Picture Format | 14 | 14 |
| Shape Format | 3 | 6 |
| Shape Format | 6 | 6 |
| Header & Footer | 5 | 5 |
| Editing | 38 | 38 |
| Tools | 5 | 6 |
@@ -67,12 +67,6 @@ Generated by `cargo xtask parity` (`wordcraft-cli parity --markdown`): the word-
- Tools › Ink Equation (`insert.inkEquation`)
### Shape Format
- Text › Text Direction (`shape.textDirection`)
- Text › Align Text (`shape.alignText`)
- Text › Create Link (`shape.link`)
### Tools
- Templates › Templates and Add-ins (`tools.templates`)