Skip to content

v0.19.0

Choose a tag to compare

@Innei Innei released this 02 Jun 10:38
· 51 commits to main since this release
3c1fac1

Summary

Fixes a long-standing crash when navigating out of a RichQuoteNode with the arrow keys, and reshapes the quote attribution editor so its input no longer interferes with Lexical's contenteditable. As part of the audit, @base-ui/react is promoted to a peerDependency in @haklex/rich-editor-ui to prevent duplicate React Context instances downstream.

Breaking Changes

None — @base-ui/react was already declared as a peer by @haklex/rich-editor, so consumers of @haklex/rich-editor-ui typically have it installed transitively. Standalone consumers of @haklex/rich-editor-ui must now install @base-ui/react themselves.

Bug Fixes

  • rich-editor-uiQuoteAttributionPlugin no longer portals into the Lexical-managed <blockquote>. Arrow-up out of a quote previously crashed React with NotFoundError: Failed to execute 'removeChild' on 'Node' because Lexical's reconciler mutated the blockquote children outside React's knowledge. The plugin now renders one always-on input per RichQuoteNode through a single portal into document.body, tracking each quote's bounding rect via ResizeObserver.
  • rich-editor — Quotes hosting an active attribution panel reserve extra padding-bottom (spacing.sm + 24px) so the floating input never overlaps the final line of quote text.

Other

  • @haklex/rich-editor-ui@base-ui/react moved from dependencies to peerDependencies (>=1.5.0) per the always-peer audit rule (rationale: 88bb7a0 lucide-react incident).

Bump rationale

Package Bump Rationale
rich-editor minor shared version — paired with rich-editor-ui
rich-editor-ui minor new peerDependencies.@base-ui/react; internal plugin rewrite

max(bumps) = minor (no exports removed). Incremental publish set: @haklex/rich-editor-ui, @haklex/rich-editor.