emoji-picker-react 4.5.15 → 4.6.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.
package/README.md CHANGED
@@ -72,9 +72,11 @@ The following props are accepted by them picker:
72
72
  | skinTonesDisabled | boolean | `false` | Controls whether the skin tones are disabled or not. |
73
73
  | searchDisabled | boolean | `false` | Controls whether the search is disabled or not. When disabled, the skin tone picker will be shown in the preview component. |
74
74
  | skinTonePickerLocation | string | `SEARCH` | Controls the location of the skin tone picker. Possible values are `SEARCH` and `PREVIEW`. |
75
- | `width` | `number`/`string` | `350` | Controls the width of the picker. You can provide a number that will be treated as pixel size, or your any accepted css width as string. |
76
75
  | emojiVersion | `string` | - | Allows displaying emojis up to a certain version for compatibility. |
76
+ | `className` | `string` | - | Adds a class name to the root element of the picker. |
77
+ | `width` | `number`/`string` | `350` | Controls the width of the picker. You can provide a number that will be treated as pixel size, or your any accepted css width as string. |
77
78
  | `height` | `number`/`string` | `450` | Controls the height of the picker. You can provide a number that will be treated as pixel size, or your any accepted css height as string. |
79
+ | `style` | `React.CSSProperties` | `{}` | Adds inline style to the root element of the picker. |
78
80
  | getEmojiUrl | `Function` | - | Allows to customize the emoji url and provide your own image host. |
79
81
  | categories | `Array` | - | Allows full config over ordering, naming and display of categories. |
80
82
  | customEmojis | `Array<{names: string[], imgUrl: string, id: string}>` | - | Allows adding custom emojis to the picker. |
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ export declare function CssSearch({ value }: {
3
+ value: undefined | string;
4
+ }): JSX.Element | null;
@@ -1,3 +1,4 @@
1
+ import * as React from 'react';
1
2
  import { GetEmojiUrl } from '../components/emoji/BaseEmojiProps';
2
3
  import { EmojiClickData, EmojiStyle, SkinTonePickerLocation, SkinTones, SuggestionMode, Theme } from '../types/exposedTypes';
3
4
  import { CategoriesConfig } from './categoryConfig';
