emoji-picker-react 4.13.3 → 4.14.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 (42) hide show
  1. package/dist/DomUtils/elementPositionInRow.d.ts +1 -6
  2. package/dist/components/body/EmojiCategory.d.ts +2 -1
  3. package/dist/components/body/EmojiList.d.ts +3 -1
  4. package/dist/components/context/ElementRefContext.d.ts +1 -0
  5. package/dist/components/emoji/ClickableEmojiButton.d.ts +2 -1
  6. package/dist/components/emoji/Emoji.d.ts +3 -2
  7. package/dist/dataUtils/emojiSelectors.d.ts +1 -1
  8. package/dist/emoji-picker-react.cjs.development.js +615 -544
  9. package/dist/emoji-picker-react.cjs.development.js.map +1 -1
  10. package/dist/emoji-picker-react.cjs.production.min.js +1 -1
  11. package/dist/emoji-picker-react.cjs.production.min.js.map +1 -1
  12. package/dist/emoji-picker-react.esm.js +616 -545
  13. package/dist/emoji-picker-react.esm.js.map +1 -1
  14. package/dist/hooks/preloadEmoji.d.ts +4 -0
  15. package/dist/hooks/useCategoryHeight.d.ts +5 -0
  16. package/dist/hooks/useEmojiVirtualization.d.ts +16 -0
  17. package/dist/hooks/useOnScroll.d.ts +1 -1
  18. package/dist/virtualization/virtualizationHelpers.d.ts +18 -0
  19. package/package.json +2 -1
  20. package/src/DomUtils/elementPositionInRow.ts +8 -131
  21. package/src/DomUtils/keyboardNavigation.ts +62 -48
  22. package/src/components/body/Body.tsx +2 -2
  23. package/src/components/body/EmojiCategory.tsx +7 -5
  24. package/src/components/body/EmojiList.tsx +43 -78
  25. package/src/components/context/ElementRefContext.tsx +8 -0
  26. package/src/components/emoji/ClickableEmojiButton.tsx +4 -1
  27. package/src/components/emoji/Emoji.tsx +4 -1
  28. package/src/components/header/Search/Search.tsx +0 -5
  29. package/src/components/main/PickerMain.tsx +8 -5
  30. package/src/dataUtils/emojiSelectors.ts +29 -3
  31. package/src/hooks/preloadEmoji.ts +49 -7
  32. package/src/hooks/useCategoryHeight.ts +92 -0
  33. package/src/hooks/useEmojiVirtualization.tsx +112 -0
  34. package/src/hooks/useFilter.ts +17 -24
  35. package/src/hooks/useOnScroll.ts +5 -1
  36. package/src/virtualization/virtualizationHelpers.ts +45 -0
  37. package/dist/components/body/Suggested.d.ts +0 -7
  38. package/dist/components/header/Search/CssSearch.d.ts +0 -4
  39. package/dist/globals/doesBrowserSupportCssHas.d.ts +0 -2
  40. package/src/components/body/Suggested.tsx +0 -69
  41. package/src/components/header/Search/CssSearch.tsx +0 -45
  42. package/src/globals/doesBrowserSupportCssHas.ts +0 -16
@@ -1,10 +1,5 @@
1
1
  import { NullableElement } from './selectors';
2
2
  export declare function elementCountInRow(parent: NullableElement, element: NullableElement): number;
3
- export declare function elementIndexInRow(parent: NullableElement, element: NullableElement): number;
4
- export declare function rowNumber(parent: NullableElement, element: NullableElement): number;
5
- export declare function hasNextRow(parent: NullableElement, element: NullableElement): boolean;
6
- export declare function getElementInRow(elements: HTMLElement[], row: number, elementsInRow: number, indexInRow: number): NullableElement;
7
- export declare function getElementInNextRow(allElements: HTMLElement[], currentRow: number, elementsInRow: number, index: number): NullableElement;
8
- export declare function getElementInPrevRow(allElements: HTMLElement[], currentRow: number, elementsInRow: number, index: number): NullableElement;
9
3
  export declare function firstVisibleElementInContainer(parent: NullableElement, elements: HTMLElement[], maxVisibilityDiffThreshold?: number): NullableElement;
10
4
  export declare function hasNextElementSibling(element: HTMLElement): boolean;
