@silurus/ooxml 0.33.2 → 0.35.0

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
@@ -386,7 +386,8 @@ export const PptxViewerComponent = component$<{ src: string }>(({ src }) => {
386
386
  | | Images (inline and anchored, with text wrap) | ✅ |
387
387
  | | Text boxes / drawing shapes | ✅ |
388
388
  | **Advanced** | Footnote / endnote reference markers | ✅ |
389
- | | Track changes / comments | |
389
+ | | Track changes (`w:ins` / `w:del` — author-coloured underline / strikethrough) | |
390
+ | | Comments / footnote bodies (parsed, not yet rendered inline) | ⚠️ |
390
391
  | | Mail merge fields | ❌ Not planned |
391
392
  | **Interaction** | Text selection (transparent overlay, native copy) | ✅ |
392
393
 
@@ -428,6 +429,7 @@ export const PptxViewerComponent = component$<{ src: string }>(({ src }) => {
428
429
  | | Pivot tables | ❌ Not planned |
429
430
  | | Data validation / comments | ❌ Not planned |
430
431
  | **Interaction** | Cell selection (single / range / row / column / all) | ✅ |
432
+ | | Excel-style row / column header highlight on selection | ✅ |
431
433
  | | Shift+click to extend, Ctrl+C to copy as TSV | ✅ |
432
434
  | | Text selection inside cells (transparent overlay) | ✅ |
433
435
  | | `onSelectionChange` callback, `getCellAt(x, y)` API | ✅ |
@@ -451,7 +453,9 @@ export const PptxViewerComponent = component$<{ src: string }>(({ src }) => {
451
453
  | | Connectors (`cxnSp`) | ✅ |
452
454
  | | Tables (`tbl` in `graphicFrame`) | ✅ |
453
455
  | | Charts (bar, line, area, radar, waterfall) | ✅ |
454
- | | Charts (pie, scatter, bubble) | |
456
+ | | Charts (pie, doughnut) | |
457
+ | | Charts (scatter — `scatterStyle` marker / line / smooth variants) | ✅ |
458
+ | | Charts (bubble — `bubbleSize` per-point area scaling) | ✅ |
455
459
  | | SmartArt | ❌ |
456
460
  | | OLE objects | ❌ |
457
461
  | | Video / audio (poster + interactive playback) | ✅ |
@@ -484,7 +488,8 @@ export const PptxViewerComponent = component$<{ src: string }>(({ src }) => {
484
488
  | | Letter spacing (`spc`) | ✅ |
485
489
  | | Superscript / subscript | ✅ |
486
490
  | | Hyperlinks (`hlinkClick` — theme `hlink` colour + auto underline) | ✅ |
487
- | | Text shadow / outline effects | |
491
+ | | Text shadow (`rPr > effectLst > outerShdw`) | |
492
+ | | Text outline (`rPr > a:ln`) | ✅ |
488
493
  | **Text — paragraphs** | Horizontal alignment (left / center / right / justify) | ✅ |
489
494
  | | Vertical anchor (top / center / bottom) | ✅ |
490
495
  | | Line spacing (`spcPct`, `spcPts`) | ✅ |
@@ -492,7 +497,8 @@ export const PptxViewerComponent = component$<{ src: string }>(({ src }) => {
492
497
  | | Bullet points (character and auto-numbered) | ✅ |
493
498
  | | Tab stops | ✅ |
494
499
  | | Indent / margin | ✅ |
495
- | | Vertical / RTL text | |
500
+ | | Vertical text (`bodyPr@vert` — vert / vert270 / eaVert) | |
501
+ | | Right-to-left paragraph (`pPr@rtl` — Arabic / Hebrew default alignment + browser bidi) | ✅ |
496
502
  | **Text — body** | Text padding (insets) | ✅ |
497
503
  | | normAutoFit (shrink to fit) | ✅ |
498
504
  | | spAutoFit (expand box; suppresses wrap when text fits in one line) | ✅ |
@@ -518,6 +524,8 @@ export const PptxViewerComponent = component$<{ src: string }>(({ src }) => {
518
524
 
519
525
  ## Companion packages
520
526
 
527
+ - **[`packages/markdown/`](packages/markdown/)** — `@silurus/ooxml-markdown` and the `ooxml-md` CLI convert `.pptx` / `.docx` / `.xlsx` to GitHub-flavoured markdown via the workspace WASM parsers. Same projection used by the MCP server (~21× smaller than the raw XML on the demo deck, ~8% bigger than a flat-text extractor). Includes a node20-based GitHub Action for bulk repo-wide conversion.
528
+ - **[`packages/node/`](packages/node/)** — Node-side parsers (`@silurus/ooxml-node`) exposing `parsePptx` / `parseDocx` / `parseXlsx` / `parseXlsxAllSheets` against the workspace WASM artifacts, with no DOM or Web Worker dependency. Useful for CI checks, headless rendering pipelines, and CLI tools. Pairs with `@silurus/ooxml-diff` for server-side diffing. Includes an `ooxml-thumbnail` CLI (pptx-only first pass; requires `skia-canvas`).
521
529
  - **[`packages/vscode-extension/`](packages/vscode-extension/)** — VS Code extension (`ooxml-viewer`) that registers `CustomEditorProvider`s for `.docx`, `.xlsx`, and `.pptx`, and (opt-in) auto-installs and registers the `ooxml-mcp-server` so AI coding agents in the same window (Copilot Agent mode, Claude, …) can read those files via dedicated tools.
522
530
  - **[`packages/mcp-server/`](packages/mcp-server/)** — Rust MCP server (`ooxml-mcp-server`) exposing the parsers as tools for AI agents (Claude, Copilot, Codex, etc.). Provides structured queries (`docx_get_structure`, `xlsx_get_cell_range`, `pptx_get_slide_structure`, …) so agents can inspect OOXML files without shelling out to `unzip`. Prebuilt binaries are attached to each [GitHub Release](https://github.com/yukiyokotani/office-open-xml-viewer/releases) for macOS / Linux / Windows; the VS Code extension downloads them on demand.
523
531