regen.mde 0.8.0 → 0.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -298,7 +298,8 @@ build-corpus input.docx --equations image
298
298
 
299
299
  **Markdown → Word** — inline `$...$` and display `$$...$$` LaTeX are converted to
300
300
  **native Office Math (OMML)** that Word renders as real equations — not raw text
301
- in a math font. The pipeline is `latex2mathml` → `mathml2omml`, so commands like
301
+ in a math font. The pipeline is `latex2mathml` → our own MathML→OMML converter
302
+ (no external `mathml2omml` dependency), so commands like
302
303
  `\sum`, `\int`, `\frac`, `\Delta`, `\rightarrow`, and `\leq` render correctly:
303
304
 
304
305
  ```powershell
@@ -634,21 +634,69 @@ console.log("style fixture");
634
634
  await ClickButtonAsync("Run Check");
635
635
  await WaitForBodyTextAsync("Checked ", "Run Check did not update status.");
636
636
 
637
- await AssertControlStepAsync("layout still usable", """
638
- (() => {
639
- const modeStrip = document.querySelector(".mode-strip");
640
- if (!modeStrip) throw new Error("Mode strip missing.");
637
+ await AssertControlStepAsync("layout still usable", """
638
+ (() => {
639
+ const modeStrip = document.querySelector(".mode-strip");
640
+ if (!modeStrip) throw new Error("Mode strip missing.");
641
641
  const canvas = document.querySelector(".canvas-wrap");
642
642
  if (!canvas || canvas.getBoundingClientRect().width < 300) {
643
643
  throw new Error("Editor canvas did not render with usable width.");
644
644
  }
645
645
  return [...document.querySelectorAll(".statusbar span")].map((node) => node.textContent).join(" | ");
646
- })()
647
- """);
648
-
649
- if (!File.Exists(markdownOutput) || !File.ReadAllText(markdownOutput).Contains("UI save-as edit marker", StringComparison.Ordinal))
650
- {
651
- throw new InvalidOperationException("Save MD As did not write the smoke Markdown output.");
646
+ })()
647
+ """);
648
+
649
+ await AssertControlStepAsync("side panels collapse clicks", """
650
+ (() => {
651
+ const canvas = document.querySelector(".canvas-wrap");
652
+ const left = document.querySelector(".left-panel");
653
+ const right = document.querySelector(".right-panel");
654
+ if (!canvas || !left || !right) throw new Error("Panel collapse elements missing.");
655
+ const before = canvas.getBoundingClientRect().width;
656
+ document.querySelector('button[aria-label="Collapse Document Flow panel"]')?.click();
657
+ document.querySelector('button[aria-label="Collapse Output Health panel"]')?.click();
658
+ window.__REGEN_PANEL_BEFORE = before;
659
+ return `collapse clicks scheduled from ${before}`;
660
+ })()
661
+ """);
662
+ await Task.Delay(250);
663
+ await AssertControlStepAsync("side panels collapse without focus", """
664
+ (() => {
665
+ const shell = document.querySelector(".app-shell");
666
+ const canvas = document.querySelector(".canvas-wrap");
667
+ const left = document.querySelector(".left-panel");
668
+ const right = document.querySelector(".right-panel");
669
+ if (!shell || !canvas || !left || !right) throw new Error("Panel collapse elements missing.");
670
+ const before = Number(window.__REGEN_PANEL_BEFORE || 0);
671
+ if (!shell.classList.contains("left-collapsed") || !shell.classList.contains("right-collapsed")) {
672
+ throw new Error("Panel collapse classes were not applied.");
673
+ }
674
+ if (!left.classList.contains("collapsed") || !right.classList.contains("collapsed")) {
675
+ throw new Error("Panel elements were not marked collapsed.");
676
+ }
677
+ const after = canvas.getBoundingClientRect().width;
678
+ if (after <= before + 120) throw new Error(`Editor canvas did not reclaim enough width: ${before} -> ${after}`);
679
+ document.querySelector('button[aria-label="Expand Document Flow panel"]')?.click();
680
+ document.querySelector('button[aria-label="Expand Output Health panel"]')?.click();
681
+ window.__REGEN_PANEL_AFTER = after;
682
+ return `panels collapsed: ${before} -> ${after}`;
683
+ })()
684
+ """);
685
+ await Task.Delay(250);
686
+ await AssertControlStepAsync("side panels expand without focus", """
687
+ (() => {
688
+ const shell = document.querySelector(".app-shell");
689
+ if (!shell) throw new Error("Panel collapse shell missing.");
690
+ if (shell.classList.contains("left-collapsed") || shell.classList.contains("right-collapsed")) {
691
+ throw new Error("Panel expand did not restore the app shell.");
692
+ }
693
+ return `panels expanded after ${window.__REGEN_PANEL_AFTER}`;
694
+ })()
695
+ """);
696
+
697
+ if (!File.Exists(markdownOutput) || !File.ReadAllText(markdownOutput).Contains("UI save-as edit marker", StringComparison.Ordinal))
698
+ {
699
+ throw new InvalidOperationException("Save MD As did not write the smoke Markdown output.");
652
700
  }
653
701
  if (!largeSmokeDocument && (!File.Exists(wordOutput) || new FileInfo(wordOutput).Length == 0))
654
702
  {