Skip to content

feat: offline document preview (docx/xlsx/pptx/pdf) - #45853

Closed
xirothedev wants to merge 27 commits into
anomalyco:devfrom
The-Resonance-Team:upstream-document-preview
Closed

feat: offline document preview (docx/xlsx/pptx/pdf)#45853
xirothedev wants to merge 27 commits into
anomalyco:devfrom
The-Resonance-Team:upstream-document-preview

Conversation

@xirothedev

@xirothedev xirothedev commented Aug 28, 2026

Copy link
Copy Markdown

Offline document preview for docx, xlsx, pptx, pdf – clean branch without team CI.

  • DocumentPreview dialog + OfficePreview shell (T3/T6)
  • Plugin invoke routes + attachment detection (T1/T2/T5)
  • XLSX column widths, merge cells, freeze, sheet tabs
  • i18n + fixups + Vite ?url fixtures

xirothedev and others added 25 commits August 25, 2026 18:13
- i18n: PDF iframe title and attachment filename fallback
- document-preview: render-failure fallback for docx/markdown (T4 DoD)
- plugin-invoke: abort timeout on listPlugins/pluginInvoke
- session-ui: docx-preview via workspace catalog
- tests: zero-plugins list case, invoke signal wiring
- office-preview: shared bubble style, named openManaged
Extract duplicated table-building into buildXlsxTable helper:
- Use actual Excel column widths from ws.colWidths/colWidthRanges/defaultColWidth
- Handle ws.mergeCells with colspan/rowspan (skip consumed cells)
- Freeze columns with sticky left positioning (ws.freezeCols)
- Both initial render and sheet-tab switching use the same helper
- Fallback to wb.sheets.map(s.name) when wb.sheetNames is empty
- Cap column widths at 400px to prevent absurd columns
- Extract colPx() helper to deduplicate width resolution
- Remove sheetNames.length guard — always render tab bar
- Fallback to 'Sheet1' when sheetNames is empty at runtime
- Remove debug console.log
- Set explicit color on sheet tab buttons and zoom text
- Was inheriting dark-mode text color from parent container
- DOCX: @silurus/ooxml WASM canvas (Word-fidelity) with docx-renderer fallback
- XLSX: HTML table from XlsxWorkbook model with actual column widths,
  merge cells, freeze columns, sheet tab bar with tab switching
- PPTX: PptxScrollViewer WASM with text selection
- V2 composer accepts office MIME types for drag/drop/paste/file picker
- Side panel tab routing for document previews (desktop)
- Electron vite config: WASM assets, ooxml exclude from optimizeDeps
- Fix: debug marker removed from file-picker.ts
- Fix: hardcoded path replaced with path.resolve in electron config
- Remove 10 narrating comments that state obvious code behavior
- Add OoxmlViewer interface to replace viewer: any in renderers
- Remove CONTEXT.md (skills-repo glossary, doesn't belong in project root)
- Update stories kind type to include xlsx/pptx
- Add XLSX_URL from EPC-Cashflow-Model (14K base64)
- Add Xlsx story export
- Fix Fallback story kind from xlsx to xyz (was misleading)
- Move test fixtures to fixtures/ directory (pdf, docx, xlsx, md)
- Use Vite ?url imports instead of inline base64 data URLs
- Stories load files at build time, cleaner source code
@github-actions github-actions Bot added the needs:compliance This means the issue will auto-close after 2 hours. label Aug 28, 2026
@github-actions

Copy link
Copy Markdown
Contributor

This PR doesn't fully meet our contributing guidelines and PR template.

What needs to be fixed:

  • PR description is missing required template sections. Please use the PR template.

Please edit this PR description to address the above within 2 hours, or it will be automatically closed.

If you believe this was flagged incorrectly, please let a maintainer know.

@github-actions github-actions Bot mentioned this pull request Aug 28, 2026
6 tasks
@github-actions

Copy link
Copy Markdown
Contributor

This pull request has been automatically closed because it was not updated to meet our contributing guidelines within the 2-hour window.

Feel free to open a new pull request that follows our guidelines.

@github-actions github-actions Bot removed the needs:compliance This means the issue will auto-close after 2 hours. label Aug 28, 2026
@github-actions github-actions Bot closed this Aug 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant