This release includes 5 breaking changes for platform teams planning a safe upgrade.
✓ No known CVEs patched in this version
Topics
+7 more
Affected surfaces
ReleasePort's take
Light signal@eigenpal/[email protected] restructures package imports into core + framework adapters, removes showPrintButton prop, and relocates Agent UI components. Developers must update imports and remove deprecated props before upgrading.
Why it matters: Import restructuring, showPrintButton removal, and UI relocation require migration. Test configs and imports in dev before v1.0 upgrade; gains Apache 2.0 (AGPL lifted) and 57% smaller distribution.
Summary
AI summaryUpdates Major Changes, Patch Changes, and breaking across a mixed release.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Breaking | High |
Agent UI components relocated from `@eigenpal/docx-editor-react` to new agents packages (React, Vue, bridge). Agent UI components relocated from `@eigenpal/docx-editor-react` to new agents packages (React, Vue, bridge). Source: granite4.1:30b@2026-05-22-audit Confidence: low |
— |
| Breaking | Medium |
Toolbar naming unified across adapters; FormattingBar renamed to Toolbar. Toolbar naming unified across adapters; FormattingBar renamed to Toolbar. Source: llm_adapter@2026-05-22 Confidence: high |
— |
| Breaking | Medium |
showPrintButton prop removed from DocxEditor and Toolbar on both adapters. showPrintButton prop removed from DocxEditor and Toolbar on both adapters. Source: llm_adapter@2026-05-22 Confidence: high |
— |
| Breaking | Medium |
Agent UI components relocated from react adapter to new agents package. Agent UI components relocated from react adapter to new agents package. Source: llm_adapter@2026-05-22 Confidence: low |
— |
| Breaking | Medium |
Package imports restructured; monolithic package split into framework-agnostic core and per-framework adapters. Package imports restructured; monolithic package split into framework-agnostic core and per-framework adapters. Source: llm_adapter@2026-05-22 Confidence: low |
— |
| Breaking | Medium |
All packages relicense to Apache 2.0; AGPL copyleft obligations lifted. All packages relicense to Apache 2.0; AGPL copyleft obligations lifted. Source: llm_adapter@2026-05-22 Confidence: low |
— |
| Feature | Medium |
Vue 3 adapter ships as first-class framework adapter with parity to React. Vue 3 adapter ships as first-class framework adapter with parity to React. Source: llm_adapter@2026-05-22 Confidence: high |
— |
| Feature | Medium |
Shared i18n package consolidates locale strings for use by both adapters. Shared i18n package consolidates locale strings for use by both adapters. Source: llm_adapter@2026-05-22 Confidence: high |
— |
| Feature | Medium |
API Extractor snapshot published for every public subpath; CI checks for drift. API Extractor snapshot published for every public subpath; CI checks for drift. Source: llm_adapter@2026-05-22 Confidence: high |
— |
| Feature | Medium |
Rich TSDoc added to 21 most-imported core types with ECMA-376 references. Rich TSDoc added to 21 most-imported core types with ECMA-376 references. Source: llm_adapter@2026-05-22 Confidence: high |
— |
| Feature | Medium |
Emit consumer-friendly JSON docs for every public export with source links. Emit consumer-friendly JSON docs for every public export with source links. Source: llm_adapter@2026-05-22 Confidence: high |
— |
| Performance | Medium |
Stop shipping sourcemaps and declaration maps; unpacked footprint reduced 57 percent. Stop shipping sourcemaps and declaration maps; unpacked footprint reduced 57 percent. Source: llm_adapter@2026-05-22 Confidence: high |
— |
| Deprecation | Medium |
Three subpath helpers tagged @internal; consumers should use adapter wrappers instead. Three subpath helpers tagged @internal; consumers should use adapter wrappers instead. Source: llm_adapter@2026-05-22 Confidence: low |
— |
| Refactor | Medium |
TableExtension closure split into per-domain modules; commands refactored to factories. TableExtension closure split into per-domain modules; commands refactored to factories. Source: llm_adapter@2026-05-22 Confidence: low |
— |
Full changelog
Major Changes
-
6272b32: # 1.0.0
First multi-package, multi-framework release. The monolithic
@eigenpal/docx-js-editoris split into a framework-agnostic core and per-framework adapters, Vue 3 ships as a first-class adapter alongside React, and the license moves to Apache 2.0 across all packages.Package restructure (breaking)
| Old import | New import |
| ------------------------------------------ | ----------------------------------------- |
|@eigenpal/docx-js-editor|@eigenpal/docx-editor-react|
|@eigenpal/docx-js-editor/react|@eigenpal/docx-editor-react|
|@eigenpal/docx-editor-react/core|@eigenpal/docx-editor-core|
|@eigenpal/docx-editor-react/headless|@eigenpal/docx-editor-core/headless|
|@eigenpal/docx-editor-react/core-plugins|@eigenpal/docx-editor-core/core-plugins|
|@eigenpal/docx-editor-react/mcp|@eigenpal/docx-editor-agents/mcp|
|@eigenpal/docx-editor-react/i18n/*.json|@eigenpal/docx-editor-i18n/*.json|The old
@eigenpal/docx-js-editorpackage stays on 0.x for legacy maintenance — no 1.x compatibility shim ships. Framework-agnostic utilities (e.g.createEmptyDocument) move to core:- import { DocxEditor, createEmptyDocument } from '@eigenpal/docx-js-editor'; + import { DocxEditor } from '@eigenpal/docx-editor-react'; + import { createEmptyDocument } from '@eigenpal/docx-editor-core';Vue 3 adapter (
@eigenpal/docx-editor-vue)The Vue package becomes a real adapter (previously a stub). Public API mirrors React:
<DocxEditor>with matching prop surfaceuseDocxEditorcomposable +renderAsyncfor the Node.js path/ui,/composables,/dialogs,/plugin-api,/stylessubpaths
Parity gates cover insert-table, find/replace, page-setup, context menus, image overlay (resize/move/rotate/aspect-locked corners, dimension tooltip), advanced cell/row options (margins, height rule, text direction, no-wrap), menu-bar icons + shortcuts + carets, toolbar pickers, and the agent UI surface.
Shared i18n package (
@eigenpal/docx-editor-i18n)Locale strings move out of
@eigenpal/docx-editor-reactinto a dedicated package consumed by both adapters from a single source.- import de from '@eigenpal/docx-editor-react/i18n/de.json'; + import de from '@eigenpal/docx-editor-i18n/de.json';The
defaultLocalevalue (English) is still re-exported from the adapter packages, unchanged.Agent UI relocation (breaking)
AgentPanel,AgentChatLog,AgentComposer,AgentSuggestionChip,AgentTimelineno longer ship from@eigenpal/docx-editor-react. They live at:@eigenpal/docx-editor-agents/react— React components +useAgentChat@eigenpal/docx-editor-agents/vue— Vue 3 twins, plusAIContextMenuandAIResponsePreview@eigenpal/docx-editor-agents/ai-sdk/react//ai-sdk/vue—@ai-sdk/*adapters@eigenpal/docx-editor-agents/bridge— React-freecreateEditorBridge,agentTools,executeToolCall,getToolSchemas,createReviewerBridge. Safe for headless / Vue / Node.
- import { AgentPanel, AgentChatLog } from '@eigenpal/docx-editor-react'; + import { AgentPanel, AgentChatLog } from '@eigenpal/docx-editor-agents/react';The agent components no longer call
useTranslationdirectly — pass localized*Labelprops instead.<DocxEditor>'s built-in agent panel slot still forwards localized strings automatically.Accessibility polish on the agent surface: keyboard-operable resize handle, Escape-dismissable context menu, live-region chat log, WCAG AA contrast on response previews.
Toolbar naming unified (breaking)
The standalone formatting bar is
Toolbaron both adapters. The old "classic" single-rowToolbar(with File/Format/Insert menus baked in) is removed — composeEditorToolbar.MenuBar+EditorToolbar.Toolbarfor that layout.| Old (React) | New (React + Vue) |
| ------------------------------ | ----------------------- |
|FormattingBar|Toolbar|
| ClassicToolbar(with menus) |EditorToolbar|
|EditorToolbar.FormattingBar|EditorToolbar.Toolbar|Vue:
BasicToolbar/FormattingBaraliases removed;EditorToolbar'sformatting-barslot is nowtoolbar. Vue's table border-color and cell-fill pickers now use the advanced color picker matching React. VueMenuDropdown'sshowChevrondefault flips fromtruetofalse— pass:show-chevron="true"explicitly to keep the caret.showPrintButtonprop removed (breaking)Removed from
<DocxEditor>and<Toolbar>on both adapters; the Vue<Toolbar>printevent is gone with it.onPrintcallback stays.- <DocxEditor showPrintButton onPrint={handlePrint} /> + <DocxEditor onPrint={handlePrint} />To hide File > Print, omit
onPrint. Programmatic print still works viaref.current.print()/editorRef.value.print().License moves to Apache 2.0
All published packages relicense to Apache 2.0. Notably:
@eigenpal/docx-editor-agentswas AGPL-3.0-or-later — the relicense lifts copyleft obligations on agent embedders.
Minor Changes
-
76093f9:
@eigenpal/docx-editor-corenow ships an API Extractor snapshot for every published subpath (61 entries) underpackages/core/etc/. CI fails on any undocumented drift to the public surface viabun run api:check. Adds rich TSDoc on the 21 most-imported types —Document,DocumentBody,Paragraph,Run,Table,TableRow,TableCell,Image,Hyperlink,Comment,ColorValue,BorderSpec,ShadingProperties,TextFormatting,ParagraphFormatting,Style,Section,SectionProperties,ListLevel,ListRendering,AbstractNumbering,NumberingDefinitions— each linked to its ECMA-376 reference.No runtime change; doc-only.
Patch Changes
-
c5125ff: Annotate every subpath barrel with
@packageDocumentation+@publicso API Extractor can extract them in the next phase. The exports map is unchanged; the published surface is unchanged. Doc-only. -
348fa6b: Tag three subpath helpers as
@internalin TSDoc:managers/TableSelectionManager,prosemirror/utils/extractTrackedChanges,prosemirror/utils/visualLineNavigation. The subpaths stay inpackage.jsonexportsfor back-compat (shipped in v1.0), but the snapshots inetc/managers-TableSelectionManager.api.md,etc/prosemirror-utils-extractTrackedChanges.api.md, andetc/prosemirror-utils-visualLineNavigation.api.mdnow mark every export// @internal.Consumers should reach for the adapter-side wrappers (
useTableSelection,useTrackedChanges,useVisualLineNavigationin React/Vue) instead of these subpaths. The tag is a signal of intent — these subpaths are expected to move behind public surfaces in a future major. -
0187af2: Emit consumer-friendly JSON docs at
docs/json/<pkg-slug>/<subpath>.jsonfor every@publicexport across the published packages. Companion to the existingetc/<slug>.api.mdsnapshots — same source of truth (API Extractor), different output shape: instead of human-readable Markdown, the JSON is structured for a docs site to render any layout it wants. Includes per-export source-link URLs into the GitHub source tree, type-reference canonical IDs for cross-page linking, and TSDoc summaries/remarks/examples parsed out of the source.New tooling:
bun run docs:jsonregenerates,bun run docs:check(in CI) fails on drift. Contract documented inCLAUDE.mdunder### Docs JSON. No runtime change to any published package. -
61983ca: Add
@packageDocumentationblocks to every public subpath across the published packages, and a small post-build step (scripts/inject-package-doc.mjs) that re-prepends the source's head doc-block to the dist.d.tsafter tsup runs. tsup's rollup-plugin-dts hoists transitive type imports above the file-head comment, which previously stripped the description from the published types. Consumers now see the package-level prose in their IDE hover and the API Extractor snapshots no longer flag "No @packageDocumentation comment for this package". -
b2230a3: Internal refactor: TableExtension closure split into per-domain modules under
prosemirror/extensions/nodes/TableExtension/commands/(insert, delete, selection, borders, cellFormatting, sizing, tableStyle, helpers, activeCellPlugin). Schema-binding commands becomemake*(schema)factories called once per editor; schema-free commands become module-levelCommandconstants. No public API change. -
8836214: Stop shipping sourcemaps and declaration maps in published tarballs. They were dead weight: the
.js.mapfiles referenced source files that aren't in the tarball, and the.d.ts.mapfiles pointed at.tsfiles consumers can't see either.Concrete changes:
@eigenpal/docx-editor-core: dropsourcemap: !isProdfrom both tsup builds (the build never ran withNODE_ENV=production, so 245.js.mapfiles / ~8.2 MB were shipping). Tarball: 2.5 MB → 0.7 MB. Unpacked: 11.0 MB → 2.7 MB.@eigenpal/docx-editor-vue: passcompilerOptions: { declarationMap: false }tovite-plugin-dtsto suppress the 63.d.ts.mapfiles.@eigenpal/docx-editor-agents: samedeclarationMap: falsefor the Vue sub-build; also add the missingsideEffects: ["*.css"]so bundlers can tree-shake.
Total unpacked footprint across all published packages: 14.8 MB → 6.3 MB.
Breaking Changes
- Monolithic `@eigenpal/docx-js-editor` split into framework‑agnostic core (`@eigenpal/docx-editor-core`) and per‑framework adapters (`@eigenpal/docx-editor-react`, `@eigenpal/docx-editor-vue`).
- Import paths changed: `@eigenpal/docx-js-editor` → `@eigenpal/docx-editor-react`; `@eigenpal/docx-editor-react/core` → `@eigenpal/docx-editor-core`; `@eigenpal/docx-editor-react/headless` → `@eigenpal/docx-editor-core/headless`; `@eigenpal/docx-editor-react/core-plugins` → `@eigenpal/docx-editor-core/core-plugins`; `@eigenpal/docx-editor-react/mcp` → `@eigenpal/docx-editor-agents/mcp`; i18n files moved to `@eigenpal/docx-editor-i18n`.
- Agent UI components (`AgentPanel`, `AgentChatLog`, etc.) relocated from `@eigenpal/docx-editor-react` to `@eigenpal/docx-editor-agents/react` (and Vue equivalents).
- Toolbar naming unified: `FormattingBar` renamed to `Toolbar`; classic single‑row `Toolbar` removed; use `EditorToolbar.MenuBar` + `EditorToolbar.Toolbar` instead.
- `showPrintButton` prop removed from editor components in both React and Vue adapters.
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About Docx Editor
All releases →Related context
Related tools
Earlier breaking changes
- v@eigenpal/[email protected] Shared i18n package extracted into @eigenpal/docx-editor-i18n.
- v@eigenpal/[email protected] `showPrintButton` prop removed from `<DocxEditor>` and toolbar components.
- v@eigenpal/[email protected] Toolbar naming unified across React and Vue adapters; classic toolbar removed.
- v@eigenpal/[email protected] Agent UI components relocated to new agent packages and API changed.
- v@eigenpal/[email protected] Shared i18n package extracted from adapters into dedicated locale bundle.
Beta — feedback welcome: [email protected]