Skip to content

feat!: drop LexicalRichText and LegacyRichText#133

Merged
mkilpatrick merged 2 commits into
mainfrom
drop-rtf
Dec 23, 2025
Merged

feat!: drop LexicalRichText and LegacyRichText#133
mkilpatrick merged 2 commits into
mainfrom
drop-rtf

Conversation

@mkilpatrick

Copy link
Copy Markdown
Collaborator

LexicalRichText was previously deprecated and now being removed. Instead, it's recommended to use the stream's .html version instead with dangerouslySetInnerHTML.

LegacyRichText is no longer an available field in the Yext Knowledge Graph platform. Removing its corresponding component.

@changeset-bot

changeset-bot Bot commented Dec 22, 2025

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: ae92f72

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@coderabbitai

coderabbitai Bot commented Dec 22, 2025

Copy link
Copy Markdown

Walkthrough

This PR removes the rich text component infrastructure from the pages-components package. It deletes the LexicalRichText and LegacyRichText components, their associated styling definitions, Storybook stories, and all supporting utilities including image node handlers and custom Markdown syntax extensions. The richText module's public exports are removed from the main components index, and related dependencies (MDX tooling, micromark, remark-rehype, and Lexical packages) are removed from package.json.

Possibly related PRs

Suggested reviewers

  • benlife5

Pre-merge checks and finishing touches

✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title 'feat!: drop LexicalRichText and LegacyRichText' accurately and clearly summarizes the main changes in the pull request, which is the removal of both rich text components.
Description check ✅ Passed The description is directly related to the changeset, explaining why both components are being removed and providing migration guidance.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch drop-rtf

📜 Recent review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 71a6da1 and ae92f72.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (39)
  • packages/pages-components/CHANGELOG.md
  • packages/pages-components/package.json
  • packages/pages-components/src/components/index.ts
  • packages/pages-components/src/components/richText/DefaultStyling.ts
  • packages/pages-components/src/components/richText/LexicalRichText.stories.tsx
  • packages/pages-components/src/components/richText/LexicalRichText.tsx
  • packages/pages-components/src/components/richText/TableCellNode.tsx
  • packages/pages-components/src/components/richText/default-styling.module.css
  • packages/pages-components/src/components/richText/imageNode/ImageNode.tsx
  • packages/pages-components/src/components/richText/imageNode/LexicalImage.tsx
  • packages/pages-components/src/components/richText/imageNode/index.ts
  • packages/pages-components/src/components/richText/imageNode/methods.ts
  • packages/pages-components/src/components/richText/imageNode/types.ts
  • packages/pages-components/src/components/richText/index.ts
  • packages/pages-components/src/components/richText/legacy/LegacyRichText.stories.tsx
  • packages/pages-components/src/components/richText/legacy/LegacyRichText.tsx
  • packages/pages-components/src/components/richText/legacy/remark-yext/handlers.ts
  • packages/pages-components/src/components/richText/legacy/remark-yext/mdast-util-yext/index.ts
  • packages/pages-components/src/components/richText/legacy/remark-yext/mdast-util-yext/mdast-node-types.ts
  • packages/pages-components/src/components/richText/legacy/remark-yext/mdast-util-yext/strikethrough.ts
  • packages/pages-components/src/components/richText/legacy/remark-yext/mdast-util-yext/subscript.ts
  • packages/pages-components/src/components/richText/legacy/remark-yext/mdast-util-yext/superscript.ts
  • packages/pages-components/src/components/richText/legacy/remark-yext/mdast-util-yext/underline.ts
  • packages/pages-components/src/components/richText/legacy/remark-yext/micromark-extension-yext/index.ts
  • packages/pages-components/src/components/richText/legacy/remark-yext/micromark-extension-yext/resolver-utils.ts
  • packages/pages-components/src/components/richText/legacy/remark-yext/micromark-extension-yext/strikethrough-subscript/index.ts
  • packages/pages-components/src/components/richText/legacy/remark-yext/micromark-extension-yext/strikethrough-subscript/resolver.ts
  • packages/pages-components/src/components/richText/legacy/remark-yext/micromark-extension-yext/strikethrough-subscript/tokenizer.ts
  • packages/pages-components/src/components/richText/legacy/remark-yext/micromark-extension-yext/superscript/index.ts
  • packages/pages-components/src/components/richText/legacy/remark-yext/micromark-extension-yext/superscript/resolver.ts
  • packages/pages-components/src/components/richText/legacy/remark-yext/micromark-extension-yext/superscript/tokenizer.ts
  • packages/pages-components/src/components/richText/legacy/remark-yext/micromark-extension-yext/underline/index.ts
  • packages/pages-components/src/components/richText/legacy/remark-yext/micromark-extension-yext/underline/resolver.ts
  • packages/pages-components/src/components/richText/legacy/remark-yext/micromark-extension-yext/underline/tokenizer.ts
  • packages/pages-components/src/components/richText/legacy/remark-yext/remarkYext.ts
  • packages/pages-components/src/components/richText/lexical.module.css
  • packages/pages-components/src/components/richText/methods.ts
  • packages/pages-components/src/components/richText/sampleData.ts
  • packages/pages-components/src/components/richText/types.ts
