emoji-picker-react 4.1.0 → 4.2.0

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 (33) hide show
  1. package/README.md +25 -21
  2. package/dist/DomUtils/classNames.d.ts +3 -1
  3. package/dist/components/emoji/Emoji.d.ts +4 -2
  4. package/dist/components/emoji/ExportedEmoji.d.ts +3 -1
  5. package/dist/config/cdnUrls.d.ts +1 -1
  6. package/dist/config/config.d.ts +2 -0
  7. package/dist/config/useConfig.d.ts +1 -0
  8. package/dist/dataUtils/emojiSelectors.d.ts +1 -2
  9. package/dist/emoji-picker-react.cjs.development.js +295 -259
  10. package/dist/emoji-picker-react.cjs.development.js.map +1 -1
  11. package/dist/emoji-picker-react.cjs.production.min.js +1 -1
  12. package/dist/emoji-picker-react.cjs.production.min.js.map +1 -1
  13. package/dist/emoji-picker-react.esm.js +295 -259
  14. package/dist/emoji-picker-react.esm.js.map +1 -1
  15. package/dist/hooks/preloadEmoji.d.ts +2 -1
  16. package/package.json +1 -1
  17. package/src/DomUtils/classNames.ts +4 -2
  18. package/src/components/body/EmojiList.tsx +5 -1
  19. package/src/components/body/EmojiVariationPicker.tsx +13 -8
  20. package/src/components/body/Suggested.tsx +5 -2
  21. package/src/components/emoji/Emoji.tsx +17 -8
  22. package/src/components/emoji/ExportedEmoji.tsx +5 -2
  23. package/src/components/footer/Preview.tsx +9 -2
  24. package/src/components/header/Search.tsx +29 -10
  25. package/src/components/main/PickerMain.tsx +3 -3
  26. package/src/config/cdnUrls.ts +1 -1
  27. package/src/config/config.ts +4 -0
  28. package/src/config/useConfig.ts +8 -0
  29. package/src/dataUtils/emojiSelectors.ts +3 -10
  30. package/src/hooks/preloadEmoji.ts +5 -7
  31. package/src/hooks/useFilter.ts +8 -8
  32. package/src/hooks/useMouseDownHandlers.ts +19 -13
  33. package/src/hooks/useOnFocus.ts +4 -3
@@ -15,7 +15,9 @@ var ClassNames;
15
15
  ClassNames["categoryContent"] = "epr-emoji-category-content";
16
16
  ClassNames["emojiHasVariatios"] = "epr-emoji-has-variations";
17
17
  ClassNames["scrollBody"] = "epr-body";
18
+ ClassNames["emojiList"] = "epr-emoji-list";
18
19
  ClassNames["external"] = "__EmojiPicker__";
20
+ ClassNames["emojiPicker"] = "EmojiPickerReact";
19
21
  })(ClassNames || (ClassNames = {}));
20
22
 
21
23
  function asSelectors() {
@@ -234,238 +236,6 @@ var Categories;
234
236
  Categories["FLAGS"] = "flags";
235
237
  })(Categories || (Categories = {}));
236
238
 