@@ -22,8 +23,10 @@ export declare type PickerConfigInternal = {
22
23
  suggestedEmojisMode: SuggestionMode;
23
24
  lazyLoadEmojis: boolean;
24
25
  previewConfig: PreviewConfig;
26
+ className: string;
25
27
  height: PickerDimensions;
26
28
  width: PickerDimensions;
29
+ style: React.CSSProperties;
27
30
  getEmojiUrl: GetEmojiUrl;
28
31
  searchDisabled: boolean;
29
32
  skinTonePickerLocation: SkinTonePickerLocation;
@@ -1,6 +1,7 @@
1
+ import * as React from 'react';
1
2
  import { EmojiClickData, EmojiStyle, SkinTonePickerLocation, SkinTones, SuggestionMode, Theme } from '../types/exposedTypes';
2
3
  import { CategoriesConfig } from './categoryConfig';
3
- import { PickerDimensions, PreviewConfig } from './config';
4
+ import { PreviewConfig } from './config';
4
5
  import { CustomEmoji } from './customEmojiConfig';
5
6
  export declare function useSearchPlaceHolderConfig(): string;
6
7
  export declare function useDefaultSkinToneConfig(): SkinTones;
@@ -14,10 +15,8 @@ export declare function usePreviewConfig(): PreviewConfig;
14
15
  export declare function useThemeConfig(): Theme;
15
16
  export declare function useSuggestedEmojisModeConfig(): SuggestionMode;
16
17
  export declare function useLazyLoadEmojisConfig(): boolean;
17
- export declare function usePickerSizeConfig(): {
18
- height: PickerDimensions;
19
- width: PickerDimensions;
20
- };
18
+ export declare function useClassNameConfig(): string;
19
+ export declare function useStyleConfig(): React.CSSProperties;
21
20
  export declare function useEmojiVersionConfig(): string | null;
22
21
  export declare function useSearchDisabledConfig(): boolean;
23
22
  export declare function useSkinTonePickerLocationConfig(): SkinTonePickerLocation;
@@ -16916,6 +16916,7 @@ function basePickerConfig() {
16916
16916
  return {
16917
16917
  autoFocusSearch: true,
16918
16918
  categories: baseCategoriesConfig(),
16919
+ className: '',
16919
16920
  customEmojis: [],
16920
16921
  defaultSkinTone: exports.SkinTones.NEUTRAL,
16921
16922
  emojiStyle: exports.EmojiStyle.APPLE,
@@ -16929,6 +16930,7 @@ function basePickerConfig() {
16929
16930
  searchPlaceholder: DEFAULT_SEARCH_PLACEHOLDER,
16930
16931
  skinTonePickerLocation: exports.SkinTonePickerLocation.SEARCH,
16931
16932
  skinTonesDisabled: false,
16933
+ style: {},
16932
16934
  suggestedEmojisMode: exports.SuggestionMode.FREQUENT,
16933
16935
  theme: exports.Theme.LIGHT,
16934
16936
  unicodeToHide: new Set(KNOWN_FAILING_EMOJIS),
@@ -17070,43 +17072,50 @@ function useLazyLoadEmojisConfig() {
17070
17072
 
17071
17073
  return lazyLoadEmojis;
17072
17074
  }
17073
- function usePickerSizeConfig() {
17075
+ function useClassNameConfig() {
17074
17076
  var _usePickerConfig12 = usePickerConfig(),
17075
- height = _usePickerConfig12.height,
17076
- width = _usePickerConfig12.width;
17077
+ className = _usePickerConfig12.className;
17077
17078
 
17078
- return {
17079
+ return className;
17080
+ }
17081
+ function useStyleConfig() {
17082
+ var _usePickerConfig13 = usePickerConfig(),
17083
+ height = _usePickerConfig13.height,
17084
+ width = _usePickerConfig13.width,
17085
+ style = _usePickerConfig13.style;
17086
+
17087
+ return _extends({
17079
17088
  height: getDimension(height),
17080
17089
  width: getDimension(width)
17081
- };
17090
+ }, style);
17082
17091
  }
17083
17092
  function useEmojiVersionConfig() {
17084
- var _usePickerConfig13 = usePickerConfig(),
17085
- emojiVersion = _usePickerConfig13.emojiVersion;
17093
+ var _usePickerConfig14 = usePickerConfig(),
17094
+ emojiVersion = _usePickerConfig14.emojiVersion;
17086
17095
 
17087
17096
  return emojiVersion;
17088
17097
  }
17089
17098
  function useSearchDisabledConfig() {
17090
- var _usePickerConfig14 = usePickerConfig(),
17091
- searchDisabled = _usePickerConfig14.searchDisabled;
17099
+ var _usePickerConfig15 = usePickerConfig(),
17100
+ searchDisabled = _usePickerConfig15.searchDisabled;
17092
17101
 
17093
17102
  return searchDisabled;
17094
17103
  }
17095
17104
  function useSkinTonePickerLocationConfig() {
17096
- var _usePickerConfig15 = usePickerConfig(),
17097
- skinTonePickerLocation = _usePickerConfig15.skinTonePickerLocation;
17105
+ var _usePickerConfig16 = usePickerConfig(),
17106
+ skinTonePickerLocation = _usePickerConfig16.skinTonePickerLocation;
17098
17107
 
17099
17108
  return skinTonePickerLocation;
17100
17109
  }
17101
17110
  function useUnicodeToHide() {
17102
- var _usePickerConfig16 = usePickerConfig(),
17103
- unicodeToHide = _usePickerConfig16.unicodeToHide;
17111
+ var _usePickerConfig17 = usePickerConfig(),
17112
+ unicodeToHide = _usePickerConfig17.unicodeToHide;
17104
17113
 
17105
17114
  return unicodeToHide;
17106
17115
  }
17107
17116
  function useGetEmojiUrlConfig() {
17108
- var _usePickerConfig17 = usePickerConfig(),
17109
- getEmojiUrl = _usePickerConfig17.getEmojiUrl;
17117
+ var _usePickerConfig18 = usePickerConfig(),
17118
+ getEmojiUrl = _usePickerConfig18.getEmojiUrl;
17110
17119
 
17111
17120
  return getEmojiUrl;
17112
17121
  }
@@ -19225,6 +19234,24 @@ function CategoryNavigation() {
19225
19234
  }));
19226
19235
  }
19227
19236
 
19237
+ var SCOPE = /*#__PURE__*/asSelectors(ClassNames.emojiPicker) + " " + /*#__PURE__*/asSelectors(ClassNames.emojiList);
19238
+ var EMOJI_BUTTON = /*#__PURE__*/['button', asSelectors(ClassNames.emoji)].join('');
19239
+ var CATEGORY = /*#__PURE__*/asSelectors(ClassNames.category);
19240
+ function CssSearch(_ref) {
19241
+ var value = _ref.value;
19242
+
19243
+ if (!value) {
19244
+ return null;
19245
+ }
19246
+
19247
+ var q = genQuery(value);
19248
+ return React.createElement("style", null, "\n " + SCOPE + " " + EMOJI_BUTTON + " {\n display: none;\n }\n\n\n " + SCOPE + " " + q + " {\n display: flex;\n }\n\n " + SCOPE + " " + CATEGORY + ":not(:has(" + q + ")) {\n display: none;\n }\n ");
19249
+ }
19250
+
19251
+ function genQuery(value) {
19252
+ return [EMOJI_BUTTON, '[data-full-name*="', getNormalizedSearchTerm(value), '"]'].join('');
19253
+ }
19254
+
19228
19255
  function SearchContainer() {
19229
19256
  var searchDisabled = useSearchDisabledConfig();
19230
19257
  var isSkinToneInSearch = useIsSkinToneInSearch();
@@ -19266,7 +19293,7 @@ function Search() {
19266
19293
  onFocus: closeAllOpenToggles,
19267
19294
  className: "epr-search",
19268
19295
  type: "text",
19269
- "aria-controls": 'epr-search-id',
19296
+ "aria-controls": "epr-search-id",
19270
19297
  placeholder: placeholder,
19271
19298
  onChange: function onChange(event) {
19272
19299
  setInc(inc + 1);
@@ -19278,11 +19305,11 @@ function Search() {
19278
19305
  },
19279
19306
  ref: SearchInputRef
19280
19307
  }), searchTerm ? React.createElement("div", {
19281
- role: 'status',
19308
+ role: "status",
19282
19309
  className: clsx('epr-status-search-results', 'epr-status-visually-hidden'),
19283
- "aria-live": 'polite',
19284
- id: 'epr-search-id',
19285
- "aria-atomic": 'true'
19310
+ "aria-live": "polite",
19311
+ id: "epr-search-id",
19312
+ "aria-atomic": "true"
19286
19313
  }, statusSearchResults) : null, React.createElement("div", {
19287
19314
  className: "epr-icn-search"
19288
19315
  }), React.createElement(Button, {
@@ -19292,18 +19319,6 @@ function Search() {
19292
19319
  className: "epr-icn-clear-search"
19293
19320
  })));
19294
19321
  }
19295
- var CSS_SEARCH_SELECTOR = /*#__PURE__*/asSelectors(ClassNames.emojiPicker) + " " + /*#__PURE__*/asSelectors(ClassNames.emojiList);
19296
-
19297
- function CssSearch(_ref) {
19298
- var value = _ref.value;
19299
-
19300
- if (!value) {
19301
- return null;
19302
- }
19303
-
19304
- var searchQuery = "button[data-full-name*=\"" + getNormalizedSearchTerm(value) + "\"]";
19305
- return React.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 ");
19306
- }
19307
19322
 
19308
19323
  function Header() {
19309
19324
  return React.createElement(Relative, {
@@ -19808,19 +19823,12 @@ function PickerRootElement(_ref2) {
19808
19823
  var theme = useThemeConfig();
19809
19824
  var searchModeActive = useIsSearchMode();
19810
19825
  var PickerMainRef = usePickerMainRef();
19811
-
19812
- var _usePickerSizeConfig = usePickerSizeConfig(),
19813
- height = _usePickerSizeConfig.height,
19814
- width = _usePickerSizeConfig.width;
19815
-
19826
+ var className = useClassNameConfig();
19827
+ var style = useStyleConfig();
19816
19828
  useKeyboardNavigation();
19817
19829
  useOnFocus();
19818
- var style = {
19819
- height: height,
19820
- width: width
19821
- };
19822
19830
  return React.createElement("aside", {
19823
- className: clsx(ClassNames.emojiPicker, 'epr-main', (_clsx = {}, _clsx[ClassNames.searchActive] = searchModeActive, _clsx[ClassNames.darkTheme] = theme === exports.Theme.DARK, _clsx[ClassNames.autoTheme] = theme === exports.Theme.AUTO, _clsx)),
19831
+ className: clsx(ClassNames.emojiPicker, 'epr-main', (_clsx = {}, _clsx[ClassNames.searchActive] = searchModeActive, _clsx[ClassNames.darkTheme] = theme === exports.Theme.DARK, _clsx[ClassNames.autoTheme] = theme === exports.Theme.AUTO, _clsx), className),
19824
19832
  ref: PickerMainRef,
19825
19833
  style: style
19826
19834
  }, children);
@@ -19836,7 +19844,7 @@ var EmojiPickerReact = /*#__PURE__*/React.memo(EmojiPicker, function (prev, next
19836
19844
 
19837
19845
  var prevCustomEmojis = (_prev$customEmojis = prev.customEmojis) != null ? _prev$customEmojis : [];
19838
19846
  var nextCustomEmojis = (_next$customEmojis = next.customEmojis) != null ? _next$customEmojis : [];
19839
- return prev.emojiVersion === next.emojiVersion && prev.searchPlaceHolder === next.searchPlaceHolder && prev.searchPlaceholder === next.searchPlaceholder && prev.defaultSkinTone === next.defaultSkinTone && prev.skinTonesDisabled === next.skinTonesDisabled && prev.autoFocusSearch === next.autoFocusSearch && prev.emojiStyle === next.emojiStyle && prev.theme === next.theme && prev.suggestedEmojisMode === next.suggestedEmojisMode && prev.lazyLoadEmojis === next.lazyLoadEmojis && prev.height === next.height && prev.width === next.width && prev.searchDisabled === next.searchDisabled && prev.skinTonePickerLocation === next.skinTonePickerLocation && prevCustomEmojis.length === nextCustomEmojis.length;
19847
+ return prev.emojiVersion === next.emojiVersion && prev.searchPlaceHolder === next.searchPlaceHolder && prev.searchPlaceholder === next.searchPlaceholder && prev.defaultSkinTone === next.defaultSkinTone && prev.skinTonesDisabled === next.skinTonesDisabled && prev.autoFocusSearch === next.autoFocusSearch && prev.emojiStyle === next.emojiStyle && prev.theme === next.theme && prev.suggestedEmojisMode === next.suggestedEmojisMode && prev.lazyLoadEmojis === next.lazyLoadEmojis && prev.className === next.className && prev.height === next.height && prev.width === next.width && prev.style === next.style && prev.searchDisabled === next.searchDisabled && prev.skinTonePickerLocation === next.skinTonePickerLocation && prevCustomEmojis.length === nextCustomEmojis.length;
19840
19848
  });
19841
19849
 
19842
19850
  var ErrorBoundary = /*#__PURE__*/function (_React$Component) {