💤 Files with no reviewable changes (37)
  • packages/pages-components/src/components/index.ts
  • packages/pages-components/src/components/richText/legacy/remark-yext/micromark-extension-yext/underline/index.ts
  • packages/pages-components/src/components/richText/legacy/LegacyRichText.tsx
  • packages/pages-components/src/components/richText/legacy/remark-yext/mdast-util-yext/index.ts
  • packages/pages-components/src/components/richText/DefaultStyling.ts
  • packages/pages-components/src/components/richText/legacy/remark-yext/mdast-util-yext/superscript.ts
  • packages/pages-components/src/components/richText/legacy/remark-yext/micromark-extension-yext/underline/resolver.ts
  • packages/pages-components/src/components/richText/legacy/remark-yext/micromark-extension-yext/strikethrough-subscript/index.ts
  • packages/pages-components/src/components/richText/legacy/remark-yext/micromark-extension-yext/index.ts
  • packages/pages-components/src/components/richText/methods.ts
  • packages/pages-components/src/components/richText/TableCellNode.tsx
  • packages/pages-components/src/components/richText/legacy/remark-yext/remarkYext.ts
  • packages/pages-components/src/components/richText/index.ts
  • packages/pages-components/src/components/richText/types.ts
  • packages/pages-components/src/components/richText/LexicalRichText.stories.tsx
  • packages/pages-components/src/components/richText/legacy/remark-yext/mdast-util-yext/strikethrough.ts
  • packages/pages-components/src/components/richText/imageNode/LexicalImage.tsx
  • packages/pages-components/src/components/richText/legacy/remark-yext/micromark-extension-yext/superscript/index.ts
  • packages/pages-components/src/components/richText/legacy/remark-yext/mdast-util-yext/subscript.ts
  • packages/pages-components/src/components/richText/imageNode/index.ts
  • packages/pages-components/src/components/richText/legacy/remark-yext/micromark-extension-yext/superscript/tokenizer.ts
  • packages/pages-components/src/components/richText/legacy/remark-yext/mdast-util-yext/underline.ts
  • packages/pages-components/src/components/richText/legacy/remark-yext/micromark-extension-yext/underline/tokenizer.ts
  • packages/pages-components/src/components/richText/default-styling.module.css
  • packages/pages-components/src/components/richText/legacy/remark-yext/micromark-extension-yext/strikethrough-subscript/tokenizer.ts
  • packages/pages-components/src/components/richText/legacy/remark-yext/micromark-extension-yext/strikethrough-subscript/resolver.ts
  • packages/pages-components/src/components/richText/imageNode/methods.ts
  • packages/pages-components/src/components/richText/legacy/remark-yext/mdast-util-yext/mdast-node-types.ts
  • packages/pages-components/src/components/richText/sampleData.ts
  • packages/pages-components/src/components/richText/lexical.module.css
  • packages/pages-components/src/components/richText/imageNode/types.ts
  • packages/pages-components/src/components/richText/LexicalRichText.tsx
  • packages/pages-components/src/components/richText/legacy/remark-yext/micromark-extension-yext/resolver-utils.ts
  • packages/pages-components/src/components/richText/legacy/remark-yext/micromark-extension-yext/superscript/resolver.ts
  • packages/pages-components/src/components/richText/legacy/remark-yext/handlers.ts
  • packages/pages-components/src/components/richText/imageNode/ImageNode.tsx
  • packages/pages-components/src/components/richText/legacy/LegacyRichText.stories.tsx
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (9)
  • GitHub Check: call_test_matrix / Node 20 • React 17.0.2
  • GitHub Check: call_test_matrix / Node 24 • React 18.2.0
  • GitHub Check: call_test_matrix / Node 22 • React 17.0.2
  • GitHub Check: call_test_matrix / Node 22 • React 18.2.0
  • GitHub Check: call_test_matrix / Node 18 • React 17.0.2
  • GitHub Check: call_test_matrix / Node 20 • React 18.2.0
  • GitHub Check: call_test_matrix / Node 18 • React 18.2.0
  • GitHub Check: call_test_matrix / Node 24 • React 17.0.2
  • GitHub Check: semgrep/ci