5
+ export declare function getLabelHeight(parentNode: NullableElement): number;
@@ -5,6 +5,7 @@ declare type Props = Readonly<{
5
5
  children?: React.ReactNode;
6
6
  hidden?: boolean;
7
7
  hiddenOnSearch?: boolean;
8
+ height?: number;
8
9
  }>;
9
- export declare function EmojiCategory({ categoryConfig, children, hidden, hiddenOnSearch }: Props): JSX.Element;
10
+ export declare function EmojiCategory({ categoryConfig, children, hidden, hiddenOnSearch, height }: Props): JSX.Element;
10
11
  export {};
@@ -1,2 +1,4 @@
1
1
  /// <reference types="react" />
2
- export declare function EmojiList(): JSX.Element;
2
+ export declare function EmojiList({ scrollTop }: {
3
+ scrollTop: number;
4
+ }): JSX.Element;
@@ -4,6 +4,7 @@ export declare function ElementRefContextProvider({ children }: {
4
4
  children: React.ReactNode;
5
5
  }): JSX.Element;
6
6
  export declare type ElementRef<E extends HTMLElement = HTMLElement> = React.MutableRefObject<E | null>;
7
+ export declare function useEmojiListRef(): ElementRef<HTMLUListElement>;
7
8
  export declare function usePickerMainRef(): ElementRef<HTMLElement>;
8
9
  export declare function useAnchoredEmojiRef(): ElementRef<HTMLElement>;
9
10
  export declare function useSetAnchoredEmojiRef(): (target: NullableElement) => void;
@@ -9,6 +9,7 @@ declare type ClickableEmojiButtonProps = Readonly<{
9
9
  unified?: string;
10
10
  noBackground?: boolean;
11
11
  className?: string;
12
+ style?: React.CSSProperties;
12
13
  }>;
13
- export declare function ClickableEmojiButton({ emojiNames, unified, hidden, hiddenOnSearch, showVariations, hasVariations, children, className, noBackground }: ClickableEmojiButtonProps): JSX.Element;
14
+ export declare function ClickableEmojiButton({ emojiNames, unified, hidden, hiddenOnSearch, showVariations, hasVariations, children, className, noBackground, style }: ClickableEmojiButtonProps): JSX.Element;
14
15
  export {};
@@ -1,4 +1,4 @@
1
- /// <reference types="react" />
1
+ import * as React from 'react';
2
2
  import { DataEmoji } from '../../dataUtils/DataTypes';
3
3
  import { BaseEmojiProps } from './BaseEmojiProps';
4
4
  declare type ClickableEmojiProps = Readonly<BaseEmojiProps & {
@@ -8,6 +8,7 @@ declare type ClickableEmojiProps = Readonly<BaseEmojiProps & {
8
8
  emoji: DataEmoji;
9
9
  className?: string;
10
10
  noBackground?: boolean;
11
+ style?: React.CSSProperties;
11
12
  }>;
12
- export declare function ClickableEmoji({ emoji, unified, hidden, hiddenOnSearch, emojiStyle, showVariations, size, lazyLoad, getEmojiUrl, className, noBackground }: ClickableEmojiProps): JSX.Element;
13
+ export declare function ClickableEmoji({ emoji, unified, hidden, hiddenOnSearch, emojiStyle, showVariations, size, lazyLoad, getEmojiUrl, className, noBackground, style }: ClickableEmojiProps): JSX.Element;
13
14
  export {};
@@ -7,7 +7,7 @@ export declare function addedIn(emoji: DataEmoji): number;
7
7
  export declare function emojiName(emoji?: WithName): string;
8
8
  export declare function unifiedWithoutSkinTone(unified: string): string;
9
9
  export declare function emojiUnified(emoji: DataEmoji, skinTone?: string): string;
10
- export declare function emojisByCategory(category: Categories): DataEmojis;
10
+ export declare function useGetEmojisByCategory(): (Category: Categories) => DataEmojis;
11
11
  export declare function emojiUrlByUnified(unified: string, emojiStyle: EmojiStyle): string;
12
12
  export declare function emojiVariations(emoji: DataEmoji): string[];
13
13
  export declare function emojiHasVariations(emoji: DataEmoji): boolean;