emoji-picker-react 4.20.1 → 4.20.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/README.md +5 -3
  2. package/dist/Stylesheet/stylesheet.d.ts +1 -1
  3. package/dist/dataUtils/emojiSelectors.d.ts +0 -2
  4. package/dist/emoji-picker-react.cjs.development.js +117 -161
  5. package/dist/emoji-picker-react.cjs.development.js.map +1 -1
  6. package/dist/emoji-picker-react.cjs.production.min.js +1 -1
  7. package/dist/emoji-picker-react.cjs.production.min.js.map +1 -1
  8. package/dist/emoji-picker-react.esm.js +82 -126
  9. package/dist/emoji-picker-react.esm.js.map +1 -1
  10. package/llms.txt +6 -3
  11. package/package.json +13 -6
  12. package/src/Stylesheet/stylesheet.tsx +1 -1
  13. package/src/components/Layout/Flex.tsx +1 -1
  14. package/src/components/Layout/Space.tsx +1 -1
  15. package/src/components/Reactions/BtnPlus.tsx +1 -1
  16. package/src/components/Reactions/Reactions.tsx +1 -1
  17. package/src/components/atoms/Button.tsx +1 -1
  18. package/src/components/body/Body.tsx +1 -1
  19. package/src/components/body/EmojiCategory.tsx +1 -1
  20. package/src/components/body/EmojiList.tsx +16 -17
  21. package/src/components/body/EmojiVariationPicker.tsx +2 -2
  22. package/src/components/body/MeasureEmoji.tsx +2 -4
  23. package/src/components/emoji/ClickableEmojiButton.tsx +1 -1
  24. package/src/components/emoji/Emoji.tsx +1 -1
  25. package/src/components/emoji/EmojiImg.tsx +1 -1
  26. package/src/components/emoji/NativeEmoji.tsx +1 -1
  27. package/src/components/footer/Preview.tsx +2 -2
  28. package/src/components/header/Header.tsx +1 -1
  29. package/src/components/header/Search/BtnClearSearch.tsx +1 -1
  30. package/src/components/header/Search/IcnSearch.tsx +1 -1
  31. package/src/components/header/Search/Search.tsx +1 -1
  32. package/src/components/header/SkinTonePicker/BtnSkinToneVariation.tsx +1 -1
  33. package/src/components/header/SkinTonePicker/SkinTonePicker.tsx +1 -1
  34. package/src/components/main/PickerMain.tsx +1 -1
  35. package/src/components/navigation/CategoryButton.tsx +1 -1
  36. package/src/components/navigation/CategoryNavigation.tsx +1 -1
  37. package/src/dataUtils/emojiSelectors.ts +4 -39
  38. package/src/dataUtils/suggested.ts +1 -1
  39. package/src/hooks/useMouseDownHandlers.ts +1 -1
  40. package/src/hooks/useOnFocus.ts +1 -1
@@ -1,5 +1,5 @@
1
- import React__default, { memo, createElement, useState, useEffect, useContext, createContext, useRef, useMemo, createRef, useCallback, Fragment, useLayoutEffect, Suspense, Component } from 'react';
2
- import { createSheet, cx } from 'flairup';
1
+ import React__default, { memo, createElement, useState, useEffect, useContext, createContext, useRef, useMemo, createRef, useCallback, Fragment, useLayoutEffect, Component } from 'react';
2
+ import { createSheet, cx } from 'shipstyles';
3
3
 
