emoji-picker-react 4.22.2 → 5.0.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 +335 -49
- package/dist/DomUtils/categoryNameFromDom.d.ts +1 -1
- package/dist/DomUtils/classNames.d.ts +24 -23
- package/dist/DomUtils/detectEmojyPartiallyBelowFold.d.ts +2 -2
- package/dist/DomUtils/elementPositionInRow.d.ts +5 -5
- package/dist/DomUtils/eventBelongsToPicker.d.ts +2 -0
- package/dist/DomUtils/focusElement.d.ts +5 -5
- package/dist/DomUtils/getActiveElement.d.ts +2 -2
- package/dist/DomUtils/isJsdom.d.ts +1 -0
- package/dist/DomUtils/isRtl.d.ts +1 -0
- package/dist/DomUtils/keyboardNavigation.d.ts +7 -8
- package/dist/DomUtils/scrollTo.d.ts +4 -5
- package/dist/DomUtils/selectors.d.ts +31 -35
- package/dist/EmojiPickerReact.d.ts +5 -5
- package/dist/Stylesheet/DedupedStyle.d.ts +13 -0
- package/dist/Stylesheet/stylesheet.d.ts +40 -37
- package/dist/components/ErrorBoundary.d.ts +15 -15
- package/dist/components/Layout/Absolute.d.ts +8 -8
- package/dist/components/Layout/Flex.d.ts +13 -13
- package/dist/components/Layout/Relative.d.ts +8 -8
- package/dist/components/Layout/Space.d.ts +7 -7
- package/dist/components/Reactions/BtnPlus.d.ts +2 -2
- package/dist/components/Reactions/DEFAULT_REACTIONS.d.ts +1 -1
- package/dist/components/Reactions/Reactions.d.ts +3 -2
- package/dist/components/atoms/Button.d.ts +11 -6
- package/dist/components/body/EmojiCategory.d.ts +13 -12
- package/dist/components/body/EmojiList.d.ts +7 -4
- package/dist/components/body/EmojiVariationPicker.d.ts +2 -2
- package/dist/components/body/MeasureEmoji.d.ts +2 -2
- package/dist/components/body/listComponents.d.ts +47 -0
- package/dist/components/context/ElementRefContext.d.ts +18 -16
- package/dist/components/context/PickerConfigContext.d.ts +14 -9
- package/dist/components/context/PickerContext.d.ts +57 -25
- package/dist/components/context/PickerDataContext.d.ts +23 -17
- package/dist/components/emoji/BaseEmojiProps.d.ts +14 -13
- package/dist/components/emoji/ClickableEmojiButton.d.ts +23 -15
- package/dist/components/emoji/Emoji.d.ts +18 -15
- package/dist/components/emoji/EmojiImg.d.ts +11 -11
- package/dist/components/emoji/ExportedEmoji.d.ts +11 -11
- package/dist/components/emoji/NativeEmoji.d.ts +6 -6
- package/dist/components/emoji/ViewOnlyEmoji.d.ts +3 -3
- package/dist/components/emoji/emojiStyles.d.ts +6 -1
- package/dist/components/footer/Preview.d.ts +7 -7
- package/dist/components/header/Header.d.ts +2 -2
- package/dist/components/header/Search/BtnClearSearch.d.ts +2 -2
- package/dist/components/header/Search/IcnSearch.d.ts +2 -2
- package/dist/components/header/Search/Search.d.ts +11 -3
- package/dist/components/header/SkinTonePicker/BtnSkinToneVariation.d.ts +12 -12
- package/dist/components/header/SkinTonePicker/SkinTonePicker.d.ts +11 -11
- package/dist/components/icons/svgIcons.d.ts +4 -0
- package/dist/components/main/PickerMainBehaviors.d.ts +4 -0
- package/dist/components/main/defaultAppearance.d.ts +12 -0
- package/dist/components/main/labelHeight.d.ts +1 -0
- package/dist/components/navigation/CategoryButton.d.ts +12 -12
- package/dist/components/navigation/CategoryNavIcon.d.ts +4 -4
- package/dist/components/navigation/CategoryNavigation.d.ts +19 -2
- package/dist/config/categoryConfig.d.ts +34 -34
- package/dist/config/cdnUrls.d.ts +2 -2
- package/dist/config/compareConfig.d.ts +10 -2
- package/dist/config/config.d.ts +166 -64
- package/dist/config/customEmojiConfig.d.ts +14 -14
- package/dist/config/defaultPickerConfiguration.d.ts +10 -0
- package/dist/config/mutableConfig.d.ts +32 -10
- package/dist/config/useConfig.d.ts +48 -36
- package/dist/data/defaultEmojiData.d.ts +9 -0
- package/dist/data/defaultEmojiData.js +40 -0
- package/dist/data/emojis-bn.d.mts +39 -0
- package/dist/data/emojis-bn.d.ts +38 -2
- package/dist/data/emojis-bn.js +25 -2
- package/dist/data/emojis-bn.mjs +2 -0
- package/dist/data/emojis-da.d.mts +39 -0
- package/dist/data/emojis-da.d.ts +38 -2
- package/dist/data/emojis-da.js +25 -2
- package/dist/data/emojis-da.mjs +2 -0
- package/dist/data/emojis-de.d.mts +39 -0
- package/dist/data/emojis-de.d.ts +38 -2
- package/dist/data/emojis-de.js +25 -2
- package/dist/data/emojis-de.mjs +2 -0
- package/dist/data/emojis-en-gb.d.mts +39 -0
- package/dist/data/emojis-en-gb.d.ts +38 -2
- package/dist/data/emojis-en-gb.js +25 -2
- package/dist/data/emojis-en-gb.mjs +2 -0
- package/dist/data/emojis-en.d.mts +39 -0
- package/dist/data/emojis-en.d.ts +38 -2
- package/dist/data/emojis-en.js +25 -2
- package/dist/data/emojis-en.mjs +2 -0
- package/dist/data/emojis-es-mx.d.mts +39 -0
- package/dist/data/emojis-es-mx.d.ts +38 -2
- package/dist/data/emojis-es-mx.js +25 -2
- package/dist/data/emojis-es-mx.mjs +2 -0
- package/dist/data/emojis-es.d.mts +39 -0
- package/dist/data/emojis-es.d.ts +38 -2
- package/dist/data/emojis-es.js +25 -2
- package/dist/data/emojis-es.mjs +2 -0
- package/dist/data/emojis-et.d.mts +39 -0
- package/dist/data/emojis-et.d.ts +38 -2
- package/dist/data/emojis-et.js +25 -2
- package/dist/data/emojis-et.mjs +2 -0
- package/dist/data/emojis-fi.d.mts +39 -0
- package/dist/data/emojis-fi.d.ts +38 -2
- package/dist/data/emojis-fi.js +25 -2
- package/dist/data/emojis-fi.mjs +2 -0
- package/dist/data/emojis-fr.d.mts +39 -0
- package/dist/data/emojis-fr.d.ts +38 -2
- package/dist/data/emojis-fr.js +25 -2
- package/dist/data/emojis-fr.mjs +2 -0
- package/dist/data/emojis-hi.d.mts +39 -0
- package/dist/data/emojis-hi.d.ts +38 -2
- package/dist/data/emojis-hi.js +25 -2
- package/dist/data/emojis-hi.mjs +2 -0
- package/dist/data/emojis-hu.d.mts +39 -0
- package/dist/data/emojis-hu.d.ts +38 -2
- package/dist/data/emojis-hu.js +25 -2
- package/dist/data/emojis-hu.mjs +2 -0
- package/dist/data/emojis-it.d.mts +39 -0
- package/dist/data/emojis-it.d.ts +38 -2
- package/dist/data/emojis-it.js +25 -2
- package/dist/data/emojis-it.mjs +2 -0
- package/dist/data/emojis-ja.d.mts +39 -0
- package/dist/data/emojis-ja.d.ts +38 -2
- package/dist/data/emojis-ja.js +25 -2
- package/dist/data/emojis-ja.mjs +2 -0
- package/dist/data/emojis-ko.d.mts +39 -0
- package/dist/data/emojis-ko.d.ts +38 -2
- package/dist/data/emojis-ko.js +25 -2
- package/dist/data/emojis-ko.mjs +2 -0
- package/dist/data/emojis-lt.d.mts +39 -0
- package/dist/data/emojis-lt.d.ts +38 -2
- package/dist/data/emojis-lt.js +25 -2
- package/dist/data/emojis-lt.mjs +2 -0
- package/dist/data/emojis-ms.d.mts +39 -0
- package/dist/data/emojis-ms.d.ts +38 -2
- package/dist/data/emojis-ms.js +25 -2
- package/dist/data/emojis-ms.mjs +2 -0
- package/dist/data/emojis-nb.d.mts +39 -0
- package/dist/data/emojis-nb.d.ts +38 -2
- package/dist/data/emojis-nb.js +25 -2
- package/dist/data/emojis-nb.mjs +2 -0
- package/dist/data/emojis-nl.d.mts +39 -0
- package/dist/data/emojis-nl.d.ts +38 -2
- package/dist/data/emojis-nl.js +25 -2
- package/dist/data/emojis-nl.mjs +2 -0
- package/dist/data/emojis-pl.d.mts +39 -0
- package/dist/data/emojis-pl.d.ts +38 -2
- package/dist/data/emojis-pl.js +25 -2
- package/dist/data/emojis-pl.mjs +2 -0
- package/dist/data/emojis-pt.d.mts +39 -0
- package/dist/data/emojis-pt.d.ts +38 -2
- package/dist/data/emojis-pt.js +25 -2
- package/dist/data/emojis-pt.mjs +2 -0
- package/dist/data/emojis-ru.d.mts +39 -0
- package/dist/data/emojis-ru.d.ts +38 -2
- package/dist/data/emojis-ru.js +25 -2
- package/dist/data/emojis-ru.mjs +2 -0
- package/dist/data/emojis-sv.d.mts +39 -0
- package/dist/data/emojis-sv.d.ts +38 -2
- package/dist/data/emojis-sv.js +25 -2
- package/dist/data/emojis-sv.mjs +2 -0
- package/dist/data/emojis-th.d.mts +39 -0
- package/dist/data/emojis-th.d.ts +38 -2
- package/dist/data/emojis-th.js +25 -2
- package/dist/data/emojis-th.mjs +2 -0
- package/dist/data/emojis-uk.d.mts +39 -0
- package/dist/data/emojis-uk.d.ts +38 -2
- package/dist/data/emojis-uk.js +25 -2
- package/dist/data/emojis-uk.mjs +2 -0
- package/dist/data/emojis-vi.d.mts +39 -0
- package/dist/data/emojis-vi.d.ts +38 -2
- package/dist/data/emojis-vi.js +25 -2
- package/dist/data/emojis-vi.mjs +2 -0
- package/dist/data/emojis-zh-hant.d.mts +39 -0
- package/dist/data/emojis-zh-hant.d.ts +38 -2
- package/dist/data/emojis-zh-hant.js +25 -2
- package/dist/data/emojis-zh-hant.mjs +2 -0
- package/dist/data/emojis-zh.d.mts +39 -0
- package/dist/data/emojis-zh.d.ts +38 -2
- package/dist/data/emojis-zh.js +25 -2
- package/dist/data/emojis-zh.mjs +2 -0
- package/dist/data/index.js +1 -0
- package/dist/data/registerDefaultEmojiData.d.ts +1 -0
- package/dist/data/registerDefaultEmojiData.js +3 -0
- package/dist/data-core/pickerData.d.ts +12 -0
- package/dist/data-core/prepare.d.ts +23 -0
- package/dist/data-core/search.d.ts +13 -0
- package/dist/data-core/types.d.ts +23 -0
- package/dist/data.d.mts +72 -0
- package/dist/data.d.ts +72 -0
- package/dist/dataUtils/DataTypes.d.ts +23 -19
- package/dist/dataUtils/emojiSelectors.d.ts +15 -16
- package/dist/dataUtils/emojiUtils.d.ts +1 -12
- package/dist/dataUtils/nativeEmojiSequenceSupport.d.ts +10 -0
- package/dist/dataUtils/nativeEmojiSupport.d.ts +40 -0
- package/dist/dataUtils/parseNativeEmoji.d.ts +1 -1
- package/dist/dataUtils/suggested.d.ts +11 -11
- package/dist/dataUtils/suggestedEmojis.d.ts +7 -0
- package/dist/esm/chunks/chunk-46BUDQLE.mjs +228 -0
- package/dist/esm/chunks/chunk-7ZGTUZFB.mjs +16 -0
- package/dist/esm/chunks/chunk-FQIJ4HBW.mjs +25 -0
- package/dist/esm/chunks/chunk-KQPOIRSC.mjs +9305 -0
- package/dist/esm/chunks/chunk-LO4TPPLH.mjs +43 -0
- package/dist/esm/chunks/emojis-6L3GRBAP.mjs +9 -0
- package/dist/esm/data.mjs +18 -0
- package/dist/esm/index.mjs +389 -0
- package/dist/esm/primitives/index.mjs +67 -0
- package/dist/hooks/preloadEmoji.d.ts +9 -9
- package/dist/hooks/useActiveCategoryScrollDetection.d.ts +11 -11
- package/dist/hooks/useCategoryHeight.d.ts +6 -5
- package/dist/hooks/useCloseAllOpenToggles.d.ts +2 -2
- package/dist/hooks/useDataIdentityStabilityWarning.d.ts +13 -0
- package/dist/hooks/useDebouncedState.d.ts +1 -1
- package/dist/hooks/useDisallowMouseMove.d.ts +4 -4
- package/dist/hooks/useDisallowedEmojis.d.ts +2 -3
- package/dist/hooks/useEmojiPreviewEvents.d.ts +3 -3
- package/dist/hooks/useEmojiVirtualization.d.ts +21 -17
- package/dist/hooks/useFilter.d.ts +10 -16
- package/dist/hooks/useFocus.d.ts +3 -3
- package/dist/hooks/useInitialLoad.d.ts +2 -2
- package/dist/hooks/useIsEmojiHidden.d.ts +8 -8
- package/dist/hooks/useIsMounted.d.ts +1 -1
- package/dist/hooks/useIsSearchMode.d.ts +1 -1
- package/dist/hooks/useIsomorphicLayoutEffect.d.ts +2 -2
- package/dist/hooks/useKeyboardNavigation.d.ts +3 -1
- package/dist/hooks/useMouseDownHandlers.d.ts +8 -4
- package/dist/hooks/useOnFocus.d.ts +1 -1
- package/dist/hooks/useOnScroll.d.ts +2 -2
- package/dist/hooks/useReactionsFocus.d.ts +1 -0
- package/dist/hooks/useRegisterRegion.d.ts +24 -0
- package/dist/hooks/useResolvedEmojiData.d.ts +37 -0
- package/dist/hooks/useScrollCategoryIntoView.d.ts +1 -1
- package/dist/hooks/useSearchController.d.ts +17 -0
- package/dist/hooks/useSearchResults.d.ts +8 -0
- package/dist/hooks/useSetVariationPicker.d.ts +2 -2
- package/dist/hooks/useShouldHideCustomEmojis.d.ts +1 -1
- package/dist/hooks/useShouldShowSkinTonePicker.d.ts +4 -4
- package/dist/index.d.mts +376 -0
- package/dist/index.d.ts +376 -9
- package/dist/index.js +2 -8
- package/dist/primitives/CategoryNav.d.ts +4 -0
- package/dist/primitives/Empty.d.ts +6 -0
- package/dist/primitives/List.d.ts +4 -0
- package/dist/primitives/LoadError.d.ts +8 -0
- package/dist/primitives/Loading.d.ts +4 -0
- package/dist/primitives/Panel.d.ts +3 -0
- package/dist/primitives/Preview.d.ts +3 -0
- package/dist/primitives/Reactions.d.ts +2 -0
- package/dist/primitives/Root.d.ts +26 -0
- package/dist/primitives/Search.d.ts +5 -0
- package/dist/primitives/SearchInput.d.ts +3 -0
- package/dist/primitives/SkinTone.d.ts +4 -0
- package/dist/primitives/Viewport.d.ts +19 -0
- package/dist/primitives/appearance.d.ts +3 -0
- package/dist/primitives/components.d.ts +27 -0
- package/dist/primitives/hooks.d.ts +48 -0
- package/dist/primitives/index.d.mts +561 -0
- package/dist/primitives/index.d.ts +561 -0
- package/dist/primitives/index.js +2 -0
- package/dist/primitives/nativeProps.d.ts +15 -0
- package/dist/primitives/scope.d.ts +13 -0
- package/dist/primitives/structuralStyles.d.ts +16 -0
- package/dist/primitives/tokens.d.ts +18 -0
- package/dist/primitives/types.d.ts +85 -0
- package/dist/state/activeEmojiStore.d.ts +7 -0
- package/dist/state/navigationRegistry.d.ts +61 -0
- package/dist/state/regionTraversal.d.ts +20 -0
- package/dist/typeRefinements/typeRefinements.d.ts +6 -6
- package/dist/types/exposedTypes.d.ts +16 -6
- package/dist/types/exposedTypes.js +5 -0
- package/dist/virtualization/virtualizationHelpers.d.ts +20 -18
- package/llms-full.txt +3680 -0
- package/llms.txt +66 -476
- package/package.json +204 -66
- package/src/DomUtils/categoryNameFromDom.ts +1 -1
- package/src/DomUtils/classNames.ts +1 -0
- package/src/DomUtils/elementPositionInRow.ts +26 -4
- package/src/DomUtils/eventBelongsToPicker.ts +17 -0
- package/src/DomUtils/getActiveElement.ts +7 -1
- package/src/DomUtils/isJsdom.ts +12 -0
- package/src/DomUtils/isRtl.ts +5 -0
- package/src/DomUtils/keyboardNavigation.ts +105 -149
- package/src/DomUtils/scrollTo.ts +18 -16
- package/src/DomUtils/selectors.ts +20 -111
- package/src/EmojiPickerReact.tsx +155 -48
- package/src/Stylesheet/DedupedStyle.tsx +80 -0
- package/src/Stylesheet/stylesheet.tsx +128 -59
- package/src/components/Layout/Flex.tsx +12 -11
- package/src/components/Reactions/BtnPlus.tsx +61 -51
- package/src/components/Reactions/Reactions.tsx +113 -55
- package/src/components/atoms/Button.tsx +18 -15
- package/src/components/body/EmojiCategory.tsx +77 -40
- package/src/components/body/EmojiList.tsx +55 -23
- package/src/components/body/EmojiVariationPicker.tsx +113 -66
- package/src/components/body/MeasureEmoji.tsx +9 -2
- package/src/components/body/listComponents.tsx +79 -0
- package/src/components/context/ElementRefContext.tsx +46 -35
- package/src/components/context/PickerConfigContext.tsx +55 -40
- package/src/components/context/PickerContext.tsx +567 -92
- package/src/components/context/PickerDataContext.tsx +110 -99
- package/src/components/emoji/BaseEmojiProps.ts +5 -4
- package/src/components/emoji/ClickableEmojiButton.tsx +148 -63
- package/src/components/emoji/Emoji.tsx +24 -2
- package/src/components/emoji/EmojiImg.tsx +13 -12
- package/src/components/emoji/ExportedEmoji.tsx +5 -4
- package/src/components/emoji/NativeEmoji.tsx +19 -16
- package/src/components/emoji/ViewOnlyEmoji.tsx +55 -30
- package/src/components/emoji/emojiStyles.ts +12 -11
- package/src/components/footer/Preview.tsx +86 -91
- package/src/components/header/Header.tsx +21 -6
- package/src/components/header/Search/BtnClearSearch.tsx +69 -55
- package/src/components/header/Search/IcnSearch.tsx +21 -21
- package/src/components/header/Search/Search.tsx +77 -137
- package/src/components/header/SkinTonePicker/BtnSkinToneVariation.tsx +99 -62
- package/src/components/header/SkinTonePicker/SkinTonePicker.tsx +84 -46
- package/src/components/icons/svgIcons.ts +17 -0
- package/src/components/main/PickerMainBehaviors.tsx +163 -0
- package/src/components/main/defaultAppearance.tsx +188 -0
- package/src/components/main/labelHeight.ts +5 -0
- package/src/components/navigation/CategoryButton.tsx +83 -57
- package/src/components/navigation/CategoryNavIcon.tsx +73 -194
- package/src/components/navigation/CategoryNavigation.tsx +118 -46
- package/src/config/categoryConfig.ts +7 -3
- package/src/config/cdnUrls.ts +11 -21
- package/src/config/compareConfig.ts +128 -30
- package/src/config/config.ts +228 -24
- package/src/config/defaultPickerConfiguration.ts +7 -0
- package/src/config/mutableConfig.ts +44 -20
- package/src/config/useConfig.ts +130 -37
- package/src/data/defaultEmojiData.ts +49 -0
- package/src/data/registerDefaultEmojiData.ts +8 -0
- package/src/data-core/pickerData.ts +173 -0
- package/src/data-core/prepare.ts +178 -0
- package/src/data-core/search.ts +122 -0
- package/src/data-core/types.ts +36 -0
- package/src/data.ts +10 -0
- package/src/dataUtils/DataTypes.ts +4 -0
- package/src/dataUtils/emojiSelectors.ts +58 -63
- package/src/dataUtils/emojiUtils.ts +17 -74
- package/src/dataUtils/nativeEmojiSequenceSupport.ts +116 -0
- package/src/dataUtils/nativeEmojiSupport.ts +160 -0
- package/src/dataUtils/suggested.ts +8 -4
- package/src/dataUtils/suggestedEmojis.ts +92 -0
- package/src/env.d.ts +4 -0
- package/src/hooks/preloadEmoji.ts +3 -3
- package/src/hooks/useActiveCategoryScrollDetection.ts +10 -1
- package/src/hooks/useCategoryHeight.ts +82 -8
- package/src/hooks/useDataIdentityStabilityWarning.ts +86 -0
- package/src/hooks/useDebouncedState.ts +13 -1
- package/src/hooks/useDisallowedEmojis.ts +26 -42
- package/src/hooks/useEmojiPreviewEvents.ts +43 -10
- package/src/hooks/useEmojiVirtualization.tsx +38 -4
- package/src/hooks/useFilter.ts +85 -127
- package/src/hooks/useFocus.ts +14 -24
- package/src/hooks/useIsEmojiHidden.ts +10 -6
- package/src/hooks/useKeyboardNavigation.ts +322 -429
- package/src/hooks/useMouseDownHandlers.ts +91 -16
- package/src/hooks/useOnFocus.ts +12 -3
- package/src/hooks/useOnScroll.ts +18 -2
- package/src/hooks/useReactionsFocus.ts +118 -0
- package/src/hooks/useRegisterRegion.ts +92 -0
- package/src/hooks/useResolvedEmojiData.ts +200 -0
- package/src/hooks/useScrollCategoryIntoView.ts +74 -12
- package/src/hooks/useSearchController.ts +369 -0
- package/src/hooks/useSearchResults.ts +51 -0
- package/src/hooks/useSetVariationPicker.ts +4 -1
- package/src/index.tsx +67 -5
- package/src/primitives/CategoryNav.tsx +40 -0
- package/src/primitives/Empty.tsx +68 -0
- package/src/primitives/List.tsx +61 -0
- package/src/primitives/LoadError.tsx +38 -0
- package/src/primitives/Loading.tsx +60 -0
- package/src/primitives/Panel.tsx +47 -0
- package/src/primitives/Preview.tsx +38 -0
- package/src/primitives/Reactions.tsx +2 -0
- package/src/primitives/Root.tsx +398 -0
- package/src/primitives/Search.tsx +41 -0
- package/src/primitives/SearchInput.tsx +110 -0
- package/src/primitives/SkinTone.tsx +76 -0
- package/src/primitives/Viewport.tsx +204 -0
- package/src/primitives/appearance.tsx +7 -0
- package/src/primitives/components.tsx +30 -0
- package/src/primitives/hooks.ts +165 -0
- package/src/primitives/index.ts +94 -0
- package/src/primitives/nativeProps.ts +90 -0
- package/src/primitives/scope.tsx +109 -0
- package/src/primitives/structuralStyles.tsx +133 -0
- package/src/primitives/tokens.ts +149 -0
- package/src/primitives/types.ts +192 -0
- package/src/state/activeEmojiStore.ts +39 -0
- package/src/state/navigationRegistry.ts +209 -0
- package/src/state/regionTraversal.ts +116 -0
- package/src/svg.d.ts +2 -2
- package/src/types/exposedTypes.ts +28 -1
- package/src/virtualization/virtualizationHelpers.ts +20 -6
- package/dist/components/body/Body.d.ts +0 -2
- package/dist/components/main/PickerMain.d.ts +0 -7
- package/dist/dataUtils/alphaNumericEmojiIndex.d.ts +0 -5
- package/dist/emoji-picker-react.cjs.development.js +0 -31413
- package/dist/emoji-picker-react.cjs.development.js.map +0 -1
- package/dist/emoji-picker-react.cjs.production.min.js +0 -2
- package/dist/emoji-picker-react.cjs.production.min.js.map +0 -1
- package/dist/emoji-picker-react.esm.js +0 -31411
- package/dist/emoji-picker-react.esm.js.map +0 -1
- package/dist/hooks/useHideEmojisByUniocode.d.ts +0 -1
- package/src/components/body/Body.tsx +0 -43
- package/src/components/main/PickerMain.tsx +0 -249
- package/src/dataUtils/alphaNumericEmojiIndex.ts +0 -21
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,376 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
type EmojiClickData = {
|
|
4
|
+
activeSkinTone: SkinTones;
|
|
5
|
+
unified: string;
|
|
6
|
+
unifiedWithoutSkinTone: string;
|
|
7
|
+
emoji: string;
|
|
8
|
+
names: string[];
|
|
9
|
+
imageUrl: string;
|
|
10
|
+
getImageUrl: (emojiStyle?: EmojiStyleValue) => string;
|
|
11
|
+
isCustom: boolean;
|
|
12
|
+
};
|
|
13
|
+
type CategoryConfig = {
|
|
14
|
+
category: Categories;
|
|
15
|
+
name: string;
|
|
16
|
+
icon?: React.ReactNode;
|
|
17
|
+
/**
|
|
18
|
+
* Selects a `CustomEmoji` group for `Categories.CUSTOM` entries. Each
|
|
19
|
+
* grouped entry renders its own section and nav tab; ungrouped entries
|
|
20
|
+
* share the classic customs bucket.
|
|
21
|
+
*/
|
|
22
|
+
group?: string;
|
|
23
|
+
};
|
|
24
|
+
type CategoryIcons = Partial<Record<Categories, React.ReactNode>>;
|
|
25
|
+
type EmojiData = {
|
|
26
|
+
categories: Partial<Record<Categories, CategoryConfig>>;
|
|
27
|
+
emojis: Record<string, DataEmoji$1[]>;
|
|
28
|
+
};
|
|
29
|
+
interface DataEmoji$1 {
|
|
30
|
+
n: string[];
|
|
31
|
+
u: string;
|
|
32
|
+
v?: string[];
|
|
33
|
+
a: string;
|
|
34
|
+
}
|
|
35
|
+
declare enum SuggestionMode {
|
|
36
|
+
RECENT = "recent",
|
|
37
|
+
FREQUENT = "frequent"
|
|
38
|
+
}
|
|
39
|
+
type SuggestionModeValue = SuggestionMode | 'recent' | 'frequent';
|
|
40
|
+
declare enum EmojiStyle {
|
|
41
|
+
NATIVE = "native",
|
|
42
|
+
APPLE = "apple",
|
|
43
|
+
TWITTER = "twitter",
|
|
44
|
+
GOOGLE = "google",
|
|
45
|
+
FACEBOOK = "facebook"
|
|
46
|
+
}
|
|
47
|
+
type EmojiStyleValue = EmojiStyle | 'native' | 'apple' | 'twitter' | 'google' | 'facebook';
|
|
48
|
+
declare enum Theme {
|
|
49
|
+
DARK = "dark",
|
|
50
|
+
LIGHT = "light",
|
|
51
|
+
AUTO = "auto"
|
|
52
|
+
}
|
|
53
|
+
type ThemeValue = Theme | 'dark' | 'light' | 'auto';
|
|
54
|
+
declare enum SkinTones {
|
|
55
|
+
NEUTRAL = "neutral",
|
|
56
|
+
LIGHT = "1f3fb",
|
|
57
|
+
MEDIUM_LIGHT = "1f3fc",
|
|
58
|
+
MEDIUM = "1f3fd",
|
|
59
|
+
MEDIUM_DARK = "1f3fe",
|
|
60
|
+
DARK = "1f3ff"
|
|
61
|
+
}
|
|
62
|
+
/** A skin tone as the enum or its literal value (`'neutral'`, `'1f3fb'`, …). */
|
|
63
|
+
type SkinTonesValue = SkinTones | 'neutral' | '1f3fb' | '1f3fc' | '1f3fd' | '1f3fe' | '1f3ff';
|
|
64
|
+
declare enum Categories {
|
|
65
|
+
SUGGESTED = "suggested",
|
|
66
|
+
CUSTOM = "custom",
|
|
67
|
+
SMILEYS_PEOPLE = "smileys_people",
|
|
68
|
+
ANIMALS_NATURE = "animals_nature",
|
|
69
|
+
FOOD_DRINK = "food_drink",
|
|
70
|
+
TRAVEL_PLACES = "travel_places",
|
|
71
|
+
ACTIVITIES = "activities",
|
|
72
|
+
OBJECTS = "objects",
|
|
73
|
+
SYMBOLS = "symbols",
|
|
74
|
+
FLAGS = "flags"
|
|
75
|
+
}
|
|
76
|
+
declare enum SkinTonePickerLocation {
|
|
77
|
+
SEARCH = "SEARCH",
|
|
78
|
+
PREVIEW = "PREVIEW",
|
|
79
|
+
/**
|
|
80
|
+
* No built-in placement: render the `SkinTone` primitive wherever you
|
|
81
|
+
* want it, or drive the tone through `skinTone` / `useSkinTone()`.
|
|
82
|
+
*/
|
|
83
|
+
NONE = "NONE"
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
declare enum EmojiProperties {
|
|
87
|
+
name = "n",
|
|
88
|
+
unified = "u",
|
|
89
|
+
variations = "v",
|
|
90
|
+
added_in = "a",
|
|
91
|
+
imgUrl = "imgUrl"
|
|
92
|
+
}
|
|
93
|
+
interface DataEmoji extends WithName {
|
|
94
|
+
/** Exact rendered identity; canonical unified remains the search identity. */
|
|
95
|
+
renderUnified?: string;
|
|
96
|
+
/** Stored recent identity when the active tone has no matching variation. */
|
|
97
|
+
fallbackUnified?: string;
|
|
98
|
+
[EmojiProperties.unified]: string;
|
|
99
|
+
[EmojiProperties.variations]?: string[];
|
|
100
|
+
[EmojiProperties.added_in]: string;
|
|
101
|
+
[EmojiProperties.imgUrl]?: string;
|
|
102
|
+
}
|
|
103
|
+
type WithName = {
|
|
104
|
+
[EmojiProperties.name]: string[];
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
type CustomEmoji = {
|
|
108
|
+
names: string[];
|
|
109
|
+
[EmojiProperties.imgUrl]: string;
|
|
110
|
+
id: string;
|
|
111
|
+
/**
|
|
112
|
+
* Optional group name. Customs sharing a group render as their own
|
|
113
|
+
* category section; ungrouped customs keep the single shared bucket.
|
|
114
|
+
* Reference the group from a `{ category: Categories.CUSTOM, group }`
|
|
115
|
+
* entry in the `categories` prop to place and name the section.
|
|
116
|
+
* https://github.com/ealush/emoji-picker-react/issues/510
|
|
117
|
+
*/
|
|
118
|
+
group?: string;
|
|
119
|
+
};
|
|
120
|
+
|
|
121
|
+
type GetEmojiUrl = (unified: string, style: EmojiStyleValue) => string;
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* Asynchronous dataset source, e.g.
|
|
125
|
+
* `() => import('emoji-picker-react/data/emojis-fr')`.
|
|
126
|
+
* Hoist it (module scope or useCallback): a new function identity loads
|
|
127
|
+
* again.
|
|
128
|
+
*/
|
|
129
|
+
type EmojiDataLoaderOptions = {
|
|
130
|
+
signal?: AbortSignal;
|
|
131
|
+
};
|
|
132
|
+
type EmojiDataLoader = (options: EmojiDataLoaderOptions) => Promise<EmojiData | {
|
|
133
|
+
default: EmojiData;
|
|
134
|
+
}>;
|
|
135
|
+
type EmojiDataInput = EmojiData | EmojiDataLoader;
|
|
136
|
+
|
|
137
|
+
type CategoriesConfig = CategoryConfig[];
|
|
138
|
+
type UserCategoryConfig = Array<Categories | CategoryConfig>;
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* Every user-facing string the picker renders or announces. All keys are
|
|
142
|
+
* optional on the `labels` prop; anything omitted keeps its English
|
|
143
|
+
* default. Category names come from `categories` / localized `emojiData`,
|
|
144
|
+
* and the preview caption from `previewConfig.defaultCaption`.
|
|
145
|
+
*/
|
|
146
|
+
type PickerLabels = {
|
|
147
|
+
searchPlaceholder: string;
|
|
148
|
+
/** Accessible name of the search input. */
|
|
149
|
+
searchLabel: string;
|
|
150
|
+
searchClear: string;
|
|
151
|
+
/** Live-region announcement and visible empty state. */
|
|
152
|
+
searchResultsNone: string;
|
|
153
|
+
searchResultsOne: string;
|
|
154
|
+
/** `%n` is replaced with the result count. */
|
|
155
|
+
searchResultsMany: string;
|
|
156
|
+
categoryNavigation: string;
|
|
157
|
+
reactions: string;
|
|
158
|
+
expandReactions: string;
|
|
159
|
+
/** Shown by the Loading part while the dataset loads. */
|
|
160
|
+
loading: string;
|
|
161
|
+
loadingError: string;
|
|
162
|
+
retryLoading: string;
|
|
163
|
+
skinToneNeutral: string;
|
|
164
|
+
skinToneLight: string;
|
|
165
|
+
skinToneMediumLight: string;
|
|
166
|
+
skinToneMedium: string;
|
|
167
|
+
skinToneMediumDark: string;
|
|
168
|
+
skinToneDark: string;
|
|
169
|
+
};
|
|
170
|
+
type PickerConfigInternal = {
|
|
171
|
+
emojiVersion: string | null;
|
|
172
|
+
searchPlaceHolder: string;
|
|
173
|
+
searchPlaceholder: string;
|
|
174
|
+
searchClearButtonLabel: string;
|
|
175
|
+
defaultSkinTone: SkinTonesValue;
|
|
176
|
+
skinTonesDisabled: boolean;
|
|
177
|
+
autoFocusSearch: boolean;
|
|
178
|
+
emojiStyle: EmojiStyleValue;
|
|
179
|
+
categories: CategoriesConfig;
|
|
180
|
+
theme: ThemeValue;
|
|
181
|
+
suggestedEmojisMode: SuggestionModeValue;
|
|
182
|
+
lazyLoadEmojis: boolean;
|
|
183
|
+
previewConfig: PreviewConfig;
|
|
184
|
+
className: string;
|
|
185
|
+
height: PickerDimensions;
|
|
186
|
+
width: PickerDimensions;
|
|
187
|
+
style: React.CSSProperties;
|
|
188
|
+
getEmojiUrl: GetEmojiUrl;
|
|
189
|
+
searchDisabled: boolean;
|
|
190
|
+
skinTonePickerLocation: SkinTonePickerLocation;
|
|
191
|
+
unicodeToHide: Set<string>;
|
|
192
|
+
customEmojis: CustomEmoji[];
|
|
193
|
+
reactionsDefaultOpen: boolean;
|
|
194
|
+
reactions: string[];
|
|
195
|
+
open: boolean;
|
|
196
|
+
allowExpandReactions: boolean;
|
|
197
|
+
hiddenEmojis: string[];
|
|
198
|
+
emojiData?: EmojiData;
|
|
199
|
+
categoryIcons: CategoryIcons;
|
|
200
|
+
nonce?: string;
|
|
201
|
+
/**
|
|
202
|
+
* Controlled search value (raw user text). When present, it is the
|
|
203
|
+
* accepted visible source of truth; user edits emit `onSearchChange`
|
|
204
|
+
* proposals instead of committing locally.
|
|
205
|
+
*/
|
|
206
|
+
searchValue?: string;
|
|
207
|
+
/** Uncontrolled initial search value, read once per mounted lifetime. */
|
|
208
|
+
defaultSearchValue?: string;
|
|
209
|
+
/** Emitted synchronously with each committed (uncontrolled) or proposed (controlled) user edit. */
|
|
210
|
+
onSearchChange?: (value: string) => void;
|
|
211
|
+
/** Accessible label for the search input. Defaults to English. */
|
|
212
|
+
searchLabel?: string;
|
|
213
|
+
/**
|
|
214
|
+
* Caller-defined Suggested category contents/order (unified or custom
|
|
215
|
+
* IDs). While present, `suggestedEmojisMode` is ignored for contents.
|
|
216
|
+
*/
|
|
217
|
+
suggestedEmojis?: string[];
|
|
218
|
+
/** Observes compact-reactions vs full-picker transitions. */
|
|
219
|
+
onReactionsModeChange?: (reactionsOpen: boolean) => void;
|
|
220
|
+
/**
|
|
221
|
+
* Localized user-facing strings. Takes precedence over the individual
|
|
222
|
+
* `searchPlaceholder` / `searchLabel` / `searchClearButtonLabel` props.
|
|
223
|
+
*/
|
|
224
|
+
labels?: Partial<PickerLabels>;
|
|
225
|
+
/**
|
|
226
|
+
* Controlled active skin tone. Pair with `onSkinToneChange`; while
|
|
227
|
+
* present, `defaultSkinTone` is ignored.
|
|
228
|
+
*/
|
|
229
|
+
skinTone?: SkinTonesValue;
|
|
230
|
+
/**
|
|
231
|
+
* Emit the picker's CSS inside this cascade layer (e.g. "epr"), for
|
|
232
|
+
* layered CSS frameworks such as Tailwind v4 whose utilities cannot
|
|
233
|
+
* beat unlayered CSS. Declare the layer first in your CSS:
|
|
234
|
+
* `@layer epr, theme, base, components, utilities;`. Default: unlayered.
|
|
235
|
+
*/
|
|
236
|
+
cssLayer?: string;
|
|
237
|
+
/**
|
|
238
|
+
* Emojis per row. The picker then sizes its width to fit those columns
|
|
239
|
+
* unless you set a width; a narrower container shows fewer columns.
|
|
240
|
+
* Default: as many as the width fits.
|
|
241
|
+
*/
|
|
242
|
+
columns?: number;
|
|
243
|
+
};
|
|
244
|
+
type PreviewConfig = {
|
|
245
|
+
defaultEmoji: string;
|
|
246
|
+
defaultCaption: string;
|
|
247
|
+
showPreview: boolean;
|
|
248
|
+
};
|
|
249
|
+
type ConfigExternal = {
|
|
250
|
+
previewConfig: Partial<PreviewConfig>;
|
|
251
|
+
onEmojiClick: MouseDownEvent;
|
|
252
|
+
onReactionClick: MouseDownEvent;
|
|
253
|
+
onSkinToneChange: OnSkinToneChange;
|
|
254
|
+
/**
|
|
255
|
+
* User-supplied allowlist/order/merge input. Bare `Categories` members
|
|
256
|
+
* are accepted alongside full configs (as in v4 usage and this repo's
|
|
257
|
+
* own tests); the merged internal representation stays `CategoriesConfig`.
|
|
258
|
+
*/
|
|
259
|
+
categories: UserCategoryConfig;
|
|
260
|
+
/**
|
|
261
|
+
* Dataset: an object (synchronous, SSR-safe), or a loader such as
|
|
262
|
+
* `() => import('emoji-picker-react/data/emojis-fr')` to code-split it.
|
|
263
|
+
* Omitted: the bundled English dataset.
|
|
264
|
+
*/
|
|
265
|
+
emojiData: EmojiDataInput;
|
|
266
|
+
} & Omit<PickerConfigInternal, 'previewConfig' | 'unicodeToHide' | 'categories' | 'emojiData'>;
|
|
267
|
+
type PickerConfig = Partial<ConfigExternal>;
|
|
268
|
+
type PickerDimensions = string | number;
|
|
269
|
+
type MouseDownEvent = (emoji: EmojiClickData, event: MouseEvent, api?: OnEmojiClickApi) => void;
|
|
270
|
+
type OnSkinToneChange = (skinTone: SkinTones) => void;
|
|
271
|
+
/** The `onEmojiClick` / `onReactionClick` callback signature. */
|
|
272
|
+
type EmojiClickHandler = MouseDownEvent;
|
|
273
|
+
/** The `onSkinToneChange` callback signature. */
|
|
274
|
+
type SkinToneChangeHandler = OnSkinToneChange;
|
|
275
|
+
/** Third argument of `onEmojiClick` / `onReactionClick`. */
|
|
276
|
+
type OnEmojiClickApi = {
|
|
277
|
+
/** Return to the compact reactions bar (no-op when reactions are off). */
|
|
278
|
+
collapseToReactions: () => void;
|
|
279
|
+
};
|
|
280
|
+
|
|
281
|
+
/** The emoji a custom `Emoji` cell renders. */
|
|
282
|
+
type ListEmoji = {
|
|
283
|
+
/** True while hovered or keyboard-focused. */
|
|
284
|
+
isActive: boolean;
|
|
285
|
+
/** Unified code including the active skin tone, e.g. `1f44d-1f3fd`. */
|
|
286
|
+
unified: string;
|
|
287
|
+
names: string[];
|
|
288
|
+
/** Native emoji text (custom emojis: their id). */
|
|
289
|
+
emoji: string;
|
|
290
|
+
isCustom: boolean;
|
|
291
|
+
/** Active image style URL, or undefined for standard native emojis. */
|
|
292
|
+
imageUrl?: string;
|
|
293
|
+
/** Whether a long press opens skin tone variations. */
|
|
294
|
+
hasVariations: boolean;
|
|
295
|
+
};
|
|
296
|
+
/**
|
|
297
|
+
* Props for a custom emoji cell. Spread everything except `emoji` onto a
|
|
298
|
+
* `<button>`: the library-owned attributes (type, class, position style,
|
|
299
|
+
* tabIndex, aria-label, data-epr-*) carry selection, keyboard navigation,
|
|
300
|
+
* virtualization and accessibility. `children` is the default glyph/image;
|
|
301
|
+
* render it or your own content.
|
|
302
|
+
*/
|
|
303
|
+
type EmojiRenderProps = React.ButtonHTMLAttributes<HTMLButtonElement> & {
|
|
304
|
+
emoji: ListEmoji;
|
|
305
|
+
children: React.ReactNode;
|
|
306
|
+
};
|
|
307
|
+
/**
|
|
308
|
+
* Props for a custom category header. Spread everything except `category`
|
|
309
|
+
* onto the header element; it stays sticky and measured.
|
|
310
|
+
*/
|
|
311
|
+
type CategoryHeaderRenderProps = React.HTMLAttributes<HTMLElement> & {
|
|
312
|
+
category: {
|
|
313
|
+
id: string;
|
|
314
|
+
name: string;
|
|
315
|
+
};
|
|
316
|
+
children: React.ReactNode;
|
|
317
|
+
};
|
|
318
|
+
type ListComponents = {
|
|
319
|
+
Emoji?: React.ComponentType<EmojiRenderProps>;
|
|
320
|
+
CategoryHeader?: React.ComponentType<CategoryHeaderRenderProps>;
|
|
321
|
+
};
|
|
322
|
+
|
|
323
|
+
/** Spread the managed props onto one native button. Render children or your own content. */
|
|
324
|
+
type CategoryButtonRenderProps = React.ButtonHTMLAttributes<HTMLButtonElement> & {
|
|
325
|
+
category: {
|
|
326
|
+
id: string;
|
|
327
|
+
name: string;
|
|
328
|
+
isActive: boolean;
|
|
329
|
+
};
|
|
330
|
+
};
|
|
331
|
+
type SkinToneButtonRenderProps = React.ButtonHTMLAttributes<HTMLButtonElement> & {
|
|
332
|
+
tone: {
|
|
333
|
+
skinTone: SkinTones;
|
|
334
|
+
isActive: boolean;
|
|
335
|
+
isOpen: boolean;
|
|
336
|
+
};
|
|
337
|
+
};
|
|
338
|
+
type PickerComponents = ListComponents & {
|
|
339
|
+
CategoryButton?: React.ComponentType<CategoryButtonRenderProps>;
|
|
340
|
+
SkinToneButton?: React.ComponentType<SkinToneButtonRenderProps>;
|
|
341
|
+
ExpandButton?: React.ComponentType<React.ButtonHTMLAttributes<HTMLButtonElement>>;
|
|
342
|
+
ClearButton?: React.ComponentType<React.ButtonHTMLAttributes<HTMLButtonElement>>;
|
|
343
|
+
};
|
|
344
|
+
|
|
345
|
+
declare function ExportedEmoji({ unified, size, emojiStyle, lazyLoad, getEmojiUrl, emojiUrl, }: {
|
|
346
|
+
unified: string;
|
|
347
|
+
emojiStyle?: EmojiStyleValue;
|
|
348
|
+
size?: number;
|
|
349
|
+
lazyLoad?: boolean;
|
|
350
|
+
getEmojiUrl?: GetEmojiUrl;
|
|
351
|
+
emojiUrl?: string;
|
|
352
|
+
}): React.JSX.Element | null;
|
|
353
|
+
|
|
354
|
+
declare function emojiByUnified(unified?: string): DataEmoji | undefined;
|
|
355
|
+
|
|
356
|
+
interface PickerProps extends PickerConfig, React.AriaAttributes, Pick<React.HTMLAttributes<HTMLElement>, 'id' | 'title' | 'lang' | 'dir'> {
|
|
357
|
+
/**
|
|
358
|
+
* Color scheme: 'light' | 'dark' | 'auto'. Preferred over `theme`, which
|
|
359
|
+
* Emotion, styled-components and MUI reserve on components they wrap
|
|
360
|
+
* (a styled(EmojiPicker) would swallow it). `theme` remains supported.
|
|
361
|
+
*/
|
|
362
|
+
colorScheme?: ThemeValue;
|
|
363
|
+
/**
|
|
364
|
+
* Render without decorative styling on every managed part.
|
|
365
|
+
* Geometry, presence and navigation remain managed. Style it with `className`,
|
|
366
|
+
* `--epr-*` variables and `[data-epr-part]` selectors.
|
|
367
|
+
*/
|
|
368
|
+
unstyled?: boolean;
|
|
369
|
+
/** Shared replacements for interactive controls and category headers. */
|
|
370
|
+
components?: PickerComponents;
|
|
371
|
+
}
|
|
372
|
+
type Props = PickerProps;
|
|
373
|
+
declare function EmojiPicker(props: PickerProps): React.JSX.Element;
|
|
374
|
+
|
|
375
|
+
export { Categories, ExportedEmoji as Emoji, EmojiStyle, SkinTonePickerLocation, SkinTones, SuggestionMode, Theme, EmojiPicker as default, emojiByUnified };
|
|
376
|
+
export type { CategoryButtonRenderProps, CategoryConfig, CategoryHeaderRenderProps, CategoryIcons, CustomEmoji, EmojiClickData, EmojiClickHandler, EmojiData, EmojiDataInput, EmojiDataLoader, EmojiDataLoaderOptions, EmojiRenderProps, EmojiStyleValue, ListComponents, ListEmoji, OnEmojiClickApi, PickerComponents, PickerLabels, PickerProps, PreviewConfig, Props, SkinToneButtonRenderProps, SkinToneChangeHandler, SkinTonesValue, SuggestionModeValue, ThemeValue };
|