Skip to content

chore: Update JoyPixels emoji icons#38098

Closed
shreeya-methuku wants to merge 1 commit intoRocketChat:developfrom
shreeya-methuku:update-joypixels-emoji
Closed

chore: Update JoyPixels emoji icons#38098
shreeya-methuku wants to merge 1 commit intoRocketChat:developfrom
shreeya-methuku:update-joypixels-emoji

Conversation

@shreeya-methuku
Copy link
Copy Markdown

@shreeya-methuku shreeya-methuku commented Jan 8, 2026

Proposed changes

Updates the emoji-toolkit dependency from v7.0.1 to v9.0.0, which includes support for newer Unicode 15.1 emojis.

Note:

After investigating the codebase, I found that a complete emoji update would require more extensive changes:

  • The codebase currently imports from the legacy emojione package
  • CSS class names use emojione-* prefix (would need to change to joypixels-*)
  • Multiple files in apps/meteor/app/emoji-emojione/ would need refactoring

This PR updates the emoji-toolkit package version as a first step. Full migration may require additional work.

Issue(s)

Closes #31069

Steps to test

  1. Run yarn to install dependencies
  2. Start the development server
  3. Open emoji picker and verify it still works

Checklist

  • I have read the Contributing Guide
  • I have signed the CLA
  • Includes changeset

Summary by CodeRabbit

  • New Features
    • Updated emoji library to provide access to the latest emoji options and expanded emoji support for enhanced messaging.

✏️ Tip: You can customize this high-level summary in your review settings.

- Updates emoji-toolkit from v7.0.1 to v9.0.0
- Adds support for newer Unicode emojis

Closes RocketChat#31069
@dionisio-bot
Copy link
Copy Markdown
Contributor

dionisio-bot bot commented Jan 8, 2026

Looks like this PR is not ready to merge, because of the following issues:

  • This PR is missing the 'stat: QA assured' label
  • This PR is missing the required milestone or project

Please fix the issues and try again

If you have any trouble, please check the PR guidelines

@changeset-bot
Copy link
Copy Markdown

changeset-bot bot commented Jan 8, 2026

🦋 Changeset detected

Latest commit: 44f5c84

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 40 packages
Name Type
@rocket.chat/meteor Patch
@rocket.chat/core-typings Patch
@rocket.chat/rest-typings Patch
@rocket.chat/uikit-playground Patch
@rocket.chat/api-client Patch
@rocket.chat/apps Patch
@rocket.chat/core-services Patch
@rocket.chat/cron Patch
@rocket.chat/ddp-client Patch
@rocket.chat/fuselage-ui-kit Patch
@rocket.chat/gazzodown Patch
@rocket.chat/http-router Patch
@rocket.chat/livechat Patch
@rocket.chat/model-typings Patch
@rocket.chat/ui-avatar Patch
@rocket.chat/ui-client Patch
@rocket.chat/ui-contexts Patch
@rocket.chat/ui-voip Patch
@rocket.chat/web-ui-registration Patch
@rocket.chat/account-service Patch
@rocket.chat/authorization-service Patch
@rocket.chat/ddp-streamer Patch
@rocket.chat/omnichannel-transcript Patch
@rocket.chat/presence-service Patch
@rocket.chat/queue-worker Patch
@rocket.chat/abac Patch
@rocket.chat/federation-matrix Patch
@rocket.chat/license Patch
@rocket.chat/media-calls Patch
@rocket.chat/omnichannel-services Patch
@rocket.chat/pdf-worker Patch
@rocket.chat/presence Patch
rocketchat-services Patch
@rocket.chat/models Patch
@rocket.chat/network-broker Patch
@rocket.chat/omni-core-ee Patch
@rocket.chat/mock-providers Patch
@rocket.chat/ui-video-conf Patch
@rocket.chat/instance-status Patch
@rocket.chat/omni-core Patch

Not sure what this means? Click here to learn what changesets are.

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

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Jan 8, 2026

Walkthrough

Updates emoji-toolkit dependency from version ^7.0.1 to ^9.0.0 in the Meteor application's package.json file, documented via a new changeset file for patch release tracking.

Changes

Cohort / File(s) Summary
Emoji-toolkit Dependency Update
.changeset/long-mirrors-prove.md, apps/meteor/package.json
Dependency version bump from ^7.0.1 to ^9.0.0; changeset added to document patch update for newer emoji support

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Possibly related PRs

  • Release 7.12.2 #37519: Modifies package metadata and dependency versions in @rocket.chat/meteor and apps/meteor configurations.

Poem

🐰✨ A hop through emoji skies so bright,
From v7 to v9, what a delight!
New smileys and symbols, fresh from the toolkit,
The Meteor garden now has better pick! 🫰

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'chore: Update JoyPixels emoji icons' directly and clearly describes the main change—updating the emoji dependency to support newer JoyPixels versions.
Linked Issues check ✅ Passed The PR updates emoji-toolkit from v7.0.1 to v9.0.0, directly addressing issue #31069's request for a newer JoyPixels version with more emojis and Unicode 15.1 support.
Out of Scope Changes check ✅ Passed All changes are directly related to the emoji-toolkit dependency bump objective; the changeset and package.json update are minimal and focused on the stated goal.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

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.

Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

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