🔇 Additional comments (3)
packages/pages-components/CHANGELOG.md (1)

5-5: Consider adding a changelog entry for PR #133 (drop LexicalRichText/LegacyRichText).

The provided CHANGELOG snippet shows formatting-only changes (removing leading asterisks). However, the PR description indicates a breaking change—removal of the LexicalRichText and LegacyRichText components. A new changelog entry documenting this removal would be expected at version 1.2.3 (or a future version) to inform users of the breaking change and migration path.

Verify whether a new CHANGELOG entry for this breaking change is being added elsewhere or if it should be included in this file.

Also applies to: 9-9, 13-13, 17-17, 21-21

packages/pages-components/package.json (2)

99-104: Verify if luxon is still required.

The AI summary indicates luxon was removed from dependencies, but it appears to still be present on line 103. Please verify whether luxon is still needed by other components in the package (e.g., Address, Breadcrumbs, etc.). If it's no longer used, it should be removed.

The verification script in the previous comment for @types/luxon will also help confirm luxon usage. If no imports are found, both luxon and @types/luxon should be removed.


73-73: Remove @types/luxon from devDependencies if luxon is no longer used.

@types/luxon provides TypeScript definitions for luxon, which should only be included when the luxon library is actively used in the codebase. If luxon has been removed from the project's dependencies, these type definitions are no longer needed and should be removed to reduce unnecessary package bloat.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
packages/pages-components/package.json (1)

50-55: Remove the orphaned lexical peerDependency on line 51.

Since no components in the package use lexical, the "lexical": "~0.38.2" peerDependency forces consumers to install an unused package. Remove it to avoid unnecessary bloat.

📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 71a6da1 and ae92f72.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (39)
  • packages/pages-components/CHANGELOG.md
  • packages/pages-components/package.json
  • packages/pages-components/src/components/index.ts
  • packages/pages-components/src/components/richText/DefaultStyling.ts
  • packages/pages-components/src/components/richText/LexicalRichText.stories.tsx
  • packages/pages-components/src/components/richText/LexicalRichText.tsx
  • packages/pages-components/src/components/richText/TableCellNode.tsx
  • packages/pages-components/src/components/richText/default-styling.module.css
  • packages/pages-components/src/components/richText/imageNode/ImageNode.tsx
  • packages/pages-components/src/components/richText/imageNode/LexicalImage.tsx
  • packages/pages-components/src/components/richText/imageNode/index.ts
  • packages/pages-components/src/components/richText/imageNode/methods.ts
  • packages/pages-components/src/components/richText/imageNode/types.ts
  • packages/pages-components/src/components/richText/index.ts
  • packages/pages-components/src/components/richText/legacy/LegacyRichText.stories.tsx
  • packages/pages-components/src/components/richText/legacy/LegacyRichText.tsx
  • packages/pages-components/src/components/richText/legacy/remark-yext/handlers.ts
  • packages/pages-components/src/components/richText/legacy/remark-yext/mdast-util-yext/index.ts
  • packages/pages-components/src/components/richText/legacy/remark-yext/mdast-util-yext/mdast-node-types.ts
  • packages/pages-components/src/components/richText/legacy/remark-yext/mdast-util-yext/strikethrough.ts
  • packages/pages-components/src/components/richText/legacy/remark-yext/mdast-util-yext/subscript.ts
  • packages/pages-components/src/components/richText/legacy/remark-yext/mdast-util-yext/superscript.ts
  • packages/pages-components/src/components/richText/legacy/remark-yext/mdast-util-yext/underline.ts
  • packages/pages-components/src/components/richText/legacy/remark-yext/micromark-extension-yext/index.ts
  • packages/pages-components/src/components/richText/legacy/remark-yext/micromark-extension-yext/resolver-utils.ts
  • packages/pages-components/src/components/richText/legacy/remark-yext/micromark-extension-yext/strikethrough-subscript/index.ts
  • packages/pages-components/src/components/richText/legacy/remark-yext/micromark-extension-yext/strikethrough-subscript/resolver.ts
  • packages/pages-components/src/components/richText/legacy/remark-yext/micromark-extension-yext/strikethrough-subscript/tokenizer.ts
  • packages/pages-components/src/components/richText/legacy/remark-yext/micromark-extension-yext/superscript/index.ts
  • packages/pages-components/src/components/richText/legacy/remark-yext/micromark-extension-yext/superscript/resolver.ts
  • packages/pages-components/src/components/richText/legacy/remark-yext/micromark-extension-yext/superscript/tokenizer.ts
  • packages/pages-components/src/components/richText/legacy/remark-yext/micromark-extension-yext/underline/index.ts
  • packages/pages-components/src/components/richText/legacy/remark-yext/micromark-extension-yext/underline/resolver.ts
  • packages/pages-components/src/components/richText/legacy/remark-yext/micromark-extension-yext/underline/tokenizer.ts
  • packages/pages-components/src/components/richText/legacy/remark-yext/remarkYext.ts
  • packages/pages-components/src/components/richText/lexical.module.css
  • packages/pages-components/src/components/richText/methods.ts
  • packages/pages-components/src/components/richText/sampleData.ts
  • packages/pages-components/src/components/richText/types.ts