237
- var _configByCategory;
238
- var categoriesOrdered = [Categories.SUGGESTED, Categories.SMILEYS_PEOPLE, Categories.ANIMALS_NATURE, Categories.FOOD_DRINK, Categories.TRAVEL_PLACES, Categories.ACTIVITIES, Categories.OBJECTS, Categories.SYMBOLS, Categories.FLAGS];
239
- var SuggestedRecent = {
240
- name: 'Recently Used',
241
- category: Categories.SUGGESTED
242
- };
243
- var configByCategory = (_configByCategory = {}, _configByCategory[Categories.SUGGESTED] = {
244
- category: Categories.SUGGESTED,
245
- name: 'Frequently Used'
246
- }, _configByCategory[Categories.SMILEYS_PEOPLE] = {
247
- category: Categories.SMILEYS_PEOPLE,
248
- name: 'Smileys & People'
249
- }, _configByCategory[Categories.ANIMALS_NATURE] = {
250
- category: Categories.ANIMALS_NATURE,
251
- name: 'Animals & Nature'
252
- }, _configByCategory[Categories.FOOD_DRINK] = {
253
- category: Categories.FOOD_DRINK,
254
- name: 'Food & Drink'
255
- }, _configByCategory[Categories.TRAVEL_PLACES] = {
256
- category: Categories.TRAVEL_PLACES,
257
- name: 'Travel & Places'
258
- }, _configByCategory[Categories.ACTIVITIES] = {
259
- category: Categories.ACTIVITIES,
260
- name: 'Activities'
261
- }, _configByCategory[Categories.OBJECTS] = {
262
- category: Categories.OBJECTS,
263
- name: 'Objects'
264
- }, _configByCategory[Categories.SYMBOLS] = {
265
- category: Categories.SYMBOLS,
266
- name: 'Symbols'
267
- }, _configByCategory[Categories.FLAGS] = {
268
- category: Categories.FLAGS,
269
- name: 'Flags'
270
- }, _configByCategory);
271
- function baseCategoriesConfig(modifiers) {
272
- return categoriesOrdered.map(function (category) {
273
- return _extends({}, configByCategory[category], modifiers && modifiers[category] && modifiers[category]);
274
- });
275
- }
276
- function categoryFromCategoryConfig(category) {
277
- return category.category;
278
- }
279
- function categoryNameFromCategoryConfig(category) {
280
- return category.name;
281
- }
282
- function mergeCategoriesConfig(userCategoriesConfig, modifiers) {
283
- var _userCategoriesConfig;
284
-
285
- if (userCategoriesConfig === void 0) {
286
- userCategoriesConfig = [];
287
- }
288
-
289
- if (modifiers === void 0) {
290
- modifiers = {};
291
- }
292
-
293
- var extra = {};
294
-
295
- if (modifiers.suggestionMode === SuggestionMode.RECENT) {
296
- extra[Categories.SUGGESTED] = SuggestedRecent;
297
- }
298
-
299
- var base = baseCategoriesConfig(extra);
300
-
301
- if (!((_userCategoriesConfig = userCategoriesConfig) != null && _userCategoriesConfig.length)) {
302
- return base;
303
- }
304
-
305
- return userCategoriesConfig.map(function (category) {
306
- if (typeof category === 'string') {
307
- return getBaseConfigByCategory(category, extra[category]);
308
- }
309
-
310
- return _extends({}, getBaseConfigByCategory(category.category, extra[category.category]), category);
311
- });
312
- }
313
-
314
- function getBaseConfigByCategory(category, modifier) {
315
- if (modifier === void 0) {
316
- modifier = {};
317
- }
318
-
319
- return Object.assign(configByCategory[category], modifier);
320
- }
321
-
322
- function mergeConfig(userConfig) {
323
- var _userConfig$previewCo;
324
-
325
- if (userConfig === void 0) {
326
- userConfig = {};
327
- }
328
-
329
- var base = basePickerConfig();
330
- var previewConfig = Object.assign(base.previewConfig, (_userConfig$previewCo = userConfig.previewConfig) != null ? _userConfig$previewCo : {});
331
- var config = Object.assign(base, userConfig);
332
- var categories = mergeCategoriesConfig(userConfig.categories, {
333
- suggestionMode: config.suggestedEmojisMode
334
- });
335
- return _extends({}, config, {
336
- categories: categories,
337
- previewConfig: previewConfig
338
- });
339
- }
340
- function basePickerConfig() {
341
- return {
342
- autoFocusSearch: true,
343
- categories: baseCategoriesConfig(),
344
- defaultSkinTone: SkinTones.NEUTRAL,
345
- emojiStyle: EmojiStyle.APPLE,
346
- emojiVersion: null,
347
- height: 450,
348
- lazyLoadEmojis: false,
349
- onEmojiClick: function defaultOnClickHandler( // @ts-ignore
350
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
351
- emoji, // @ts-ignore
352
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
353
- event) {},
354
- previewConfig: _extends({}, basePreviewConfig),
355
- searchPlaceHolder: 'Search',
356
- skinTonesDisabled: false,
357
- suggestedEmojisMode: SuggestionMode.FREQUENT,
358
- theme: Theme.LIGHT,
359
- width: 350
360
- };
361
- }
362
- var basePreviewConfig = {
363
- defaultEmoji: '1f60a',
364
- defaultCaption: "What's your mood?",
365
- showPreview: true
366
- };
367
-
368
- var _excluded = ["children"];
369
- var ConfigContext = /*#__PURE__*/createContext( /*#__PURE__*/basePickerConfig());
370
- function PickerConfigProvider(_ref) {
371
- var children = _ref.children,
372
- config = _objectWithoutPropertiesLoose(_ref, _excluded);
373
-
374
- return createElement(ConfigContext.Provider, {
375
- value: mergeConfig(config)
376
- }, children);
377
- }
378
- function usePickerConfig() {
379
- return useContext(ConfigContext);
380
- }
381
-
382
- function useSearchPlaceHolderConfig() {
383
- var _usePickerConfig = usePickerConfig(),
384
- searchPlaceHolder = _usePickerConfig.searchPlaceHolder;
385
-
386
- return searchPlaceHolder;
387
- }
388
- function useDefaultSkinToneConfig() {
389
- var _usePickerConfig2 = usePickerConfig(),
390
- defaultSkinTone = _usePickerConfig2.defaultSkinTone;
391
-
392
- return defaultSkinTone;
393
- }
394
- function useSkinTonesDisabledConfig() {
395
- var _usePickerConfig3 = usePickerConfig(),
396
- skinTonesDisabled = _usePickerConfig3.skinTonesDisabled;
397
-
398
- return skinTonesDisabled;
399
- }
400
- function useEmojiStyleConfig() {
401
- var _usePickerConfig4 = usePickerConfig(),
402
- emojiStyle = _usePickerConfig4.emojiStyle;
403
-
404
- return emojiStyle;
405
- }
406
- function useAutoFocusSearchConfig() {
407
- var _usePickerConfig5 = usePickerConfig(),
408
- autoFocusSearch = _usePickerConfig5.autoFocusSearch;
409
-
410
- return autoFocusSearch;
411
- }
412
- function useCategoriesConfig() {
413
- var _usePickerConfig6 = usePickerConfig(),
414
- categories = _usePickerConfig6.categories;
415
-
416
- return categories;
417
- }
418
- function useOnEmojiClickConfig() {
419
- var _usePickerConfig7 = usePickerConfig(),
420
- onEmojiClick = _usePickerConfig7.onEmojiClick;
421
-
422
- return onEmojiClick;
423
- }
424
- function usePreviewConfig() {
425
- var _usePickerConfig8 = usePickerConfig(),
426
- previewConfig = _usePickerConfig8.previewConfig;
427
-
428
- return previewConfig;
429
- }
430
- function useThemeConfig() {
431
- var _usePickerConfig9 = usePickerConfig(),
432
- theme = _usePickerConfig9.theme;
433
-
434
- if (theme === Theme.AUTO) {
435
- return isSystemDarkTheme() ? Theme.DARK : Theme.LIGHT;
436
- }
437
-
438
- return theme;
439
- }
440
- function useSuggestedEmojisModeConfig() {
441
- var _usePickerConfig10 = usePickerConfig(),
442
- suggestedEmojisMode = _usePickerConfig10.suggestedEmojisMode;
443
-
444
- return suggestedEmojisMode;
445
- }
446
- function useLazyLoadEmojisConfig() {
447
- var _usePickerConfig11 = usePickerConfig(),
448
- lazyLoadEmojis = _usePickerConfig11.lazyLoadEmojis;
449
-
450
- return lazyLoadEmojis;
451
- }
452
- function usePickerSizeConfig() {
453
- var _usePickerConfig12 = usePickerConfig(),
454
- height = _usePickerConfig12.height,
455
- width = _usePickerConfig12.width;
456
-
457
- return {
458
- height: height,
459
- width: width
460
- };
461
- }
462
- function useEmojiVersionConfig() {
463
- var _usePickerConfig13 = usePickerConfig(),
464
- emojiVersion = _usePickerConfig13.emojiVersion;
465
-
466
- return emojiVersion;
467
- }
468
-
469
239
  var CDN_URL_APPLE = 'https://cdn.jsdelivr.net/npm/emoji-datasource-apple/img/apple/64/';