4
4
  function _arrayLikeToArray(r, a) {
5
5
  (null == a || a > r.length) && (a = r.length);
@@ -26743,15 +26743,57 @@ var defaultEmojiData = {
26743
26743
  emojis: emojis
26744
26744
  };
26745
26745
 
26746
- function useIsMounted() {
26747
- var _React$useState = useState(false),
26748
- isMounted = _React$useState[0],
26749
- setIsMounted = _React$useState[1];
26750
- useEffect(function () {
26751
- setIsMounted(true);
26752
- }, []);
26753
- return isMounted;
26746
+ // Pure data helpers plus the legacy global registry. This module intentionally
26747
+ function unifiedWithoutSkinTone$1(unified) {
26748
+ var splat = unified.split('-');
26749
+ var _splat$splice = splat.splice(1, 1),
26750
+ skinTone = _splat$splice[0];
26751
+ if (skinTonesMapped[skinTone]) {
26752
+ return splat.join('-');
26753
+ }
26754
+ return unified;
26754
26755
  }
26756
+ function emojiUnified$1(emoji, skinTone) {
26757
+ var _emojiVariationUnifie;
26758
+ var unified = emoji[EmojiProperties.unified];
26759
+ if (!skinTone || !emojiHasVariations$1(emoji)) {
26760
+ return unified;
26761
+ }
26762
+ return (_emojiVariationUnifie = emojiVariationUnified$1(emoji, skinTone)) != null ? _emojiVariationUnifie : unified;
26763
+ }
26764
+ function emojiVariations$1(emoji) {
26765
+ var _emoji$EmojiPropertie2;
26766
+ return (_emoji$EmojiPropertie2 = emoji[EmojiProperties.variations]) != null ? _emoji$EmojiPropertie2 : [];
26767
+ }
26768
+ function emojiHasVariations$1(emoji) {
26769
+ return emojiVariations$1(emoji).length > 0;
26770
+ }
26771
+ function emojiVariationUnified$1(emoji, skinTone) {
26772
+ return skinTone ? emojiVariations$1(emoji).find(function (variation) {
26773
+ return variation.includes(skinTone);
26774
+ }) : emojiUnified$1(emoji);
26775
+ }
26776
+ function emojiByUnified(unified) {
26777
+ if (!unified) {
26778
+ return;
26779
+ }
26780
+ if (allEmojisByUnified[unified]) {
26781
+ return allEmojisByUnified[unified];
26782
+ }
26783
+ var withoutSkinTone = unifiedWithoutSkinTone$1(unified);
26784
+ return allEmojisByUnified[withoutSkinTone];
26785
+ }
26786
+ var allEmojis = /*#__PURE__*/Object.values(defaultEmojiData.emojis).flat();
26787
+ var allEmojisByUnified = {};
26788
+ allEmojis.reduce(function (allEmojis, Emoji) {
26789
+ allEmojis[emojiUnified$1(Emoji)] = Emoji;
26790
+ if (emojiHasVariations$1(Emoji)) {
26791
+ emojiVariations$1(Emoji).forEach(function (variation) {
26792
+ allEmojis[variation] = Emoji;
26793
+ });
26794
+ }
26795
+ return allEmojis;
26796
+ }, allEmojisByUnified);
26755
26797
 
26756
26798
  var SUGGESTED_LS_KEY = 'epr_suggested';
26757
26799
  function getSuggested(mode) {
@@ -26773,8 +26815,8 @@ function getSuggested(mode) {
26773
26815
  }
26774
26816
  function setSuggested(emoji, skinTone) {
26775
26817
  var recent = getSuggested();
26776
- var unified = emojiUnified$1(emoji, skinTone);
26777
- var originalUnified = emojiUnified$1(emoji);
26818
+ var unified = emojiUnified(emoji, skinTone);
26819
+ var originalUnified = emojiUnified(emoji);
26778
26820
  var existing = recent.find(function (_ref) {
26779
26821
  var u = _ref.unified;
26780
26822
  return u === unified;
@@ -26805,99 +26847,14 @@ function setSuggested(emoji, skinTone) {
26805
26847
  }
26806
26848
  }
26807
26849
 
26808
- function emojiNames$1(emoji) {
26809
- var _emoji$EmojiPropertie;
26810
- return (_emoji$EmojiPropertie = emoji[EmojiProperties.name]) != null ? _emoji$EmojiPropertie : [];
26811
- }
26812
- function emojiName$1(emoji) {
26813
- if (!emoji) {
26814
- return '';
26815
- }
26816
- var names = emojiNames$1(emoji);
26817
- return names[names.length - 1];
26818
- }
26819
- function unifiedWithoutSkinTone$1(unified) {
26820
- var splat = unified.split('-');
26821
- var _splat$splice = splat.splice(1, 1),
26822
- skinTone = _splat$splice[0];
26823
- if (skinTonesMapped[skinTone]) {
26824
- return splat.join('-');
26825
- }
26826
- return unified;
26827
- }
26828
- function emojiUnified$1(emoji, skinTone) {
26829
- var _emojiVariationUnifie;
26830
- var unified = emoji[EmojiProperties.unified];
26831
- if (!skinTone || !emojiHasVariations$1(emoji)) {
26832
- return unified;
26833
- }
26834
- return (_emojiVariationUnifie = emojiVariationUnified$1(emoji, skinTone)) != null ? _emojiVariationUnifie : unified;
26835
- }
26836
- function useGetEmojisByCategory() {
26837
- var suggestedEmojisModeConfig = useSuggestedEmojisModeConfig();
26838
- var _useUpdateSuggested = useUpdateSuggested(),
26839
- suggestedUpdated = _useUpdateSuggested[0];
26840
- // Suggestions come from localStorage, which doesn't exist during SSR.
26841
- // Read them only after mount so the first client render matches the server.
26842
- var isMounted = useIsMounted();
26843
- var suggested = React__default.useMemo(function () {
26844
- var _getSuggested;
26845
- if (!isMounted) {
26846
- return [];
26847
- }
26848
- var suggested = (_getSuggested = getSuggested(suggestedEmojisModeConfig)) != null ? _getSuggested : [];
26849
- return suggested.map(function (s) {
26850
- return emojiByUnified(s.unified);
26851
- }).filter(Boolean);
26852
- },
26853
- // eslint-disable-next-line react-hooks/exhaustive-deps
26854
- [isMounted, suggestedUpdated, suggestedEmojisModeConfig]);
26855
- return function getEmojisByCategory(category) {
26856
- var _emojis$emojis$catego;
26857
- if (category === Categories.SUGGESTED) {
26858
- return suggested;
26859
- }
26860
- // @ts-ignore
26861
- return (_emojis$emojis$catego = defaultEmojiData.emojis[category]) != null ? _emojis$emojis$catego : [];
26862
- };
26863
- }
26864
- function emojiVariations$1(emoji) {
26865
- var _emoji$EmojiPropertie2;
26866
- return (_emoji$EmojiPropertie2 = emoji[EmojiProperties.variations]) != null ? _emoji$EmojiPropertie2 : [];
26867
- }
26868
- function emojiHasVariations$1(emoji) {
26869
- return emojiVariations$1(emoji).length > 0;
26870
- }
26871
- function emojiVariationUnified$1(emoji, skinTone) {
26872
- return skinTone ? emojiVariations$1(emoji).find(function (variation) {
26873
- return variation.includes(skinTone);
26874
- }) : emojiUnified$1(emoji);
26875
- }
26876
- function emojiByUnified(unified) {
26877
- if (!unified) {
26878
- return;
26879
- }
26880
- if (allEmojisByUnified[unified]) {
26881
- return allEmojisByUnified[unified];
26882
- }
26883
- var withoutSkinTone = unifiedWithoutSkinTone$1(unified);
26884
- return allEmojisByUnified[withoutSkinTone];
26885
- }
26886
- var allEmojis = /*#__PURE__*/Object.values(defaultEmojiData.emojis).flat();
26887
- var allEmojisByUnified = {};
26888
- allEmojis.reduce(function (allEmojis, Emoji) {
26889
- allEmojis[emojiUnified$1(Emoji)] = Emoji;
26890
- if (emojiHasVariations$1(Emoji)) {
26891
- emojiVariations$1(Emoji).forEach(function (variation) {
26892
- allEmojis[variation] = Emoji;
26893
- });
26894
- }
26895
- return allEmojis;
26896
- }, allEmojisByUnified);
26897
- function activeVariationFromUnified$1(unified) {
26898
- var _unified$split = unified.split('-'),
26899
- suspectedSkinTone = _unified$split[1];
26900
- return skinToneVariations.includes(suspectedSkinTone) ? suspectedSkinTone : null;
26850
+ function useIsMounted() {
26851
+ var _React$useState = useState(false),
26852
+ isMounted = _React$useState[0],
26853
+ setIsMounted = _React$useState[1];
26854
+ useEffect(function () {
26855
+ setIsMounted(true);
26856
+ }, []);
26857
+ return isMounted;
26901
26858
  }
26902
26859
 
26903
26860
  var PickerDataContext = /*#__PURE__*/React__default.createContext({
@@ -26967,7 +26924,7 @@ function PickerDataProvider(_ref) {
26967
26924
  function usePickerDataContext() {
26968
26925
  return React__default.useContext(PickerDataContext);
26969
26926
  }
26970
- function useGetEmojisByCategory$1() {
26927
+ function useGetEmojisByCategory() {
26971
26928
  var _usePickerDataContext = usePickerDataContext(),
26972
26929
  emojiData = _usePickerDataContext.emojiData,
26973
26930
  emojiByUnified = _usePickerDataContext.emojiByUnified;
@@ -28339,7 +28296,7 @@ function useOnFocus() {
28339
28296
  if (!emoji) {
28340
28297
  return;
28341
28298
  }
28342
- if (emojiHasVariations$1(emoji)) {
28299
+ if (emojiHasVariations(emoji)) {
28343
28300
  preloadEmoji(getEmojiUrl, emoji, emojiStyle);
28344
28301
  }
28345
28302
  }
@@ -28816,7 +28773,7 @@ function useMouseDownHandlers(ContainerRef, mouseEventSource) {
28816
28773
  if (!emoji || !unified) {
28817
28774
  return;
28818
28775
  }
28819
- var skinToneToUse = activeVariationFromUnified$1(unified) || activeSkinTone;
28776
+ var skinToneToUse = activeVariationFromUnified(unified) || activeSkinTone;
28820
28777
  updateSuggested();
28821
28778
  setSuggested(emoji, skinToneToUse);
28822
28779
  onEmojiClick(emojiClickOutput(emoji, skinToneToUse, activeEmojiStyle, getEmojiUrl), event);
@@ -28827,7 +28784,7 @@ function useMouseDownHandlers(ContainerRef, mouseEventSource) {
28827
28784
  }
28828
28785
  var _emojiFromEvent2 = emojiFromEvent(event, emojiByUnified),
28829
28786
  emoji = _emojiFromEvent2[0];
28830
- if (!emoji || !emojiHasVariations$1(emoji)) {
28787
+ if (!emoji || !emojiHasVariations(emoji)) {
28831
28788
  return;
28832
28789
  }
28833
28790
  mouseDownTimerRef.current = setTimeout(function () {
@@ -28893,9 +28850,9 @@ function emojiFromEvent(event, lookupEmojiByUnified) {
28893
28850
  return [emoji, unified != null ? unified : resolvedUnified];
28894
28851
  }
28895
28852
  function emojiClickOutput(emoji, activeSkinTone, activeEmojiStyle, getEmojiUrl) {
28896
- var names = emojiNames$1(emoji);
28853
+ var names = emojiNames(emoji);
28897
28854
  if (isCustomEmoji(emoji)) {
28898
- var _unified = emojiUnified$1(emoji);
28855
+ var _unified = emojiUnified(emoji);
28899
28856
  return {
28900
28857
  activeSkinTone: activeSkinTone,
28901
28858
  emoji: _unified,
@@ -28909,7 +28866,7 @@ function emojiClickOutput(emoji, activeSkinTone, activeEmojiStyle, getEmojiUrl)
28909
28866
  unifiedWithoutSkinTone: _unified
28910
28867
  };
28911
28868
  }
28912
- var unified = emojiUnified$1(emoji, activeSkinTone);
28869
+ var unified = emojiUnified(emoji, activeSkinTone);
28913
28870
  return {
28914
28871
  activeSkinTone: activeSkinTone,
28915
28872
  emoji: parseNativeEmoji(unified),
@@ -28923,7 +28880,7 @@ function emojiClickOutput(emoji, activeSkinTone, activeEmojiStyle, getEmojiUrl)
28923
28880
  isCustom: false,
28924
28881
  names: names,
28925
28882
  unified: unified,
28926
- unifiedWithoutSkinTone: emojiUnified$1(emoji)
28883
+ unifiedWithoutSkinTone: emojiUnified(emoji)
28927
28884
  };
28928
28885
  }
28929
28886
 
@@ -29165,13 +29122,13 @@ function ClickableEmoji(_ref) {
29165
29122
  _ref$noBackground = _ref.noBackground,
29166
29123
  noBackground = _ref$noBackground === void 0 ? false : _ref$noBackground,
29167
29124
  style = _ref.style;
29168
- var hasVariations = emojiHasVariations$1(emoji);
29125
+ var hasVariations = emojiHasVariations(emoji);
29169
29126
  return createElement(ClickableEmojiButton, {
29170
29127
  hasVariations: hasVariations,
29171
29128
  showVariations: showVariations,
29172
29129
  hidden: hidden,
29173
29130
  hiddenOnSearch: hiddenOnSearch,
29174
- emojiNames: emojiNames$1(emoji),
29131
+ emojiNames: emojiNames(emoji),
29175
29132
  unified: unified,
29176
29133
  noBackground: noBackground,
29177
29134
  style: style
@@ -29594,7 +29551,7 @@ function MeasureEmoji() {
29594
29551
  }
29595
29552
  var firstCategory = categories[0];
29596
29553
  var dummyEmoji = getEmojisByCategory(categoryFromCategoryConfig(firstCategory))[0];
29597
- var unified = dummyEmoji ? emojiUnified$1(dummyEmoji, activeSkinTone) : '';
29554
+ var unified = dummyEmoji ? emojiUnified(dummyEmoji, activeSkinTone) : '';
29598
29555
  if (!dummyEmoji) {
29599
29556
  return null;
29600
29557
  }
@@ -29628,7 +29585,7 @@ function EmojiList(_ref) {
29628
29585
  categoryHeights = _React$useState[0],
29629
29586
  setCategoryHeights = _React$useState[1];
29630
29587
  var EmojiListRef = useEmojiListRef();
29631
- var getEmojisByCategory = useGetEmojisByCategory$1();
29588
+ var getEmojisByCategory = useGetEmojisByCategory();
29632
29589
  var labelHeight = getLabelHeight(EmojiListRef.current);
29633
29590
  var topOffset = 0;
29634
29591
  return createElement("ul", {
@@ -29641,9 +29598,8 @@ function EmojiList(_ref) {
29641
29598
  if (categoryHeight) {
29642
29599
  topOffset += categoryHeight + labelHeight;
29643
29600
  }
29644
- return createElement(Suspense, {
29645
- key: category
29646
- }, createElement(RenderCategory, {
29601
+ return createElement(RenderCategory, {
29602
+ key: category,
29647
29603
  categoryEmojis: getEmojisByCategory(category),
29648
29604
  categoryConfig: categoryConfig,
29649
29605
  topOffset: currentOffset,
@@ -29656,7 +29612,7 @@ function EmojiList(_ref) {
29656
29612
  }
29657
29613
  },
29658
29614
  scrollTop: scrollTop
29659
- }));
29615
+ });
29660
29616
  }));
29661
29617
  }
29662
29618
  function RenderCategory(_ref2) {
@@ -29715,7 +29671,7 @@ function EmojiVariationPicker() {
29715
29671
  var getPointerStyle = usePointerStyle(VariationPickerRef);
29716
29672
  var getEmojiUrl = useGetEmojiUrlConfig();
29717
29673
  var button = buttonFromTarget(AnchoredEmojiRef.current);
29718
- var visible = Boolean(emoji && button && emojiHasVariations$1(emoji) && button.classList.contains(ClassNames.emojiHasVariations));
29674
+ var visible = Boolean(emoji && button && emojiHasVariations(emoji) && button.classList.contains(ClassNames.emojiHasVariations));
29719
29675
  useEffect(function () {
29720
29676
  if (!visible) {
29721
29677
  return;
@@ -29735,7 +29691,7 @@ function EmojiVariationPicker() {
29735
29691
  style: {
29736
29692
  top: top
29737
29693
  }
29738
- }, visible && emoji ? [emojiUnified$1(emoji)].concat(emojiVariations$1(emoji)).slice(0, 6).map(function (unified) {
29694
+ }, visible && emoji ? [emojiUnified(emoji)].concat(emojiVariations(emoji)).slice(0, 6).map(function (unified) {
29739
29695
  return createElement(ClickableEmoji, {
29740
29696
  key: unified,
29741
29697
  emoji: emoji,
@@ -30251,7 +30207,7 @@ function PreviewBody() {
30251
30207
  if (!defaultEmoji) {
30252
30208
  return null;
30253
30209
  }
30254
- var defaultText = variationPickerEmoji ? emojiName$1(variationPickerEmoji) : previewConfig.defaultCaption;
30210
+ var defaultText = variationPickerEmoji ? emojiName(variationPickerEmoji) : previewConfig.defaultCaption;
30255
30211
  return createElement(Fragment, null, createElement("div", null, show ? createElement(ViewOnlyEmoji, {
30256
30212
  unified: previewEmoji == null ? void 0 : previewEmoji.unified,
30257
30213
  emoji: emoji,
@@ -30260,7 +30216,7 @@ function PreviewBody() {
30260
30216
  getEmojiUrl: getEmojiUrl,
30261
30217
  className: cx(styles$e.emoji)
30262
30218
  }) : defaultEmoji ? createElement(ViewOnlyEmoji, {
30263
- unified: emojiUnified$1(defaultEmoji),
30219
+ unified: emojiUnified(defaultEmoji),
30264
30220
  emoji: defaultEmoji,
30265
30221
  emojiStyle: emojiStyle,
30266
30222
  size: 45,
@@ -30268,7 +30224,7 @@ function PreviewBody() {
30268
30224
  className: cx(styles$e.emoji)
30269
30225
  }) : null), createElement("div", {
30270
30226
  className: cx(styles$e.label)
30271
- }, show ? emojiName$1(emoji) : defaultText));
30227
+ }, show ? emojiName(emoji) : defaultText));
30272
30228
  }
30273
30229
  }
30274
30230
  var styles$e = /*#__PURE__*/stylesheet.create({