💤 Files with no reviewable changes (37)
  • packages/pages-components/src/components/index.ts
  • packages/pages-components/src/components/richText/legacy/remark-yext/micromark-extension-yext/underline/index.ts
  • packages/pages-components/src/components/richText/legacy/LegacyRichText.tsx
  • packages/pages-components/src/components/richText/legacy/remark-yext/mdast-util-yext/index.ts
  • packages/pages-components/src/components/richText/DefaultStyling.ts
  • packages/pages-components/src/components/richText/legacy/remark-yext/mdast-util-yext/superscript.ts
  • packages/pages-components/src/components/richText/legacy/remark-yext/micromark-extension-yext/underline/resolver.ts
  • packages/pages-components/src/components/richText/legacy/remark-yext/micromark-extension-yext/strikethrough-subscript/index.ts
  • packages/pages-components/src/components/richText/legacy/remark-yext/micromark-extension-yext/index.ts
  • packages/pages-components/src/components/richText/methods.ts
  • packages/pages-components/src/components/richText/TableCellNode.tsx
  • packages/pages-components/src/components/richText/legacy/remark-yext/remarkYext.ts
  • packages/pages-components/src/components/richText/index.ts
  • packages/pages-components/src/components/richText/types.ts
  • packages/pages-components/src/components/richText/LexicalRichText.stories.tsx
  • packages/pages-components/src/components/richText/legacy/remark-yext/mdast-util-yext/strikethrough.ts
  • packages/pages-components/src/components/richText/imageNode/LexicalImage.tsx
  • packages/pages-components/src/components/richText/legacy/remark-yext/micromark-extension-yext/superscript/index.ts
  • packages/pages-components/src/components/richText/legacy/remark-yext/mdast-util-yext/subscript.ts
  • packages/pages-components/src/components/richText/imageNode/index.ts
  • packages/pages-components/src/components/richText/legacy/remark-yext/micromark-extension-yext/superscript/tokenizer.ts
  • packages/pages-components/src/components/richText/legacy/remark-yext/mdast-util-yext/underline.ts
  • packages/pages-components/src/components/richText/legacy/remark-yext/micromark-extension-yext/underline/tokenizer.ts
  • packages/pages-components/src/components/richText/default-styling.module.css
  • packages/pages-components/src/components/richText/legacy/remark-yext/micromark-extension-yext/strikethrough-subscript/tokenizer.ts
  • packages/pages-components/src/components/richText/legacy/remark-yext/micromark-extension-yext/strikethrough-subscript/resolver.ts
  • packages/pages-components/src/components/richText/imageNode/methods.ts
  • packages/pages-components/src/components/richText/legacy/remark-yext/mdast-util-yext/mdast-node-types.ts
  • packages/pages-components/src/components/richText/sampleData.ts
  • packages/pages-components/src/components/richText/lexical.module.css
  • packages/pages-components/src/components/richText/imageNode/types.ts
  • packages/pages-components/src/components/richText/LexicalRichText.tsx
  • packages/pages-components/src/components/richText/legacy/remark-yext/micromark-extension-yext/resolver-utils.ts
  • packages/pages-components/src/components/richText/legacy/remark-yext/micromark-extension-yext/superscript/resolver.ts
  • packages/pages-components/src/components/richText/legacy/remark-yext/handlers.ts
  • packages/pages-components/src/components/richText/imageNode/ImageNode.tsx
  • packages/pages-components/src/components/richText/legacy/LegacyRichText.stories.tsx
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (9)
  • GitHub Check: call_test_matrix / Node 20 • React 17.0.2
  • GitHub Check: call_test_matrix / Node 24 • React 18.2.0
  • GitHub Check: call_test_matrix / Node 22 • React 17.0.2
  • GitHub Check: call_test_matrix / Node 22 • React 18.2.0
  • GitHub Check: call_test_matrix / Node 18 • React 17.0.2
  • GitHub Check: call_test_matrix / Node 20 • React 18.2.0
  • GitHub Check: call_test_matrix / Node 18 • React 18.2.0
  • GitHub Check: call_test_matrix / Node 24 • React 17.0.2
  • GitHub Check: semgrep/ci