470
240
  var CDN_URL_FACEBOOK = 'https://cdn.jsdelivr.net/npm/emoji-datasource-facebook/img/facebook/64/';
471
241
  var CDN_URL_TWITTER = 'https://cdn.jsdelivr.net/npm/emoji-datasource-twitter/img/twitter/64/';
@@ -16868,8 +16638,9 @@ function emojisByCategory(category) {
16868
16638
 
16869
16639
  // @ts-ignore
16870
16640
  return (_emojis$category = emojis == null ? void 0 : emojis[category]) != null ? _emojis$category : [];
16871
- }
16872
- function emojiUrlByUnified(emojiStyle, unified) {
16641
+ } // WARNING: DO NOT USE DIRECTLY
16642
+
16643
+ function emojiUrlByUnified(unified, emojiStyle) {
16873
16644
  return "" + cdnUrl(emojiStyle) + unified + ".png";
16874
16645
  }
16875
16646
  function emojiVariations(emoji) {
@@ -16912,6 +16683,245 @@ function activeVariationFromUnified(unified) {
16912
16683
  return skinToneVariations.includes(suspectedSkinTone) ? suspectedSkinTone : null;
16913
16684
  }
16914
16685
 
16686
+ var _configByCategory;
16687
+ var categoriesOrdered = [Categories.SUGGESTED, Categories.SMILEYS_PEOPLE, Categories.ANIMALS_NATURE, Categories.FOOD_DRINK, Categories.TRAVEL_PLACES, Categories.ACTIVITIES, Categories.OBJECTS, Categories.SYMBOLS, Categories.FLAGS];
16688
+ var SuggestedRecent = {
16689
+ name: 'Recently Used',
16690
+ category: Categories.SUGGESTED
16691
+ };
16692
+ var configByCategory = (_configByCategory = {}, _configByCategory[Categories.SUGGESTED] = {
16693
+ category: Categories.SUGGESTED,
16694
+ name: 'Frequently Used'
16695
+ }, _configByCategory[Categories.SMILEYS_PEOPLE] = {
16696
+ category: Categories.SMILEYS_PEOPLE,
16697
+ name: 'Smileys & People'
16698
+ }, _configByCategory[Categories.ANIMALS_NATURE] = {
16699
+ category: Categories.ANIMALS_NATURE,
16700
+ name: 'Animals & Nature'
16701
+ }, _configByCategory[Categories.FOOD_DRINK] = {
16702
+ category: Categories.FOOD_DRINK,
16703
+ name: 'Food & Drink'
16704
+ }, _configByCategory[Categories.TRAVEL_PLACES] = {
16705
+ category: Categories.TRAVEL_PLACES,
16706
+ name: 'Travel & Places'
16707
+ }, _configByCategory[Categories.ACTIVITIES] = {
16708
+ category: Categories.ACTIVITIES,
16709
+ name: 'Activities'
16710
+ }, _configByCategory[Categories.OBJECTS] = {
16711
+ category: Categories.OBJECTS,
16712
+ name: 'Objects'
16713
+ }, _configByCategory[Categories.SYMBOLS] = {
16714
+ category: Categories.SYMBOLS,
16715
+ name: 'Symbols'
16716
+ }, _configByCategory[Categories.FLAGS] = {
16717
+ category: Categories.FLAGS,
16718
+ name: 'Flags'
16719
+ }, _configByCategory);
16720
+ function baseCategoriesConfig(modifiers) {
16721
+ return categoriesOrdered.map(function (category) {
16722
+ return _extends({}, configByCategory[category], modifiers && modifiers[category] && modifiers[category]);
16723
+ });
16724
+ }
16725
+ function categoryFromCategoryConfig(category) {
16726
+ return category.category;
16727
+ }
16728
+ function categoryNameFromCategoryConfig(category) {
16729
+ return category.name;
16730
+ }
16731
+ function mergeCategoriesConfig(userCategoriesConfig, modifiers) {
16732
+ var _userCategoriesConfig;
16733
+
16734
+ if (userCategoriesConfig === void 0) {
16735
+ userCategoriesConfig = [];
16736
+ }
16737
+
16738
+ if (modifiers === void 0) {
16739
+ modifiers = {};
16740
+ }
16741
+
16742
+ var extra = {};
16743
+
16744
+ if (modifiers.suggestionMode === SuggestionMode.RECENT) {
16745
+ extra[Categories.SUGGESTED] = SuggestedRecent;
16746
+ }
16747
+
16748
+ var base = baseCategoriesConfig(extra);
16749
+
16750
+ if (!((_userCategoriesConfig = userCategoriesConfig) != null && _userCategoriesConfig.length)) {
16751
+ return base;
16752
+ }
16753
+
16754
+ return userCategoriesConfig.map(function (category) {
16755
+ if (typeof category === 'string') {
16756
+ return getBaseConfigByCategory(category, extra[category]);
16757
+ }
16758
+
16759
+ return _extends({}, getBaseConfigByCategory(category.category, extra[category.category]), category);
16760
+ });
16761
+ }
16762
+
16763
+ function getBaseConfigByCategory(category, modifier) {
16764
+ if (modifier === void 0) {
16765
+ modifier = {};
16766
+ }
16767
+
16768
+ return Object.assign(configByCategory[category], modifier);
16769
+ }
16770
+
16771
+ function mergeConfig(userConfig) {
16772
+ var _userConfig$previewCo;
16773
+
16774
+ if (userConfig === void 0) {
16775
+ userConfig = {};
16776
+ }
16777
+
16778
+ var base = basePickerConfig();
16779
+ var previewConfig = Object.assign(base.previewConfig, (_userConfig$previewCo = userConfig.previewConfig) != null ? _userConfig$previewCo : {});
16780
+ var config = Object.assign(base, userConfig);
16781
+ var categories = mergeCategoriesConfig(userConfig.categories, {
16782
+ suggestionMode: config.suggestedEmojisMode
16783
+ });
16784
+ return _extends({}, config, {
16785
+ categories: categories,
16786
+ previewConfig: previewConfig
16787
+ });
16788
+ }
16789
+ function basePickerConfig() {
16790
+ return {
16791
+ autoFocusSearch: true,
16792
+ categories: baseCategoriesConfig(),
16793
+ defaultSkinTone: SkinTones.NEUTRAL,
16794
+ emojiStyle: EmojiStyle.APPLE,
16795
+ emojiVersion: null,
16796
+ getEmojiUrl: emojiUrlByUnified,
16797
+ height: 450,
16798
+ lazyLoadEmojis: false,
16799
+ onEmojiClick: function defaultOnClickHandler( // @ts-ignore
16800
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
16801
+ emoji, // @ts-ignore
16802
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
16803
+ event) {},
16804
+ previewConfig: _extends({}, basePreviewConfig),
16805
+ searchPlaceHolder: 'Search',
16806
+ skinTonesDisabled: false,
16807
+ suggestedEmojisMode: SuggestionMode.FREQUENT,
16808
+ theme: Theme.LIGHT,
16809
+ width: 350
16810
+ };
16811
+ }
16812
+ var basePreviewConfig = {
16813
+ defaultEmoji: '1f60a',
16814
+ defaultCaption: "What's your mood?",
16815
+ showPreview: true
16816
+ };
16817
+
16818
+ var _excluded = ["children"];
16819
+ var ConfigContext = /*#__PURE__*/createContext( /*#__PURE__*/basePickerConfig());
16820
+ function PickerConfigProvider(_ref) {
16821
+ var children = _ref.children,
16822
+ config = _objectWithoutPropertiesLoose(_ref, _excluded);
16823
+
16824
+ return createElement(ConfigContext.Provider, {
16825
+ value: mergeConfig(config)
16826
+ }, children);
16827
+ }
16828
+ function usePickerConfig() {
16829
+ return useContext(ConfigContext);
16830
+ }
16831
+
16832
+ function useSearchPlaceHolderConfig() {
16833
+ var _usePickerConfig = usePickerConfig(),
16834
+ searchPlaceHolder = _usePickerConfig.searchPlaceHolder;
16835
+
16836
+ return searchPlaceHolder;
16837
+ }
16838
+ function useDefaultSkinToneConfig() {
16839
+ var _usePickerConfig2 = usePickerConfig(),
16840
+ defaultSkinTone = _usePickerConfig2.defaultSkinTone;
16841
+
16842
+ return defaultSkinTone;
16843
+ }
16844
+ function useSkinTonesDisabledConfig() {
16845
+ var _usePickerConfig3 = usePickerConfig(),
16846
+ skinTonesDisabled = _usePickerConfig3.skinTonesDisabled;
16847
+
16848
+ return skinTonesDisabled;
16849
+ }
16850
+ function useEmojiStyleConfig() {
16851
+ var _usePickerConfig4 = usePickerConfig(),
16852
+ emojiStyle = _usePickerConfig4.emojiStyle;
16853
+
16854
+ return emojiStyle;
16855
+ }
16856
+ function useAutoFocusSearchConfig() {
16857
+ var _usePickerConfig5 = usePickerConfig(),
16858
+ autoFocusSearch = _usePickerConfig5.autoFocusSearch;
16859
+
16860
+ return autoFocusSearch;
16861
+ }
16862
+ function useCategoriesConfig() {
16863
+ var _usePickerConfig6 = usePickerConfig(),
16864
+ categories = _usePickerConfig6.categories;
16865
+
16866
+ return categories;
16867
+ }
16868
+ function useOnEmojiClickConfig() {
16869
+ var _usePickerConfig7 = usePickerConfig(),
16870
+ onEmojiClick = _usePickerConfig7.onEmojiClick;
16871
+
16872
+ return onEmojiClick;
16873
+ }
16874
+ function usePreviewConfig() {
16875
+ var _usePickerConfig8 = usePickerConfig(),
16876
+ previewConfig = _usePickerConfig8.previewConfig;
16877
+
16878
+ return previewConfig;
16879
+ }
16880
+ function useThemeConfig() {
16881
+ var _usePickerConfig9 = usePickerConfig(),
16882
+ theme = _usePickerConfig9.theme;
16883
+
16884
+ if (theme === Theme.AUTO) {
16885
+ return isSystemDarkTheme() ? Theme.DARK : Theme.LIGHT;
16886
+ }
16887
+
16888
+ return theme;
16889
+ }
16890
+ function useSuggestedEmojisModeConfig() {
16891
+ var _usePickerConfig10 = usePickerConfig(),
16892
+ suggestedEmojisMode = _usePickerConfig10.suggestedEmojisMode;
16893
+
16894
+ return suggestedEmojisMode;
16895
+ }
16896
+ function useLazyLoadEmojisConfig() {
16897
+ var _usePickerConfig11 = usePickerConfig(),
16898
+ lazyLoadEmojis = _usePickerConfig11.lazyLoadEmojis;
16899
+
16900
+ return lazyLoadEmojis;
16901
+ }
16902
+ function usePickerSizeConfig() {
16903
+ var _usePickerConfig12 = usePickerConfig(),
16904
+ height = _usePickerConfig12.height,
16905
+ width = _usePickerConfig12.width;
16906
+
16907
+ return {
16908
+ height: height,
16909
+ width: width
16910
+ };
16911
+ }
16912
+ function useEmojiVersionConfig() {
16913
+ var _usePickerConfig13 = usePickerConfig(),
16914
+ emojiVersion = _usePickerConfig13.emojiVersion;
16915
+
16916
+ return emojiVersion;
16917
+ }
16918
+ function useGetEmojiUrlConfig() {
16919
+ var _usePickerConfig14 = usePickerConfig(),
16920
+ getEmojiUrl = _usePickerConfig14.getEmojiUrl;
16921
+
16922
+ return getEmojiUrl;
16923
+ }
16924
+
16915
16925
  var alphaNumericEmojiIndex = {};
16916
16926
  setTimeout(function () {
16917
16927
  allEmojis.reduce(function (searchIndex, emoji) {
@@ -17821,6 +17831,7 @@ function useMouseDownHandlers(BodyRef) {
17821
17831
  var _useUpdateSuggested = useUpdateSuggested(),
17822
17832
  updateSuggested = _useUpdateSuggested[1];
17823
17833
 
17834
+ var getEmojiUrl = useGetEmojiUrlConfig();
17824
17835
  var onClick = useCallback(function onClick(event) {
17825
17836
  if (disallowClickRef.current) {
17826
17837
  return;
@@ -17839,8 +17850,8 @@ function useMouseDownHandlers(BodyRef) {
17839
17850
  var skinToneToUse = activeVariationFromUnified(unified) || activeSkinTone;
17840
17851
  updateSuggested();
17841
17852
  setsuggested(emoji, skinToneToUse);
17842
- onEmojiClick(emojiClickOutput(emoji, skinToneToUse), event);
17843
- }, [activeSkinTone, closeAllOpenToggles, disallowClickRef, onEmojiClick, updateSuggested]);
17853
+ onEmojiClick(emojiClickOutput(emoji, skinToneToUse, getEmojiUrl), event);
17854
+ }, [activeSkinTone, closeAllOpenToggles, disallowClickRef, onEmojiClick, updateSuggested, getEmojiUrl]);
17844
17855
  var onMouseDown = useCallback(function onMouseDown(event) {
17845
17856
  var _window;
17846
17857
 
@@ -17911,13 +17922,13 @@ function emojiFromEvent(event) {
17911
17922
  return emojiFromElement(target);
17912
17923
  }
17913
17924
 
17914
- function emojiClickOutput(emoji, activeSkinTone) {
17925
+ function emojiClickOutput(emoji, activeSkinTone, getEmojiUrl) {
17915
17926
  var unified = emojiUnified(emoji, activeSkinTone);
17916
17927
  return {
17917
17928
  activeSkinTone: activeSkinTone,
17918
17929
  emoji: parseNativeEmoji(unified),
17919
17930
  getImageUrl: function getImageUrl(emojiStyle) {
17920
- return emojiUrlByUnified(emojiStyle, unified);
17931
+ return getEmojiUrl(unified, emojiStyle);
17921
17932
  },
17922
17933
  names: emojiNames(emoji),
17923
17934
  unified: unified,
@@ -18207,7 +18218,8 @@ function ClickableEmoji(_ref) {
18207
18218
  _ref$showVariations = _ref.showVariations,
18208
18219
  showVariations = _ref$showVariations === void 0 ? true : _ref$showVariations,
18209
18220
  size = _ref.size,
18210
- lazyLoad = _ref.lazyLoad;
18221
+ lazyLoad = _ref.lazyLoad,
18222
+ getEmojiUrl = _ref.getEmojiUrl;
18211
18223
  var hasVariations = emojiHasVariations(emoji);
18212
18224
  return createElement(Button, {
18213
18225
  className: clsx(ClassNames.emoji, (_clsx = {}, _clsx[ClassNames.hidden] = hidden, _clsx[ClassNames.hiddenOnSearch] = hiddenOnSearch, _clsx[ClassNames.visible] = !hidden && !hiddenOnSearch, _clsx[ClassNames.emojiHasVariatios] = hasVariations && showVariations, _clsx)),
@@ -18219,7 +18231,8 @@ function ClickableEmoji(_ref) {
18219
18231
  emoji: emoji,
18220
18232
  size: size,
18221
18233
  emojiStyle: emojiStyle,
18222
- lazyLoad: lazyLoad
18234
+ lazyLoad: lazyLoad,
18235
+ getEmojiUrl: getEmojiUrl
18223
18236
  }));
18224
18237
  }
18225
18238
  function ViewOnlyEmoji(_ref2) {
@@ -18227,7 +18240,9 @@ function ViewOnlyEmoji(_ref2) {
18227
18240
  unified = _ref2.unified,
18228
18241
  emojiStyle = _ref2.emojiStyle,
18229
18242
  size = _ref2.size,
18230
- lazyLoad = _ref2.lazyLoad;
18243
+ lazyLoad = _ref2.lazyLoad,
18244
+ _ref2$getEmojiUrl = _ref2.getEmojiUrl,
18245
+ getEmojiUrl = _ref2$getEmojiUrl === void 0 ? emojiUrlByUnified : _ref2$getEmojiUrl;
18231
18246
  var style = {};
18232
18247
 
18233
18248
  if (size) {
@@ -18243,7 +18258,8 @@ function ViewOnlyEmoji(_ref2) {
18243
18258
  style: style,
18244
18259
  emoji: asEmoji(emojiToRender),
18245
18260
  emojiStyle: emojiStyle,
18246
- lazyLoad: lazyLoad
18261
+ lazyLoad: lazyLoad,
18262
+ getEmojiUrl: getEmojiUrl
18247
18263
  }));
18248
18264
  }
18249
18265
 
@@ -18263,13 +18279,14 @@ function EmojiImg(_ref4) {
18263
18279
  emojiStyle = _ref4.emojiStyle,
18264
18280
  style = _ref4.style,
18265
18281
  _ref4$lazyLoad = _ref4.lazyLoad,
18266
- lazyLoad = _ref4$lazyLoad === void 0 ? false : _ref4$lazyLoad;
18282
+ lazyLoad = _ref4$lazyLoad === void 0 ? false : _ref4$lazyLoad,
18283
+ getEmojiUrl = _ref4.getEmojiUrl;
18267
18284
 
18268
18285
  var _useEmojisThatFailedT = useEmojisThatFailedToLoadState(),
18269
18286
  setEmojisThatFailedToLoad = _useEmojisThatFailedT[1];
18270
18287
 
18271
18288
  return createElement("img", {
18272
- src: emojiUrlByUnified(emojiStyle, unified),
18289
+ src: getEmojiUrl(unified, emojiStyle),
18273
18290
  alt: emojiName(emoji),
18274
18291
  className: clsx(ClassNames.external, 'epr-emoji-img'),
18275
18292
  loading: lazyLoad ? 'lazy' : 'eager',
@@ -18314,6 +18331,7 @@ function Suggested(_ref) {
18314
18331
  suggestedUpdated = _useUpdateSuggested[0];
18315
18332
 
18316
18333
  var suggestedEmojisModeConfig = useSuggestedEmojisModeConfig();
18334
+ var getEmojiUrl = useGetEmojiUrlConfig();
18317
18335
  var suggested = useMemo(function () {
18318
18336
  var _getsuggested;
18319
18337
 
@@ -18337,7 +18355,8 @@ function Suggested(_ref) {
18337
18355
  unified: suggestedItem.unified,
18338
18356
  emojiStyle: emojiStyle,
18339
18357
  emoji: emoji,
18340
- key: suggestedItem.unified
18358
+ key: suggestedItem.unified,
18359
+ getEmojiUrl: getEmojiUrl
18341
18360
  });
18342
18361
  }));
18343
18362
  }
@@ -18348,7 +18367,7 @@ styleInject(css_248z$2);
18348
18367
  function EmojiList() {
18349
18368
  var categories = useCategoriesConfig();
18350
18369
  return createElement("ul", {
18351
- className: "epr-emoji-list"
18370
+ className: ClassNames.emojiList
18352
18371
  }, categories.map(function (categoryConfig, index) {
18353
18372
  var category = categoryFromCategoryConfig(categoryConfig);
18354
18373
 
@@ -18380,7 +18399,8 @@ function RenderCategory(_ref) {
18380
18399
  var _useActiveSkinToneSta = useActiveSkinToneState(),
18381
18400
  activeSkinTone = _useActiveSkinToneSta[0];
18382
18401
 
18383
- var disallowedEmojisRef = useDisallowedEmojisRef(); // Small trick to defer the rendering of all emoji categories until the first category is visible
18402
+ var disallowedEmojisRef = useDisallowedEmojisRef();
18403
+ var getEmojiUrl = useGetEmojiUrlConfig(); // Small trick to defer the rendering of all emoji categories until the first category is visible
18384
18404
  // This way the user gets to actually see something and not wait for the whole picker to render.
18385
18405
 
18386
18406
  var emojisToPush = !isPastInitialLoad && index > 1 ? [] : emojisByCategory(category);
@@ -18410,7 +18430,8 @@ function RenderCategory(_ref) {
18410
18430
  hidden: failedToLoad,
18411
18431
  hiddenOnSearch: filteredOut,
18412
18432
  emojiStyle: emojiStyle,
18413
- lazyLoad: lazyLoadEmojis
18433
+ lazyLoad: lazyLoadEmojis,
18434
+ getEmojiUrl: getEmojiUrl
18414
18435
  });
18415
18436
  });
18416
18437
  return createElement(EmojiCategory, {
@@ -18446,6 +18467,7 @@ function EmojiVariationPicker() {
18446
18467
 
18447
18468
  var setAnchoredEmojiRef = useSetAnchoredEmojiRef();
18448
18469
  var getPointerStyle = usePointerStyle(VariationPickerRef);
18470
+ var getEmojiUrl = useGetEmojiUrlConfig();
18449
18471
  var button = buttonFromTarget(AnchoredEmojiRef.current);
18450
18472
  var visible = emoji && button && emojiHasVariations(emoji) && button.classList.contains(ClassNames.emojiHasVariatios);
18451
18473
  var top, pointerStyle;
@@ -18474,7 +18496,8 @@ function EmojiVariationPicker() {
18474
18496
  emoji: safeEmoji,
18475
18497
  unified: unified,
18476
18498
  emojiStyle: emojiStyle,
18477
- showVariations: false
18499
+ showVariations: false,
18500
+ getEmojiUrl: getEmojiUrl
18478
18501
  });
18479
18502
  }) : null, createElement("div", {
18480
18503
  className: "epr-emoji-pointer",
@@ -18681,6 +18704,7 @@ function Preview() {
18681
18704
  var _useEmojiVariationPic = useEmojiVariationPickerState(),
18682
18705
  variationPickerEmoji = _useEmojiVariationPic[0];
18683
18706
 
18707
+ var getEmojiUrl = useGetEmojiUrlConfig();
18684
18708
  useEmojiPreviewEvents(previewConfig.showPreview, setPreviewEmoji);
18685
18709
 
18686
18710
  if (!previewConfig.showPreview) {
@@ -18700,12 +18724,14 @@ function Preview() {
18700
18724
  unified: previewEmoji == null ? void 0 : previewEmoji.unified,
18701
18725
  emoji: asEmoji(emoji),
18702
18726
  emojiStyle: emojiStyle,
18703
- size: 45
18727
+ size: 45,
18728
+ getEmojiUrl: getEmojiUrl
18704
18729
  }) : defaultEmoji ? createElement(ViewOnlyEmoji, {
18705
18730
  unified: emojiUnified(defaultEmoji),
18706
18731
  emoji: defaultEmoji,
18707
18732
  emojiStyle: emojiStyle,
18708
- size: 45
18733
+ size: 45,
18734
+ getEmojiUrl: getEmojiUrl
18709
18735
  }) : null), show ? createElement("div", {
18710
18736
  className: "epr-preview-emoji-label"
18711
18737
  }, emojiName(asEmoji(emoji))) : createElement("div", {
@@ -18885,10 +18911,17 @@ function Search() {
18885
18911
  className: "epr-icn-clear-search"
18886
18912
  })));
18887
18913
  }
18914
+ var CSS_SEARCH_SELECTOR = /*#__PURE__*/asSelectors(ClassNames.emojiPicker) + " " + /*#__PURE__*/asSelectors(ClassNames.emojiList);
18888
18915
 
18889
18916
  function CssSearch(_ref) {
18890
18917
  var value = _ref.value;
18891
- return value ? createElement("style", null, "\n .EmojiPickerReact button.epr-emoji:not([data-full-name*=\"" + getNormalizedSearchTerm(value) + "\"]) {\n display: none;\n }\n ") : null;
18918
+
18919
+ if (!value) {
18920
+ return null;
18921
+ }
18922
+
18923
+ var searchQuery = "button[data-full-name*=\"" + getNormalizedSearchTerm(value) + "\"]";
18924
+ return createElement("style", null, "\n " + CSS_SEARCH_SELECTOR + " " + asSelectors(ClassNames.category) + ":not(:has(" + searchQuery + ")) {\n display: none;\n }\n\n " + CSS_SEARCH_SELECTOR + " button" + asSelectors(ClassNames.emoji) + ":not(" + searchQuery + ") {\n display: none;\n }\n ");
18892
18925
  }
18893
18926
 
18894
18927
  var css_248z$9 = ".EmojiPickerReact .epr-skin-tones{--epr-skin-tone-size:16px;align-items:center;display:flex;flex-basis:30px;justify-content:flex-end;transition:all .3s ease-in-out}.EmojiPickerReact .epr-skin-tones.open{flex-basis:170px}.EmojiPickerReact .epr-skin-tone-select{height:var(--epr-skin-tone-size);position:relative;width:var(--epr-skin-tone-size)}.EmojiPickerReact .epr-skin-tones.open .epr-tone{transition:transform .3s ease-in-out,opacity .3s ease-in-out}.EmojiPickerReact .epr-skin-tones:not(.open) .epr-tone{opacity:0;z-index:0}.EmojiPickerReact .epr-skin-tones .epr-tone{border-radius:4px;box-shadow:0 0 0 0 var(--epr-active-skin-hover-color);cursor:pointer;display:block;height:var(--epr-skin-tone-size);position:absolute;right:0;transition:transform .3s ease-in-out,opacity .5s ease-in-out;width:var(--epr-skin-tone-size);z-index:1}.EmojiPickerReact .epr-skin-tones .epr-tone:hover{box-shadow:0 0 0 5px var(--epr-active-skin-hover-color)}.EmojiPickerReact .epr-skin-tones .epr-tone:focus{box-shadow:0 0 0 5px var(--epr-focus-bg-color)}.EmojiPickerReact .epr-skin-tones.open .epr-skin-tone-select .epr-tone.epr-active:after{border:1px solid var(--epr-active-skin-tone-indicator-border-color);border-radius:5px;bottom:-2px;content:\"\";left:-2px;position:absolute;right:-2px;top:-2px}.EmojiPickerReact .epr-skin-tones .epr-tone.epr-active{opacity:1;z-index:1}.EmojiPickerReact .epr-skin-tones .epr-tone.epr-tone-neutral{background-color:#ffd225}.EmojiPickerReact .epr-skin-tones .epr-tone.epr-tone-1f3fb{background-color:#ffdfbd}.EmojiPickerReact .epr-skin-tones .epr-tone.epr-tone-1f3fc{background-color:#e9c197}.EmojiPickerReact .epr-skin-tones .epr-tone.epr-tone-1f3fd{background-color:#c88e62}.EmojiPickerReact .epr-skin-tones .epr-tone.epr-tone-1f3fe{background-color:#a86637}.EmojiPickerReact .epr-skin-tones .epr-tone.epr-tone-1f3ff{background-color:#60463a}";
@@ -19339,7 +19372,7 @@ function hasModifier(event) {
19339
19372
  return metaKey || ctrlKey || altKey;
19340
19373
  }
19341
19374
 
19342
- function preloadEmoji(emoji, emojiStyle) {
19375
+ function preloadEmoji(getEmojiUrl, emoji, emojiStyle) {
19343
19376
  if (!emoji) {
19344
19377
  return;
19345
19378
  }
@@ -19355,7 +19388,7 @@ function preloadEmoji(emoji, emojiStyle) {
19355
19388
  }
19356
19389
 
19357
19390
  emojiVariations(emoji).forEach(function (variation) {
19358
- var emojiUrl = emojiUrlByUnified(emojiStyle, variation);
19391
+ var emojiUrl = getEmojiUrl(variation, emojiStyle);
19359
19392
  preloadImage(emojiUrl);
19360
19393
  });
19361
19394
  preloadedEmojs.add(unified);
@@ -19370,6 +19403,7 @@ function preloadImage(url) {
19370
19403
  function useOnFocus() {
19371
19404
  var BodyRef = useBodyRef();
19372
19405
  var emojiStyle = useEmojiStyleConfig();
19406
+ var getEmojiUrl = useGetEmojiUrlConfig();
19373
19407
  useEffect(function () {
19374
19408
  if (emojiStyle === EmojiStyle.NATIVE) {
19375
19409
  return;
@@ -19396,10 +19430,10 @@ function useOnFocus() {
19396
19430
  }
19397
19431
 
19398
19432
  if (emojiHasVariations(emoji)) {
19399
- preloadEmoji(emoji, emojiStyle);
19433
+ preloadEmoji(getEmojiUrl, emoji, emojiStyle);
19400
19434
  }
19401
19435
  }
19402
- }, [BodyRef, emojiStyle]);
19436
+ }, [BodyRef, emojiStyle, getEmojiUrl]);
19403
19437
  }
19404
19438
 
19405
19439
  var css_248z$b = "aside.EmojiPickerReact.epr-main{border-color:var(--epr-picker-border-color);border-radius:var(--epr-picker-border-radius);border-style:solid;border-width:1px;display:flex;flex-direction:column;position:relative}";
@@ -19429,7 +19463,7 @@ function PickerRootElement(_ref2) {
19429
19463
  width: width + "px"
19430
19464
  };
19431
19465
  return createElement("aside", {
19432
- className: clsx('EmojiPickerReact', 'epr-main', (_clsx = {}, _clsx[ClassNames.searchActive] = searchModeActive, _clsx['epr-dark-theme'] = theme === Theme.DARK, _clsx)),
19466
+ className: clsx(ClassNames.emojiPicker, 'epr-main', (_clsx = {}, _clsx[ClassNames.searchActive] = searchModeActive, _clsx['epr-dark-theme'] = theme === Theme.DARK, _clsx)),
19433
19467
  ref: PickerMainRef,
19434
19468
  style: style
19435
19469
  }, children);
@@ -19486,7 +19520,8 @@ function ExportedEmoji(_ref) {
19486
19520
  _ref$emojiStyle = _ref.emojiStyle,
19487
19521
  emojiStyle = _ref$emojiStyle === void 0 ? EmojiStyle.APPLE : _ref$emojiStyle,
19488
19522
  _ref$lazyLoad = _ref.lazyLoad,
19489
- lazyLoad = _ref$lazyLoad === void 0 ? false : _ref$lazyLoad;
19523
+ lazyLoad = _ref$lazyLoad === void 0 ? false : _ref$lazyLoad,
19524
+ getEmojiUrl = _ref.getEmojiUrl;
19490
19525
 
19491
19526
  if (!unified) {
19492
19527
  return null;
@@ -19496,7 +19531,8 @@ function ExportedEmoji(_ref) {
19496
19531
  unified: unified,
19497
19532
  size: size,
19498
19533
  emojiStyle: emojiStyle,
19499
- lazyLoad: lazyLoad
19534
+ lazyLoad: lazyLoad,
19535
+ getEmojiUrl: getEmojiUrl
19500
19536
  });
19501
19537
  }
19502
19538