No issues found across 3 files

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In @apps/meteor/package.json:
- Line 196: Your package.json currently pins "emoji-toolkit": "^9.0.0" but the
codebase still uses legacy emojione identifiers (e.g., emoji.packages.emojione,
".emojione" CSS classes and old data structures/aliases and relies on APIs like
toShort()); either downgrade the dependency to a compatible v7/v8 in
package.json or update the code to the v9 API by renaming references from
emoji.packages.emojione to emoji.packages.joypixels, replace CSS selectors
".emojione" with the new ".emoji" (or v9 equivalent), and refactor any emoji
data-loading/mapping logic to match v9’s reorganized
categories/aliases/shortname structures and available methods.
📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Jira integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 5c3c52b and 44f5c84.

⛔ Files ignored due to path filters (1)
  • yarn.lock is excluded by !**/yarn.lock, !**/*.lock
📒 Files selected for processing (2)
  • .changeset/long-mirrors-prove.md
  • apps/meteor/package.json
🔇 Additional comments (1)
.changeset/long-mirrors-prove.md (1)

1-5: LGTM! Changeset correctly documents the dependency update.

The changeset format is correct and appropriately categorizes this as a patch-level change for the @rocket.chat/meteor package, with a clear description of the emoji-toolkit version bump.

"ejson": "^2.2.3",
"emailreplyparser": "^0.0.5",
"emoji-toolkit": "^7.0.1",
"emoji-toolkit": "^9.0.0",
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.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Check npm registry for emoji-toolkit version 9.0.0 availability
echo "=== Checking npm registry for emoji-toolkit v9.x versions ==="
curl -s https://registry.npmjs.org/emoji-toolkit | jq -r '.versions | keys[] | select(startswith("9."))' | sort -V

echo -e "\n=== Checking if v9.0.0 specifically exists ==="
curl -s https://registry.npmjs.org/emoji-toolkit/9.0.0 | jq -r '.version, .dist.tarball' 2>/dev/null || echo "Version not found or error occurred"

echo -e "\n=== Checking recent versions ==="
curl -s https://registry.npmjs.org/emoji-toolkit | jq -r '.versions | keys[]' | tail -20

Repository: RocketChat/Rocket.Chat

Length of output: 414


🌐 Web query:

emoji-toolkit v9.0.0 breaking changes release notes changelog

💡 Result:

Summary — emoji-toolkit v9.0.0

  • Brought the toolkit up to date with JoyPixels 9.0 (Emoji set) and Unicode 15.1. [1]
  • See the GitHub release notes for v9.0.0 (short entry: "This update brings the toolkit up to date with JoyPixels 9.0, Unicode 15.1"). [1]
  • Related JoyPixels 9.0 design/emoji changes (Emoji 15.1 support, many redesigned emojis and flag format changes) are documented on the JoyPixels/Emojipedia posts. [2]
  • npm package info for emoji-toolkit (shows v9.0.x series). [3]

Links / sources
[1] GitHub — joypixels/emoji-toolkit releases (v9.0.0 entry). (github.com)
[2] JoyPixels / JoyPixels 9.0 (Emoji 15.1 changelog / blog). (blog.emojipedia.org)
[3] npm package page for emoji-toolkit (versions / release info). (npmjs.com)

If you want, I can extract the exact files changed in the v9.0.0 tag (diff), or paste the full release text/assets.

Citations:


🏁 Script executed:

#!/bin/bash
# Check how emoji-toolkit is being used in the codebase
echo "=== Searching for emoji-toolkit imports and usage ==="
rg "emoji-toolkit|emojione" --type js --type ts -l

echo -e "\n=== Checking package.json for current emoji-toolkit version ==="
grep -A2 -B2 "emoji-toolkit" apps/meteor/package.json

Repository: RocketChat/Rocket.Chat

Length of output: 1663


🌐 Web query:

emoji-toolkit v7 to v9 API breaking changes migration guide

💡 Result:

Here’s a concise migration checklist and the important breaking changes when moving emoji-toolkit (JoyPixels) from v7 → v9, with links to the project sources to verify details.

Quick summary (actionable items)

  • Update package and names: replace any legacy "emojione" identifiers with "joypixels" / emoji-toolkit (library was rebranded). Install emoji-toolkit@^9.0.0. [1][2]
  • Data file changes: adopt the newer emoji JSON structure (categories.json, subcategory added; sort_order is globally unique). Update any code that assumed the old CSV/column names or earlier JSON layouts. [2][3]
  • Shortname / alias changes: some primary shortnames were renamed (many older shortnames moved into aliases). Update lookups that assume a particular primary shortname. Use the alias list in emoji JSON to maintain backwards compatibility. [2]
  • Unicode / sequence handling: newer versions add many Unicode sequences (skin tones, gender combos, new emoji). Ensure your parser recognizes non-qualified/qualified sequences and uses the toolkit’s output codepoint attributes if you rely on native Unicode generation. [2]
  • API/class renames: if you used emojione-specific class/file names, switch to JoyPixels/emoji-toolkit equivalents per the UPGRADE docs. Search your code for "emojione" and replace. [1]
  • Asset paths / image sets: file names/paths and available image sets (PNG/sprites) may differ between releases — verify your build/static asset references and update to the v9 image set if you host images locally or change CDN paths. [1][3]
  • Behavior changes to expect: newer releases update emoji mapping (aliases, shortnames), and add/modify fields (e.g., subcategory). Run integration tests that cover: shortname → emoji lookup, unicode generation, image URL generation, skin-tone combinations, and replacement in HTML/text. [2][3]

Minimal migration steps

  1. Upgrade package:
    • npm: npm install emoji-toolkit@^9 --save. Verify package version. [3]
  2. Grep/replace legacy identifiers:
    • Replace "emojione" occurrences with "joypixels" / "emoji-toolkit" in your codebase and build scripts. [1]
  3. Update data handling:
    • Load categories.json (new) and update any code that relied on previous CSV column names (alpha_code → alpha_code/aliases, etc.). Adjust for subcategory and global sort_order. [2]
  4. Update shortname lookups:
    • If you relied on specific primary shortnames, consult emoji.json / aliases to map old shortnames to the new primary shortnames. Prefer resolving via aliases array to maintain compatibility. [2]
  5. Test Unicode sequences & skin tones:
    • Validate that composite sequences (ZWJ, skin tone modifiers) are handled correctly and that your native output generation uses the toolkit’s output codepoint attributes when needed. [2]
  6. Verify assets:
    • Update image/sprite URLs and licensing if you use JoyPixels artwork (verify free vs. paid license per your usage). [1][3]
  7. Run full regression on emoji-related features.

References

  • emoji-toolkit (JoyPixels) repository (README / UPGRADE doc / files). [1]
  • yarn/npm changelog and release notes showing v8 changes and data-structure changes (aliases, categories). [2][4]
  • npm package page for emoji-toolkit (current versions and install instructions). [3]

If you want, I can:

  • produce a repo-wide codemod (sed/ts-morph) to rename identifiers and update asset paths,
  • or generate a short script to map old shortnames → new primary shortnames using the toolkit’s emoji.json. Which would you prefer?

Sources
[1] joypixels/emoji-toolkit — GitHub repository (README + UPGRADE).
[2] emoji-toolkit changelog / package history (yarn/npm changelog entries showing v8/v7 notes).
[3] emoji-toolkit — npm package page (current versions & install info).


🏁 Script executed:

#!/bin/bash
# Check a few key files to understand how emoji-toolkit is actually being used
echo "=== Checking emoji-toolkit type definitions ==="
cat ee/packages/pdf-worker/src/types/emoji-toolkit.ts

echo -e "\n=== Checking main emoji-emojione library usage ==="
head -50 apps/meteor/app/emoji-emojione/server/lib.ts

echo -e "\n=== Checking emoji parser usage ==="
head -50 apps/meteor/app/emoji/client/emojiParser.ts

Repository: RocketChat/Rocket.Chat

Length of output: 3560


emoji-toolkit v9.0.0 requires substantial refactoring—current integration is incompatible with the breaking changes.

Version 9.0.0 exists and is stable, but the upgrade introduces major breaking changes that are not reflected in the current codebase:

  • Rebranding & naming: Library renamed from "emojione" to "joypixels"/"emoji-toolkit". The codebase still references emoji.packages.emojione, expects .emojione CSS classes, and uses legacy "emojione" identifiers throughout.
  • Data structure changes: Categories, aliases, and shortname mappings were reorganized. The current code assumes the old structure.
  • API surface: The type definitions only expose toShort(), but no comprehensive API definition exists to verify compatibility with the broader emoji-toolkit v9 API.

Before merging, either:

  1. Revert to emoji-toolkit v7 (or v8) until a full migration to emoji-toolkit v9 is planned, or
  2. Implement the breaking changes: rename emoji.packages.emojioneemoji.packages.joypixels, update CSS class selectors (.emojione.emoji), and refactor emoji data loading to match the v9 structure.

No active security vulnerabilities were found for v9.0.0.

🤖 Prompt for AI Agents
In @apps/meteor/package.json at line 196, Your package.json currently pins
"emoji-toolkit": "^9.0.0" but the codebase still uses legacy emojione
identifiers (e.g., emoji.packages.emojione, ".emojione" CSS classes and old data
structures/aliases and relies on APIs like toShort()); either downgrade the
dependency to a compatible v7/v8 in package.json or update the code to the v9
API by renaming references from emoji.packages.emojione to
emoji.packages.joypixels, replace CSS selectors ".emojione" with the new
".emoji" (or v9 equivalent), and refactor any emoji data-loading/mapping logic
to match v9’s reorganized categories/aliases/shortname structures and available
methods.

@engelgabriel
Copy link
Copy Markdown
Member

Closing this PR in favor of #39411, where we’re replacing Emojione with native Unicode emojis.

It’s still a draft, and we’d love help from the community to get it across the finish line 🙌

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.

Update JoyPixels emoji icons

2 participants