🔇 Additional comments (3)
packages/pages-components/CHANGELOG.md (1)

5-5: Consider adding a changelog entry for PR #133 (drop LexicalRichText/LegacyRichText).

The provided CHANGELOG snippet shows formatting-only changes (removing leading asterisks). However, the PR description indicates a breaking change—removal of the LexicalRichText and LegacyRichText components. A new changelog entry documenting this removal would be expected at version 1.2.3 (or a future version) to inform users of the breaking change and migration path.

Verify whether a new CHANGELOG entry for this breaking change is being added elsewhere or if it should be included in this file.

Also applies to: 9-9, 13-13, 17-17, 21-21

packages/pages-components/package.json (2)

99-104: Verify if luxon is still required.

The AI summary indicates luxon was removed from dependencies, but it appears to still be present on line 103. Please verify whether luxon is still needed by other components in the package (e.g., Address, Breadcrumbs, etc.). If it's no longer used, it should be removed.

The verification script in the previous comment for @types/luxon will also help confirm luxon usage. If no imports are found, both luxon and @types/luxon should be removed.


73-73: Remove @types/luxon from devDependencies if luxon is no longer used.

@types/luxon provides TypeScript definitions for luxon, which should only be included when the luxon library is actively used in the codebase. If luxon has been removed from the project's dependencies, these type definitions are no longer needed and should be removed to reduce unnecessary package bloat.

@asanehisa asanehisa left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this update gonna be in a minor or major?

@mkilpatrick

Copy link
Copy Markdown
Collaborator Author

Is this update gonna be in a minor or major?

Major

@mkilpatrick
mkilpatrick merged commit 57eb25e into main Dec 23, 2025
25 checks passed
@mkilpatrick
mkilpatrick deleted the drop-rtf branch December 23, 2025 15:44
@chrissnyder2337

chrissnyder2337 commented Jan 2, 2026

Copy link
Copy Markdown
Contributor

@mkilpatrick Should this documentation be updated to remove the use of LegacyRichText? https://hitchhikers.yext.com/docs/pages/rich-text-markdown/

@mkilpatrick

Copy link
Copy Markdown
Collaborator Author

@mkilpatrick Should this documentation be updated to remove the recomebeded use of LegacyRichText? https://hitchhikers.yext.com/docs/pages/rich-text-markdown/

Funny enough, the documentation doesn't recommend to use the LegacyRichText component we deleted, however we should make the section about using the html subfield more prominent, as well as removing the rest of the the documentation about LexicalRichText. Or at least specify 1.x vs 2.x changes. I'll make sure that gets updated. Thanks for calling it out!

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.

4 participants