@kesha-antonov/react-native-chat 5.0.1 → 6.0.1
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 +486 -179
- package/lib/Actions.d.ts.map +1 -1
- package/lib/Actions.js +121 -42
- package/lib/Actions.js.map +1 -1
- package/lib/Avatar.d.ts.map +1 -1
- package/lib/Avatar.js +171 -86
- package/lib/Avatar.js.map +1 -1
- package/lib/Bubble/BubbleBody.d.ts +15 -0
- package/lib/Bubble/BubbleBody.d.ts.map +1 -0
- package/lib/Bubble/BubbleBody.js +218 -0
- package/lib/Bubble/BubbleBody.js.map +1 -0
- package/lib/Bubble/BubbleContent.d.ts +23 -0
- package/lib/Bubble/BubbleContent.d.ts.map +1 -0
- package/lib/Bubble/BubbleContent.js +446 -0
- package/lib/Bubble/BubbleContent.js.map +1 -0
- package/lib/Bubble/BubbleMenu.d.ts +45 -0
- package/lib/Bubble/BubbleMenu.d.ts.map +1 -0
- package/lib/Bubble/BubbleMenu.js +289 -0
- package/lib/Bubble/BubbleMenu.js.map +1 -0
- package/lib/Bubble/BubbleMeta.d.ts +17 -0
- package/lib/Bubble/BubbleMeta.d.ts.map +1 -0
- package/lib/Bubble/BubbleMeta.js +453 -0
- package/lib/Bubble/BubbleMeta.js.map +1 -0
- package/lib/Bubble/LiftedBubble.d.ts +18 -0
- package/lib/Bubble/LiftedBubble.d.ts.map +1 -0
- package/lib/Bubble/LiftedBubble.js +109 -0
- package/lib/Bubble/LiftedBubble.js.map +1 -0
- package/lib/Bubble/PressableBubbleRow.d.ts +33 -0
- package/lib/Bubble/PressableBubbleRow.d.ts.map +1 -0
- package/lib/Bubble/PressableBubbleRow.js +172 -0
- package/lib/Bubble/PressableBubbleRow.js.map +1 -0
- package/lib/Bubble/index.d.ts +6 -13
- package/lib/Bubble/index.d.ts.map +1 -1
- package/lib/Bubble/index.js +379 -509
- package/lib/Bubble/index.js.map +1 -1
- package/lib/Bubble/layout.d.ts +47 -0
- package/lib/Bubble/layout.d.ts.map +1 -0
- package/lib/Bubble/layout.js +258 -0
- package/lib/Bubble/layout.js.map +1 -0
- package/lib/Bubble/styles.d.ts +108 -16
- package/lib/Bubble/styles.d.ts.map +1 -1
- package/lib/Bubble/styles.js +227 -107
- package/lib/Bubble/styles.js.map +1 -1
- package/lib/Bubble/types.d.ts +19 -3
- package/lib/Bubble/types.d.ts.map +1 -1
- package/lib/Bubble/types.js.map +1 -1
- package/lib/Chat/Chat.d.ts +5 -0
- package/lib/Chat/Chat.d.ts.map +1 -0
- package/lib/Chat/Chat.js +464 -0
- package/lib/Chat/Chat.js.map +1 -0
- package/lib/Chat/ChatBackground.d.ts +16 -0
- package/lib/Chat/ChatBackground.d.ts.map +1 -0
- package/lib/Chat/ChatBackground.js +43 -0
- package/lib/Chat/ChatBackground.js.map +1 -0
- package/lib/Chat/ChatKeyboardAvoidingView.js +19 -4
- package/lib/Chat/ChatKeyboardAvoidingView.js.map +1 -1
- package/lib/Chat/ChatMessageList.d.ts +27 -0
- package/lib/Chat/ChatMessageList.d.ts.map +1 -0
- package/lib/Chat/ChatMessageList.js +220 -0
- package/lib/Chat/ChatMessageList.js.map +1 -0
- package/lib/Chat/ChatProviders.d.ts +18 -0
- package/lib/Chat/ChatProviders.d.ts.map +1 -0
- package/lib/Chat/ChatProviders.js +87 -0
- package/lib/Chat/ChatProviders.js.map +1 -0
- package/lib/Chat/ChatSafeAreaProvider.d.ts +35 -0
- package/lib/Chat/ChatSafeAreaProvider.d.ts.map +1 -0
- package/lib/Chat/ChatSafeAreaProvider.js +123 -0
- package/lib/Chat/ChatSafeAreaProvider.js.map +1 -0
- package/lib/Chat/ChatSelectionBar.d.ts +20 -0
- package/lib/Chat/ChatSelectionBar.d.ts.map +1 -0
- package/lib/Chat/ChatSelectionBar.js +141 -0
- package/lib/Chat/ChatSelectionBar.js.map +1 -0
- package/lib/Chat/ChatWrapper.d.ts +11 -0
- package/lib/Chat/ChatWrapper.d.ts.map +1 -0
- package/lib/Chat/ChatWrapper.js +98 -0
- package/lib/Chat/ChatWrapper.js.map +1 -0
- package/lib/Chat/ComposerHost.d.ts +20 -0
- package/lib/Chat/ComposerHost.d.ts.map +1 -0
- package/lib/Chat/ComposerHost.js +118 -0
- package/lib/Chat/ComposerHost.js.map +1 -0
- package/lib/Chat/index.d.ts +1 -8
- package/lib/Chat/index.d.ts.map +1 -1
- package/lib/Chat/index.js +1 -337
- package/lib/Chat/index.js.map +1 -1
- package/lib/Chat/styles.d.ts +14 -2
- package/lib/Chat/styles.d.ts.map +1 -1
- package/lib/Chat/styles.js +19 -9
- package/lib/Chat/styles.js.map +1 -1
- package/lib/Chat/types.d.ts +145 -11
- package/lib/Chat/types.d.ts.map +1 -1
- package/lib/Chat/types.js.map +1 -1
- package/lib/Chat/useChatContextValue.d.ts +19 -0
- package/lib/Chat/useChatContextValue.d.ts.map +1 -0
- package/lib/Chat/useChatContextValue.js +158 -0
- package/lib/Chat/useChatContextValue.js.map +1 -0
- package/lib/Chat/useChatMedia.d.ts +22 -0
- package/lib/Chat/useChatMedia.d.ts.map +1 -0
- package/lib/Chat/useChatMedia.js +127 -0
- package/lib/Chat/useChatMedia.js.map +1 -0
- package/lib/Chat/useChatSelection.d.ts +15 -0
- package/lib/Chat/useChatSelection.d.ts.map +1 -0
- package/lib/Chat/useChatSelection.js +106 -0
- package/lib/Chat/useChatSelection.js.map +1 -0
- package/lib/Chat/useComposerHandlers.d.ts +34 -0
- package/lib/Chat/useComposerHandlers.d.ts.map +1 -0
- package/lib/Chat/useComposerHandlers.js +330 -0
- package/lib/Chat/useComposerHandlers.js.map +1 -0
- package/lib/Chat/useComposerState.d.ts +27 -0
- package/lib/Chat/useComposerState.d.ts.map +1 -0
- package/lib/Chat/useComposerState.js +272 -0
- package/lib/Chat/useComposerState.js.map +1 -0
- package/lib/Chat/useInitialLayout.d.ts +19 -0
- package/lib/Chat/useInitialLayout.d.ts.map +1 -0
- package/lib/Chat/useInitialLayout.js +70 -0
- package/lib/Chat/useInitialLayout.js.map +1 -0
- package/lib/Chat/useMessageActions.d.ts +37 -0
- package/lib/Chat/useMessageActions.d.ts.map +1 -0
- package/lib/Chat/useMessageActions.js +323 -0
- package/lib/Chat/useMessageActions.js.map +1 -0
- package/lib/Chat/useMessageNavigation.d.ts +21 -0
- package/lib/Chat/useMessageNavigation.d.ts.map +1 -0
- package/lib/Chat/useMessageNavigation.js +149 -0
- package/lib/Chat/useMessageNavigation.js.map +1 -0
- package/lib/Chat/useOptionalPeerHints.d.ts +6 -0
- package/lib/Chat/useOptionalPeerHints.d.ts.map +1 -0
- package/lib/Chat/useOptionalPeerHints.js +63 -0
- package/lib/Chat/useOptionalPeerHints.js.map +1 -0
- package/lib/Chat/useResolvedReactions.d.ts +31 -0
- package/lib/Chat/useResolvedReactions.d.ts.map +1 -0
- package/lib/Chat/useResolvedReactions.js +95 -0
- package/lib/Chat/useResolvedReactions.js.map +1 -0
- package/lib/ChatAvatar.d.ts.map +1 -1
- package/lib/ChatAvatar.js +229 -84
- package/lib/ChatAvatar.js.map +1 -1
- package/lib/ChatContext.js +20 -10
- package/lib/ChatContext.js.map +1 -1
- package/lib/ChatList/ChatListAvatar.d.ts +21 -0
- package/lib/ChatList/ChatListAvatar.d.ts.map +1 -0
- package/lib/ChatList/ChatListAvatar.js +178 -0
- package/lib/ChatList/ChatListAvatar.js.map +1 -0
- package/lib/ChatList/ChatListCell.d.ts +16 -0
- package/lib/ChatList/ChatListCell.d.ts.map +1 -0
- package/lib/ChatList/ChatListCell.js +506 -0
- package/lib/ChatList/ChatListCell.js.map +1 -0
- package/lib/ChatList/ChatListShimmer.d.ts +3 -0
- package/lib/ChatList/ChatListShimmer.d.ts.map +1 -0
- package/lib/ChatList/ChatListShimmer.js +235 -0
- package/lib/ChatList/ChatListShimmer.js.map +1 -0
- package/lib/ChatList/index.d.ts +16 -0
- package/lib/ChatList/index.d.ts.map +1 -0
- package/lib/ChatList/index.js +1301 -0
- package/lib/ChatList/index.js.map +1 -0
- package/lib/ChatList/types.d.ts +128 -0
- package/lib/ChatList/types.d.ts.map +1 -0
- package/lib/ChatList/types.js +2 -0
- package/lib/ChatList/types.js.map +1 -0
- package/lib/ChatList/useChatList.d.ts +30 -0
- package/lib/ChatList/useChatList.d.ts.map +1 -0
- package/lib/ChatList/useChatList.js +211 -0
- package/lib/ChatList/useChatList.js.map +1 -0
- package/lib/ChatList/utils.d.ts +28 -0
- package/lib/ChatList/utils.d.ts.map +1 -0
- package/lib/ChatList/utils.js +60 -0
- package/lib/ChatList/utils.js.map +1 -0
- package/lib/Color.js +19 -19
- package/lib/Color.js.map +1 -1
- package/lib/Composer.d.ts.map +1 -1
- package/lib/Composer.js +148 -70
- package/lib/Composer.js.map +1 -1
- package/lib/Constant.js +4 -4
- package/lib/Constant.js.map +1 -1
- package/lib/Day/index.d.ts.map +1 -1
- package/lib/Day/index.js +115 -28
- package/lib/Day/index.js.map +1 -1
- package/lib/Day/styles.d.ts +3 -3
- package/lib/Day/styles.d.ts.map +1 -1
- package/lib/Day/styles.js +20 -17
- package/lib/Day/styles.js.map +1 -1
- package/lib/Day/types.js.map +1 -1
- package/lib/Icons.d.ts +1 -1
- package/lib/Icons.d.ts.map +1 -1
- package/lib/Icons.js.map +1 -1
- package/lib/InputToolbar/FieldGroup.d.ts +28 -0
- package/lib/InputToolbar/FieldGroup.d.ts.map +1 -0
- package/lib/InputToolbar/FieldGroup.js +143 -0
- package/lib/InputToolbar/FieldGroup.js.map +1 -0
- package/lib/InputToolbar/TakePreviewBar.d.ts +17 -0
- package/lib/InputToolbar/TakePreviewBar.d.ts.map +1 -0
- package/lib/InputToolbar/TakePreviewBar.js +126 -0
- package/lib/InputToolbar/TakePreviewBar.js.map +1 -0
- package/lib/InputToolbar/animations.d.ts +105 -0
- package/lib/InputToolbar/animations.d.ts.map +1 -0
- package/lib/InputToolbar/animations.js +238 -0
- package/lib/InputToolbar/animations.js.map +1 -0
- package/lib/InputToolbar/fragments.d.ts +13 -0
- package/lib/InputToolbar/fragments.d.ts.map +1 -0
- package/lib/InputToolbar/fragments.js +207 -0
- package/lib/InputToolbar/fragments.js.map +1 -0
- package/lib/InputToolbar/index.d.ts +7 -0
- package/lib/InputToolbar/index.d.ts.map +1 -0
- package/lib/InputToolbar/index.js +444 -0
- package/lib/InputToolbar/index.js.map +1 -0
- package/lib/InputToolbar/recordingOptions.d.ts +14 -0
- package/lib/InputToolbar/recordingOptions.d.ts.map +1 -0
- package/lib/InputToolbar/recordingOptions.js +38 -0
- package/lib/InputToolbar/recordingOptions.js.map +1 -0
- package/lib/InputToolbar/styles.d.ts +118 -0
- package/lib/InputToolbar/styles.d.ts.map +1 -0
- package/lib/InputToolbar/styles.js +139 -0
- package/lib/InputToolbar/styles.js.map +1 -0
- package/lib/InputToolbar/types.d.ts +77 -0
- package/lib/InputToolbar/types.d.ts.map +1 -0
- package/lib/InputToolbar/types.js +2 -0
- package/lib/InputToolbar/types.js.map +1 -0
- package/lib/InputToolbar/useActionsFragment.d.ts +6 -0
- package/lib/InputToolbar/useActionsFragment.d.ts.map +1 -0
- package/lib/InputToolbar/useActionsFragment.js +139 -0
- package/lib/InputToolbar/useActionsFragment.js.map +1 -0
- package/lib/InputToolbar/useComposerEditing.d.ts +11 -0
- package/lib/InputToolbar/useComposerEditing.d.ts.map +1 -0
- package/lib/InputToolbar/useComposerEditing.js +116 -0
- package/lib/InputToolbar/useComposerEditing.js.map +1 -0
- package/lib/InputToolbar/useEmojiButton.d.ts +14 -0
- package/lib/InputToolbar/useEmojiButton.d.ts.map +1 -0
- package/lib/InputToolbar/useEmojiButton.js +120 -0
- package/lib/InputToolbar/useEmojiButton.js.map +1 -0
- package/lib/InputToolbar/useKeyboardInset.d.ts +9 -0
- package/lib/InputToolbar/useKeyboardInset.d.ts.map +1 -0
- package/lib/InputToolbar/useKeyboardInset.js +25 -0
- package/lib/InputToolbar/useKeyboardInset.js.map +1 -0
- package/lib/InputToolbar/useRecordMode.d.ts +19 -0
- package/lib/InputToolbar/useRecordMode.d.ts.map +1 -0
- package/lib/InputToolbar/useRecordMode.js +124 -0
- package/lib/InputToolbar/useRecordMode.js.map +1 -0
- package/lib/InputToolbar/useRecordTake.d.ts +46 -0
- package/lib/InputToolbar/useRecordTake.d.ts.map +1 -0
- package/lib/InputToolbar/useRecordTake.js +315 -0
- package/lib/InputToolbar/useRecordTake.js.map +1 -0
- package/lib/InputToolbar/useReturnAnimations.d.ts +18 -0
- package/lib/InputToolbar/useReturnAnimations.d.ts.map +1 -0
- package/lib/InputToolbar/useReturnAnimations.js +30 -0
- package/lib/InputToolbar/useReturnAnimations.js.map +1 -0
- package/lib/InputToolbar/useRightControl.d.ts +40 -0
- package/lib/InputToolbar/useRightControl.d.ts.map +1 -0
- package/lib/InputToolbar/useRightControl.js +129 -0
- package/lib/InputToolbar/useRightControl.js.map +1 -0
- package/lib/LoadEarlierMessages.d.ts +2 -0
- package/lib/LoadEarlierMessages.d.ts.map +1 -1
- package/lib/LoadEarlierMessages.js +153 -40
- package/lib/LoadEarlierMessages.js.map +1 -1
- package/lib/Message/SwipeToReply.d.ts +23 -0
- package/lib/Message/SwipeToReply.d.ts.map +1 -0
- package/lib/Message/SwipeToReply.js +337 -0
- package/lib/Message/SwipeToReply.js.map +1 -0
- package/lib/Message/index.d.ts.map +1 -1
- package/lib/Message/index.js +415 -176
- package/lib/Message/index.js.map +1 -1
- package/lib/Message/styles.d.ts +2 -2
- package/lib/Message/styles.js +14 -14
- package/lib/Message/styles.js.map +1 -1
- package/lib/Message/types.d.ts +5 -0
- package/lib/Message/types.d.ts.map +1 -1
- package/lib/Message/types.js.map +1 -1
- package/lib/MessageAudio.d.ts.map +1 -1
- package/lib/MessageAudio.js +647 -107
- package/lib/MessageAudio.js.map +1 -1
- package/lib/MessageFile.d.ts +11 -0
- package/lib/MessageFile.d.ts.map +1 -0
- package/lib/MessageFile.js +315 -0
- package/lib/MessageFile.js.map +1 -0
- package/lib/MessageImage.d.ts +2 -0
- package/lib/MessageImage.d.ts.map +1 -1
- package/lib/MessageImage.js +430 -161
- package/lib/MessageImage.js.map +1 -1
- package/lib/MessageLocation.d.ts.map +1 -1
- package/lib/MessageLocation.js +180 -68
- package/lib/MessageLocation.js.map +1 -1
- package/lib/MessageText.d.ts +8 -1
- package/lib/MessageText.d.ts.map +1 -1
- package/lib/MessageText.js +261 -69
- package/lib/MessageText.js.map +1 -1
- package/lib/MessageVideo/ExpoVideoPlayer.d.ts +6 -0
- package/lib/MessageVideo/ExpoVideoPlayer.d.ts.map +1 -0
- package/lib/MessageVideo/ExpoVideoPlayer.js +68 -0
- package/lib/MessageVideo/ExpoVideoPlayer.js.map +1 -0
- package/lib/MessageVideo/MirroredVideo.d.ts +17 -0
- package/lib/MessageVideo/MirroredVideo.d.ts.map +1 -0
- package/lib/MessageVideo/MirroredVideo.js +223 -0
- package/lib/MessageVideo/MirroredVideo.js.map +1 -0
- package/lib/MessageVideo/RoundNotePlayer.d.ts +4 -0
- package/lib/MessageVideo/RoundNotePlayer.d.ts.map +1 -0
- package/lib/MessageVideo/RoundNotePlayer.js +560 -0
- package/lib/MessageVideo/RoundNotePlayer.js.map +1 -0
- package/lib/MessageVideo/RoundTranscription.d.ts +27 -0
- package/lib/MessageVideo/RoundTranscription.d.ts.map +1 -0
- package/lib/MessageVideo/RoundTranscription.js +151 -0
- package/lib/MessageVideo/RoundTranscription.js.map +1 -0
- package/lib/MessageVideo/VideoTransferOverlay.d.ts +11 -0
- package/lib/MessageVideo/VideoTransferOverlay.d.ts.map +1 -0
- package/lib/MessageVideo/VideoTransferOverlay.js +88 -0
- package/lib/MessageVideo/VideoTransferOverlay.js.map +1 -0
- package/lib/MessageVideo/constants.d.ts +13 -0
- package/lib/MessageVideo/constants.d.ts.map +1 -0
- package/lib/MessageVideo/constants.js +15 -0
- package/lib/MessageVideo/constants.js.map +1 -0
- package/lib/{MessageVideo.d.ts → MessageVideo/index.d.ts} +2 -2
- package/lib/MessageVideo/index.d.ts.map +1 -0
- package/lib/MessageVideo/index.js +92 -0
- package/lib/MessageVideo/index.js.map +1 -0
- package/lib/MessageVideo/liftedMedia.d.ts +13 -0
- package/lib/MessageVideo/liftedMedia.d.ts.map +1 -0
- package/lib/MessageVideo/liftedMedia.js +106 -0
- package/lib/MessageVideo/liftedMedia.js.map +1 -0
- package/lib/MessageVideo/styles.d.ts +71 -0
- package/lib/MessageVideo/styles.d.ts.map +1 -0
- package/lib/MessageVideo/styles.js +78 -0
- package/lib/MessageVideo/styles.js.map +1 -0
- package/lib/MessageVideo/types.d.ts +27 -0
- package/lib/MessageVideo/types.d.ts.map +1 -0
- package/lib/MessageVideo/types.js +2 -0
- package/lib/MessageVideo/types.js.map +1 -0
- package/lib/MessageVideo/useNoteGrow.d.ts +16 -0
- package/lib/MessageVideo/useNoteGrow.d.ts.map +1 -0
- package/lib/MessageVideo/useNoteGrow.js +122 -0
- package/lib/MessageVideo/useNoteGrow.js.map +1 -0
- package/lib/MessageVideo/useNotePlayer.d.ts +14 -0
- package/lib/MessageVideo/useNotePlayer.d.ts.map +1 -0
- package/lib/MessageVideo/useNotePlayer.js +142 -0
- package/lib/MessageVideo/useNotePlayer.js.map +1 -0
- package/lib/MessageVideo/useRingSeek.d.ts +16 -0
- package/lib/MessageVideo/useRingSeek.d.ts.map +1 -0
- package/lib/MessageVideo/useRingSeek.js +157 -0
- package/lib/MessageVideo/useRingSeek.js.map +1 -0
- package/lib/MessageVideo/useRoundNotePlayback.d.ts +46 -0
- package/lib/MessageVideo/useRoundNotePlayback.d.ts.map +1 -0
- package/lib/MessageVideo/useRoundNotePlayback.js +508 -0
- package/lib/MessageVideo/useRoundNotePlayback.js.map +1 -0
- package/lib/MessageVideo/useSendFlightReveal.d.ts +9 -0
- package/lib/MessageVideo/useSendFlightReveal.d.ts.map +1 -0
- package/lib/MessageVideo/useSendFlightReveal.js +85 -0
- package/lib/MessageVideo/useSendFlightReveal.js.map +1 -0
- package/lib/MessageVideo/videoPlayers.d.ts +8 -0
- package/lib/MessageVideo/videoPlayers.d.ts.map +1 -0
- package/lib/MessageVideo/videoPlayers.js +33 -0
- package/lib/MessageVideo/videoPlayers.js.map +1 -0
- package/lib/MessagesContainer/components/DayAnimated/debug.js +38 -24
- package/lib/MessagesContainer/components/DayAnimated/debug.js.map +1 -1
- package/lib/MessagesContainer/components/DayAnimated/index.d.ts +1 -1
- package/lib/MessagesContainer/components/DayAnimated/index.d.ts.map +1 -1
- package/lib/MessagesContainer/components/DayAnimated/index.js +244 -112
- package/lib/MessagesContainer/components/DayAnimated/index.js.map +1 -1
- package/lib/MessagesContainer/components/DayAnimated/styles.d.ts +3 -3
- package/lib/MessagesContainer/components/DayAnimated/styles.js +8 -8
- package/lib/MessagesContainer/components/DayAnimated/styles.js.map +1 -1
- package/lib/MessagesContainer/components/DayAnimated/types.d.ts +4 -2
- package/lib/MessagesContainer/components/DayAnimated/types.d.ts.map +1 -1
- package/lib/MessagesContainer/components/DayAnimated/types.js.map +1 -1
- package/lib/MessagesContainer/components/DayAnimated/useScrollGatedOpacity.d.ts.map +1 -1
- package/lib/MessagesContainer/components/DayAnimated/useScrollGatedOpacity.js +34 -25
- package/lib/MessagesContainer/components/DayAnimated/useScrollGatedOpacity.js.map +1 -1
- package/lib/MessagesContainer/components/Item/index.d.ts +3 -4
- package/lib/MessagesContainer/components/Item/index.d.ts.map +1 -1
- package/lib/MessagesContainer/components/Item/index.js +289 -119
- package/lib/MessagesContainer/components/Item/index.js.map +1 -1
- package/lib/MessagesContainer/components/Item/types.d.ts +5 -0
- package/lib/MessagesContainer/components/Item/types.d.ts.map +1 -1
- package/lib/MessagesContainer/components/Item/types.js.map +1 -1
- package/lib/MessagesContainer/components/PageDownCounter.d.ts +14 -0
- package/lib/MessagesContainer/components/PageDownCounter.d.ts.map +1 -0
- package/lib/MessagesContainer/components/PageDownCounter.js +209 -0
- package/lib/MessagesContainer/components/PageDownCounter.js.map +1 -0
- package/lib/MessagesContainer/components/ScrollToBottomButton.d.ts +21 -0
- package/lib/MessagesContainer/components/ScrollToBottomButton.d.ts.map +1 -0
- package/lib/MessagesContainer/components/ScrollToBottomButton.js +195 -0
- package/lib/MessagesContainer/components/ScrollToBottomButton.js.map +1 -0
- package/lib/MessagesContainer/components/dayLayout.d.ts +2 -2
- package/lib/MessagesContainer/components/dayLayout.d.ts.map +1 -1
- package/lib/MessagesContainer/components/dayLayout.js +18 -13
- package/lib/MessagesContainer/components/dayLayout.js.map +1 -1
- package/lib/MessagesContainer/index.d.ts.map +1 -1
- package/lib/MessagesContainer/index.js +361 -420
- package/lib/MessagesContainer/index.js.map +1 -1
- package/lib/MessagesContainer/listState.d.ts +18 -0
- package/lib/MessagesContainer/listState.d.ts.map +1 -0
- package/lib/MessagesContainer/listState.js +25 -0
- package/lib/MessagesContainer/listState.js.map +1 -0
- package/lib/MessagesContainer/listTransitions.d.ts +10 -0
- package/lib/MessagesContainer/listTransitions.d.ts.map +1 -0
- package/lib/MessagesContainer/listTransitions.js +12 -0
- package/lib/MessagesContainer/listTransitions.js.map +1 -0
- package/lib/MessagesContainer/pageDownReturn.d.ts +11 -0
- package/lib/MessagesContainer/pageDownReturn.d.ts.map +1 -0
- package/lib/MessagesContainer/pageDownReturn.js +9 -0
- package/lib/MessagesContainer/pageDownReturn.js.map +1 -0
- package/lib/MessagesContainer/rowConfig.d.ts +39 -0
- package/lib/MessagesContainer/rowConfig.d.ts.map +1 -0
- package/lib/MessagesContainer/rowConfig.js +161 -0
- package/lib/MessagesContainer/rowConfig.js.map +1 -0
- package/lib/MessagesContainer/rowStore.d.ts +37 -0
- package/lib/MessagesContainer/rowStore.d.ts.map +1 -0
- package/lib/MessagesContainer/rowStore.js +140 -0
- package/lib/MessagesContainer/rowStore.js.map +1 -0
- package/lib/MessagesContainer/styles.d.ts +37 -31
- package/lib/MessagesContainer/styles.d.ts.map +1 -1
- package/lib/MessagesContainer/styles.js +75 -54
- package/lib/MessagesContainer/styles.js.map +1 -1
- package/lib/MessagesContainer/types.d.ts +33 -30
- package/lib/MessagesContainer/types.d.ts.map +1 -1
- package/lib/MessagesContainer/types.js +1 -9
- package/lib/MessagesContainer/types.js.map +1 -1
- package/lib/MessagesContainer/useCellLayouts.d.ts +17 -0
- package/lib/MessagesContainer/useCellLayouts.d.ts.map +1 -0
- package/lib/MessagesContainer/useCellLayouts.js +133 -0
- package/lib/MessagesContainer/useCellLayouts.js.map +1 -0
- package/lib/MessagesContainer/useDaysPositions.d.ts +18 -0
- package/lib/MessagesContainer/useDaysPositions.d.ts.map +1 -0
- package/lib/MessagesContainer/useDaysPositions.js +109 -0
- package/lib/MessagesContainer/useDaysPositions.js.map +1 -0
- package/lib/MessagesContainer/useListChrome.d.ts +14 -0
- package/lib/MessagesContainer/useListChrome.d.ts.map +1 -0
- package/lib/MessagesContainer/useListChrome.js +176 -0
- package/lib/MessagesContainer/useListChrome.js.map +1 -0
- package/lib/MessagesContainer/useListMetrics.d.ts +32 -0
- package/lib/MessagesContainer/useListMetrics.d.ts.map +1 -0
- package/lib/MessagesContainer/useListMetrics.js +176 -0
- package/lib/MessagesContainer/useListMetrics.js.map +1 -0
- package/lib/MessagesContainer/useMessageRows.d.ts +46 -0
- package/lib/MessagesContainer/useMessageRows.d.ts.map +1 -0
- package/lib/MessagesContainer/useMessageRows.js +228 -0
- package/lib/MessagesContainer/useMessageRows.js.map +1 -0
- package/lib/MessagesContainer/usePageDownUnread.d.ts +27 -0
- package/lib/MessagesContainer/usePageDownUnread.d.ts.map +1 -0
- package/lib/MessagesContainer/usePageDownUnread.js +152 -0
- package/lib/MessagesContainer/usePageDownUnread.js.map +1 -0
- package/lib/MessagesContainer/useScrollActivity.d.ts +13 -0
- package/lib/MessagesContainer/useScrollActivity.d.ts.map +1 -0
- package/lib/MessagesContainer/useScrollActivity.js +84 -0
- package/lib/MessagesContainer/useScrollActivity.js.map +1 -0
- package/lib/MessagesContainer/useScrollToBottom.d.ts +26 -0
- package/lib/MessagesContainer/useScrollToBottom.d.ts.map +1 -0
- package/lib/MessagesContainer/useScrollToBottom.js +164 -0
- package/lib/MessagesContainer/useScrollToBottom.js.map +1 -0
- package/lib/MessagesContainer/useTapToClosePanels.d.ts +7 -0
- package/lib/MessagesContainer/useTapToClosePanels.d.ts.map +1 -0
- package/lib/MessagesContainer/useTapToClosePanels.js +55 -0
- package/lib/MessagesContainer/useTapToClosePanels.js.map +1 -0
- package/lib/MessagesContainer/viewability.d.ts +9 -0
- package/lib/MessagesContainer/viewability.d.ts.map +1 -0
- package/lib/MessagesContainer/viewability.js +110 -0
- package/lib/MessagesContainer/viewability.js.map +1 -0
- package/lib/Models.d.ts +188 -3
- package/lib/Models.d.ts.map +1 -1
- package/lib/Models.js.map +1 -1
- package/lib/QuickReplies.js +234 -101
- package/lib/QuickReplies.js.map +1 -1
- package/lib/Reactions/MessageReactions.d.ts +5 -0
- package/lib/Reactions/MessageReactions.d.ts.map +1 -1
- package/lib/Reactions/MessageReactions.js +359 -80
- package/lib/Reactions/MessageReactions.js.map +1 -1
- package/lib/Reactions/ReactionPicker.d.ts +5 -3
- package/lib/Reactions/ReactionPicker.d.ts.map +1 -1
- package/lib/Reactions/ReactionPicker.js +68 -82
- package/lib/Reactions/ReactionPicker.js.map +1 -1
- package/lib/Reactions/index.js +1 -0
- package/lib/Reactions/index.js.map +1 -1
- package/lib/Reactions/types.d.ts +49 -5
- package/lib/Reactions/types.d.ts.map +1 -1
- package/lib/Reactions/types.js.map +1 -1
- package/lib/Reply/index.js.map +1 -1
- package/lib/Reply/types.d.ts +19 -3
- package/lib/Reply/types.d.ts.map +1 -1
- package/lib/Reply/types.js.map +1 -1
- package/lib/Send.d.ts +2 -2
- package/lib/Send.d.ts.map +1 -1
- package/lib/Send.js +218 -47
- package/lib/Send.js.map +1 -1
- package/lib/SystemMessage.d.ts.map +1 -1
- package/lib/SystemMessage.js +106 -37
- package/lib/SystemMessage.js.map +1 -1
- package/lib/Theme.d.ts +320 -23
- package/lib/Theme.d.ts.map +1 -1
- package/lib/Theme.js +548 -119
- package/lib/Theme.js.map +1 -1
- package/lib/Time.d.ts +7 -0
- package/lib/Time.d.ts.map +1 -1
- package/lib/Time.js +122 -30
- package/lib/Time.js.map +1 -1
- package/lib/TypingIndicator/index.d.ts +9 -1
- package/lib/TypingIndicator/index.d.ts.map +1 -1
- package/lib/TypingIndicator/index.js +318 -94
- package/lib/TypingIndicator/index.js.map +1 -1
- package/lib/TypingIndicator/styles.d.ts +6 -2
- package/lib/TypingIndicator/styles.d.ts.map +1 -1
- package/lib/TypingIndicator/styles.js +22 -18
- package/lib/TypingIndicator/styles.js.map +1 -1
- package/lib/TypingIndicator/types.js.map +1 -1
- package/lib/attachments/AttachmentButton.d.ts +18 -0
- package/lib/attachments/AttachmentButton.d.ts.map +1 -0
- package/lib/attachments/AttachmentButton.js +110 -0
- package/lib/attachments/AttachmentButton.js.map +1 -0
- package/lib/attachments/AttachmentMenu/CaptionBar.d.ts +15 -0
- package/lib/attachments/AttachmentMenu/CaptionBar.d.ts.map +1 -0
- package/lib/attachments/AttachmentMenu/CaptionBar.js +165 -0
- package/lib/attachments/AttachmentMenu/CaptionBar.js.map +1 -0
- package/lib/attachments/AttachmentMenu/GalleryCell.d.ts +14 -0
- package/lib/attachments/AttachmentMenu/GalleryCell.d.ts.map +1 -0
- package/lib/attachments/AttachmentMenu/GalleryCell.js +267 -0
- package/lib/attachments/AttachmentMenu/GalleryCell.js.map +1 -0
- package/lib/attachments/AttachmentMenu/GalleryGrid.d.ts +18 -0
- package/lib/attachments/AttachmentMenu/GalleryGrid.d.ts.map +1 -0
- package/lib/attachments/AttachmentMenu/GalleryGrid.js +184 -0
- package/lib/attachments/AttachmentMenu/GalleryGrid.js.map +1 -0
- package/lib/attachments/AttachmentMenu/TabBar.d.ts +14 -0
- package/lib/attachments/AttachmentMenu/TabBar.d.ts.map +1 -0
- package/lib/attachments/AttachmentMenu/TabBar.js +127 -0
- package/lib/attachments/AttachmentMenu/TabBar.js.map +1 -0
- package/lib/attachments/AttachmentMenu/TabButton.d.ts +15 -0
- package/lib/attachments/AttachmentMenu/TabButton.d.ts.map +1 -0
- package/lib/attachments/AttachmentMenu/TabButton.js +219 -0
- package/lib/attachments/AttachmentMenu/TabButton.js.map +1 -0
- package/lib/attachments/AttachmentMenu/TabPanel.d.ts +17 -0
- package/lib/attachments/AttachmentMenu/TabPanel.d.ts.map +1 -0
- package/lib/attachments/AttachmentMenu/TabPanel.js +170 -0
- package/lib/attachments/AttachmentMenu/TabPanel.js.map +1 -0
- package/lib/attachments/AttachmentMenu/constants.d.ts +54 -0
- package/lib/attachments/AttachmentMenu/constants.d.ts.map +1 -0
- package/lib/attachments/AttachmentMenu/constants.js +79 -0
- package/lib/attachments/AttachmentMenu/constants.js.map +1 -0
- package/lib/attachments/AttachmentMenu/index.d.ts +16 -0
- package/lib/attachments/AttachmentMenu/index.d.ts.map +1 -0
- package/lib/attachments/AttachmentMenu/index.js +498 -0
- package/lib/attachments/AttachmentMenu/index.js.map +1 -0
- package/lib/attachments/AttachmentMenu/styles.d.ts +259 -0
- package/lib/attachments/AttachmentMenu/styles.d.ts.map +1 -0
- package/lib/attachments/AttachmentMenu/styles.js +262 -0
- package/lib/attachments/AttachmentMenu/styles.js.map +1 -0
- package/lib/attachments/AttachmentMenu/useSheetPresence.d.ts +14 -0
- package/lib/attachments/AttachmentMenu/useSheetPresence.d.ts.map +1 -0
- package/lib/attachments/AttachmentMenu/useSheetPresence.js +74 -0
- package/lib/attachments/AttachmentMenu/useSheetPresence.js.map +1 -0
- package/lib/attachments/buildMessages.d.ts +36 -0
- package/lib/attachments/buildMessages.d.ts.map +1 -0
- package/lib/attachments/buildMessages.js +192 -0
- package/lib/attachments/buildMessages.js.map +1 -0
- package/lib/attachments/gallery.d.ts +28 -0
- package/lib/attachments/gallery.d.ts.map +1 -0
- package/lib/attachments/gallery.js +245 -0
- package/lib/attachments/gallery.js.map +1 -0
- package/lib/attachments/types.d.ts +69 -0
- package/lib/attachments/types.d.ts.map +1 -0
- package/lib/attachments/types.js +2 -0
- package/lib/attachments/types.js.map +1 -0
- package/lib/colorUtils.d.ts +24 -0
- package/lib/colorUtils.d.ts.map +1 -0
- package/lib/colorUtils.js +71 -0
- package/lib/colorUtils.js.map +1 -0
- package/lib/components/AttachmentSheet.d.ts +1 -1
- package/lib/components/AttachmentSheet.d.ts.map +1 -1
- package/lib/components/AttachmentSheet.js +515 -155
- package/lib/components/AttachmentSheet.js.map +1 -1
- package/lib/components/BasicMarkdown.d.ts +7 -1
- package/lib/components/BasicMarkdown.d.ts.map +1 -1
- package/lib/components/BasicMarkdown.js +234 -184
- package/lib/components/BasicMarkdown.js.map +1 -1
- package/lib/components/BubbleBackground.d.ts +55 -0
- package/lib/components/BubbleBackground.d.ts.map +1 -0
- package/lib/components/BubbleBackground.js +513 -0
- package/lib/components/BubbleBackground.js.map +1 -0
- package/lib/components/ChatEmpty.d.ts +18 -0
- package/lib/components/ChatEmpty.d.ts.map +1 -0
- package/lib/components/ChatEmpty.js +125 -0
- package/lib/components/ChatEmpty.js.map +1 -0
- package/lib/components/ChatLoadingOverlay.d.ts +10 -0
- package/lib/components/ChatLoadingOverlay.d.ts.map +1 -0
- package/lib/components/ChatLoadingOverlay.js +89 -0
- package/lib/components/ChatLoadingOverlay.js.map +1 -0
- package/lib/components/ChatOverlay.d.ts +9 -0
- package/lib/components/ChatOverlay.d.ts.map +1 -0
- package/lib/components/ChatOverlay.js +60 -0
- package/lib/components/ChatOverlay.js.map +1 -0
- package/lib/components/ChatWallpaper.d.ts +32 -0
- package/lib/components/ChatWallpaper.d.ts.map +1 -0
- package/lib/components/ChatWallpaper.js +277 -0
- package/lib/components/ChatWallpaper.js.map +1 -0
- package/lib/components/ContextMenu/MenuCard.d.ts +21 -0
- package/lib/components/ContextMenu/MenuCard.d.ts.map +1 -0
- package/lib/components/ContextMenu/MenuCard.js +265 -0
- package/lib/components/ContextMenu/MenuCard.js.map +1 -0
- package/lib/components/ContextMenu/ReactionButton.d.ts +15 -0
- package/lib/components/ContextMenu/ReactionButton.d.ts.map +1 -0
- package/lib/components/ContextMenu/ReactionButton.js +116 -0
- package/lib/components/ContextMenu/ReactionButton.js.map +1 -0
- package/lib/components/ContextMenu/ReactionFlight.d.ts +14 -0
- package/lib/components/ContextMenu/ReactionFlight.d.ts.map +1 -0
- package/lib/components/ContextMenu/ReactionFlight.js +111 -0
- package/lib/components/ContextMenu/ReactionFlight.js.map +1 -0
- package/lib/components/ContextMenu/ReactionsBar.d.ts +35 -0
- package/lib/components/ContextMenu/ReactionsBar.d.ts.map +1 -0
- package/lib/components/ContextMenu/ReactionsBar.js +354 -0
- package/lib/components/ContextMenu/ReactionsBar.js.map +1 -0
- package/lib/components/ContextMenu/constants.d.ts +68 -0
- package/lib/components/ContextMenu/constants.d.ts.map +1 -0
- package/lib/components/ContextMenu/constants.js +105 -0
- package/lib/components/ContextMenu/constants.js.map +1 -0
- package/lib/components/ContextMenu/index.d.ts +12 -0
- package/lib/components/ContextMenu/index.d.ts.map +1 -0
- package/lib/components/ContextMenu/index.js +476 -0
- package/lib/components/ContextMenu/index.js.map +1 -0
- package/lib/components/ContextMenu/placement.d.ts +50 -0
- package/lib/components/ContextMenu/placement.d.ts.map +1 -0
- package/lib/components/ContextMenu/placement.js +117 -0
- package/lib/components/ContextMenu/placement.js.map +1 -0
- package/lib/components/ContextMenu/styles.d.ts +199 -0
- package/lib/components/ContextMenu/styles.d.ts.map +1 -0
- package/lib/components/ContextMenu/styles.js +169 -0
- package/lib/components/ContextMenu/styles.js.map +1 -0
- package/lib/components/ContextMenu/types.d.ts +62 -0
- package/lib/components/ContextMenu/types.d.ts.map +1 -0
- package/lib/components/ContextMenu/types.js +2 -0
- package/lib/components/ContextMenu/types.js.map +1 -0
- package/lib/components/ContextMenu/useExpandPanel.d.ts +11 -0
- package/lib/components/ContextMenu/useExpandPanel.d.ts.map +1 -0
- package/lib/components/ContextMenu/useExpandPanel.js +81 -0
- package/lib/components/ContextMenu/useExpandPanel.js.map +1 -0
- package/lib/components/ContextMenu/useMenuPresence.d.ts +17 -0
- package/lib/components/ContextMenu/useMenuPresence.d.ts.map +1 -0
- package/lib/components/ContextMenu/useMenuPresence.js +125 -0
- package/lib/components/ContextMenu/useMenuPresence.js.map +1 -0
- package/lib/components/FloatingRoundNote.d.ts +13 -0
- package/lib/components/FloatingRoundNote.d.ts.map +1 -0
- package/lib/components/FloatingRoundNote.js +541 -0
- package/lib/components/FloatingRoundNote.js.map +1 -0
- package/lib/components/GlassSurface.d.ts +16 -0
- package/lib/components/GlassSurface.d.ts.map +1 -0
- package/lib/components/GlassSurface.js +114 -0
- package/lib/components/GlassSurface.js.map +1 -0
- package/lib/components/Icon.js +57 -8
- package/lib/components/Icon.js.map +1 -1
- package/lib/components/LinkPreviewCard.d.ts +36 -0
- package/lib/components/LinkPreviewCard.d.ts.map +1 -0
- package/lib/components/LinkPreviewCard.js +416 -0
- package/lib/components/LinkPreviewCard.js.map +1 -0
- package/lib/components/LucideIcon.d.ts.map +1 -1
- package/lib/components/LucideIcon.js +103 -106
- package/lib/components/LucideIcon.js.map +1 -1
- package/lib/components/MarkdownMessageText.d.ts +17 -2
- package/lib/components/MarkdownMessageText.d.ts.map +1 -1
- package/lib/components/MarkdownMessageText.js +270 -22
- package/lib/components/MarkdownMessageText.js.map +1 -1
- package/lib/components/MediaCard.d.ts.map +1 -1
- package/lib/components/MediaCard.js +223 -85
- package/lib/components/MediaCard.js.map +1 -1
- package/lib/components/MediaControls.js +1094 -450
- package/lib/components/MediaControls.js.map +1 -1
- package/lib/components/MediaLoader.d.ts +21 -0
- package/lib/components/MediaLoader.d.ts.map +1 -0
- package/lib/components/MediaLoader.js +61 -0
- package/lib/components/MediaLoader.js.map +1 -0
- package/lib/components/MessageReply.d.ts +2 -2
- package/lib/components/MessageReply.d.ts.map +1 -1
- package/lib/components/MessageReply.js +266 -83
- package/lib/components/MessageReply.js.map +1 -1
- package/lib/components/MessageStatus.d.ts +23 -0
- package/lib/components/MessageStatus.d.ts.map +1 -0
- package/lib/components/MessageStatus.js +499 -0
- package/lib/components/MessageStatus.js.map +1 -0
- package/lib/components/NoteIndicators.d.ts +25 -0
- package/lib/components/NoteIndicators.d.ts.map +1 -0
- package/lib/components/NoteIndicators.js +206 -0
- package/lib/components/NoteIndicators.js.map +1 -0
- package/lib/components/NowPlayingBar.d.ts +15 -0
- package/lib/components/NowPlayingBar.d.ts.map +1 -0
- package/lib/components/NowPlayingBar.js +261 -0
- package/lib/components/NowPlayingBar.js.map +1 -0
- package/lib/components/PlayPauseIcon.d.ts +13 -0
- package/lib/components/PlayPauseIcon.d.ts.map +1 -0
- package/lib/components/PlayPauseIcon.js +187 -0
- package/lib/components/PlayPauseIcon.js.map +1 -0
- package/lib/components/PlaybackSpeedPill.d.ts +11 -0
- package/lib/components/PlaybackSpeedPill.d.ts.map +1 -0
- package/lib/components/PlaybackSpeedPill.js +350 -0
- package/lib/components/PlaybackSpeedPill.js.map +1 -0
- package/lib/components/RadialProgress.d.ts +70 -0
- package/lib/components/RadialProgress.d.ts.map +1 -0
- package/lib/components/RadialProgress.js +864 -0
- package/lib/components/RadialProgress.js.map +1 -0
- package/lib/components/RecordButton/LockPill.d.ts +27 -0
- package/lib/components/RecordButton/LockPill.d.ts.map +1 -0
- package/lib/components/RecordButton/LockPill.js +182 -0
- package/lib/components/RecordButton/LockPill.js.map +1 -0
- package/lib/components/RecordButton/ModeButton.d.ts +18 -0
- package/lib/components/RecordButton/ModeButton.d.ts.map +1 -0
- package/lib/components/RecordButton/ModeButton.js +154 -0
- package/lib/components/RecordButton/ModeButton.js.map +1 -0
- package/lib/components/RecordButton/ResumeButton.d.ts +20 -0
- package/lib/components/RecordButton/ResumeButton.d.ts.map +1 -0
- package/lib/components/RecordButton/ResumeButton.js +63 -0
- package/lib/components/RecordButton/ResumeButton.js.map +1 -0
- package/lib/components/RecordButton/Tooltips.d.ts +20 -0
- package/lib/components/RecordButton/Tooltips.d.ts.map +1 -0
- package/lib/components/RecordButton/Tooltips.js +191 -0
- package/lib/components/RecordButton/Tooltips.js.map +1 -0
- package/lib/components/RecordButton/ViewOnceButton.d.ts +16 -0
- package/lib/components/RecordButton/ViewOnceButton.d.ts.map +1 -0
- package/lib/components/RecordButton/ViewOnceButton.js +96 -0
- package/lib/components/RecordButton/ViewOnceButton.js.map +1 -0
- package/lib/components/RecordButton/constants.d.ts +52 -0
- package/lib/components/RecordButton/constants.d.ts.map +1 -0
- package/lib/components/RecordButton/constants.js +58 -0
- package/lib/components/RecordButton/constants.js.map +1 -0
- package/lib/components/RecordButton/index.d.ts +14 -0
- package/lib/components/RecordButton/index.d.ts.map +1 -0
- package/lib/components/RecordButton/index.js +382 -0
- package/lib/components/RecordButton/index.js.map +1 -0
- package/lib/components/RecordButton/styles.d.ts +155 -0
- package/lib/components/RecordButton/styles.d.ts.map +1 -0
- package/lib/components/RecordButton/styles.js +161 -0
- package/lib/components/RecordButton/styles.js.map +1 -0
- package/lib/components/RecordButton/types.d.ts +63 -0
- package/lib/components/RecordButton/types.d.ts.map +1 -0
- package/lib/components/RecordButton/types.js +2 -0
- package/lib/components/RecordButton/types.js.map +1 -0
- package/lib/components/RecordButton/useRecordGesture.d.ts +28 -0
- package/lib/components/RecordButton/useRecordGesture.d.ts.map +1 -0
- package/lib/components/RecordButton/useRecordGesture.js +263 -0
- package/lib/components/RecordButton/useRecordGesture.js.map +1 -0
- package/lib/components/RecordButton/useRecordHints.d.ts +27 -0
- package/lib/components/RecordButton/useRecordHints.d.ts.map +1 -0
- package/lib/components/RecordButton/useRecordHints.js +210 -0
- package/lib/components/RecordButton/useRecordHints.js.map +1 -0
- package/lib/components/RecordButton/useRecordSlideDistance.d.ts +3 -0
- package/lib/components/RecordButton/useRecordSlideDistance.d.ts.map +1 -0
- package/lib/components/RecordButton/useRecordSlideDistance.js +15 -0
- package/lib/components/RecordButton/useRecordSlideDistance.js.map +1 -0
- package/lib/components/RecordButton/useRecordTake.d.ts +41 -0
- package/lib/components/RecordButton/useRecordTake.d.ts.map +1 -0
- package/lib/components/RecordButton/useRecordTake.js +349 -0
- package/lib/components/RecordButton/useRecordTake.js.map +1 -0
- package/lib/components/RecordButton/useSendFlight.d.ts +25 -0
- package/lib/components/RecordButton/useSendFlight.d.ts.map +1 -0
- package/lib/components/RecordButton/useSendFlight.js +162 -0
- package/lib/components/RecordButton/useSendFlight.js.map +1 -0
- package/lib/components/RecordCircle.d.ts +92 -0
- package/lib/components/RecordCircle.d.ts.map +1 -0
- package/lib/components/RecordCircle.js +629 -0
- package/lib/components/RecordCircle.js.map +1 -0
- package/lib/components/RecordingBar.d.ts +24 -0
- package/lib/components/RecordingBar.d.ts.map +1 -0
- package/lib/components/RecordingBar.js +766 -0
- package/lib/components/RecordingBar.js.map +1 -0
- package/lib/components/ReplyPreview.js +318 -135
- package/lib/components/ReplyPreview.js.map +1 -1
- package/lib/components/SelectionBar.d.ts +17 -0
- package/lib/components/SelectionBar.d.ts.map +1 -0
- package/lib/components/SelectionBar.js +214 -0
- package/lib/components/SelectionBar.js.map +1 -0
- package/lib/components/SelectionCheckbox.d.ts +12 -0
- package/lib/components/SelectionCheckbox.d.ts.map +1 -0
- package/lib/components/SelectionCheckbox.js +104 -0
- package/lib/components/SelectionCheckbox.js.map +1 -0
- package/lib/components/SendIcon.js +60 -26
- package/lib/components/SendIcon.js.map +1 -1
- package/lib/components/ServiceSpinner.d.ts +17 -0
- package/lib/components/ServiceSpinner.d.ts.map +1 -0
- package/lib/components/ServiceSpinner.js +77 -0
- package/lib/components/ServiceSpinner.js.map +1 -0
- package/lib/components/Spinner.d.ts +18 -0
- package/lib/components/Spinner.d.ts.map +1 -0
- package/lib/components/Spinner.js +169 -0
- package/lib/components/Spinner.js.map +1 -0
- package/lib/components/StreamingCursor.js +54 -9
- package/lib/components/StreamingCursor.js.map +1 -1
- package/lib/components/Ticks.d.ts +6 -5
- package/lib/components/Ticks.d.ts.map +1 -1
- package/lib/components/Ticks.js +272 -82
- package/lib/components/Ticks.js.map +1 -1
- package/lib/components/TouchableOpacity.d.ts.map +1 -1
- package/lib/components/TouchableOpacity.js +153 -51
- package/lib/components/TouchableOpacity.js.map +1 -1
- package/lib/components/TranscribeButton.d.ts +45 -0
- package/lib/components/TranscribeButton.d.ts.map +1 -0
- package/lib/components/TranscribeButton.js +549 -0
- package/lib/components/TranscribeButton.js.map +1 -0
- package/lib/components/TypingStatus.d.ts +29 -0
- package/lib/components/TypingStatus.d.ts.map +1 -0
- package/lib/components/TypingStatus.js +446 -0
- package/lib/components/TypingStatus.js.map +1 -0
- package/lib/components/UnreadSeparator.d.ts +8 -0
- package/lib/components/UnreadSeparator.d.ts.map +1 -0
- package/lib/components/UnreadSeparator.js +101 -0
- package/lib/components/UnreadSeparator.js.map +1 -0
- package/lib/components/VideoNoteCapture/ProgressRing.d.ts +16 -0
- package/lib/components/VideoNoteCapture/ProgressRing.d.ts.map +1 -0
- package/lib/components/VideoNoteCapture/ProgressRing.js +75 -0
- package/lib/components/VideoNoteCapture/ProgressRing.js.map +1 -0
- package/lib/components/VideoNoteCapture/VideoNoteCaptureView.d.ts +31 -0
- package/lib/components/VideoNoteCapture/VideoNoteCaptureView.d.ts.map +1 -0
- package/lib/components/VideoNoteCapture/VideoNoteCaptureView.js +500 -0
- package/lib/components/VideoNoteCapture/VideoNoteCaptureView.js.map +1 -0
- package/lib/components/VideoNoteCapture/VideoNotePreviewView.d.ts +12 -0
- package/lib/components/VideoNoteCapture/VideoNotePreviewView.d.ts.map +1 -0
- package/lib/components/VideoNoteCapture/VideoNotePreviewView.js +105 -0
- package/lib/components/VideoNoteCapture/VideoNotePreviewView.js.map +1 -0
- package/lib/components/VideoNoteCapture/VideoNoteStage.d.ts +12 -0
- package/lib/components/VideoNoteCapture/VideoNoteStage.d.ts.map +1 -0
- package/lib/components/VideoNoteCapture/VideoNoteStage.js +95 -0
- package/lib/components/VideoNoteCapture/VideoNoteStage.js.map +1 -0
- package/lib/components/VideoNoteCapture/constants.d.ts +50 -0
- package/lib/components/VideoNoteCapture/constants.d.ts.map +1 -0
- package/lib/components/VideoNoteCapture/constants.js +53 -0
- package/lib/components/VideoNoteCapture/constants.js.map +1 -0
- package/lib/components/VideoNoteCapture/index.d.ts +3 -0
- package/lib/components/VideoNoteCapture/index.d.ts.map +1 -0
- package/lib/components/VideoNoteCapture/index.js +2 -0
- package/lib/components/VideoNoteCapture/index.js.map +1 -0
- package/lib/components/VideoNoteCapture/optional.d.ts +6 -0
- package/lib/components/VideoNoteCapture/optional.d.ts.map +1 -0
- package/lib/components/VideoNoteCapture/optional.js +15 -0
- package/lib/components/VideoNoteCapture/optional.js.map +1 -0
- package/lib/components/VideoNoteCapture/sessionState.d.ts +10 -0
- package/lib/components/VideoNoteCapture/sessionState.d.ts.map +1 -0
- package/lib/components/VideoNoteCapture/sessionState.js +19 -0
- package/lib/components/VideoNoteCapture/sessionState.js.map +1 -0
- package/lib/components/VideoNoteCapture/styles.d.ts +84 -0
- package/lib/components/VideoNoteCapture/styles.d.ts.map +1 -0
- package/lib/components/VideoNoteCapture/styles.js +86 -0
- package/lib/components/VideoNoteCapture/styles.js.map +1 -0
- package/lib/components/VideoNoteCapture/types.d.ts +54 -0
- package/lib/components/VideoNoteCapture/types.d.ts.map +1 -0
- package/lib/components/VideoNoteCapture/types.js +2 -0
- package/lib/components/VideoNoteCapture/types.js.map +1 -0
- package/lib/components/VideoNoteCapture/useRoundAnimation.d.ts +47 -0
- package/lib/components/VideoNoteCapture/useRoundAnimation.d.ts.map +1 -0
- package/lib/components/VideoNoteCapture/useRoundAnimation.js +216 -0
- package/lib/components/VideoNoteCapture/useRoundAnimation.js.map +1 -0
- package/lib/components/VideoNoteCapture/useRoundLayout.d.ts +14 -0
- package/lib/components/VideoNoteCapture/useRoundLayout.d.ts.map +1 -0
- package/lib/components/VideoNoteCapture/useRoundLayout.js +61 -0
- package/lib/components/VideoNoteCapture/useRoundLayout.js.map +1 -0
- package/lib/components/VideoNoteCapture/useVideoNoteSession.d.ts +25 -0
- package/lib/components/VideoNoteCapture/useVideoNoteSession.d.ts.map +1 -0
- package/lib/components/VideoNoteCapture/useVideoNoteSession.js +611 -0
- package/lib/components/VideoNoteCapture/useVideoNoteSession.js.map +1 -0
- package/lib/components/VideoNoteOverlay.d.ts +42 -11
- package/lib/components/VideoNoteOverlay.d.ts.map +1 -1
- package/lib/components/VideoNoteOverlay.js +722 -135
- package/lib/components/VideoNoteOverlay.js.map +1 -1
- package/lib/components/VideoNoteRecorder/LiveVideoNote.d.ts +6 -0
- package/lib/components/VideoNoteRecorder/LiveVideoNote.d.ts.map +1 -0
- package/lib/components/VideoNoteRecorder/LiveVideoNote.js +205 -0
- package/lib/components/VideoNoteRecorder/LiveVideoNote.js.map +1 -0
- package/lib/components/VideoNoteRecorder/RecorderChrome.d.ts +35 -0
- package/lib/components/VideoNoteRecorder/RecorderChrome.d.ts.map +1 -0
- package/lib/components/VideoNoteRecorder/RecorderChrome.js +350 -0
- package/lib/components/VideoNoteRecorder/RecorderChrome.js.map +1 -0
- package/lib/components/VideoNoteRecorder/UnavailableVideoNote.d.ts +10 -0
- package/lib/components/VideoNoteRecorder/UnavailableVideoNote.d.ts.map +1 -0
- package/lib/components/VideoNoteRecorder/UnavailableVideoNote.js +52 -0
- package/lib/components/VideoNoteRecorder/UnavailableVideoNote.js.map +1 -0
- package/lib/components/VideoNoteRecorder/constants.d.ts +16 -0
- package/lib/components/VideoNoteRecorder/constants.d.ts.map +1 -0
- package/lib/components/VideoNoteRecorder/constants.js +30 -0
- package/lib/components/VideoNoteRecorder/constants.js.map +1 -0
- package/lib/components/{VideoNoteRecorder.d.ts → VideoNoteRecorder/index.d.ts} +5 -10
- package/lib/components/VideoNoteRecorder/index.d.ts.map +1 -0
- package/lib/components/VideoNoteRecorder/index.js +26 -0
- package/lib/components/VideoNoteRecorder/index.js.map +1 -0
- package/lib/components/VideoNoteRecorder/styles.d.ts +159 -0
- package/lib/components/VideoNoteRecorder/styles.d.ts.map +1 -0
- package/lib/components/VideoNoteRecorder/styles.js +170 -0
- package/lib/components/VideoNoteRecorder/styles.js.map +1 -0
- package/lib/components/VideoNoteRecorder/types.d.ts +7 -0
- package/lib/components/VideoNoteRecorder/types.d.ts.map +1 -0
- package/lib/components/VideoNoteRecorder/types.js +2 -0
- package/lib/components/VideoNoteRecorder/types.js.map +1 -0
- package/lib/components/VideoNoteRecorder/useRecordingTimer.d.ts +10 -0
- package/lib/components/VideoNoteRecorder/useRecordingTimer.d.ts.map +1 -0
- package/lib/components/VideoNoteRecorder/useRecordingTimer.js +134 -0
- package/lib/components/VideoNoteRecorder/useRecordingTimer.js.map +1 -0
- package/lib/components/VideoNoteRecorder/useVideoNoteRecording.d.ts +28 -0
- package/lib/components/VideoNoteRecorder/useVideoNoteRecording.d.ts.map +1 -0
- package/lib/components/VideoNoteRecorder/useVideoNoteRecording.js +287 -0
- package/lib/components/VideoNoteRecorder/useVideoNoteRecording.js.map +1 -0
- package/lib/components/VideoNoteRecorder/visionCameraHooks.d.ts +6 -0
- package/lib/components/VideoNoteRecorder/visionCameraHooks.d.ts.map +1 -0
- package/lib/components/VideoNoteRecorder/visionCameraHooks.js +11 -0
- package/lib/components/VideoNoteRecorder/visionCameraHooks.js.map +1 -0
- package/lib/components/VideoRecordButton.d.ts +1 -1
- package/lib/components/VideoRecordButton.d.ts.map +1 -1
- package/lib/components/VideoRecordButton.js +221 -92
- package/lib/components/VideoRecordButton.js.map +1 -1
- package/lib/components/ViewOnceBadge.d.ts +23 -0
- package/lib/components/ViewOnceBadge.d.ts.map +1 -0
- package/lib/components/ViewOnceBadge.js +233 -0
- package/lib/components/ViewOnceBadge.js.map +1 -0
- package/lib/components/VoiceMessageInput/RecordedVoicePreview.d.ts +16 -0
- package/lib/components/VoiceMessageInput/RecordedVoicePreview.d.ts.map +1 -0
- package/lib/components/VoiceMessageInput/RecordedVoicePreview.js +503 -0
- package/lib/components/VoiceMessageInput/RecordedVoicePreview.js.map +1 -0
- package/lib/components/VoiceMessageInput/constants.d.ts +16 -0
- package/lib/components/VoiceMessageInput/constants.d.ts.map +1 -0
- package/lib/components/VoiceMessageInput/constants.js +22 -0
- package/lib/components/VoiceMessageInput/constants.js.map +1 -0
- package/lib/components/VoiceMessageInput/formatElapsed.d.ts +2 -0
- package/lib/components/VoiceMessageInput/formatElapsed.d.ts.map +1 -0
- package/lib/components/VoiceMessageInput/formatElapsed.js +7 -0
- package/lib/components/VoiceMessageInput/formatElapsed.js.map +1 -0
- package/lib/components/VoiceMessageInput/index.d.ts +9 -0
- package/lib/components/VoiceMessageInput/index.d.ts.map +1 -0
- package/lib/components/VoiceMessageInput/index.js +148 -0
- package/lib/components/VoiceMessageInput/index.js.map +1 -0
- package/lib/components/VoiceMessageInput/previewStyles.d.ts +77 -0
- package/lib/components/VoiceMessageInput/previewStyles.d.ts.map +1 -0
- package/lib/components/VoiceMessageInput/previewStyles.js +80 -0
- package/lib/components/VoiceMessageInput/previewStyles.js.map +1 -0
- package/lib/components/VoiceMessageInput/previewWaveform.d.ts +15 -0
- package/lib/components/VoiceMessageInput/previewWaveform.d.ts.map +1 -0
- package/lib/components/VoiceMessageInput/previewWaveform.js +27 -0
- package/lib/components/VoiceMessageInput/previewWaveform.js.map +1 -0
- package/lib/components/VoiceMessageInput/recorder.d.ts +18 -0
- package/lib/components/VoiceMessageInput/recorder.d.ts.map +1 -0
- package/lib/components/VoiceMessageInput/recorder.js +80 -0
- package/lib/components/VoiceMessageInput/recorder.js.map +1 -0
- package/lib/components/VoiceMessageInput/types.d.ts +56 -0
- package/lib/components/VoiceMessageInput/types.d.ts.map +1 -0
- package/lib/components/VoiceMessageInput/types.js +2 -0
- package/lib/components/VoiceMessageInput/types.js.map +1 -0
- package/lib/components/VoiceMessageInput/useLazyRecorder.d.ts +7 -0
- package/lib/components/VoiceMessageInput/useLazyRecorder.d.ts.map +1 -0
- package/lib/components/VoiceMessageInput/useLazyRecorder.js +61 -0
- package/lib/components/VoiceMessageInput/useLazyRecorder.js.map +1 -0
- package/lib/components/VoiceMessageInput/useStateReport.d.ts +16 -0
- package/lib/components/VoiceMessageInput/useStateReport.d.ts.map +1 -0
- package/lib/components/VoiceMessageInput/useStateReport.js +81 -0
- package/lib/components/VoiceMessageInput/useStateReport.js.map +1 -0
- package/lib/components/VoiceMessageInput/useTakePreviewActions.d.ts +34 -0
- package/lib/components/VoiceMessageInput/useTakePreviewActions.d.ts.map +1 -0
- package/lib/components/VoiceMessageInput/useTakePreviewActions.js +207 -0
- package/lib/components/VoiceMessageInput/useTakePreviewActions.js.map +1 -0
- package/lib/components/VoiceMessageInput/useVoiceTake.d.ts +25 -0
- package/lib/components/VoiceMessageInput/useVoiceTake.d.ts.map +1 -0
- package/lib/components/VoiceMessageInput/useVoiceTake.js +424 -0
- package/lib/components/VoiceMessageInput/useVoiceTake.js.map +1 -0
- package/lib/components/WaveformPlayer/Bars.d.ts +30 -0
- package/lib/components/WaveformPlayer/Bars.d.ts.map +1 -0
- package/lib/components/WaveformPlayer/Bars.js +171 -0
- package/lib/components/WaveformPlayer/Bars.js.map +1 -0
- package/lib/components/WaveformPlayer/VoiceButton.d.ts +23 -0
- package/lib/components/WaveformPlayer/VoiceButton.d.ts.map +1 -0
- package/lib/components/WaveformPlayer/VoiceButton.js +111 -0
- package/lib/components/WaveformPlayer/VoiceButton.js.map +1 -0
- package/lib/components/WaveformPlayer/WaveformTrack.d.ts +31 -0
- package/lib/components/WaveformPlayer/WaveformTrack.d.ts.map +1 -0
- package/lib/components/WaveformPlayer/WaveformTrack.js +199 -0
- package/lib/components/WaveformPlayer/WaveformTrack.js.map +1 -0
- package/lib/components/WaveformPlayer/audio.d.ts +23 -0
- package/lib/components/WaveformPlayer/audio.d.ts.map +1 -0
- package/lib/components/WaveformPlayer/audio.js +97 -0
- package/lib/components/WaveformPlayer/audio.js.map +1 -0
- package/lib/components/WaveformPlayer/index.d.ts +13 -0
- package/lib/components/WaveformPlayer/index.d.ts.map +1 -0
- package/lib/components/WaveformPlayer/index.js +475 -0
- package/lib/components/WaveformPlayer/index.js.map +1 -0
- package/lib/components/WaveformPlayer/styles.d.ts +257 -0
- package/lib/components/WaveformPlayer/styles.d.ts.map +1 -0
- package/lib/components/WaveformPlayer/styles.js +120 -0
- package/lib/components/WaveformPlayer/styles.js.map +1 -0
- package/lib/components/WaveformPlayer/types.d.ts +32 -0
- package/lib/components/WaveformPlayer/types.d.ts.map +1 -0
- package/lib/components/WaveformPlayer/types.js +2 -0
- package/lib/components/WaveformPlayer/types.js.map +1 -0
- package/lib/components/WaveformPlayer/useSendFlightReveal.d.ts +21 -0
- package/lib/components/WaveformPlayer/useSendFlightReveal.d.ts.map +1 -0
- package/lib/components/WaveformPlayer/useSendFlightReveal.js +105 -0
- package/lib/components/WaveformPlayer/useSendFlightReveal.js.map +1 -0
- package/lib/components/WaveformPlayer/useVoicePlayback.d.ts +39 -0
- package/lib/components/WaveformPlayer/useVoicePlayback.d.ts.map +1 -0
- package/lib/components/WaveformPlayer/useVoicePlayback.js +401 -0
- package/lib/components/WaveformPlayer/useVoicePlayback.js.map +1 -0
- package/lib/components/WaveformPlayer/useVoiceSource.d.ts +38 -0
- package/lib/components/WaveformPlayer/useVoiceSource.d.ts.map +1 -0
- package/lib/components/WaveformPlayer/useVoiceSource.js +244 -0
- package/lib/components/WaveformPlayer/useVoiceSource.js.map +1 -0
- package/lib/components/WaveformPlayer/useWaveformMotion.d.ts +16 -0
- package/lib/components/WaveformPlayer/useWaveformMotion.d.ts.map +1 -0
- package/lib/components/WaveformPlayer/useWaveformMotion.js +135 -0
- package/lib/components/WaveformPlayer/useWaveformMotion.js.map +1 -0
- package/lib/components/WaveformPlayer/useWaveformScrub.d.ts +16 -0
- package/lib/components/WaveformPlayer/useWaveformScrub.d.ts.map +1 -0
- package/lib/components/WaveformPlayer/useWaveformScrub.js +168 -0
- package/lib/components/WaveformPlayer/useWaveformScrub.js.map +1 -0
- package/lib/components/composerPanels.d.ts +13 -0
- package/lib/components/composerPanels.d.ts.map +1 -0
- package/lib/components/composerPanels.js +22 -0
- package/lib/components/composerPanels.js.map +1 -0
- package/lib/components/defaultMessageActions.d.ts +30 -0
- package/lib/components/defaultMessageActions.d.ts.map +1 -0
- package/lib/components/defaultMessageActions.js +124 -0
- package/lib/components/defaultMessageActions.js.map +1 -0
- package/lib/components/earpiece.d.ts +56 -0
- package/lib/components/earpiece.d.ts.map +1 -0
- package/lib/components/earpiece.js +218 -0
- package/lib/components/earpiece.js.map +1 -0
- package/lib/components/floatingNoteMath.d.ts +66 -0
- package/lib/components/floatingNoteMath.d.ts.map +1 -0
- package/lib/components/floatingNoteMath.js +143 -0
- package/lib/components/floatingNoteMath.js.map +1 -0
- package/lib/components/haptics.d.ts +5 -0
- package/lib/components/haptics.d.ts.map +1 -0
- package/lib/components/haptics.js +26 -0
- package/lib/components/haptics.js.map +1 -0
- package/lib/components/mediaDownload.d.ts +14 -0
- package/lib/components/mediaDownload.d.ts.map +1 -0
- package/lib/components/mediaDownload.js +43 -0
- package/lib/components/mediaDownload.js.map +1 -0
- package/lib/components/mediaPalette.d.ts +7 -2
- package/lib/components/mediaPalette.d.ts.map +1 -1
- package/lib/components/mediaPalette.js +27 -15
- package/lib/components/mediaPalette.js.map +1 -1
- package/lib/components/mediaPlayback.d.ts +204 -5
- package/lib/components/mediaPlayback.d.ts.map +1 -1
- package/lib/components/mediaPlayback.js +746 -17
- package/lib/components/mediaPlayback.js.map +1 -1
- package/lib/components/mediaTransfer.d.ts +29 -0
- package/lib/components/mediaTransfer.d.ts.map +1 -0
- package/lib/components/mediaTransfer.js +52 -0
- package/lib/components/mediaTransfer.js.map +1 -0
- package/lib/components/mediaViewer/MediaViewer.d.ts +17 -0
- package/lib/components/mediaViewer/MediaViewer.d.ts.map +1 -0
- package/lib/components/mediaViewer/MediaViewer.js +347 -0
- package/lib/components/mediaViewer/MediaViewer.js.map +1 -0
- package/lib/components/mediaViewer/MediaViewerChrome.d.ts +14 -0
- package/lib/components/mediaViewer/MediaViewerChrome.d.ts.map +1 -0
- package/lib/components/mediaViewer/MediaViewerChrome.js +164 -0
- package/lib/components/mediaViewer/MediaViewerChrome.js.map +1 -0
- package/lib/components/mediaViewer/MediaViewerHost.d.ts +10 -0
- package/lib/components/mediaViewer/MediaViewerHost.d.ts.map +1 -0
- package/lib/components/mediaViewer/MediaViewerHost.js +76 -0
- package/lib/components/mediaViewer/MediaViewerHost.js.map +1 -0
- package/lib/components/mediaViewer/MediaViewerPage.d.ts +25 -0
- package/lib/components/mediaViewer/MediaViewerPage.d.ts.map +1 -0
- package/lib/components/mediaViewer/MediaViewerPage.js +194 -0
- package/lib/components/mediaViewer/MediaViewerPage.js.map +1 -0
- package/lib/components/mediaViewer/gallery.d.ts +27 -0
- package/lib/components/mediaViewer/gallery.d.ts.map +1 -0
- package/lib/components/mediaViewer/gallery.js +41 -0
- package/lib/components/mediaViewer/gallery.js.map +1 -0
- package/lib/components/messageHighlight.d.ts +41 -0
- package/lib/components/messageHighlight.d.ts.map +1 -0
- package/lib/components/messageHighlight.js +157 -0
- package/lib/components/messageHighlight.js.map +1 -0
- package/lib/components/messagePress.d.ts +14 -0
- package/lib/components/messagePress.d.ts.map +1 -0
- package/lib/components/messagePress.js +18 -0
- package/lib/components/messagePress.js.map +1 -0
- package/lib/components/messageSelection.d.ts +39 -0
- package/lib/components/messageSelection.d.ts.map +1 -0
- package/lib/components/messageSelection.js +135 -0
- package/lib/components/messageSelection.js.map +1 -0
- package/lib/components/recordingFeedback.d.ts +22 -0
- package/lib/components/recordingFeedback.d.ts.map +1 -0
- package/lib/components/recordingFeedback.js +80 -0
- package/lib/components/recordingFeedback.js.map +1 -0
- package/lib/components/recordingMeter.d.ts +19 -0
- package/lib/components/recordingMeter.d.ts.map +1 -0
- package/lib/components/recordingMeter.js +21 -0
- package/lib/components/recordingMeter.js.map +1 -0
- package/lib/components/roundNoteChrome.d.ts +107 -0
- package/lib/components/roundNoteChrome.d.ts.map +1 -0
- package/lib/components/roundNoteChrome.js +249 -0
- package/lib/components/roundNoteChrome.js.map +1 -0
- package/lib/components/roundNotePlayers.d.ts +78 -0
- package/lib/components/roundNotePlayers.d.ts.map +1 -0
- package/lib/components/roundNotePlayers.js +230 -0
- package/lib/components/roundNotePlayers.js.map +1 -0
- package/lib/components/sendFlight.d.ts +88 -0
- package/lib/components/sendFlight.d.ts.map +1 -0
- package/lib/components/sendFlight.js +146 -0
- package/lib/components/sendFlight.js.map +1 -0
- package/lib/components/viewOnce.d.ts +27 -0
- package/lib/components/viewOnce.d.ts.map +1 -0
- package/lib/components/viewOnce.js +168 -0
- package/lib/components/viewOnce.js.map +1 -0
- package/lib/components/visionCamera.d.ts +45 -0
- package/lib/components/visionCamera.d.ts.map +1 -0
- package/lib/components/visionCamera.js +117 -0
- package/lib/components/visionCamera.js.map +1 -0
- package/lib/components/voiceEditing.d.ts +34 -0
- package/lib/components/voiceEditing.d.ts.map +1 -0
- package/lib/components/voiceEditing.js +159 -0
- package/lib/components/voiceEditing.js.map +1 -0
- package/lib/components/voiceWaveform.d.ts +108 -0
- package/lib/components/voiceWaveform.d.ts.map +1 -0
- package/lib/components/voiceWaveform.js +165 -0
- package/lib/components/voiceWaveform.js.map +1 -0
- package/lib/components/wallpaperGradient.d.ts +16 -0
- package/lib/components/wallpaperGradient.d.ts.map +1 -0
- package/lib/components/wallpaperGradient.js +186 -0
- package/lib/components/wallpaperGradient.js.map +1 -0
- package/lib/components/windowInsets.d.ts +11 -0
- package/lib/components/windowInsets.d.ts.map +1 -0
- package/lib/components/windowInsets.js +44 -0
- package/lib/components/windowInsets.js.map +1 -0
- package/lib/dayjsLocales.js +15 -2
- package/lib/dayjsLocales.js.map +1 -1
- package/lib/emoji/EmojiGrid/BackspaceButton.d.ts +11 -0
- package/lib/emoji/EmojiGrid/BackspaceButton.d.ts.map +1 -0
- package/lib/emoji/EmojiGrid/BackspaceButton.js +111 -0
- package/lib/emoji/EmojiGrid/BackspaceButton.js.map +1 -0
- package/lib/emoji/EmojiGrid/EmojiRow.d.ts +15 -0
- package/lib/emoji/EmojiGrid/EmojiRow.d.ts.map +1 -0
- package/lib/emoji/EmojiGrid/EmojiRow.js +71 -0
- package/lib/emoji/EmojiGrid/EmojiRow.js.map +1 -0
- package/lib/emoji/EmojiGrid/Search.d.ts +29 -0
- package/lib/emoji/EmojiGrid/Search.d.ts.map +1 -0
- package/lib/emoji/EmojiGrid/Search.js +234 -0
- package/lib/emoji/EmojiGrid/Search.js.map +1 -0
- package/lib/emoji/EmojiGrid/TabStrip.d.ts +16 -0
- package/lib/emoji/EmojiGrid/TabStrip.d.ts.map +1 -0
- package/lib/emoji/EmojiGrid/TabStrip.js +237 -0
- package/lib/emoji/EmojiGrid/TabStrip.js.map +1 -0
- package/lib/emoji/EmojiGrid/TonePopup.d.ts +12 -0
- package/lib/emoji/EmojiGrid/TonePopup.d.ts.map +1 -0
- package/lib/emoji/EmojiGrid/TonePopup.js +137 -0
- package/lib/emoji/EmojiGrid/TonePopup.js.map +1 -0
- package/lib/emoji/EmojiGrid/constants.d.ts +29 -0
- package/lib/emoji/EmojiGrid/constants.d.ts.map +1 -0
- package/lib/emoji/EmojiGrid/constants.js +65 -0
- package/lib/emoji/EmojiGrid/constants.js.map +1 -0
- package/lib/emoji/EmojiGrid/index.d.ts +10 -0
- package/lib/emoji/EmojiGrid/index.d.ts.map +1 -0
- package/lib/emoji/EmojiGrid/index.js +450 -0
- package/lib/emoji/EmojiGrid/index.js.map +1 -0
- package/lib/emoji/EmojiGrid/items.d.ts +25 -0
- package/lib/emoji/EmojiGrid/items.d.ts.map +1 -0
- package/lib/emoji/EmojiGrid/items.js +75 -0
- package/lib/emoji/EmojiGrid/items.js.map +1 -0
- package/lib/emoji/EmojiGrid/styles.d.ts +181 -0
- package/lib/emoji/EmojiGrid/styles.d.ts.map +1 -0
- package/lib/emoji/EmojiGrid/styles.js +184 -0
- package/lib/emoji/EmojiGrid/styles.js.map +1 -0
- package/lib/emoji/EmojiGrid/types.d.ts +53 -0
- package/lib/emoji/EmojiGrid/types.d.ts.map +1 -0
- package/lib/emoji/EmojiGrid/types.js +2 -0
- package/lib/emoji/EmojiGrid/types.js.map +1 -0
- package/lib/emoji/EmojiGrid/useTabScroll.d.ts +19 -0
- package/lib/emoji/EmojiGrid/useTabScroll.d.ts.map +1 -0
- package/lib/emoji/EmojiGrid/useTabScroll.js +124 -0
- package/lib/emoji/EmojiGrid/useTabScroll.js.map +1 -0
- package/lib/emoji/EmojiKeyboard.d.ts +79 -0
- package/lib/emoji/EmojiKeyboard.d.ts.map +1 -0
- package/lib/emoji/EmojiKeyboard.js +445 -0
- package/lib/emoji/EmojiKeyboard.js.map +1 -0
- package/lib/emoji/defaultExpandedPicker.d.ts +5 -0
- package/lib/emoji/defaultExpandedPicker.d.ts.map +1 -0
- package/lib/emoji/defaultExpandedPicker.js +11 -0
- package/lib/emoji/defaultExpandedPicker.js.map +1 -0
- package/lib/emoji/emojiData.d.ts +2 -0
- package/lib/emoji/emojiData.d.ts.map +1 -0
- package/lib/emoji/emojiData.js +5 -0
- package/lib/emoji/emojiData.js.map +1 -0
- package/lib/emoji/emojiStore.d.ts +70 -0
- package/lib/emoji/emojiStore.d.ts.map +1 -0
- package/lib/emoji/emojiStore.js +246 -0
- package/lib/emoji/emojiStore.js.map +1 -0
- package/lib/emoji/textEditing.d.ts +20 -0
- package/lib/emoji/textEditing.d.ts.map +1 -0
- package/lib/emoji/textEditing.js +97 -0
- package/lib/emoji/textEditing.js.map +1 -0
- package/lib/emojiOnly.d.ts +11 -0
- package/lib/emojiOnly.d.ts.map +1 -0
- package/lib/emojiOnly.js +79 -0
- package/lib/emojiOnly.js.map +1 -0
- package/lib/gestures/useRowSwipe.d.ts +43 -0
- package/lib/gestures/useRowSwipe.d.ts.map +1 -0
- package/lib/gestures/useRowSwipe.js +74 -0
- package/lib/gestures/useRowSwipe.js.map +1 -0
- package/lib/hooks/useAnimatedPresence.d.ts +22 -0
- package/lib/hooks/useAnimatedPresence.d.ts.map +1 -0
- package/lib/hooks/useAnimatedPresence.js +97 -0
- package/lib/hooks/useAnimatedPresence.js.map +1 -0
- package/lib/hooks/useChatMessages.d.ts +39 -0
- package/lib/hooks/useChatMessages.d.ts.map +1 -0
- package/lib/hooks/useChatMessages.js +125 -0
- package/lib/hooks/useChatMessages.js.map +1 -0
- package/lib/hooks/useColorScheme.d.ts +7 -1
- package/lib/hooks/useColorScheme.d.ts.map +1 -1
- package/lib/hooks/useColorScheme.js +46 -8
- package/lib/hooks/useColorScheme.js.map +1 -1
- package/lib/hooks/useHasKeyboardProvider.js +18 -7
- package/lib/hooks/useHasKeyboardProvider.js.map +1 -1
- package/lib/hooks/useIcons.js +15 -2
- package/lib/hooks/useIcons.js.map +1 -1
- package/lib/hooks/useIsKeyboardVisible.js +39 -17
- package/lib/hooks/useIsKeyboardVisible.js.map +1 -1
- package/lib/hooks/useIsRTL.js +15 -2
- package/lib/hooks/useIsRTL.js.map +1 -1
- package/lib/hooks/useKeyboardVerticalOffset.d.ts +5 -3
- package/lib/hooks/useKeyboardVerticalOffset.d.ts.map +1 -1
- package/lib/hooks/useKeyboardVerticalOffset.js +52 -18
- package/lib/hooks/useKeyboardVerticalOffset.js.map +1 -1
- package/lib/hooks/useLabels.js +15 -2
- package/lib/hooks/useLabels.js.map +1 -1
- package/lib/hooks/useStreamingMessages.js +200 -86
- package/lib/hooks/useStreamingMessages.js.map +1 -1
- package/lib/hooks/useTheme.js +56 -7
- package/lib/hooks/useTheme.js.map +1 -1
- package/lib/hooks/useUpdateLayoutEffect.d.ts.map +1 -1
- package/lib/hooks/useUpdateLayoutEffect.js +35 -11
- package/lib/hooks/useUpdateLayoutEffect.js.map +1 -1
- package/lib/i18n.d.ts +182 -0
- package/lib/i18n.d.ts.map +1 -1
- package/lib/i18n.js +121 -23
- package/lib/i18n.js.map +1 -1
- package/lib/index.d.ts +31 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +18 -1
- package/lib/index.js.map +1 -1
- package/lib/linkParser.js +318 -185
- package/lib/linkParser.js.map +1 -1
- package/lib/locales/ar.d.ts.map +1 -1
- package/lib/locales/ar.js +110 -19
- package/lib/locales/ar.js.map +1 -1
- package/lib/locales/de.d.ts.map +1 -1
- package/lib/locales/de.js +110 -19
- package/lib/locales/de.js.map +1 -1
- package/lib/locales/es.d.ts.map +1 -1
- package/lib/locales/es.js +110 -19
- package/lib/locales/es.js.map +1 -1
- package/lib/locales/fr.d.ts.map +1 -1
- package/lib/locales/fr.js +110 -19
- package/lib/locales/fr.js.map +1 -1
- package/lib/locales/hi.d.ts.map +1 -1
- package/lib/locales/hi.js +110 -19
- package/lib/locales/hi.js.map +1 -1
- package/lib/locales/id.d.ts.map +1 -1
- package/lib/locales/id.js +110 -19
- package/lib/locales/id.js.map +1 -1
- package/lib/locales/index.js +19 -5
- package/lib/locales/index.js.map +1 -1
- package/lib/locales/it.d.ts.map +1 -1
- package/lib/locales/it.js +110 -19
- package/lib/locales/it.js.map +1 -1
- package/lib/locales/ja.d.ts.map +1 -1
- package/lib/locales/ja.js +110 -19
- package/lib/locales/ja.js.map +1 -1
- package/lib/locales/ko.d.ts.map +1 -1
- package/lib/locales/ko.js +110 -19
- package/lib/locales/ko.js.map +1 -1
- package/lib/locales/nl.d.ts.map +1 -1
- package/lib/locales/nl.js +110 -19
- package/lib/locales/nl.js.map +1 -1
- package/lib/locales/pl.d.ts.map +1 -1
- package/lib/locales/pl.js +110 -19
- package/lib/locales/pl.js.map +1 -1
- package/lib/locales/pt.d.ts.map +1 -1
- package/lib/locales/pt.js +110 -19
- package/lib/locales/pt.js.map +1 -1
- package/lib/locales/ru.d.ts.map +1 -1
- package/lib/locales/ru.js +110 -19
- package/lib/locales/ru.js.map +1 -1
- package/lib/locales/tr.d.ts.map +1 -1
- package/lib/locales/tr.js +110 -19
- package/lib/locales/tr.js.map +1 -1
- package/lib/locales/zh.d.ts.map +1 -1
- package/lib/locales/zh.js +110 -19
- package/lib/locales/zh.js.map +1 -1
- package/lib/logging.d.ts +5 -0
- package/lib/logging.d.ts.map +1 -1
- package/lib/logging.js +13 -1
- package/lib/logging.js.map +1 -1
- package/lib/messageUtils.d.ts +19 -0
- package/lib/messageUtils.d.ts.map +1 -0
- package/lib/messageUtils.js +61 -0
- package/lib/messageUtils.js.map +1 -0
- package/lib/motion.d.ts +21 -0
- package/lib/motion.d.ts.map +1 -0
- package/lib/motion.js +30 -0
- package/lib/motion.js.map +1 -0
- package/lib/optional/index.d.ts +99 -0
- package/lib/optional/index.d.ts.map +1 -0
- package/lib/optional/index.js +284 -0
- package/lib/optional/index.js.map +1 -0
- package/lib/rtl.js +7 -5
- package/lib/rtl.js.map +1 -1
- package/lib/store.d.ts +40 -0
- package/lib/store.d.ts.map +1 -0
- package/lib/store.js +127 -0
- package/lib/store.js.map +1 -0
- package/lib/styles.d.ts +2 -2
- package/lib/styles.d.ts.map +1 -1
- package/lib/styles.js +15 -15
- package/lib/styles.js.map +1 -1
- package/lib/types.js +1 -0
- package/lib/types.js.map +1 -1
- package/lib/utils.d.ts +15 -0
- package/lib/utils.d.ts.map +1 -1
- package/lib/utils.js +199 -94
- package/lib/utils.js.map +1 -1
- package/llms.txt +133 -31
- package/package.json +89 -46
- package/lib/InputToolbar.d.ts +0 -49
- package/lib/InputToolbar.d.ts.map +0 -1
- package/lib/InputToolbar.js +0 -338
- package/lib/InputToolbar.js.map +0 -1
- package/lib/MessageVideo.d.ts.map +0 -1
- package/lib/MessageVideo.js +0 -162
- package/lib/MessageVideo.js.map +0 -1
- package/lib/MessagesContainer/FlashList.d.ts +0 -9
- package/lib/MessagesContainer/FlashList.d.ts.map +0 -1
- package/lib/MessagesContainer/FlashList.js +0 -23
- package/lib/MessagesContainer/FlashList.js.map +0 -1
- package/lib/components/ContextMenu.d.ts +0 -25
- package/lib/components/ContextMenu.d.ts.map +0 -1
- package/lib/components/ContextMenu.js +0 -122
- package/lib/components/ContextMenu.js.map +0 -1
- package/lib/components/VideoNoteRecorder.d.ts.map +0 -1
- package/lib/components/VideoNoteRecorder.js +0 -634
- package/lib/components/VideoNoteRecorder.js.map +0 -1
- package/lib/components/VoiceMessageInput.d.ts +0 -33
- package/lib/components/VoiceMessageInput.d.ts.map +0 -1
- package/lib/components/VoiceMessageInput.js +0 -403
- package/lib/components/VoiceMessageInput.js.map +0 -1
- package/lib/components/WaveformPlayer.d.ts +0 -19
- package/lib/components/WaveformPlayer.d.ts.map +0 -1
- package/lib/components/WaveformPlayer.js +0 -367
- package/lib/components/WaveformPlayer.js.map +0 -1
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
// Generated by scripts/build-emoji-data.cjs from emoji-datasource 16.0.0. Do not edit.
|
|
2
|
+
// One row per keyboard tab: [tab, emojis separated by ' ', search words per emoji
|
|
3
|
+
// separated by '|']. An emoji that takes a skin tone ends in '~'.
|
|
4
|
+
export const EMOJI_DATA = [['smileys', '😀 😃 😄 😁 😆 😅 🤣 😂 🙂 🙃 🫠 😉 😊 😇 🥰 😍 🤩 😘 😗 ☺️ 😚 😙 🥲 😋 😛 😜 🤪 😝 🤑 🤗 🤭 🫢 🫣 🤫 🤔 🫡 🤐 🤨 😐 😑 😶 🫥 😶🌫️ 😏 😒 🙄 😬 😮💨 🤥 🫨 🙂↔️ 🙂↕️ 😌 😔 😪 🤤 😴 😷 🤒 🤕 🤢 🤮 🤧 🥵 🥶 🥴 😵 😵💫 🤯 🤠 🥳 🥸 😎 🤓 🧐 😕 🫤 😟 🙁 ☹️ 😮 😯 😲 😳 🥺 🥹 😦 😧 😨 😰 😥 😢 😭 😱 😖 😣 😞 😓 😩 😫 🥱 😤 😡 😠 🤬 😈 👿 💀 ☠️ 💩 🤡 👹 👺 👻 👽 👾 🤖 😺 😸 😹 😻 😼 😽 🙀 😿 😾 🙈 🙉 🙊 💌 💘 💝 💖 💗 💓 💞 💕 💟 ❣️ 💔 ❤️🔥 ❤️🩹 ❤️ 🩷 🧡 💛 💚 💙 🩵 💜 🤎 🖤 🩶 🤍 💋 💯 💢 💥 💫 💦 💨 🕳️ 💬 👁️🗨️ 🗨️ 🗯️ 💭 💤 👋~ 🤚~ 🖐️~ ✋~ 🖖~ 🫱~ 🫲~ 🫳~ 🫴~ 🫷~ 🫸~ 👌~ 🤌~ 🤏~ ✌️~ 🤞~ 🫰~ 🤟~ 🤘~ 🤙~ 👈~ 👉~ 👆~ 🖕~ 👇~ ☝️~ 🫵~ 👍~ 👎~ ✊~ 👊~ 🤛~ 🤜~ 👏~ 🙌~ 🫶~ 👐~ 🤲~ 🤝~ 🙏~ ✍️~ 💅~ 🤳~ 💪~ 🦾 🦿 🦵~ 🦶~ 👂~ 🦻~ 👃~ 🧠 🫀 🫁 🦷 🦴 👀 👁️ 👅 👄 🫦 👶~ 🧒~ 👦~ 👧~ 🧑~ 👨~ 🧔~ 🧔♂️~ 🧔♀️~ 👨🦰~ 👨🦱~ 👨🦳~ 👨🦲~ 👩~ 👩🦰~ 🧑🦰~ 👩🦱~ 🧑🦱~ 👩🦳~ 🧑🦳~ 👩🦲~ 🧑🦲~ 👱♀️~ 👱♂️~ 🧓~ 👴~ 👵~ 🙍♂️~ 🙍♀️~ 🙎♂️~ 🙎♀️~ 🙅♂️~ 🙅♀️~ 🙆♂️~ 🙆♀️~ 💁♂️~ 💁♀️~ 🙋♂️~ 🙋♀️~ 🧏~ 🧏♂️~ 🧏♀️~ 🙇~ 🙇♂️~ 🙇♀️~ 🤦~ 🤦♂️~ 🤦♀️~ 🤷~ 🤷♂️~ 🤷♀️~ 🧑⚕️~ 👨⚕️~ 👩⚕️~ 🧑🎓~ 👨🎓~ 👩🎓~ 🧑🏫~ 👨🏫~ 👩🏫~ 🧑⚖️~ 👨⚖️~ 👩⚖️~ 🧑🌾~ 👨🌾~ 👩🌾~ 🧑🍳~ 👨🍳~ 👩🍳~ 🧑🔧~ 👨🔧~ 👩🔧~ 🧑🏭~ 👨🏭~ 👩🏭~ 🧑💼~ 👨💼~ 👩💼~ 🧑🔬~ 👨🔬~ 👩🔬~ 🧑💻~ 👨💻~ 👩💻~ 🧑🎤~ 👨🎤~ 👩🎤~ 🧑🎨~ 👨🎨~ 👩🎨~ 🧑✈️~ 👨✈️~ 👩✈️~ 🧑🚀~ 👨🚀~ 👩🚀~ 🧑🚒~ 👨🚒~ 👩🚒~ 👮♂️~ 👮♀️~ 🕵️♂️~ 🕵️♀️~ 💂♂️~ 💂♀️~ 🥷~ 👷♂️~ 👷♀️~ 🫅~ 🤴~ 👸~ 👳♂️~ 👳♀️~ 👲~ 🧕~ 🤵~ 🤵♂️~ 🤵♀️~ 👰~ 👰♂️~ 👰♀️~ 🤰~ 🫃~ 🫄~ 🤱~ 👩🍼~ 👨🍼~ 🧑🍼~ 👼~ 🎅~ 🤶~ 🧑🎄~ 🦸~ 🦸♂️~ 🦸♀️~ 🦹~ 🦹♂️~ 🦹♀️~ 🧙♂️~ 🧙♀️~ 🧚♂️~ 🧚♀️~ 🧛♂️~ 🧛♀️~ 🧜♂️~ 🧜♀️~ 🧝♂️~ 🧝♀️~ 🧞♂️ 🧞♀️ 🧟♂️ 🧟♀️ 🧌 💆♂️~ 💆♀️~ 💇♂️~ 💇♀️~ 🚶♂️~ 🚶♀️~ 🚶➡️~ 🚶♀️➡️~ 🚶♂️➡️~ 🧍~ 🧍♂️~ 🧍♀️~ 🧎~ 🧎♂️~ 🧎♀️~ 🧎➡️~ 🧎♀️➡️~ 🧎♂️➡️~ 🧑🦯~ 🧑🦯➡️~ 👨🦯~ 👨🦯➡️~ 👩🦯~ 👩🦯➡️~ 🧑🦼~ 🧑🦼➡️~ 👨🦼~ 👨🦼➡️~ 👩🦼~ 👩🦼➡️~ 🧑🦽~ 🧑🦽➡️~ 👨🦽~ 👨🦽➡️~ 👩🦽~ 👩🦽➡️~ 🏃♂️~ 🏃♀️~ 🏃➡️~ 🏃♀️➡️~ 🏃♂️➡️~ 💃~ 🕺~ 🕴️~ 👯♂️ 👯♀️ 🧖♂️~ 🧖♀️~ 🧗♂️~ 🧗♀️~ 🤺 🏇~ ⛷️ 🏂~ 🏌️♂️~ 🏌️♀️~ 🏄♂️~ 🏄♀️~ 🚣♂️~ 🚣♀️~ 🏊♂️~ 🏊♀️~ ⛹️♂️~ ⛹️♀️~ 🏋️♂️~ 🏋️♀️~ 🚴♂️~ 🚴♀️~ 🚵♂️~ 🚵♀️~ 🤸~ 🤸♂️~ 🤸♀️~ 🤼 🤼♂️ 🤼♀️ 🤽~ 🤽♂️~ 🤽♀️~ 🤾~ 🤾♂️~ 🤾♀️~ 🤹~ 🤹♂️~ 🤹♀️~ 🧘♂️~ 🧘♀️~ 🛀~ 🛌~ 🧑🤝🧑 👭~ 👫~ 👬~ 💏~ 👩❤️💋👨 👨❤️💋👨 👩❤️💋👩 💑~ 👩❤️👨 👨❤️👨 👩❤️👩 👨👩👦 👨👩👧 👨👩👧👦 👨👩👦👦 👨👩👧👧 👨👨👦 👨👨👧 👨👨👧👦 👨👨👦👦 👨👨👧👧 👩👩👦 👩👩👧 👩👩👧👦 👩👩👦👦 👩👩👧👧 👨👦 👨👦👦 👨👧 👨👧👦 👨👧👧 👩👦 👩👦👦 👩👧 👩👧👦 👩👧👧 🗣️ 👤 👥 🫂 🧑🧑🧒 🧑🧑🧒🧒 🧑🧒 🧑🧒🧒 👣 ', 'grinning face grinning|smiling face with open mouth smiley|smiling face with open mouth and smiling eyes smile|grinning face with smiling eyes grin|smiling face with open mouth and tightly-closed eyes laughing satisfied|smiling face with open mouth and cold sweat sweat smile|rolling on the floor laughing|face with tears of joy joy|slightly smiling face|upside-down face upside down face|melting face|winking face wink|smiling face with smiling eyes blush|smiling face with halo innocent|smiling face with smiling eyes and three hearts smiling face with 3 hearts|smiling face with heart-shaped eyes heart eyes|grinning face with star eyes star-struck|face throwing a kiss kissing heart|kissing face kissing|white smiling face relaxed|kissing face with closed eyes kissing closed eyes|kissing face with smiling eyes kissing smiling eyes|smiling face with tear|face savouring delicious food yum|face with stuck-out tongue stuck out tongue|face with stuck-out tongue and winking eye stuck out tongue winking eye|grinning face with one large and one small eye zany face|face with stuck-out tongue and tightly-closed eyes stuck out tongue closed eyes|money-mouth face money mouth face|hugging face|smiling face with smiling eyes and hand covering mouth face with hand over mouth|face with open eyes and hand over mouth|face with peeking eye|face with finger covering closed lips shushing face|thinking face|saluting face|zipper-mouth face zipper mouth face|face with one eyebrow raised face with raised eyebrow|neutral face|expressionless face expressionless|face without mouth no mouth|dotted line face|face in clouds|smirking face smirk|unamused face unamused|face with rolling eyes|grimacing face grimacing|face exhaling|lying face|shaking face|head shaking horizontally|head shaking vertically|relieved face relieved|pensive face pensive|sleepy face sleepy|drooling face|sleeping face sleeping|face with bags under eyes|face with medical mask mask|face with thermometer|face with head-bandage face with head bandage|nauseated face|face with open mouth vomiting face vomiting|sneezing face|overheated face hot face|freezing face cold face|face with uneven eyes and wavy mouth woozy face|dizzy face|face with spiral eyes|shocked face with exploding head exploding head|face with cowboy hat|face with party horn and party hat partying face|disguised face|smiling face with sunglasses sunglasses|nerd face|face with monocle|confused face confused|face with diagonal mouth|worried face worried|slightly frowning face|frowning face white frowning face|face with open mouth open mouth|hushed face hushed|astonished face astonished|flushed face flushed|face with pleading eyes pleading face|face holding back tears|frowning face with open mouth frowning|anguished face anguished|fearful face fearful|face with open mouth and cold sweat cold sweat|disappointed but relieved face disappointed relieved|crying face cry|loudly crying face sob|face screaming in fear scream|confounded face confounded|persevering face persevere|disappointed face disappointed|face with cold sweat sweat|weary face weary|tired face|yawning face|face with look of triumph triumph|pouting face rage|angry face angry|serious face with symbols covering mouth face with symbols on mouth|smiling face with horns smiling imp|imp|skull|skull and crossbones|pile of poo hankey poop shit|clown face|japanese ogre|japanese goblin|ghost|extraterrestrial alien alien|alien monster space invader|robot face|smiling cat face with open mouth smiley cat|grinning cat face with smiling eyes smile cat|cat face with tears of joy joy cat|smiling cat face with heart-shaped eyes heart eyes cat|cat face with wry smile smirk cat|kissing cat face with closed eyes kissing cat|weary cat face scream cat|crying cat face|pouting cat face pouting cat|see-no-evil monkey see no evil|hear-no-evil monkey hear no evil|speak-no-evil monkey speak no evil|love letter|heart with arrow cupid|heart with ribbon gift heart|sparkling heart|growing heart heartpulse|beating heart heartbeat|revolving hearts|two hearts|heart decoration|heart exclamation heavy heart exclamation mark ornament|broken heart|heart on fire|mending heart|heavy black heart heart|pink heart|orange heart|yellow heart|green heart|blue heart|light blue heart|purple heart|brown heart|black heart|grey heart|white heart|kiss mark kiss|hundred points symbol 100|anger symbol anger|collision symbol boom collision|dizzy symbol dizzy|splashing sweat symbol sweat drops|dash symbol dash|hole|speech balloon|eye in speech bubble eye-in-speech-bubble|left speech bubble|right anger bubble|thought balloon|sleeping symbol zzz|waving hand sign wave|raised back of hand|hand with fingers splayed raised hand with fingers splayed|raised hand hand|raised hand with part between middle and ring fingers spock-hand|rightwards hand|leftwards hand|palm down hand|palm up hand|leftwards pushing hand|rightwards pushing hand|ok hand sign ok hand|pinched fingers|pinching hand|victory hand v|hand with index and middle fingers crossed crossed fingers|hand with index finger and thumb crossed|i love you hand sign|sign of the horns the horns|call me hand|white left pointing backhand index point left|white right pointing backhand index point right|white up pointing backhand index point up 2|reversed hand with middle finger extended middle finger|white down pointing backhand index point down|white up pointing index point up|index pointing at the viewer|thumbs up sign +1 thumbsup|thumbs down sign -1 thumbsdown|raised fist fist|fisted hand sign facepunch punch|left-facing fist|right-facing fist|clapping hands sign clap|person raising both hands in celebration raised hands|heart hands|open hands sign open hands|palms up together|handshake|person with folded hands pray|writing hand|nail polish nail care|selfie|flexed biceps muscle|mechanical arm|mechanical leg|leg|foot|ear|ear with hearing aid|nose|brain|anatomical heart|lungs|tooth|bone|eyes|eye|tongue|mouth lips|biting lip|baby|child|boy|girl|adult|man|bearded person|man beard man with beard|woman beard woman with beard|man red hair red haired man|man curly hair curly haired man|man white hair white haired man|man bald bald man|woman|woman red hair red haired woman|person red hair red haired person|woman curly hair curly haired woman|person curly hair curly haired person|woman white hair white haired woman|person white hair white haired person|woman bald bald woman|person bald bald person|woman blond hair blond-haired-woman|man blond hair blond-haired-man|older adult|older man|older woman|man frowning man-frowning|woman frowning woman-frowning|man pouting man-pouting|woman pouting woman-pouting|man gesturing no man-gesturing-no|woman gesturing no woman-gesturing-no|man gesturing ok man-gesturing-ok|woman gesturing ok woman-gesturing-ok|man tipping hand man-tipping-hand|woman tipping hand woman-tipping-hand|man raising hand man-raising-hand|woman raising hand woman-raising-hand|deaf person|deaf man|deaf woman|person bowing deeply bow|man bowing man-bowing|woman bowing woman-bowing|face palm|man facepalming man-facepalming|woman facepalming woman-facepalming|shrug|man shrugging man-shrugging|woman shrugging woman-shrugging|health worker|man health worker male-doctor|woman health worker female-doctor|student|man student male-student|woman student female-student|teacher|man teacher male-teacher|woman teacher female-teacher|judge|man judge male-judge|woman judge female-judge|farmer|man farmer male-farmer|woman farmer female-farmer|cook|man cook male-cook|woman cook female-cook|mechanic|man mechanic male-mechanic|woman mechanic female-mechanic|factory worker|man factory worker male-factory-worker|woman factory worker female-factory-worker|office worker|man office worker male-office-worker|woman office worker female-office-worker|scientist|man scientist male-scientist|woman scientist female-scientist|technologist|man technologist male-technologist|woman technologist female-technologist|singer|man singer male-singer|woman singer female-singer|artist|man artist male-artist|woman artist female-artist|pilot|man pilot male-pilot|woman pilot female-pilot|astronaut|man astronaut male-astronaut|woman astronaut female-astronaut|firefighter|man firefighter male-firefighter|woman firefighter female-firefighter|man police officer male-police-officer|woman police officer female-police-officer|man detective male-detective|woman detective female-detective|man guard male-guard|woman guard female-guard|ninja|man construction worker male-construction-worker|woman construction worker female-construction-worker|person with crown|prince|princess|man wearing turban man-wearing-turban|woman wearing turban woman-wearing-turban|man with gua pi mao|person with headscarf|man in tuxedo person in tuxedo|man in tuxedo|woman in tuxedo|bride with veil|man with veil|woman with veil|pregnant woman|pregnant man|pregnant person|breast-feeding|woman feeding baby|man feeding baby|person feeding baby|baby angel angel|father christmas santa|mother christmas mrs claus|mx claus|superhero|man superhero male superhero|woman superhero female superhero|supervillain|man supervillain male supervillain|woman supervillain female supervillain|man mage male mage|woman mage female mage|man fairy male fairy|woman fairy female fairy|man vampire male vampire|woman vampire female vampire|merman|mermaid|man elf male elf|woman elf female elf|man genie male genie|woman genie female genie|man zombie male zombie|woman zombie female zombie|troll|man getting massage man-getting-massage|woman getting massage woman-getting-massage|man getting haircut man-getting-haircut|woman getting haircut woman-getting-haircut|man walking man-walking|woman walking woman-walking|person walking facing right|woman walking facing right|man walking facing right|standing person|man standing|woman standing|kneeling person|man kneeling|woman kneeling|person kneeling facing right|woman kneeling facing right|man kneeling facing right|person with white cane person with probing cane|person with white cane facing right|man with white cane man with probing cane|man with white cane facing right|woman with white cane woman with probing cane|woman with white cane facing right|person in motorized wheelchair|person in motorized wheelchair facing right|man in motorized wheelchair|man in motorized wheelchair facing right|woman in motorized wheelchair|woman in motorized wheelchair facing right|person in manual wheelchair|person in manual wheelchair facing right|man in manual wheelchair|man in manual wheelchair facing right|woman in manual wheelchair|woman in manual wheelchair facing right|man running man-running|woman running woman-running|person running facing right|woman running facing right|man running facing right|dancer|man dancing|person in suit levitating man in business suit levitating|men with bunny ears men-with-bunny-ears-partying man-with-bunny-ears-partying|women with bunny ears women-with-bunny-ears-partying woman-with-bunny-ears-partying|man in steamy room|woman in steamy room|man climbing|woman climbing|fencer|horse racing|skier|snowboarder|man golfing man-golfing|woman golfing woman-golfing|man surfing man-surfing|woman surfing woman-surfing|man rowing boat man-rowing-boat|woman rowing boat woman-rowing-boat|man swimming man-swimming|woman swimming woman-swimming|man bouncing ball man-bouncing-ball|woman bouncing ball woman-bouncing-ball|man lifting weights man-lifting-weights|woman lifting weights woman-lifting-weights|man biking man-biking|woman biking woman-biking|man mountain biking man-mountain-biking|woman mountain biking woman-mountain-biking|person doing cartwheel|man cartwheeling man-cartwheeling|woman cartwheeling woman-cartwheeling|wrestlers|men wrestling man-wrestling|women wrestling woman-wrestling|water polo|man playing water polo man-playing-water-polo|woman playing water polo woman-playing-water-polo|handball|man playing handball man-playing-handball|woman playing handball woman-playing-handball|juggling|man juggling man-juggling|woman juggling woman-juggling|man in lotus position|woman in lotus position|bath|sleeping accommodation|people holding hands|two women holding hands women holding hands|man and woman holding hands woman and man holding hands couple|two men holding hands men holding hands|kiss couplekiss|kiss woman, man woman-kiss-man|kiss man, man man-kiss-man|kiss woman, woman woman-kiss-woman|couple with heart|couple with heart woman, man woman-heart-man|couple with heart man, man man-heart-man|couple with heart woman, woman woman-heart-woman|family man, woman, boy man-woman-boy|family man, woman, girl man-woman-girl|family man, woman, girl, boy man-woman-girl-boy|family man, woman, boy, boy man-woman-boy-boy|family man, woman, girl, girl man-woman-girl-girl|family man, man, boy man-man-boy|family man, man, girl man-man-girl|family man, man, girl, boy man-man-girl-boy|family man, man, boy, boy man-man-boy-boy|family man, man, girl, girl man-man-girl-girl|family woman, woman, boy woman-woman-boy|family woman, woman, girl woman-woman-girl|family woman, woman, girl, boy woman-woman-girl-boy|family woman, woman, boy, boy woman-woman-boy-boy|family woman, woman, girl, girl woman-woman-girl-girl|family man, boy man-boy|family man, boy, boy man-boy-boy|family man, girl man-girl|family man, girl, boy man-girl-boy|family man, girl, girl man-girl-girl|family woman, boy woman-boy|family woman, boy, boy woman-boy-boy|family woman, girl woman-girl|family woman, girl, boy woman-girl-boy|family woman, girl, girl woman-girl-girl|speaking head speaking head in silhouette|bust in silhouette|busts in silhouette|people hugging|family adult, adult, child family adult adult child|family adult, adult, child, child family adult adult child child|family adult, child family adult child|family adult, child, child family adult child child|footprints|fingerprint'], ['animals', '🐵 🐒 🦍 🦧 🐶 🐕 🦮 🐕🦺 🐩 🐺 🦊 🦝 🐱 🐈 🐈⬛ 🦁 🐯 🐅 🐆 🐴 🫎 🫏 🐎 🦄 🦓 🦌 🦬 🐮 🐂 🐃 🐄 🐷 🐖 🐗 🐽 🐏 🐑 🐐 🐪 🐫 🦙 🦒 🐘 🦣 🦏 🦛 🐭 🐁 🐀 🐹 🐰 🐇 🐿️ 🦫 🦔 🦇 🐻 🐻❄️ 🐨 🐼 🦥 🦦 🦨 🦘 🦡 🐾 🦃 🐔 🐓 🐣 🐤 🐥 🐦 🐧 🕊️ 🦅 🦆 🦢 🦉 🦤 🪶 🦩 🦚 🦜 🪽 🐦⬛ 🪿 🐦🔥 🐸 🐊 🐢 🦎 🐍 🐲 🐉 🦕 🦖 🐳 🐋 🐬 🦭 🐟 🐠 🐡 🦈 🐙 🐚 🪸 🪼 🦀 🦞 🦐 🦑 🦪 🐌 🦋 🐛 🐜 🐝 🪲 🐞 🦗 🪳 🕷️ 🕸️ 🦂 🦟 🪰 🪱 🦠 💐 🌸 💮 🪷 🏵️ 🌹 🥀 🌺 🌻 🌼 🌷 🪻 🌱 🪴 🌲 🌳 🌴 🌵 🌾 🌿 ☘️ 🍀 🍁 🍂 🍃 🪹 🪺 🍄 ', 'monkey face|monkey|gorilla|orangutan|dog face dog|dog dog2|guide dog|service dog|poodle|wolf face wolf|fox face|raccoon|cat face cat|cat cat2|black cat|lion face|tiger face tiger|tiger tiger2|leopard|horse face horse|moose|donkey|horse racehorse|unicorn face|zebra face|deer|bison|cow face cow|ox|water buffalo|cow cow2|pig face pig|pig pig2|boar|pig nose|ram|sheep|goat|dromedary camel|bactrian camel camel|llama|giraffe face|elephant|mammoth|rhinoceros|hippopotamus|mouse face mouse|mouse mouse2|rat|hamster face hamster|rabbit face rabbit|rabbit rabbit2|chipmunk|beaver|hedgehog|bat|bear face bear|polar bear|koala|panda face|sloth|otter|skunk|kangaroo|badger|paw prints feet|turkey|chicken|rooster|hatching chick|baby chick|front-facing baby chick hatched chick|bird|penguin|dove dove of peace|eagle|duck|swan|owl|dodo|feather|flamingo|peacock|parrot|wing|black bird|goose|phoenix|frog face frog|crocodile|turtle|lizard|snake|dragon face|dragon|sauropod|t-rex|spouting whale whale|whale whale2|dolphin flipper|seal|fish|tropical fish|blowfish|shark|octopus|spiral shell shell|coral|jellyfish|crab|lobster|shrimp|squid|oyster|snail|butterfly|bug|ant|honeybee bee|beetle|lady beetle ladybug|cricket|cockroach|spider|spider web|scorpion|mosquito|fly|worm|microbe|bouquet|cherry blossom|white flower|lotus|rosette|rose|wilted flower|hibiscus|sunflower|blossom|tulip|hyacinth|seedling|potted plant|evergreen tree|deciduous tree|palm tree|cactus|ear of rice|herb|shamrock|four leaf clover|maple leaf|fallen leaf|leaf fluttering in wind leaves|empty nest|nest with eggs|mushroom|leafless tree'], ['food', '🍇 🍈 🍉 🍊 🍋 🍋🟩 🍌 🍍 🥭 🍎 🍏 🍐 🍑 🍒 🍓 🫐 🥝 🍅 🫒 🥥 🥑 🍆 🥔 🥕 🌽 🌶️ 🫑 🥒 🥬 🥦 🧄 🧅 🥜 🫘 🌰 🫚 🫛 🍄🟫 🍞 🥐 🥖 🫓 🥨 🥯 🥞 🧇 🧀 🍖 🍗 🥩 🥓 🍔 🍟 🍕 🌭 🥪 🌮 🌯 🫔 🥙 🧆 🥚 🍳 🥘 🍲 🫕 🥣 🥗 🍿 🧈 🧂 🥫 🍱 🍘 🍙 🍚 🍛 🍜 🍝 🍠 🍢 🍣 🍤 🍥 🥮 🍡 🥟 🥠 🥡 🍦 🍧 🍨 🍩 🍪 🎂 🍰 🧁 🥧 🍫 🍬 🍭 🍮 🍯 🍼 🥛 ☕ 🫖 🍵 🍶 🍾 🍷 🍸 🍹 🍺 🍻 🥂 🥃 🫗 🥤 🧋 🧃 🧉 🧊 🥢 🍽️ 🍴 🥄 🔪 🫙 🏺', 'grapes|melon|watermelon|tangerine|lemon|lime|banana|pineapple|mango|red apple apple|green apple|pear|peach|cherries|strawberry|blueberries|kiwifruit|tomato|olive|coconut|avocado|aubergine eggplant|potato|carrot|ear of maize corn|hot pepper|bell pepper|cucumber|leafy green|broccoli|garlic|onion|peanuts|beans|chestnut|ginger root|pea pod|brown mushroom|root vegetable|bread|croissant|baguette bread|flatbread|pretzel|bagel|pancakes|waffle|cheese wedge|meat on bone|poultry leg|cut of meat|bacon|hamburger|french fries fries|slice of pizza pizza|hot dog hotdog|sandwich|taco|burrito|tamale|stuffed flatbread|falafel|egg|cooking fried egg|shallow pan of food|pot of food stew|fondue|bowl with spoon|green salad|popcorn|butter|salt shaker salt|canned food|bento box bento|rice cracker|rice ball|cooked rice rice|curry and rice curry|steaming bowl ramen|spaghetti|roasted sweet potato sweet potato|oden|sushi|fried shrimp|fish cake with swirl design fish cake|moon cake|dango|dumpling|fortune cookie|takeout box|soft ice cream icecream|shaved ice|ice cream|doughnut|cookie|birthday cake birthday|shortcake cake|cupcake|pie|chocolate bar|candy|lollipop|custard|honey pot|baby bottle|glass of milk|hot beverage coffee|teapot|teacup without handle tea|sake bottle and cup sake|bottle with popping cork champagne|wine glass|cocktail glass cocktail|tropical drink|beer mug beer|clinking beer mugs beers|clinking glasses|tumbler glass|pouring liquid|cup with straw|bubble tea|beverage box|mate drink|ice cube|chopsticks|fork and knife with plate knife fork plate|fork and knife|spoon|hocho knife|jar|amphora'], ['activities', '🎃 🎄 🎆 🎇 🧨 ✨ 🎈 🎉 🎊 🎋 🎍 🎎 🎏 🎐 🎑 🧧 🎀 🎁 🎗️ 🎟️ 🎫 🎖️ 🏆 🏅 🥇 🥈 🥉 ⚽ ⚾ 🥎 🏀 🏐 🏈 🏉 🎾 🥏 🎳 🏏 🏑 🏒 🥍 🏓 🏸 🥊 🥋 🥅 ⛳ ⛸️ 🎣 🤿 🎽 🎿 🛷 🥌 🎯 🪀 🪁 🔫 🎱 🔮 🪄 🎮 🕹️ 🎰 🎲 🧩 🧸 🪅 🪩 🪆 ♠️ ♥️ ♦️ ♣️ ♟️ 🃏 🀄 🎴 🎭 🖼️ 🎨 🧵 🪡 🧶 🪢', 'jack-o-lantern jack o lantern|christmas tree|fireworks|firework sparkler sparkler|firecracker|sparkles|balloon|party popper tada|confetti ball|tanabata tree|pine decoration bamboo|japanese dolls dolls|carp streamer flags|wind chime|moon viewing ceremony rice scene|red gift envelope red envelope|ribbon|wrapped present gift|reminder ribbon|admission tickets|ticket|military medal medal|trophy|sports medal|first place medal|second place medal|third place medal|soccer ball soccer|baseball|softball|basketball and hoop basketball|volleyball|american football football|rugby football|tennis racquet and ball tennis|flying disc|bowling|cricket bat and ball|field hockey stick and ball|ice hockey stick and puck|lacrosse stick and ball lacrosse|table tennis paddle and ball|badminton racquet and shuttlecock|boxing glove|martial arts uniform|goal net|flag in hole golf|ice skate|fishing pole and fish|diving mask|running shirt with sash|ski and ski boot ski|sled|curling stone|direct hit dart|yo-yo|kite|pistol gun|billiards 8ball|crystal ball|magic wand|video game|joystick|slot machine|game die|jigsaw puzzle piece jigsaw|teddy bear|pinata|mirror ball|nesting dolls|black spade suit spades|black heart suit hearts|black diamond suit diamonds|black club suit clubs|chess pawn|playing card black joker black joker|mahjong tile red dragon mahjong|flower playing cards|performing arts|framed picture frame with picture|artist palette art|spool of thread thread|sewing needle|ball of yarn yarn|knot'], ['travel', '🌍 🌎 🌏 🌐 🗺️ 🗾 🧭 🏔️ ⛰️ 🌋 🗻 🏕️ 🏖️ 🏜️ 🏝️ 🏞️ 🏟️ 🏛️ 🏗️ 🧱 🪨 🪵 🛖 🏘️ 🏚️ 🏠 🏡 🏢 🏣 🏤 🏥 🏦 🏨 🏩 🏪 🏫 🏬 🏭 🏯 🏰 💒 🗼 🗽 ⛪ 🕌 🛕 🕍 ⛩️ 🕋 ⛲ ⛺ 🌁 🌃 🏙️ 🌄 🌅 🌆 🌇 🌉 ♨️ 🎠 🛝 🎡 🎢 💈 🎪 🚂 🚃 🚄 🚅 🚆 🚇 🚈 🚉 🚊 🚝 🚞 🚋 🚌 🚍 🚎 🚐 🚑 🚒 🚓 🚔 🚕 🚖 🚗 🚘 🚙 🛻 🚚 🚛 🚜 🏎️ 🏍️ 🛵 🦽 🦼 🛺 🚲 🛴 🛹 🛼 🚏 🛣️ 🛤️ 🛢️ ⛽ 🛞 🚨 🚥 🚦 🛑 🚧 ⚓ 🛟 ⛵ 🛶 🚤 🛳️ ⛴️ 🛥️ 🚢 ✈️ 🛩️ 🛫 🛬 🪂 💺 🚁 🚟 🚠 🚡 🛰️ 🚀 🛸 🛎️ 🧳 ⌛ ⏳ ⌚ ⏰ ⏱️ ⏲️ 🕰️ 🕛 🕧 🕐 🕜 🕑 🕝 🕒 🕞 🕓 🕟 🕔 🕠 🕕 🕡 🕖 🕢 🕗 🕣 🕘 🕤 🕙 🕥 🕚 🕦 🌑 🌒 🌓 🌔 🌕 🌖 🌗 🌘 🌙 🌚 🌛 🌜 🌡️ ☀️ 🌝 🌞 🪐 ⭐ 🌟 🌠 🌌 ☁️ ⛅ ⛈️ 🌤️ 🌥️ 🌦️ 🌧️ 🌨️ 🌩️ 🌪️ 🌫️ 🌬️ 🌀 🌈 🌂 ☂️ ☔ ⛱️ ⚡ ❄️ ☃️ ⛄ ☄️ 🔥 💧 🌊', 'earth globe europe-africa earth africa|earth globe americas earth americas|earth globe asia-australia earth asia|globe with meridians|world map|silhouette of japan japan|compass|snow-capped mountain snow capped mountain|mountain|volcano|mount fuji|camping|beach with umbrella|desert|desert island|national park|stadium|classical building|building construction|brick bricks|rock|wood|hut|houses house buildings|derelict house derelict house building|house building house|house with garden|office building office|japanese post office post office|european post office|hospital|bank|hotel|love hotel|convenience store|school|department store|factory|japanese castle|european castle|wedding|tokyo tower|statue of liberty|church|mosque|hindu temple|synagogue|shinto shrine|kaaba|fountain|tent|foggy|night with stars|cityscape|sunrise over mountains|sunrise|cityscape at dusk city sunset|sunset over buildings city sunrise|bridge at night|hot springs hotsprings|carousel horse|playground slide|ferris wheel|roller coaster|barber pole barber|circus tent|steam locomotive|railway car|high-speed train bullettrain side|high-speed train with bullet nose bullettrain front|train train2|metro|light rail|station|tram|monorail|mountain railway|tram car train|bus|oncoming bus|trolleybus|minibus|ambulance|fire engine|police car|oncoming police car|taxi|oncoming taxi|automobile car red car|oncoming automobile|recreational vehicle blue car|pickup truck|delivery truck truck|articulated lorry|tractor|racing car|motorcycle racing motorcycle|motor scooter|manual wheelchair|motorized wheelchair|auto rickshaw|bicycle bike|scooter|skateboard|roller skate|bus stop busstop|motorway|railway track|oil drum|fuel pump fuelpump|wheel|police cars revolving light rotating light|horizontal traffic light traffic light|vertical traffic light|octagonal sign|construction sign construction|anchor|ring buoy|sailboat boat|canoe|speedboat|passenger ship|ferry|motor boat|ship|airplane|small airplane|airplane departure|airplane arriving|parachute|seat|helicopter|suspension railway|mountain cableway|aerial tramway|satellite|rocket|flying saucer|bellhop bell|luggage|hourglass|hourglass with flowing sand hourglass flowing sand|watch|alarm clock|stopwatch|timer clock|mantelpiece clock|clock face twelve oclock clock12|clock face twelve-thirty clock1230|clock face one oclock clock1|clock face one-thirty clock130|clock face two oclock clock2|clock face two-thirty clock230|clock face three oclock clock3|clock face three-thirty clock330|clock face four oclock clock4|clock face four-thirty clock430|clock face five oclock clock5|clock face five-thirty clock530|clock face six oclock clock6|clock face six-thirty clock630|clock face seven oclock clock7|clock face seven-thirty clock730|clock face eight oclock clock8|clock face eight-thirty clock830|clock face nine oclock clock9|clock face nine-thirty clock930|clock face ten oclock clock10|clock face ten-thirty clock1030|clock face eleven oclock clock11|clock face eleven-thirty clock1130|new moon symbol new moon|waxing crescent moon symbol waxing crescent moon|first quarter moon symbol first quarter moon|waxing gibbous moon symbol moon waxing gibbous moon|full moon symbol full moon|waning gibbous moon symbol waning gibbous moon|last quarter moon symbol last quarter moon|waning crescent moon symbol waning crescent moon|crescent moon|new moon with face|first quarter moon with face|last quarter moon with face|thermometer|black sun with rays sunny|full moon with face|sun with face|ringed planet|white medium star star|glowing star star2|shooting star stars|milky way|cloud|sun behind cloud partly sunny|cloud with lightning and rain thunder cloud and rain|sun behind small cloud mostly sunny sun small cloud|sun behind large cloud barely sunny sun behind cloud|sun behind rain cloud partly sunny rain|cloud with rain rain cloud|cloud with snow snow cloud|cloud with lightning lightning lightning cloud|tornado tornado cloud|fog|wind face wind blowing face|cyclone|rainbow|closed umbrella|umbrella|umbrella with rain drops|umbrella on ground|high voltage sign zap|snowflake|snowman|snowman without snow|comet|fire|droplet|water wave ocean'], ['objects', '👓 🕶️ 🥽 🥼 🦺 👔 👕 👖 🧣 🧤 🧥 🧦 👗 👘 🥻 🩱 🩲 🩳 👙 👚 🪭 👛 👜 👝 🛍️ 🎒 🩴 👞 👟 🥾 🥿 👠 👡 🩰 👢 🪮 👑 👒 🎩 🎓 🧢 🪖 ⛑️ 📿 💄 💍 💎 🔇 🔈 🔉 🔊 📢 📣 📯 🔔 🔕 🎼 🎵 🎶 🎙️ 🎚️ 🎛️ 🎤 🎧 📻 🎷 🪗 🎸 🎹 🎺 🎻 🪕 🥁 🪘 🪇 🪈 📱 📲 ☎️ 📞 📟 📠 🔋 🪫 🔌 💻 🖥️ 🖨️ ⌨️ 🖱️ 🖲️ 💽 💾 💿 📀 🧮 🎥 🎞️ 📽️ 🎬 📺 📷 📸 📹 📼 🔍 🔎 🕯️ 💡 🔦 🏮 🪔 📔 📕 📖 📗 📘 📙 📚 📓 📒 📃 📜 📄 📰 🗞️ 📑 🔖 🏷️ 💰 🪙 💴 💵 💶 💷 💸 💳 🧾 💹 ✉️ 📧 📨 📩 📤 📥 📦 📫 📪 📬 📭 📮 🗳️ ✏️ ✒️ 🖋️ 🖊️ 🖌️ 🖍️ 📝 💼 📁 📂 🗂️ 📅 📆 🗒️ 🗓️ 📇 📈 📉 📊 📋 📌 📍 📎 🖇️ 📏 📐 ✂️ 🗃️ 🗄️ 🗑️ 🔒 🔓 🔏 🔐 🔑 🗝️ 🔨 🪓 ⛏️ ⚒️ 🛠️ 🗡️ ⚔️ 💣 🪃 🏹 🛡️ 🪚 🔧 🪛 🔩 ⚙️ 🗜️ ⚖️ 🦯 🔗 ⛓️💥 ⛓️ 🪝 🧰 🧲 🪜 ⚗️ 🧪 🧫 🧬 🔬 🔭 📡 💉 🩸 💊 🩹 🩼 🩺 🩻 🚪 🛗 🪞 🪟 🛏️ 🛋️ 🪑 🚽 🪠 🚿 🛁 🪤 🪒 🧴 🧷 🧹 🧺 🧻 🪣 🧼 🫧 🪥 🧽 🧯 🛒 🚬 ⚰️ 🪦 ⚱️ 🧿 🪬 🗿 🪧 🪪', 'eyeglasses|sunglasses dark sunglasses|goggles|lab coat|safety vest|necktie|t-shirt shirt tshirt|jeans|scarf|gloves|coat|socks|dress|kimono|sari|one-piece swimsuit|briefs|shorts|bikini|womans clothes|folding hand fan|purse|handbag|pouch|shopping bags|school satchel|thong sandal|mans shoe shoe|athletic shoe|hiking boot|flat shoe womans flat shoe|high-heeled shoe high heel|womans sandal sandal|ballet shoes|womans boots boot|hair pick|crown|womans hat|top hat tophat|graduation cap mortar board|billed cap|military helmet|rescue worker’s helmet helmet with white cross|prayer beads|lipstick|ring|gem stone gem|speaker with cancellation stroke mute|speaker|speaker with one sound wave sound|speaker with three sound waves loud sound|public address loudspeaker loudspeaker|cheering megaphone mega|postal horn|bell|bell with cancellation stroke no bell|musical score|musical note|multiple musical notes notes|studio microphone|level slider|control knobs|microphone|headphone headphones|radio|saxophone|accordion|guitar|musical keyboard|trumpet|violin|banjo|drum with drumsticks|long drum|maracas|flute|harp|mobile phone iphone|mobile phone with rightwards arrow at left calling|black telephone phone telephone|telephone receiver|pager|fax machine fax|battery|low battery|electric plug|personal computer computer|desktop computer|printer|keyboard|computer mouse three button mouse|trackball|minidisc|floppy disk|optical disc cd|dvd|abacus|movie camera|film frames|film projector|clapper board clapper|television tv|camera|camera with flash|video camera|videocassette vhs|left-pointing magnifying glass mag|right-pointing magnifying glass mag right|candle|electric light bulb bulb|electric torch flashlight|izakaya lantern lantern|diya lamp|notebook with decorative cover|closed book|open book book|green book|blue book|orange book|books|notebook|ledger|page with curl|scroll|page facing up|newspaper|rolled-up newspaper rolled up newspaper|bookmark tabs|bookmark|label|money bag moneybag|coin|banknote with yen sign yen|banknote with dollar sign dollar|banknote with euro sign euro|banknote with pound sign pound|money with wings|credit card|receipt|chart with upwards trend and yen sign chart|envelope email|e-mail symbol e-mail|incoming envelope|envelope with downwards arrow above envelope with arrow|outbox tray|inbox tray|package|closed mailbox with raised flag mailbox|closed mailbox with lowered flag mailbox closed|open mailbox with raised flag mailbox with mail|open mailbox with lowered flag mailbox with no mail|postbox|ballot box with ballot|pencil pencil2|black nib|fountain pen lower left fountain pen|pen lower left ballpoint pen|paintbrush lower left paintbrush|crayon lower left crayon|memo pencil|briefcase|file folder|open file folder|card index dividers|calendar date|tear-off calendar calendar|spiral notepad spiral note pad|spiral calendar spiral calendar pad|card index|chart with upwards trend|chart with downwards trend|bar chart|clipboard|pushpin|round pushpin|paperclip|linked paperclips|straight ruler|triangular ruler|black scissors scissors|card file box|file cabinet|wastebasket|lock|open lock unlock|lock with ink pen|closed lock with key|key|old key|hammer|axe|pick|hammer and pick|hammer and wrench|dagger dagger knife|crossed swords|bomb|boomerang|bow and arrow|shield|carpentry saw|wrench|screwdriver|nut and bolt|gear|clamp compression|balance scale scales|probing cane|link symbol link|broken chain|chains|hook|toolbox|magnet|ladder|shovel|alembic|test tube|petri dish|dna double helix dna|microscope|telescope|satellite antenna|syringe|drop of blood|pill|adhesive bandage|crutch|stethoscope|x-ray|door|elevator|mirror|window|bed|couch and lamp|chair|toilet|plunger|shower|bathtub|mouse trap|razor|lotion bottle|safety pin|broom|basket|roll of paper|bucket|bar of soap soap|bubbles|toothbrush|sponge|fire extinguisher|shopping trolley|smoking symbol smoking|coffin|headstone|funeral urn|nazar amulet|hamsa|moyai|placard|identification card'], ['symbols', '🏧 🚮 🚰 ♿ 🚹 🚺 🚻 🚼 🚾 🛂 🛃 🛄 🛅 ⚠️ 🚸 ⛔ 🚫 🚳 🚭 🚯 🚱 🚷 📵 🔞 ☢️ ☣️ ⬆️ ↗️ ➡️ ↘️ ⬇️ ↙️ ⬅️ ↖️ ↕️ ↔️ ↩️ ↪️ ⤴️ ⤵️ 🔃 🔄 🔙 🔚 🔛 🔜 🔝 🛐 ⚛️ 🕉️ ✡️ ☸️ ☯️ ✝️ ☦️ ☪️ ☮️ 🕎 🔯 🪯 ♈ ♉ ♊ ♋ ♌ ♍ ♎ ♏ ♐ ♑ ♒ ♓ ⛎ 🔀 🔁 🔂 ▶️ ⏩ ⏭️ ⏯️ ◀️ ⏪ ⏮️ 🔼 ⏫ 🔽 ⏬ ⏸️ ⏹️ ⏺️ ⏏️ 🎦 🔅 🔆 📶 🛜 📳 📴 ♀️ ♂️ ⚧️ ✖️ ➕ ➖ ➗ 🟰 ♾️ ‼️ ⁉️ ❓ ❔ ❕ ❗ 〰️ 💱 💲 ⚕️ ♻️ ⚜️ 🔱 📛 🔰 ⭕ ✅ ☑️ ✔️ ❌ ❎ ➰ ➿ 〽️ ✳️ ✴️ ❇️ ©️ ®️ ™️ #️⃣ *️⃣ 0️⃣ 1️⃣ 2️⃣ 3️⃣ 4️⃣ 5️⃣ 6️⃣ 7️⃣ 8️⃣ 9️⃣ 🔟 🔠 🔡 🔢 🔣 🔤 🅰️ 🆎 🅱️ 🆑 🆒 🆓 ℹ️ 🆔 Ⓜ️ 🆕 🆖 🅾️ 🆗 🅿️ 🆘 🆙 🆚 🈁 🈂️ 🈷️ 🈶 🈯 🉐 🈹 🈚 🈲 🉑 🈸 🈴 🈳 ㊗️ ㊙️ 🈺 🈵 🔴 🟠 🟡 🟢 🔵 🟣 🟤 ⚫ ⚪ 🟥 🟧 🟨 🟩 🟦 🟪 🟫 ⬛ ⬜ ◼️ ◻️ ◾ ◽ ▪️ ▫️ 🔶 🔷 🔸 🔹 🔺 🔻 💠 🔘 🔳 🔲', 'automated teller machine atm|put litter in its place symbol put litter in its place|potable water symbol potable water|wheelchair symbol wheelchair|mens symbol mens|womens symbol womens|restroom|baby symbol|water closet wc|passport control|customs|baggage claim|left luggage|warning sign warning|children crossing|no entry|no entry sign|no bicycles|no smoking symbol no smoking|do not litter symbol do not litter|non-potable water symbol non-potable water|no pedestrians|no mobile phones|no one under eighteen symbol underage|radioactive radioactive sign|biohazard biohazard sign|upwards black arrow arrow up|north east arrow arrow upper right|black rightwards arrow arrow right|south east arrow arrow lower right|downwards black arrow arrow down|south west arrow arrow lower left|leftwards black arrow arrow left|north west arrow arrow upper left|up down arrow arrow up down|left right arrow|leftwards arrow with hook|rightwards arrow with hook arrow right hook|arrow pointing rightwards then curving upwards arrow heading up|arrow pointing rightwards then curving downwards arrow heading down|clockwise downwards and upwards open circle arrows arrows clockwise|anticlockwise downwards and upwards open circle arrows arrows counterclockwise|back with leftwards arrow above back|end with leftwards arrow above end|on with exclamation mark with left right arrow above on|soon with rightwards arrow above soon|top with upwards arrow above top|place of worship|atom symbol|om om symbol|star of david|wheel of dharma|yin yang|latin cross|orthodox cross|star and crescent|peace symbol|menorah with nine branches|six pointed star with middle dot six pointed star|khanda|aries|taurus|gemini|cancer|leo|virgo|libra|scorpius|sagittarius|capricorn|aquarius|pisces|ophiuchus|twisted rightwards arrows|clockwise rightwards and leftwards open circle arrows repeat|clockwise rightwards and leftwards open circle arrows with circled one overlay repeat one|black right-pointing triangle arrow forward|black right-pointing double triangle fast forward|next track button black right pointing double triangle with vertical bar|play or pause button black right pointing triangle with double vertical bar|black left-pointing triangle arrow backward|black left-pointing double triangle rewind|last track button black left pointing double triangle with vertical bar|up-pointing small red triangle arrow up small|black up-pointing double triangle arrow double up|down-pointing small red triangle arrow down small|black down-pointing double triangle arrow double down|pause button double vertical bar|stop button black square for stop|record button black circle for record|eject button eject|cinema|low brightness symbol low brightness|high brightness symbol high brightness|antenna with bars signal strength|wireless|vibration mode|mobile phone off|female sign|male sign|transgender symbol|heavy multiplication x|heavy plus sign|heavy minus sign|heavy division sign|heavy equals sign|infinity|double exclamation mark bangbang|exclamation question mark interrobang|black question mark ornament question|white question mark ornament grey question|white exclamation mark ornament grey exclamation|heavy exclamation mark symbol exclamation heavy exclamation mark|wavy dash|currency exchange|heavy dollar sign|medical symbol staff of aesculapius|black universal recycling symbol recycle|fleur-de-lis fleur de lis|trident emblem trident|name badge|japanese symbol for beginner beginner|heavy large circle o|white heavy check mark white check mark|ballot box with check|heavy check mark|cross mark x|negative squared cross mark|curly loop|double curly loop loop|part alternation mark|eight spoked asterisk|eight pointed black star|sparkle|copyright sign copyright|registered sign registered|trade mark sign tm|splatter|hash key hash|keycap * keycap star|keycap 0 zero|keycap 1 one|keycap 2 two|keycap 3 three|keycap 4 four|keycap 5 five|keycap 6 six|keycap 7 seven|keycap 8 eight|keycap 9 nine|keycap ten|input symbol for latin capital letters capital abcd|input symbol for latin small letters abcd|input symbol for numbers 1234|input symbol for symbols symbols|input symbol for latin letters abc|negative squared latin capital letter a a|negative squared ab ab|negative squared latin capital letter b b|squared cl cl|squared cool cool|squared free free|information source|squared id id|circled latin capital letter m m|squared new new|squared ng ng|negative squared latin capital letter o o2|squared ok ok|negative squared latin capital letter p parking|squared sos sos|squared up with exclamation mark up|squared vs vs|squared katakana koko koko|squared katakana sa sa|squared cjk unified ideograph-6708 u6708|squared cjk unified ideograph-6709 u6709|squared cjk unified ideograph-6307 u6307|circled ideograph advantage ideograph advantage|squared cjk unified ideograph-5272 u5272|squared cjk unified ideograph-7121 u7121|squared cjk unified ideograph-7981 u7981|circled ideograph accept accept|squared cjk unified ideograph-7533 u7533|squared cjk unified ideograph-5408 u5408|squared cjk unified ideograph-7a7a u7a7a|circled ideograph congratulation congratulations|circled ideograph secret secret|squared cjk unified ideograph-55b6 u55b6|squared cjk unified ideograph-6e80 u6e80|large red circle red circle|large orange circle|large yellow circle|large green circle|large blue circle|large purple circle|large brown circle|medium black circle black circle|medium white circle white circle|large red square|large orange square|large yellow square|large green square|large blue square|large purple square|large brown square|black large square|white large square|black medium square|white medium square|black medium small square|white medium small square|black small square|white small square|large orange diamond|large blue diamond|small orange diamond|small blue diamond|up-pointing red triangle small red triangle|down-pointing red triangle small red triangle down|diamond shape with a dot inside|radio button|white square button|black square button'], ['flags', '🏁 🚩 🎌 🏴 🏳️ 🏳️🌈 🏳️⚧️ 🏴☠️ 🇦🇨 🇦🇩 🇦🇪 🇦🇫 🇦🇬 🇦🇮 🇦🇱 🇦🇲 🇦🇴 🇦🇶 🇦🇷 🇦🇸 🇦🇹 🇦🇺 🇦🇼 🇦🇽 🇦🇿 🇧🇦 🇧🇧 🇧🇩 🇧🇪 🇧🇫 🇧🇬 🇧🇭 🇧🇮 🇧🇯 🇧🇱 🇧🇲 🇧🇳 🇧🇴 🇧🇶 🇧🇷 🇧🇸 🇧🇹 🇧🇻 🇧🇼 🇧🇾 🇧🇿 🇨🇦 🇨🇨 🇨🇩 🇨🇫 🇨🇬 🇨🇭 🇨🇮 🇨🇰 🇨🇱 🇨🇲 🇨🇳 🇨🇴 🇨🇵 🇨🇶 🇨🇷 🇨🇺 🇨🇻 🇨🇼 🇨🇽 🇨🇾 🇨🇿 🇩🇪 🇩🇬 🇩🇯 🇩🇰 🇩🇲 🇩🇴 🇩🇿 🇪🇦 🇪🇨 🇪🇪 🇪🇬 🇪🇭 🇪🇷 🇪🇸 🇪🇹 🇪🇺 🇫🇮 🇫🇯 🇫🇰 🇫🇲 🇫🇴 🇫🇷 🇬🇦 🇬🇧 🇬🇩 🇬🇪 🇬🇫 🇬🇬 🇬🇭 🇬🇮 🇬🇱 🇬🇲 🇬🇳 🇬🇵 🇬🇶 🇬🇷 🇬🇸 🇬🇹 🇬🇺 🇬🇼 🇬🇾 🇭🇰 🇭🇲 🇭🇳 🇭🇷 🇭🇹 🇭🇺 🇮🇨 🇮🇩 🇮🇪 🇮🇱 🇮🇲 🇮🇳 🇮🇴 🇮🇶 🇮🇷 🇮🇸 🇮🇹 🇯🇪 🇯🇲 🇯🇴 🇯🇵 🇰🇪 🇰🇬 🇰🇭 🇰🇮 🇰🇲 🇰🇳 🇰🇵 🇰🇷 🇰🇼 🇰🇾 🇰🇿 🇱🇦 🇱🇧 🇱🇨 🇱🇮 🇱🇰 🇱🇷 🇱🇸 🇱🇹 🇱🇺 🇱🇻 🇱🇾 🇲🇦 🇲🇨 🇲🇩 🇲🇪 🇲🇫 🇲🇬 🇲🇭 🇲🇰 🇲🇱 🇲🇲 🇲🇳 🇲🇴 🇲🇵 🇲🇶 🇲🇷 🇲🇸 🇲🇹 🇲🇺 🇲🇻 🇲🇼 🇲🇽 🇲🇾 🇲🇿 🇳🇦 🇳🇨 🇳🇪 🇳🇫 🇳🇬 🇳🇮 🇳🇱 🇳🇴 🇳🇵 🇳🇷 🇳🇺 🇳🇿 🇴🇲 🇵🇦 🇵🇪 🇵🇫 🇵🇬 🇵🇭 🇵🇰 🇵🇱 🇵🇲 🇵🇳 🇵🇷 🇵🇸 🇵🇹 🇵🇼 🇵🇾 🇶🇦 🇷🇪 🇷🇴 🇷🇸 🇷🇺 🇷🇼 🇸🇦 🇸🇧 🇸🇨 🇸🇩 🇸🇪 🇸🇬 🇸🇭 🇸🇮 🇸🇯 🇸🇰 🇸🇱 🇸🇲 🇸🇳 🇸🇴 🇸🇷 🇸🇸 🇸🇹 🇸🇻 🇸🇽 🇸🇾 🇸🇿 🇹🇦 🇹🇨 🇹🇩 🇹🇫 🇹🇬 🇹🇭 🇹🇯 🇹🇰 🇹🇱 🇹🇲 🇹🇳 🇹🇴 🇹🇷 🇹🇹 🇹🇻 🇹🇼 🇹🇿 🇺🇦 🇺🇬 🇺🇲 🇺🇳 🇺🇸 🇺🇾 🇺🇿 🇻🇦 🇻🇨 🇻🇪 🇻🇬 🇻🇮 🇻🇳 🇻🇺 🇼🇫 🇼🇸 🇽🇰 🇾🇪 🇾🇹 🇿🇦 🇿🇲 🇿🇼 🏴 🏴 🏴', 'chequered flag checkered flag|triangular flag on post|crossed flags|waving black flag|white flag waving white flag|rainbow flag rainbow-flag|transgender flag|pirate flag|ascension island flag flag-ac|andorra flag flag-ad|united arab emirates flag flag-ae|afghanistan flag flag-af|antigua & barbuda flag flag-ag|anguilla flag flag-ai|albania flag flag-al|armenia flag flag-am|angola flag flag-ao|antarctica flag flag-aq|argentina flag flag-ar|american samoa flag flag-as|austria flag flag-at|australia flag flag-au|aruba flag flag-aw|åland islands flag flag-ax|azerbaijan flag flag-az|bosnia & herzegovina flag flag-ba|barbados flag flag-bb|bangladesh flag flag-bd|belgium flag flag-be|burkina faso flag flag-bf|bulgaria flag flag-bg|bahrain flag flag-bh|burundi flag flag-bi|benin flag flag-bj|st. barthélemy flag flag-bl|bermuda flag flag-bm|brunei flag flag-bn|bolivia flag flag-bo|caribbean netherlands flag flag-bq|brazil flag flag-br|bahamas flag flag-bs|bhutan flag flag-bt|bouvet island flag flag-bv|botswana flag flag-bw|belarus flag flag-by|belize flag flag-bz|canada flag flag-ca|cocos (keeling) islands flag flag-cc|congo - kinshasa flag flag-cd|central african republic flag flag-cf|congo - brazzaville flag flag-cg|switzerland flag flag-ch|côte d’ivoire flag flag-ci|cook islands flag flag-ck|chile flag flag-cl|cameroon flag flag-cm|china flag cn flag-cn|colombia flag flag-co|clipperton island flag flag-cp|sark flag flag-sark|costa rica flag flag-cr|cuba flag flag-cu|cape verde flag flag-cv|curaçao flag flag-cw|christmas island flag flag-cx|cyprus flag flag-cy|czechia flag flag-cz|germany flag de flag-de|diego garcia flag flag-dg|djibouti flag flag-dj|denmark flag flag-dk|dominica flag flag-dm|dominican republic flag flag-do|algeria flag flag-dz|ceuta & melilla flag flag-ea|ecuador flag flag-ec|estonia flag flag-ee|egypt flag flag-eg|western sahara flag flag-eh|eritrea flag flag-er|spain flag es flag-es|ethiopia flag flag-et|european union flag flag-eu|finland flag flag-fi|fiji flag flag-fj|falkland islands flag flag-fk|micronesia flag flag-fm|faroe islands flag flag-fo|france flag fr flag-fr|gabon flag flag-ga|united kingdom flag gb uk flag-gb|grenada flag flag-gd|georgia flag flag-ge|french guiana flag flag-gf|guernsey flag flag-gg|ghana flag flag-gh|gibraltar flag flag-gi|greenland flag flag-gl|gambia flag flag-gm|guinea flag flag-gn|guadeloupe flag flag-gp|equatorial guinea flag flag-gq|greece flag flag-gr|south georgia & south sandwich islands flag flag-gs|guatemala flag flag-gt|guam flag flag-gu|guinea-bissau flag flag-gw|guyana flag flag-gy|hong kong sar china flag flag-hk|heard & mcdonald islands flag flag-hm|honduras flag flag-hn|croatia flag flag-hr|haiti flag flag-ht|hungary flag flag-hu|canary islands flag flag-ic|indonesia flag flag-id|ireland flag flag-ie|israel flag flag-il|isle of man flag flag-im|india flag flag-in|british indian ocean territory flag flag-io|iraq flag flag-iq|iran flag flag-ir|iceland flag flag-is|italy flag it flag-it|jersey flag flag-je|jamaica flag flag-jm|jordan flag flag-jo|japan flag jp flag-jp|kenya flag flag-ke|kyrgyzstan flag flag-kg|cambodia flag flag-kh|kiribati flag flag-ki|comoros flag flag-km|st. kitts & nevis flag flag-kn|north korea flag flag-kp|south korea flag kr flag-kr|kuwait flag flag-kw|cayman islands flag flag-ky|kazakhstan flag flag-kz|laos flag flag-la|lebanon flag flag-lb|st. lucia flag flag-lc|liechtenstein flag flag-li|sri lanka flag flag-lk|liberia flag flag-lr|lesotho flag flag-ls|lithuania flag flag-lt|luxembourg flag flag-lu|latvia flag flag-lv|libya flag flag-ly|morocco flag flag-ma|monaco flag flag-mc|moldova flag flag-md|montenegro flag flag-me|st. martin flag flag-mf|madagascar flag flag-mg|marshall islands flag flag-mh|north macedonia flag flag-mk|mali flag flag-ml|myanmar (burma) flag flag-mm|mongolia flag flag-mn|macao sar china flag flag-mo|northern mariana islands flag flag-mp|martinique flag flag-mq|mauritania flag flag-mr|montserrat flag flag-ms|malta flag flag-mt|mauritius flag flag-mu|maldives flag flag-mv|malawi flag flag-mw|mexico flag flag-mx|malaysia flag flag-my|mozambique flag flag-mz|namibia flag flag-na|new caledonia flag flag-nc|niger flag flag-ne|norfolk island flag flag-nf|nigeria flag flag-ng|nicaragua flag flag-ni|netherlands flag flag-nl|norway flag flag-no|nepal flag flag-np|nauru flag flag-nr|niue flag flag-nu|new zealand flag flag-nz|oman flag flag-om|panama flag flag-pa|peru flag flag-pe|french polynesia flag flag-pf|papua new guinea flag flag-pg|philippines flag flag-ph|pakistan flag flag-pk|poland flag flag-pl|st. pierre & miquelon flag flag-pm|pitcairn islands flag flag-pn|puerto rico flag flag-pr|palestinian territories flag flag-ps|portugal flag flag-pt|palau flag flag-pw|paraguay flag flag-py|qatar flag flag-qa|réunion flag flag-re|romania flag flag-ro|serbia flag flag-rs|russia flag ru flag-ru|rwanda flag flag-rw|saudi arabia flag flag-sa|solomon islands flag flag-sb|seychelles flag flag-sc|sudan flag flag-sd|sweden flag flag-se|singapore flag flag-sg|st. helena flag flag-sh|slovenia flag flag-si|svalbard & jan mayen flag flag-sj|slovakia flag flag-sk|sierra leone flag flag-sl|san marino flag flag-sm|senegal flag flag-sn|somalia flag flag-so|suriname flag flag-sr|south sudan flag flag-ss|são tomé & príncipe flag flag-st|el salvador flag flag-sv|sint maarten flag flag-sx|syria flag flag-sy|eswatini flag flag-sz|tristan da cunha flag flag-ta|turks & caicos islands flag flag-tc|chad flag flag-td|french southern territories flag flag-tf|togo flag flag-tg|thailand flag flag-th|tajikistan flag flag-tj|tokelau flag flag-tk|timor-leste flag flag-tl|turkmenistan flag flag-tm|tunisia flag flag-tn|tonga flag flag-to|türkiye flag flag-tr|trinidad & tobago flag flag-tt|tuvalu flag flag-tv|taiwan flag flag-tw|tanzania flag flag-tz|ukraine flag flag-ua|uganda flag flag-ug|u.s. outlying islands flag flag-um|united nations flag flag-un|united states flag us flag-us|uruguay flag flag-uy|uzbekistan flag flag-uz|vatican city flag flag-va|st. vincent & grenadines flag flag-vc|venezuela flag flag-ve|british virgin islands flag flag-vg|u.s. virgin islands flag flag-vi|vietnam flag flag-vn|vanuatu flag flag-vu|wallis & futuna flag flag-wf|samoa flag flag-ws|kosovo flag flag-xk|yemen flag flag-ye|mayotte flag flag-yt|south africa flag flag-za|zambia flag flag-zm|zimbabwe flag flag-zw|england flag flag-england|scotland flag flag-scotland|wales flag flag-wales']];
|
|
5
|
+
//# sourceMappingURL=emojiData.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emojiData.js","names":["EMOJI_DATA"],"sources":["../../src/emoji/emojiData.ts"],"sourcesContent":["// Generated by scripts/build-emoji-data.cjs from emoji-datasource 16.0.0. Do not edit.\n// One row per keyboard tab: [tab, emojis separated by ' ', search words per emoji\n// separated by '|']. An emoji that takes a skin tone ends in '~'.\nexport const EMOJI_DATA: ReadonlyArray<readonly [string, string, string]> = [\n ['smileys', '😀 😃 😄 😁 😆 😅 🤣 😂 🙂 🙃 🫠 😉 😊 😇 🥰 😍 🤩 😘 😗 ☺️ 😚 😙 🥲 😋 😛 😜 🤪 😝 🤑 🤗 🤭 🫢 🫣 🤫 🤔 🫡 🤐 🤨 😐 😑 😶 🫥 😶🌫️ 😏 😒 🙄 😬 😮💨 🤥 🫨 🙂↔️ 🙂↕️ 😌 😔 😪 🤤 😴 😷 🤒 🤕 🤢 🤮 🤧 🥵 🥶 🥴 😵 😵💫 🤯 🤠 🥳 🥸 😎 🤓 🧐 😕 🫤 😟 🙁 ☹️ 😮 😯 😲 😳 🥺 🥹 😦 😧 😨 😰 😥 😢 😭 😱 😖 😣 😞 😓 😩 😫 🥱 😤 😡 😠 🤬 😈 👿 💀 ☠️ 💩 🤡 👹 👺 👻 👽 👾 🤖 😺 😸 😹 😻 😼 😽 🙀 😿 😾 🙈 🙉 🙊 💌 💘 💝 💖 💗 💓 💞 💕 💟 ❣️ 💔 ❤️🔥 ❤️🩹 ❤️ 🩷 🧡 💛 💚 💙 🩵 💜 🤎 🖤 🩶 🤍 💋 💯 💢 💥 💫 💦 💨 🕳️ 💬 👁️🗨️ 🗨️ 🗯️ 💭 💤 👋~ 🤚~ 🖐️~ ✋~ 🖖~ 🫱~ 🫲~ 🫳~ 🫴~ 🫷~ 🫸~ 👌~ 🤌~ 🤏~ ✌️~ 🤞~ 🫰~ 🤟~ 🤘~ 🤙~ 👈~ 👉~ 👆~ 🖕~ 👇~ ☝️~ 🫵~ 👍~ 👎~ ✊~ 👊~ 🤛~ 🤜~ 👏~ 🙌~ 🫶~ 👐~ 🤲~ 🤝~ 🙏~ ✍️~ 💅~ 🤳~ 💪~ 🦾 🦿 🦵~ 🦶~ 👂~ 🦻~ 👃~ 🧠 🫀 🫁 🦷 🦴 👀 👁️ 👅 👄 🫦 👶~ 🧒~ 👦~ 👧~ 🧑~ 👨~ 🧔~ 🧔♂️~ 🧔♀️~ 👨🦰~ 👨🦱~ 👨🦳~ 👨🦲~ 👩~ 👩🦰~ 🧑🦰~ 👩🦱~ 🧑🦱~ 👩🦳~ 🧑🦳~ 👩🦲~ 🧑🦲~ 👱♀️~ 👱♂️~ 🧓~ 👴~ 👵~ 🙍♂️~ 🙍♀️~ 🙎♂️~ 🙎♀️~ 🙅♂️~ 🙅♀️~ 🙆♂️~ 🙆♀️~ 💁♂️~ 💁♀️~ 🙋♂️~ 🙋♀️~ 🧏~ 🧏♂️~ 🧏♀️~ 🙇~ 🙇♂️~ 🙇♀️~ 🤦~ 🤦♂️~ 🤦♀️~ 🤷~ 🤷♂️~ 🤷♀️~ 🧑⚕️~ 👨⚕️~ 👩⚕️~ 🧑🎓~ 👨🎓~ 👩🎓~ 🧑🏫~ 👨🏫~ 👩🏫~ 🧑⚖️~ 👨⚖️~ 👩⚖️~ 🧑🌾~ 👨🌾~ 👩🌾~ 🧑🍳~ 👨🍳~ 👩🍳~ 🧑🔧~ 👨🔧~ 👩🔧~ 🧑🏭~ 👨🏭~ 👩🏭~ 🧑💼~ 👨💼~ 👩💼~ 🧑🔬~ 👨🔬~ 👩🔬~ 🧑💻~ 👨💻~ 👩💻~ 🧑🎤~ 👨🎤~ 👩🎤~ 🧑🎨~ 👨🎨~ 👩🎨~ 🧑✈️~ 👨✈️~ 👩✈️~ 🧑🚀~ 👨🚀~ 👩🚀~ 🧑🚒~ 👨🚒~ 👩🚒~ 👮♂️~ 👮♀️~ 🕵️♂️~ 🕵️♀️~ 💂♂️~ 💂♀️~ 🥷~ 👷♂️~ 👷♀️~ 🫅~ 🤴~ 👸~ 👳♂️~ 👳♀️~ 👲~ 🧕~ 🤵~ 🤵♂️~ 🤵♀️~ 👰~ 👰♂️~ 👰♀️~ 🤰~ 🫃~ 🫄~ 🤱~ 👩🍼~ 👨🍼~ 🧑🍼~ 👼~ 🎅~ 🤶~ 🧑🎄~ 🦸~ 🦸♂️~ 🦸♀️~ 🦹~ 🦹♂️~ 🦹♀️~ 🧙♂️~ 🧙♀️~ 🧚♂️~ 🧚♀️~ 🧛♂️~ 🧛♀️~ 🧜♂️~ 🧜♀️~ 🧝♂️~ 🧝♀️~ 🧞♂️ 🧞♀️ 🧟♂️ 🧟♀️ 🧌 💆♂️~ 💆♀️~ 💇♂️~ 💇♀️~ 🚶♂️~ 🚶♀️~ 🚶➡️~ 🚶♀️➡️~ 🚶♂️➡️~ 🧍~ 🧍♂️~ 🧍♀️~ 🧎~ 🧎♂️~ 🧎♀️~ 🧎➡️~ 🧎♀️➡️~ 🧎♂️➡️~ 🧑🦯~ 🧑🦯➡️~ 👨🦯~ 👨🦯➡️~ 👩🦯~ 👩🦯➡️~ 🧑🦼~ 🧑🦼➡️~ 👨🦼~ 👨🦼➡️~ 👩🦼~ 👩🦼➡️~ 🧑🦽~ 🧑🦽➡️~ 👨🦽~ 👨🦽➡️~ 👩🦽~ 👩🦽➡️~ 🏃♂️~ 🏃♀️~ 🏃➡️~ 🏃♀️➡️~ 🏃♂️➡️~ 💃~ 🕺~ 🕴️~ 👯♂️ 👯♀️ 🧖♂️~ 🧖♀️~ 🧗♂️~ 🧗♀️~ 🤺 🏇~ ⛷️ 🏂~ 🏌️♂️~ 🏌️♀️~ 🏄♂️~ 🏄♀️~ 🚣♂️~ 🚣♀️~ 🏊♂️~ 🏊♀️~ ⛹️♂️~ ⛹️♀️~ 🏋️♂️~ 🏋️♀️~ 🚴♂️~ 🚴♀️~ 🚵♂️~ 🚵♀️~ 🤸~ 🤸♂️~ 🤸♀️~ 🤼 🤼♂️ 🤼♀️ 🤽~ 🤽♂️~ 🤽♀️~ 🤾~ 🤾♂️~ 🤾♀️~ 🤹~ 🤹♂️~ 🤹♀️~ 🧘♂️~ 🧘♀️~ 🛀~ 🛌~ 🧑🤝🧑 👭~ 👫~ 👬~ 💏~ 👩❤️💋👨 👨❤️💋👨 👩❤️💋👩 💑~ 👩❤️👨 👨❤️👨 👩❤️👩 👨👩👦 👨👩👧 👨👩👧👦 👨👩👦👦 👨👩👧👧 👨👨👦 👨👨👧 👨👨👧👦 👨👨👦👦 👨👨👧👧 👩👩👦 👩👩👧 👩👩👧👦 👩👩👦👦 👩👩👧👧 👨👦 👨👦👦 👨👧 👨👧👦 👨👧👧 👩👦 👩👦👦 👩👧 👩👧👦 👩👧👧 🗣️ 👤 👥 🫂 🧑🧑🧒 🧑🧑🧒🧒 🧑🧒 🧑🧒🧒 👣 ', 'grinning face grinning|smiling face with open mouth smiley|smiling face with open mouth and smiling eyes smile|grinning face with smiling eyes grin|smiling face with open mouth and tightly-closed eyes laughing satisfied|smiling face with open mouth and cold sweat sweat smile|rolling on the floor laughing|face with tears of joy joy|slightly smiling face|upside-down face upside down face|melting face|winking face wink|smiling face with smiling eyes blush|smiling face with halo innocent|smiling face with smiling eyes and three hearts smiling face with 3 hearts|smiling face with heart-shaped eyes heart eyes|grinning face with star eyes star-struck|face throwing a kiss kissing heart|kissing face kissing|white smiling face relaxed|kissing face with closed eyes kissing closed eyes|kissing face with smiling eyes kissing smiling eyes|smiling face with tear|face savouring delicious food yum|face with stuck-out tongue stuck out tongue|face with stuck-out tongue and winking eye stuck out tongue winking eye|grinning face with one large and one small eye zany face|face with stuck-out tongue and tightly-closed eyes stuck out tongue closed eyes|money-mouth face money mouth face|hugging face|smiling face with smiling eyes and hand covering mouth face with hand over mouth|face with open eyes and hand over mouth|face with peeking eye|face with finger covering closed lips shushing face|thinking face|saluting face|zipper-mouth face zipper mouth face|face with one eyebrow raised face with raised eyebrow|neutral face|expressionless face expressionless|face without mouth no mouth|dotted line face|face in clouds|smirking face smirk|unamused face unamused|face with rolling eyes|grimacing face grimacing|face exhaling|lying face|shaking face|head shaking horizontally|head shaking vertically|relieved face relieved|pensive face pensive|sleepy face sleepy|drooling face|sleeping face sleeping|face with bags under eyes|face with medical mask mask|face with thermometer|face with head-bandage face with head bandage|nauseated face|face with open mouth vomiting face vomiting|sneezing face|overheated face hot face|freezing face cold face|face with uneven eyes and wavy mouth woozy face|dizzy face|face with spiral eyes|shocked face with exploding head exploding head|face with cowboy hat|face with party horn and party hat partying face|disguised face|smiling face with sunglasses sunglasses|nerd face|face with monocle|confused face confused|face with diagonal mouth|worried face worried|slightly frowning face|frowning face white frowning face|face with open mouth open mouth|hushed face hushed|astonished face astonished|flushed face flushed|face with pleading eyes pleading face|face holding back tears|frowning face with open mouth frowning|anguished face anguished|fearful face fearful|face with open mouth and cold sweat cold sweat|disappointed but relieved face disappointed relieved|crying face cry|loudly crying face sob|face screaming in fear scream|confounded face confounded|persevering face persevere|disappointed face disappointed|face with cold sweat sweat|weary face weary|tired face|yawning face|face with look of triumph triumph|pouting face rage|angry face angry|serious face with symbols covering mouth face with symbols on mouth|smiling face with horns smiling imp|imp|skull|skull and crossbones|pile of poo hankey poop shit|clown face|japanese ogre|japanese goblin|ghost|extraterrestrial alien alien|alien monster space invader|robot face|smiling cat face with open mouth smiley cat|grinning cat face with smiling eyes smile cat|cat face with tears of joy joy cat|smiling cat face with heart-shaped eyes heart eyes cat|cat face with wry smile smirk cat|kissing cat face with closed eyes kissing cat|weary cat face scream cat|crying cat face|pouting cat face pouting cat|see-no-evil monkey see no evil|hear-no-evil monkey hear no evil|speak-no-evil monkey speak no evil|love letter|heart with arrow cupid|heart with ribbon gift heart|sparkling heart|growing heart heartpulse|beating heart heartbeat|revolving hearts|two hearts|heart decoration|heart exclamation heavy heart exclamation mark ornament|broken heart|heart on fire|mending heart|heavy black heart heart|pink heart|orange heart|yellow heart|green heart|blue heart|light blue heart|purple heart|brown heart|black heart|grey heart|white heart|kiss mark kiss|hundred points symbol 100|anger symbol anger|collision symbol boom collision|dizzy symbol dizzy|splashing sweat symbol sweat drops|dash symbol dash|hole|speech balloon|eye in speech bubble eye-in-speech-bubble|left speech bubble|right anger bubble|thought balloon|sleeping symbol zzz|waving hand sign wave|raised back of hand|hand with fingers splayed raised hand with fingers splayed|raised hand hand|raised hand with part between middle and ring fingers spock-hand|rightwards hand|leftwards hand|palm down hand|palm up hand|leftwards pushing hand|rightwards pushing hand|ok hand sign ok hand|pinched fingers|pinching hand|victory hand v|hand with index and middle fingers crossed crossed fingers|hand with index finger and thumb crossed|i love you hand sign|sign of the horns the horns|call me hand|white left pointing backhand index point left|white right pointing backhand index point right|white up pointing backhand index point up 2|reversed hand with middle finger extended middle finger|white down pointing backhand index point down|white up pointing index point up|index pointing at the viewer|thumbs up sign +1 thumbsup|thumbs down sign -1 thumbsdown|raised fist fist|fisted hand sign facepunch punch|left-facing fist|right-facing fist|clapping hands sign clap|person raising both hands in celebration raised hands|heart hands|open hands sign open hands|palms up together|handshake|person with folded hands pray|writing hand|nail polish nail care|selfie|flexed biceps muscle|mechanical arm|mechanical leg|leg|foot|ear|ear with hearing aid|nose|brain|anatomical heart|lungs|tooth|bone|eyes|eye|tongue|mouth lips|biting lip|baby|child|boy|girl|adult|man|bearded person|man beard man with beard|woman beard woman with beard|man red hair red haired man|man curly hair curly haired man|man white hair white haired man|man bald bald man|woman|woman red hair red haired woman|person red hair red haired person|woman curly hair curly haired woman|person curly hair curly haired person|woman white hair white haired woman|person white hair white haired person|woman bald bald woman|person bald bald person|woman blond hair blond-haired-woman|man blond hair blond-haired-man|older adult|older man|older woman|man frowning man-frowning|woman frowning woman-frowning|man pouting man-pouting|woman pouting woman-pouting|man gesturing no man-gesturing-no|woman gesturing no woman-gesturing-no|man gesturing ok man-gesturing-ok|woman gesturing ok woman-gesturing-ok|man tipping hand man-tipping-hand|woman tipping hand woman-tipping-hand|man raising hand man-raising-hand|woman raising hand woman-raising-hand|deaf person|deaf man|deaf woman|person bowing deeply bow|man bowing man-bowing|woman bowing woman-bowing|face palm|man facepalming man-facepalming|woman facepalming woman-facepalming|shrug|man shrugging man-shrugging|woman shrugging woman-shrugging|health worker|man health worker male-doctor|woman health worker female-doctor|student|man student male-student|woman student female-student|teacher|man teacher male-teacher|woman teacher female-teacher|judge|man judge male-judge|woman judge female-judge|farmer|man farmer male-farmer|woman farmer female-farmer|cook|man cook male-cook|woman cook female-cook|mechanic|man mechanic male-mechanic|woman mechanic female-mechanic|factory worker|man factory worker male-factory-worker|woman factory worker female-factory-worker|office worker|man office worker male-office-worker|woman office worker female-office-worker|scientist|man scientist male-scientist|woman scientist female-scientist|technologist|man technologist male-technologist|woman technologist female-technologist|singer|man singer male-singer|woman singer female-singer|artist|man artist male-artist|woman artist female-artist|pilot|man pilot male-pilot|woman pilot female-pilot|astronaut|man astronaut male-astronaut|woman astronaut female-astronaut|firefighter|man firefighter male-firefighter|woman firefighter female-firefighter|man police officer male-police-officer|woman police officer female-police-officer|man detective male-detective|woman detective female-detective|man guard male-guard|woman guard female-guard|ninja|man construction worker male-construction-worker|woman construction worker female-construction-worker|person with crown|prince|princess|man wearing turban man-wearing-turban|woman wearing turban woman-wearing-turban|man with gua pi mao|person with headscarf|man in tuxedo person in tuxedo|man in tuxedo|woman in tuxedo|bride with veil|man with veil|woman with veil|pregnant woman|pregnant man|pregnant person|breast-feeding|woman feeding baby|man feeding baby|person feeding baby|baby angel angel|father christmas santa|mother christmas mrs claus|mx claus|superhero|man superhero male superhero|woman superhero female superhero|supervillain|man supervillain male supervillain|woman supervillain female supervillain|man mage male mage|woman mage female mage|man fairy male fairy|woman fairy female fairy|man vampire male vampire|woman vampire female vampire|merman|mermaid|man elf male elf|woman elf female elf|man genie male genie|woman genie female genie|man zombie male zombie|woman zombie female zombie|troll|man getting massage man-getting-massage|woman getting massage woman-getting-massage|man getting haircut man-getting-haircut|woman getting haircut woman-getting-haircut|man walking man-walking|woman walking woman-walking|person walking facing right|woman walking facing right|man walking facing right|standing person|man standing|woman standing|kneeling person|man kneeling|woman kneeling|person kneeling facing right|woman kneeling facing right|man kneeling facing right|person with white cane person with probing cane|person with white cane facing right|man with white cane man with probing cane|man with white cane facing right|woman with white cane woman with probing cane|woman with white cane facing right|person in motorized wheelchair|person in motorized wheelchair facing right|man in motorized wheelchair|man in motorized wheelchair facing right|woman in motorized wheelchair|woman in motorized wheelchair facing right|person in manual wheelchair|person in manual wheelchair facing right|man in manual wheelchair|man in manual wheelchair facing right|woman in manual wheelchair|woman in manual wheelchair facing right|man running man-running|woman running woman-running|person running facing right|woman running facing right|man running facing right|dancer|man dancing|person in suit levitating man in business suit levitating|men with bunny ears men-with-bunny-ears-partying man-with-bunny-ears-partying|women with bunny ears women-with-bunny-ears-partying woman-with-bunny-ears-partying|man in steamy room|woman in steamy room|man climbing|woman climbing|fencer|horse racing|skier|snowboarder|man golfing man-golfing|woman golfing woman-golfing|man surfing man-surfing|woman surfing woman-surfing|man rowing boat man-rowing-boat|woman rowing boat woman-rowing-boat|man swimming man-swimming|woman swimming woman-swimming|man bouncing ball man-bouncing-ball|woman bouncing ball woman-bouncing-ball|man lifting weights man-lifting-weights|woman lifting weights woman-lifting-weights|man biking man-biking|woman biking woman-biking|man mountain biking man-mountain-biking|woman mountain biking woman-mountain-biking|person doing cartwheel|man cartwheeling man-cartwheeling|woman cartwheeling woman-cartwheeling|wrestlers|men wrestling man-wrestling|women wrestling woman-wrestling|water polo|man playing water polo man-playing-water-polo|woman playing water polo woman-playing-water-polo|handball|man playing handball man-playing-handball|woman playing handball woman-playing-handball|juggling|man juggling man-juggling|woman juggling woman-juggling|man in lotus position|woman in lotus position|bath|sleeping accommodation|people holding hands|two women holding hands women holding hands|man and woman holding hands woman and man holding hands couple|two men holding hands men holding hands|kiss couplekiss|kiss woman, man woman-kiss-man|kiss man, man man-kiss-man|kiss woman, woman woman-kiss-woman|couple with heart|couple with heart woman, man woman-heart-man|couple with heart man, man man-heart-man|couple with heart woman, woman woman-heart-woman|family man, woman, boy man-woman-boy|family man, woman, girl man-woman-girl|family man, woman, girl, boy man-woman-girl-boy|family man, woman, boy, boy man-woman-boy-boy|family man, woman, girl, girl man-woman-girl-girl|family man, man, boy man-man-boy|family man, man, girl man-man-girl|family man, man, girl, boy man-man-girl-boy|family man, man, boy, boy man-man-boy-boy|family man, man, girl, girl man-man-girl-girl|family woman, woman, boy woman-woman-boy|family woman, woman, girl woman-woman-girl|family woman, woman, girl, boy woman-woman-girl-boy|family woman, woman, boy, boy woman-woman-boy-boy|family woman, woman, girl, girl woman-woman-girl-girl|family man, boy man-boy|family man, boy, boy man-boy-boy|family man, girl man-girl|family man, girl, boy man-girl-boy|family man, girl, girl man-girl-girl|family woman, boy woman-boy|family woman, boy, boy woman-boy-boy|family woman, girl woman-girl|family woman, girl, boy woman-girl-boy|family woman, girl, girl woman-girl-girl|speaking head speaking head in silhouette|bust in silhouette|busts in silhouette|people hugging|family adult, adult, child family adult adult child|family adult, adult, child, child family adult adult child child|family adult, child family adult child|family adult, child, child family adult child child|footprints|fingerprint'],\n ['animals', '🐵 🐒 🦍 🦧 🐶 🐕 🦮 🐕🦺 🐩 🐺 🦊 🦝 🐱 🐈 🐈⬛ 🦁 🐯 🐅 🐆 🐴 🫎 🫏 🐎 🦄 🦓 🦌 🦬 🐮 🐂 🐃 🐄 🐷 🐖 🐗 🐽 🐏 🐑 🐐 🐪 🐫 🦙 🦒 🐘 🦣 🦏 🦛 🐭 🐁 🐀 🐹 🐰 🐇 🐿️ 🦫 🦔 🦇 🐻 🐻❄️ 🐨 🐼 🦥 🦦 🦨 🦘 🦡 🐾 🦃 🐔 🐓 🐣 🐤 🐥 🐦 🐧 🕊️ 🦅 🦆 🦢 🦉 🦤 🪶 🦩 🦚 🦜 🪽 🐦⬛ 🪿 🐦🔥 🐸 🐊 🐢 🦎 🐍 🐲 🐉 🦕 🦖 🐳 🐋 🐬 🦭 🐟 🐠 🐡 🦈 🐙 🐚 🪸 🪼 🦀 🦞 🦐 🦑 🦪 🐌 🦋 🐛 🐜 🐝 🪲 🐞 🦗 🪳 🕷️ 🕸️ 🦂 🦟 🪰 🪱 🦠 💐 🌸 💮 🪷 🏵️ 🌹 🥀 🌺 🌻 🌼 🌷 🪻 🌱 🪴 🌲 🌳 🌴 🌵 🌾 🌿 ☘️ 🍀 🍁 🍂 🍃 🪹 🪺 🍄 ', 'monkey face|monkey|gorilla|orangutan|dog face dog|dog dog2|guide dog|service dog|poodle|wolf face wolf|fox face|raccoon|cat face cat|cat cat2|black cat|lion face|tiger face tiger|tiger tiger2|leopard|horse face horse|moose|donkey|horse racehorse|unicorn face|zebra face|deer|bison|cow face cow|ox|water buffalo|cow cow2|pig face pig|pig pig2|boar|pig nose|ram|sheep|goat|dromedary camel|bactrian camel camel|llama|giraffe face|elephant|mammoth|rhinoceros|hippopotamus|mouse face mouse|mouse mouse2|rat|hamster face hamster|rabbit face rabbit|rabbit rabbit2|chipmunk|beaver|hedgehog|bat|bear face bear|polar bear|koala|panda face|sloth|otter|skunk|kangaroo|badger|paw prints feet|turkey|chicken|rooster|hatching chick|baby chick|front-facing baby chick hatched chick|bird|penguin|dove dove of peace|eagle|duck|swan|owl|dodo|feather|flamingo|peacock|parrot|wing|black bird|goose|phoenix|frog face frog|crocodile|turtle|lizard|snake|dragon face|dragon|sauropod|t-rex|spouting whale whale|whale whale2|dolphin flipper|seal|fish|tropical fish|blowfish|shark|octopus|spiral shell shell|coral|jellyfish|crab|lobster|shrimp|squid|oyster|snail|butterfly|bug|ant|honeybee bee|beetle|lady beetle ladybug|cricket|cockroach|spider|spider web|scorpion|mosquito|fly|worm|microbe|bouquet|cherry blossom|white flower|lotus|rosette|rose|wilted flower|hibiscus|sunflower|blossom|tulip|hyacinth|seedling|potted plant|evergreen tree|deciduous tree|palm tree|cactus|ear of rice|herb|shamrock|four leaf clover|maple leaf|fallen leaf|leaf fluttering in wind leaves|empty nest|nest with eggs|mushroom|leafless tree'],\n ['food', '🍇 🍈 🍉 🍊 🍋 🍋🟩 🍌 🍍 🥭 🍎 🍏 🍐 🍑 🍒 🍓 🫐 🥝 🍅 🫒 🥥 🥑 🍆 🥔 🥕 🌽 🌶️ 🫑 🥒 🥬 🥦 🧄 🧅 🥜 🫘 🌰 🫚 🫛 🍄🟫 🍞 🥐 🥖 🫓 🥨 🥯 🥞 🧇 🧀 🍖 🍗 🥩 🥓 🍔 🍟 🍕 🌭 🥪 🌮 🌯 🫔 🥙 🧆 🥚 🍳 🥘 🍲 🫕 🥣 🥗 🍿 🧈 🧂 🥫 🍱 🍘 🍙 🍚 🍛 🍜 🍝 🍠 🍢 🍣 🍤 🍥 🥮 🍡 🥟 🥠 🥡 🍦 🍧 🍨 🍩 🍪 🎂 🍰 🧁 🥧 🍫 🍬 🍭 🍮 🍯 🍼 🥛 ☕ 🫖 🍵 🍶 🍾 🍷 🍸 🍹 🍺 🍻 🥂 🥃 🫗 🥤 🧋 🧃 🧉 🧊 🥢 🍽️ 🍴 🥄 🔪 🫙 🏺', 'grapes|melon|watermelon|tangerine|lemon|lime|banana|pineapple|mango|red apple apple|green apple|pear|peach|cherries|strawberry|blueberries|kiwifruit|tomato|olive|coconut|avocado|aubergine eggplant|potato|carrot|ear of maize corn|hot pepper|bell pepper|cucumber|leafy green|broccoli|garlic|onion|peanuts|beans|chestnut|ginger root|pea pod|brown mushroom|root vegetable|bread|croissant|baguette bread|flatbread|pretzel|bagel|pancakes|waffle|cheese wedge|meat on bone|poultry leg|cut of meat|bacon|hamburger|french fries fries|slice of pizza pizza|hot dog hotdog|sandwich|taco|burrito|tamale|stuffed flatbread|falafel|egg|cooking fried egg|shallow pan of food|pot of food stew|fondue|bowl with spoon|green salad|popcorn|butter|salt shaker salt|canned food|bento box bento|rice cracker|rice ball|cooked rice rice|curry and rice curry|steaming bowl ramen|spaghetti|roasted sweet potato sweet potato|oden|sushi|fried shrimp|fish cake with swirl design fish cake|moon cake|dango|dumpling|fortune cookie|takeout box|soft ice cream icecream|shaved ice|ice cream|doughnut|cookie|birthday cake birthday|shortcake cake|cupcake|pie|chocolate bar|candy|lollipop|custard|honey pot|baby bottle|glass of milk|hot beverage coffee|teapot|teacup without handle tea|sake bottle and cup sake|bottle with popping cork champagne|wine glass|cocktail glass cocktail|tropical drink|beer mug beer|clinking beer mugs beers|clinking glasses|tumbler glass|pouring liquid|cup with straw|bubble tea|beverage box|mate drink|ice cube|chopsticks|fork and knife with plate knife fork plate|fork and knife|spoon|hocho knife|jar|amphora'],\n ['activities', '🎃 🎄 🎆 🎇 🧨 ✨ 🎈 🎉 🎊 🎋 🎍 🎎 🎏 🎐 🎑 🧧 🎀 🎁 🎗️ 🎟️ 🎫 🎖️ 🏆 🏅 🥇 🥈 🥉 ⚽ ⚾ 🥎 🏀 🏐 🏈 🏉 🎾 🥏 🎳 🏏 🏑 🏒 🥍 🏓 🏸 🥊 🥋 🥅 ⛳ ⛸️ 🎣 🤿 🎽 🎿 🛷 🥌 🎯 🪀 🪁 🔫 🎱 🔮 🪄 🎮 🕹️ 🎰 🎲 🧩 🧸 🪅 🪩 🪆 ♠️ ♥️ ♦️ ♣️ ♟️ 🃏 🀄 🎴 🎭 🖼️ 🎨 🧵 🪡 🧶 🪢', 'jack-o-lantern jack o lantern|christmas tree|fireworks|firework sparkler sparkler|firecracker|sparkles|balloon|party popper tada|confetti ball|tanabata tree|pine decoration bamboo|japanese dolls dolls|carp streamer flags|wind chime|moon viewing ceremony rice scene|red gift envelope red envelope|ribbon|wrapped present gift|reminder ribbon|admission tickets|ticket|military medal medal|trophy|sports medal|first place medal|second place medal|third place medal|soccer ball soccer|baseball|softball|basketball and hoop basketball|volleyball|american football football|rugby football|tennis racquet and ball tennis|flying disc|bowling|cricket bat and ball|field hockey stick and ball|ice hockey stick and puck|lacrosse stick and ball lacrosse|table tennis paddle and ball|badminton racquet and shuttlecock|boxing glove|martial arts uniform|goal net|flag in hole golf|ice skate|fishing pole and fish|diving mask|running shirt with sash|ski and ski boot ski|sled|curling stone|direct hit dart|yo-yo|kite|pistol gun|billiards 8ball|crystal ball|magic wand|video game|joystick|slot machine|game die|jigsaw puzzle piece jigsaw|teddy bear|pinata|mirror ball|nesting dolls|black spade suit spades|black heart suit hearts|black diamond suit diamonds|black club suit clubs|chess pawn|playing card black joker black joker|mahjong tile red dragon mahjong|flower playing cards|performing arts|framed picture frame with picture|artist palette art|spool of thread thread|sewing needle|ball of yarn yarn|knot'],\n ['travel', '🌍 🌎 🌏 🌐 🗺️ 🗾 🧭 🏔️ ⛰️ 🌋 🗻 🏕️ 🏖️ 🏜️ 🏝️ 🏞️ 🏟️ 🏛️ 🏗️ 🧱 🪨 🪵 🛖 🏘️ 🏚️ 🏠 🏡 🏢 🏣 🏤 🏥 🏦 🏨 🏩 🏪 🏫 🏬 🏭 🏯 🏰 💒 🗼 🗽 ⛪ 🕌 🛕 🕍 ⛩️ 🕋 ⛲ ⛺ 🌁 🌃 🏙️ 🌄 🌅 🌆 🌇 🌉 ♨️ 🎠 🛝 🎡 🎢 💈 🎪 🚂 🚃 🚄 🚅 🚆 🚇 🚈 🚉 🚊 🚝 🚞 🚋 🚌 🚍 🚎 🚐 🚑 🚒 🚓 🚔 🚕 🚖 🚗 🚘 🚙 🛻 🚚 🚛 🚜 🏎️ 🏍️ 🛵 🦽 🦼 🛺 🚲 🛴 🛹 🛼 🚏 🛣️ 🛤️ 🛢️ ⛽ 🛞 🚨 🚥 🚦 🛑 🚧 ⚓ 🛟 ⛵ 🛶 🚤 🛳️ ⛴️ 🛥️ 🚢 ✈️ 🛩️ 🛫 🛬 🪂 💺 🚁 🚟 🚠 🚡 🛰️ 🚀 🛸 🛎️ 🧳 ⌛ ⏳ ⌚ ⏰ ⏱️ ⏲️ 🕰️ 🕛 🕧 🕐 🕜 🕑 🕝 🕒 🕞 🕓 🕟 🕔 🕠 🕕 🕡 🕖 🕢 🕗 🕣 🕘 🕤 🕙 🕥 🕚 🕦 🌑 🌒 🌓 🌔 🌕 🌖 🌗 🌘 🌙 🌚 🌛 🌜 🌡️ ☀️ 🌝 🌞 🪐 ⭐ 🌟 🌠 🌌 ☁️ ⛅ ⛈️ 🌤️ 🌥️ 🌦️ 🌧️ 🌨️ 🌩️ 🌪️ 🌫️ 🌬️ 🌀 🌈 🌂 ☂️ ☔ ⛱️ ⚡ ❄️ ☃️ ⛄ ☄️ 🔥 💧 🌊', 'earth globe europe-africa earth africa|earth globe americas earth americas|earth globe asia-australia earth asia|globe with meridians|world map|silhouette of japan japan|compass|snow-capped mountain snow capped mountain|mountain|volcano|mount fuji|camping|beach with umbrella|desert|desert island|national park|stadium|classical building|building construction|brick bricks|rock|wood|hut|houses house buildings|derelict house derelict house building|house building house|house with garden|office building office|japanese post office post office|european post office|hospital|bank|hotel|love hotel|convenience store|school|department store|factory|japanese castle|european castle|wedding|tokyo tower|statue of liberty|church|mosque|hindu temple|synagogue|shinto shrine|kaaba|fountain|tent|foggy|night with stars|cityscape|sunrise over mountains|sunrise|cityscape at dusk city sunset|sunset over buildings city sunrise|bridge at night|hot springs hotsprings|carousel horse|playground slide|ferris wheel|roller coaster|barber pole barber|circus tent|steam locomotive|railway car|high-speed train bullettrain side|high-speed train with bullet nose bullettrain front|train train2|metro|light rail|station|tram|monorail|mountain railway|tram car train|bus|oncoming bus|trolleybus|minibus|ambulance|fire engine|police car|oncoming police car|taxi|oncoming taxi|automobile car red car|oncoming automobile|recreational vehicle blue car|pickup truck|delivery truck truck|articulated lorry|tractor|racing car|motorcycle racing motorcycle|motor scooter|manual wheelchair|motorized wheelchair|auto rickshaw|bicycle bike|scooter|skateboard|roller skate|bus stop busstop|motorway|railway track|oil drum|fuel pump fuelpump|wheel|police cars revolving light rotating light|horizontal traffic light traffic light|vertical traffic light|octagonal sign|construction sign construction|anchor|ring buoy|sailboat boat|canoe|speedboat|passenger ship|ferry|motor boat|ship|airplane|small airplane|airplane departure|airplane arriving|parachute|seat|helicopter|suspension railway|mountain cableway|aerial tramway|satellite|rocket|flying saucer|bellhop bell|luggage|hourglass|hourglass with flowing sand hourglass flowing sand|watch|alarm clock|stopwatch|timer clock|mantelpiece clock|clock face twelve oclock clock12|clock face twelve-thirty clock1230|clock face one oclock clock1|clock face one-thirty clock130|clock face two oclock clock2|clock face two-thirty clock230|clock face three oclock clock3|clock face three-thirty clock330|clock face four oclock clock4|clock face four-thirty clock430|clock face five oclock clock5|clock face five-thirty clock530|clock face six oclock clock6|clock face six-thirty clock630|clock face seven oclock clock7|clock face seven-thirty clock730|clock face eight oclock clock8|clock face eight-thirty clock830|clock face nine oclock clock9|clock face nine-thirty clock930|clock face ten oclock clock10|clock face ten-thirty clock1030|clock face eleven oclock clock11|clock face eleven-thirty clock1130|new moon symbol new moon|waxing crescent moon symbol waxing crescent moon|first quarter moon symbol first quarter moon|waxing gibbous moon symbol moon waxing gibbous moon|full moon symbol full moon|waning gibbous moon symbol waning gibbous moon|last quarter moon symbol last quarter moon|waning crescent moon symbol waning crescent moon|crescent moon|new moon with face|first quarter moon with face|last quarter moon with face|thermometer|black sun with rays sunny|full moon with face|sun with face|ringed planet|white medium star star|glowing star star2|shooting star stars|milky way|cloud|sun behind cloud partly sunny|cloud with lightning and rain thunder cloud and rain|sun behind small cloud mostly sunny sun small cloud|sun behind large cloud barely sunny sun behind cloud|sun behind rain cloud partly sunny rain|cloud with rain rain cloud|cloud with snow snow cloud|cloud with lightning lightning lightning cloud|tornado tornado cloud|fog|wind face wind blowing face|cyclone|rainbow|closed umbrella|umbrella|umbrella with rain drops|umbrella on ground|high voltage sign zap|snowflake|snowman|snowman without snow|comet|fire|droplet|water wave ocean'],\n ['objects', '👓 🕶️ 🥽 🥼 🦺 👔 👕 👖 🧣 🧤 🧥 🧦 👗 👘 🥻 🩱 🩲 🩳 👙 👚 🪭 👛 👜 👝 🛍️ 🎒 🩴 👞 👟 🥾 🥿 👠 👡 🩰 👢 🪮 👑 👒 🎩 🎓 🧢 🪖 ⛑️ 📿 💄 💍 💎 🔇 🔈 🔉 🔊 📢 📣 📯 🔔 🔕 🎼 🎵 🎶 🎙️ 🎚️ 🎛️ 🎤 🎧 📻 🎷 🪗 🎸 🎹 🎺 🎻 🪕 🥁 🪘 🪇 🪈 📱 📲 ☎️ 📞 📟 📠 🔋 🪫 🔌 💻 🖥️ 🖨️ ⌨️ 🖱️ 🖲️ 💽 💾 💿 📀 🧮 🎥 🎞️ 📽️ 🎬 📺 📷 📸 📹 📼 🔍 🔎 🕯️ 💡 🔦 🏮 🪔 📔 📕 📖 📗 📘 📙 📚 📓 📒 📃 📜 📄 📰 🗞️ 📑 🔖 🏷️ 💰 🪙 💴 💵 💶 💷 💸 💳 🧾 💹 ✉️ 📧 📨 📩 📤 📥 📦 📫 📪 📬 📭 📮 🗳️ ✏️ ✒️ 🖋️ 🖊️ 🖌️ 🖍️ 📝 💼 📁 📂 🗂️ 📅 📆 🗒️ 🗓️ 📇 📈 📉 📊 📋 📌 📍 📎 🖇️ 📏 📐 ✂️ 🗃️ 🗄️ 🗑️ 🔒 🔓 🔏 🔐 🔑 🗝️ 🔨 🪓 ⛏️ ⚒️ 🛠️ 🗡️ ⚔️ 💣 🪃 🏹 🛡️ 🪚 🔧 🪛 🔩 ⚙️ 🗜️ ⚖️ 🦯 🔗 ⛓️💥 ⛓️ 🪝 🧰 🧲 🪜 ⚗️ 🧪 🧫 🧬 🔬 🔭 📡 💉 🩸 💊 🩹 🩼 🩺 🩻 🚪 🛗 🪞 🪟 🛏️ 🛋️ 🪑 🚽 🪠 🚿 🛁 🪤 🪒 🧴 🧷 🧹 🧺 🧻 🪣 🧼 🫧 🪥 🧽 🧯 🛒 🚬 ⚰️ 🪦 ⚱️ 🧿 🪬 🗿 🪧 🪪', 'eyeglasses|sunglasses dark sunglasses|goggles|lab coat|safety vest|necktie|t-shirt shirt tshirt|jeans|scarf|gloves|coat|socks|dress|kimono|sari|one-piece swimsuit|briefs|shorts|bikini|womans clothes|folding hand fan|purse|handbag|pouch|shopping bags|school satchel|thong sandal|mans shoe shoe|athletic shoe|hiking boot|flat shoe womans flat shoe|high-heeled shoe high heel|womans sandal sandal|ballet shoes|womans boots boot|hair pick|crown|womans hat|top hat tophat|graduation cap mortar board|billed cap|military helmet|rescue worker’s helmet helmet with white cross|prayer beads|lipstick|ring|gem stone gem|speaker with cancellation stroke mute|speaker|speaker with one sound wave sound|speaker with three sound waves loud sound|public address loudspeaker loudspeaker|cheering megaphone mega|postal horn|bell|bell with cancellation stroke no bell|musical score|musical note|multiple musical notes notes|studio microphone|level slider|control knobs|microphone|headphone headphones|radio|saxophone|accordion|guitar|musical keyboard|trumpet|violin|banjo|drum with drumsticks|long drum|maracas|flute|harp|mobile phone iphone|mobile phone with rightwards arrow at left calling|black telephone phone telephone|telephone receiver|pager|fax machine fax|battery|low battery|electric plug|personal computer computer|desktop computer|printer|keyboard|computer mouse three button mouse|trackball|minidisc|floppy disk|optical disc cd|dvd|abacus|movie camera|film frames|film projector|clapper board clapper|television tv|camera|camera with flash|video camera|videocassette vhs|left-pointing magnifying glass mag|right-pointing magnifying glass mag right|candle|electric light bulb bulb|electric torch flashlight|izakaya lantern lantern|diya lamp|notebook with decorative cover|closed book|open book book|green book|blue book|orange book|books|notebook|ledger|page with curl|scroll|page facing up|newspaper|rolled-up newspaper rolled up newspaper|bookmark tabs|bookmark|label|money bag moneybag|coin|banknote with yen sign yen|banknote with dollar sign dollar|banknote with euro sign euro|banknote with pound sign pound|money with wings|credit card|receipt|chart with upwards trend and yen sign chart|envelope email|e-mail symbol e-mail|incoming envelope|envelope with downwards arrow above envelope with arrow|outbox tray|inbox tray|package|closed mailbox with raised flag mailbox|closed mailbox with lowered flag mailbox closed|open mailbox with raised flag mailbox with mail|open mailbox with lowered flag mailbox with no mail|postbox|ballot box with ballot|pencil pencil2|black nib|fountain pen lower left fountain pen|pen lower left ballpoint pen|paintbrush lower left paintbrush|crayon lower left crayon|memo pencil|briefcase|file folder|open file folder|card index dividers|calendar date|tear-off calendar calendar|spiral notepad spiral note pad|spiral calendar spiral calendar pad|card index|chart with upwards trend|chart with downwards trend|bar chart|clipboard|pushpin|round pushpin|paperclip|linked paperclips|straight ruler|triangular ruler|black scissors scissors|card file box|file cabinet|wastebasket|lock|open lock unlock|lock with ink pen|closed lock with key|key|old key|hammer|axe|pick|hammer and pick|hammer and wrench|dagger dagger knife|crossed swords|bomb|boomerang|bow and arrow|shield|carpentry saw|wrench|screwdriver|nut and bolt|gear|clamp compression|balance scale scales|probing cane|link symbol link|broken chain|chains|hook|toolbox|magnet|ladder|shovel|alembic|test tube|petri dish|dna double helix dna|microscope|telescope|satellite antenna|syringe|drop of blood|pill|adhesive bandage|crutch|stethoscope|x-ray|door|elevator|mirror|window|bed|couch and lamp|chair|toilet|plunger|shower|bathtub|mouse trap|razor|lotion bottle|safety pin|broom|basket|roll of paper|bucket|bar of soap soap|bubbles|toothbrush|sponge|fire extinguisher|shopping trolley|smoking symbol smoking|coffin|headstone|funeral urn|nazar amulet|hamsa|moyai|placard|identification card'],\n ['symbols', '🏧 🚮 🚰 ♿ 🚹 🚺 🚻 🚼 🚾 🛂 🛃 🛄 🛅 ⚠️ 🚸 ⛔ 🚫 🚳 🚭 🚯 🚱 🚷 📵 🔞 ☢️ ☣️ ⬆️ ↗️ ➡️ ↘️ ⬇️ ↙️ ⬅️ ↖️ ↕️ ↔️ ↩️ ↪️ ⤴️ ⤵️ 🔃 🔄 🔙 🔚 🔛 🔜 🔝 🛐 ⚛️ 🕉️ ✡️ ☸️ ☯️ ✝️ ☦️ ☪️ ☮️ 🕎 🔯 🪯 ♈ ♉ ♊ ♋ ♌ ♍ ♎ ♏ ♐ ♑ ♒ ♓ ⛎ 🔀 🔁 🔂 ▶️ ⏩ ⏭️ ⏯️ ◀️ ⏪ ⏮️ 🔼 ⏫ 🔽 ⏬ ⏸️ ⏹️ ⏺️ ⏏️ 🎦 🔅 🔆 📶 🛜 📳 📴 ♀️ ♂️ ⚧️ ✖️ ➕ ➖ ➗ 🟰 ♾️ ‼️ ⁉️ ❓ ❔ ❕ ❗ 〰️ 💱 💲 ⚕️ ♻️ ⚜️ 🔱 📛 🔰 ⭕ ✅ ☑️ ✔️ ❌ ❎ ➰ ➿ 〽️ ✳️ ✴️ ❇️ ©️ ®️ ™️ #️⃣ *️⃣ 0️⃣ 1️⃣ 2️⃣ 3️⃣ 4️⃣ 5️⃣ 6️⃣ 7️⃣ 8️⃣ 9️⃣ 🔟 🔠 🔡 🔢 🔣 🔤 🅰️ 🆎 🅱️ 🆑 🆒 🆓 ℹ️ 🆔 Ⓜ️ 🆕 🆖 🅾️ 🆗 🅿️ 🆘 🆙 🆚 🈁 🈂️ 🈷️ 🈶 🈯 🉐 🈹 🈚 🈲 🉑 🈸 🈴 🈳 ㊗️ ㊙️ 🈺 🈵 🔴 🟠 🟡 🟢 🔵 🟣 🟤 ⚫ ⚪ 🟥 🟧 🟨 🟩 🟦 🟪 🟫 ⬛ ⬜ ◼️ ◻️ ◾ ◽ ▪️ ▫️ 🔶 🔷 🔸 🔹 🔺 🔻 💠 🔘 🔳 🔲', 'automated teller machine atm|put litter in its place symbol put litter in its place|potable water symbol potable water|wheelchair symbol wheelchair|mens symbol mens|womens symbol womens|restroom|baby symbol|water closet wc|passport control|customs|baggage claim|left luggage|warning sign warning|children crossing|no entry|no entry sign|no bicycles|no smoking symbol no smoking|do not litter symbol do not litter|non-potable water symbol non-potable water|no pedestrians|no mobile phones|no one under eighteen symbol underage|radioactive radioactive sign|biohazard biohazard sign|upwards black arrow arrow up|north east arrow arrow upper right|black rightwards arrow arrow right|south east arrow arrow lower right|downwards black arrow arrow down|south west arrow arrow lower left|leftwards black arrow arrow left|north west arrow arrow upper left|up down arrow arrow up down|left right arrow|leftwards arrow with hook|rightwards arrow with hook arrow right hook|arrow pointing rightwards then curving upwards arrow heading up|arrow pointing rightwards then curving downwards arrow heading down|clockwise downwards and upwards open circle arrows arrows clockwise|anticlockwise downwards and upwards open circle arrows arrows counterclockwise|back with leftwards arrow above back|end with leftwards arrow above end|on with exclamation mark with left right arrow above on|soon with rightwards arrow above soon|top with upwards arrow above top|place of worship|atom symbol|om om symbol|star of david|wheel of dharma|yin yang|latin cross|orthodox cross|star and crescent|peace symbol|menorah with nine branches|six pointed star with middle dot six pointed star|khanda|aries|taurus|gemini|cancer|leo|virgo|libra|scorpius|sagittarius|capricorn|aquarius|pisces|ophiuchus|twisted rightwards arrows|clockwise rightwards and leftwards open circle arrows repeat|clockwise rightwards and leftwards open circle arrows with circled one overlay repeat one|black right-pointing triangle arrow forward|black right-pointing double triangle fast forward|next track button black right pointing double triangle with vertical bar|play or pause button black right pointing triangle with double vertical bar|black left-pointing triangle arrow backward|black left-pointing double triangle rewind|last track button black left pointing double triangle with vertical bar|up-pointing small red triangle arrow up small|black up-pointing double triangle arrow double up|down-pointing small red triangle arrow down small|black down-pointing double triangle arrow double down|pause button double vertical bar|stop button black square for stop|record button black circle for record|eject button eject|cinema|low brightness symbol low brightness|high brightness symbol high brightness|antenna with bars signal strength|wireless|vibration mode|mobile phone off|female sign|male sign|transgender symbol|heavy multiplication x|heavy plus sign|heavy minus sign|heavy division sign|heavy equals sign|infinity|double exclamation mark bangbang|exclamation question mark interrobang|black question mark ornament question|white question mark ornament grey question|white exclamation mark ornament grey exclamation|heavy exclamation mark symbol exclamation heavy exclamation mark|wavy dash|currency exchange|heavy dollar sign|medical symbol staff of aesculapius|black universal recycling symbol recycle|fleur-de-lis fleur de lis|trident emblem trident|name badge|japanese symbol for beginner beginner|heavy large circle o|white heavy check mark white check mark|ballot box with check|heavy check mark|cross mark x|negative squared cross mark|curly loop|double curly loop loop|part alternation mark|eight spoked asterisk|eight pointed black star|sparkle|copyright sign copyright|registered sign registered|trade mark sign tm|splatter|hash key hash|keycap * keycap star|keycap 0 zero|keycap 1 one|keycap 2 two|keycap 3 three|keycap 4 four|keycap 5 five|keycap 6 six|keycap 7 seven|keycap 8 eight|keycap 9 nine|keycap ten|input symbol for latin capital letters capital abcd|input symbol for latin small letters abcd|input symbol for numbers 1234|input symbol for symbols symbols|input symbol for latin letters abc|negative squared latin capital letter a a|negative squared ab ab|negative squared latin capital letter b b|squared cl cl|squared cool cool|squared free free|information source|squared id id|circled latin capital letter m m|squared new new|squared ng ng|negative squared latin capital letter o o2|squared ok ok|negative squared latin capital letter p parking|squared sos sos|squared up with exclamation mark up|squared vs vs|squared katakana koko koko|squared katakana sa sa|squared cjk unified ideograph-6708 u6708|squared cjk unified ideograph-6709 u6709|squared cjk unified ideograph-6307 u6307|circled ideograph advantage ideograph advantage|squared cjk unified ideograph-5272 u5272|squared cjk unified ideograph-7121 u7121|squared cjk unified ideograph-7981 u7981|circled ideograph accept accept|squared cjk unified ideograph-7533 u7533|squared cjk unified ideograph-5408 u5408|squared cjk unified ideograph-7a7a u7a7a|circled ideograph congratulation congratulations|circled ideograph secret secret|squared cjk unified ideograph-55b6 u55b6|squared cjk unified ideograph-6e80 u6e80|large red circle red circle|large orange circle|large yellow circle|large green circle|large blue circle|large purple circle|large brown circle|medium black circle black circle|medium white circle white circle|large red square|large orange square|large yellow square|large green square|large blue square|large purple square|large brown square|black large square|white large square|black medium square|white medium square|black medium small square|white medium small square|black small square|white small square|large orange diamond|large blue diamond|small orange diamond|small blue diamond|up-pointing red triangle small red triangle|down-pointing red triangle small red triangle down|diamond shape with a dot inside|radio button|white square button|black square button'],\n ['flags', '🏁 🚩 🎌 🏴 🏳️ 🏳️🌈 🏳️⚧️ 🏴☠️ 🇦🇨 🇦🇩 🇦🇪 🇦🇫 🇦🇬 🇦🇮 🇦🇱 🇦🇲 🇦🇴 🇦🇶 🇦🇷 🇦🇸 🇦🇹 🇦🇺 🇦🇼 🇦🇽 🇦🇿 🇧🇦 🇧🇧 🇧🇩 🇧🇪 🇧🇫 🇧🇬 🇧🇭 🇧🇮 🇧🇯 🇧🇱 🇧🇲 🇧🇳 🇧🇴 🇧🇶 🇧🇷 🇧🇸 🇧🇹 🇧🇻 🇧🇼 🇧🇾 🇧🇿 🇨🇦 🇨🇨 🇨🇩 🇨🇫 🇨🇬 🇨🇭 🇨🇮 🇨🇰 🇨🇱 🇨🇲 🇨🇳 🇨🇴 🇨🇵 🇨🇶 🇨🇷 🇨🇺 🇨🇻 🇨🇼 🇨🇽 🇨🇾 🇨🇿 🇩🇪 🇩🇬 🇩🇯 🇩🇰 🇩🇲 🇩🇴 🇩🇿 🇪🇦 🇪🇨 🇪🇪 🇪🇬 🇪🇭 🇪🇷 🇪🇸 🇪🇹 🇪🇺 🇫🇮 🇫🇯 🇫🇰 🇫🇲 🇫🇴 🇫🇷 🇬🇦 🇬🇧 🇬🇩 🇬🇪 🇬🇫 🇬🇬 🇬🇭 🇬🇮 🇬🇱 🇬🇲 🇬🇳 🇬🇵 🇬🇶 🇬🇷 🇬🇸 🇬🇹 🇬🇺 🇬🇼 🇬🇾 🇭🇰 🇭🇲 🇭🇳 🇭🇷 🇭🇹 🇭🇺 🇮🇨 🇮🇩 🇮🇪 🇮🇱 🇮🇲 🇮🇳 🇮🇴 🇮🇶 🇮🇷 🇮🇸 🇮🇹 🇯🇪 🇯🇲 🇯🇴 🇯🇵 🇰🇪 🇰🇬 🇰🇭 🇰🇮 🇰🇲 🇰🇳 🇰🇵 🇰🇷 🇰🇼 🇰🇾 🇰🇿 🇱🇦 🇱🇧 🇱🇨 🇱🇮 🇱🇰 🇱🇷 🇱🇸 🇱🇹 🇱🇺 🇱🇻 🇱🇾 🇲🇦 🇲🇨 🇲🇩 🇲🇪 🇲🇫 🇲🇬 🇲🇭 🇲🇰 🇲🇱 🇲🇲 🇲🇳 🇲🇴 🇲🇵 🇲🇶 🇲🇷 🇲🇸 🇲🇹 🇲🇺 🇲🇻 🇲🇼 🇲🇽 🇲🇾 🇲🇿 🇳🇦 🇳🇨 🇳🇪 🇳🇫 🇳🇬 🇳🇮 🇳🇱 🇳🇴 🇳🇵 🇳🇷 🇳🇺 🇳🇿 🇴🇲 🇵🇦 🇵🇪 🇵🇫 🇵🇬 🇵🇭 🇵🇰 🇵🇱 🇵🇲 🇵🇳 🇵🇷 🇵🇸 🇵🇹 🇵🇼 🇵🇾 🇶🇦 🇷🇪 🇷🇴 🇷🇸 🇷🇺 🇷🇼 🇸🇦 🇸🇧 🇸🇨 🇸🇩 🇸🇪 🇸🇬 🇸🇭 🇸🇮 🇸🇯 🇸🇰 🇸🇱 🇸🇲 🇸🇳 🇸🇴 🇸🇷 🇸🇸 🇸🇹 🇸🇻 🇸🇽 🇸🇾 🇸🇿 🇹🇦 🇹🇨 🇹🇩 🇹🇫 🇹🇬 🇹🇭 🇹🇯 🇹🇰 🇹🇱 🇹🇲 🇹🇳 🇹🇴 🇹🇷 🇹🇹 🇹🇻 🇹🇼 🇹🇿 🇺🇦 🇺🇬 🇺🇲 🇺🇳 🇺🇸 🇺🇾 🇺🇿 🇻🇦 🇻🇨 🇻🇪 🇻🇬 🇻🇮 🇻🇳 🇻🇺 🇼🇫 🇼🇸 🇽🇰 🇾🇪 🇾🇹 🇿🇦 🇿🇲 🇿🇼 🏴 🏴 🏴', 'chequered flag checkered flag|triangular flag on post|crossed flags|waving black flag|white flag waving white flag|rainbow flag rainbow-flag|transgender flag|pirate flag|ascension island flag flag-ac|andorra flag flag-ad|united arab emirates flag flag-ae|afghanistan flag flag-af|antigua & barbuda flag flag-ag|anguilla flag flag-ai|albania flag flag-al|armenia flag flag-am|angola flag flag-ao|antarctica flag flag-aq|argentina flag flag-ar|american samoa flag flag-as|austria flag flag-at|australia flag flag-au|aruba flag flag-aw|åland islands flag flag-ax|azerbaijan flag flag-az|bosnia & herzegovina flag flag-ba|barbados flag flag-bb|bangladesh flag flag-bd|belgium flag flag-be|burkina faso flag flag-bf|bulgaria flag flag-bg|bahrain flag flag-bh|burundi flag flag-bi|benin flag flag-bj|st. barthélemy flag flag-bl|bermuda flag flag-bm|brunei flag flag-bn|bolivia flag flag-bo|caribbean netherlands flag flag-bq|brazil flag flag-br|bahamas flag flag-bs|bhutan flag flag-bt|bouvet island flag flag-bv|botswana flag flag-bw|belarus flag flag-by|belize flag flag-bz|canada flag flag-ca|cocos (keeling) islands flag flag-cc|congo - kinshasa flag flag-cd|central african republic flag flag-cf|congo - brazzaville flag flag-cg|switzerland flag flag-ch|côte d’ivoire flag flag-ci|cook islands flag flag-ck|chile flag flag-cl|cameroon flag flag-cm|china flag cn flag-cn|colombia flag flag-co|clipperton island flag flag-cp|sark flag flag-sark|costa rica flag flag-cr|cuba flag flag-cu|cape verde flag flag-cv|curaçao flag flag-cw|christmas island flag flag-cx|cyprus flag flag-cy|czechia flag flag-cz|germany flag de flag-de|diego garcia flag flag-dg|djibouti flag flag-dj|denmark flag flag-dk|dominica flag flag-dm|dominican republic flag flag-do|algeria flag flag-dz|ceuta & melilla flag flag-ea|ecuador flag flag-ec|estonia flag flag-ee|egypt flag flag-eg|western sahara flag flag-eh|eritrea flag flag-er|spain flag es flag-es|ethiopia flag flag-et|european union flag flag-eu|finland flag flag-fi|fiji flag flag-fj|falkland islands flag flag-fk|micronesia flag flag-fm|faroe islands flag flag-fo|france flag fr flag-fr|gabon flag flag-ga|united kingdom flag gb uk flag-gb|grenada flag flag-gd|georgia flag flag-ge|french guiana flag flag-gf|guernsey flag flag-gg|ghana flag flag-gh|gibraltar flag flag-gi|greenland flag flag-gl|gambia flag flag-gm|guinea flag flag-gn|guadeloupe flag flag-gp|equatorial guinea flag flag-gq|greece flag flag-gr|south georgia & south sandwich islands flag flag-gs|guatemala flag flag-gt|guam flag flag-gu|guinea-bissau flag flag-gw|guyana flag flag-gy|hong kong sar china flag flag-hk|heard & mcdonald islands flag flag-hm|honduras flag flag-hn|croatia flag flag-hr|haiti flag flag-ht|hungary flag flag-hu|canary islands flag flag-ic|indonesia flag flag-id|ireland flag flag-ie|israel flag flag-il|isle of man flag flag-im|india flag flag-in|british indian ocean territory flag flag-io|iraq flag flag-iq|iran flag flag-ir|iceland flag flag-is|italy flag it flag-it|jersey flag flag-je|jamaica flag flag-jm|jordan flag flag-jo|japan flag jp flag-jp|kenya flag flag-ke|kyrgyzstan flag flag-kg|cambodia flag flag-kh|kiribati flag flag-ki|comoros flag flag-km|st. kitts & nevis flag flag-kn|north korea flag flag-kp|south korea flag kr flag-kr|kuwait flag flag-kw|cayman islands flag flag-ky|kazakhstan flag flag-kz|laos flag flag-la|lebanon flag flag-lb|st. lucia flag flag-lc|liechtenstein flag flag-li|sri lanka flag flag-lk|liberia flag flag-lr|lesotho flag flag-ls|lithuania flag flag-lt|luxembourg flag flag-lu|latvia flag flag-lv|libya flag flag-ly|morocco flag flag-ma|monaco flag flag-mc|moldova flag flag-md|montenegro flag flag-me|st. martin flag flag-mf|madagascar flag flag-mg|marshall islands flag flag-mh|north macedonia flag flag-mk|mali flag flag-ml|myanmar (burma) flag flag-mm|mongolia flag flag-mn|macao sar china flag flag-mo|northern mariana islands flag flag-mp|martinique flag flag-mq|mauritania flag flag-mr|montserrat flag flag-ms|malta flag flag-mt|mauritius flag flag-mu|maldives flag flag-mv|malawi flag flag-mw|mexico flag flag-mx|malaysia flag flag-my|mozambique flag flag-mz|namibia flag flag-na|new caledonia flag flag-nc|niger flag flag-ne|norfolk island flag flag-nf|nigeria flag flag-ng|nicaragua flag flag-ni|netherlands flag flag-nl|norway flag flag-no|nepal flag flag-np|nauru flag flag-nr|niue flag flag-nu|new zealand flag flag-nz|oman flag flag-om|panama flag flag-pa|peru flag flag-pe|french polynesia flag flag-pf|papua new guinea flag flag-pg|philippines flag flag-ph|pakistan flag flag-pk|poland flag flag-pl|st. pierre & miquelon flag flag-pm|pitcairn islands flag flag-pn|puerto rico flag flag-pr|palestinian territories flag flag-ps|portugal flag flag-pt|palau flag flag-pw|paraguay flag flag-py|qatar flag flag-qa|réunion flag flag-re|romania flag flag-ro|serbia flag flag-rs|russia flag ru flag-ru|rwanda flag flag-rw|saudi arabia flag flag-sa|solomon islands flag flag-sb|seychelles flag flag-sc|sudan flag flag-sd|sweden flag flag-se|singapore flag flag-sg|st. helena flag flag-sh|slovenia flag flag-si|svalbard & jan mayen flag flag-sj|slovakia flag flag-sk|sierra leone flag flag-sl|san marino flag flag-sm|senegal flag flag-sn|somalia flag flag-so|suriname flag flag-sr|south sudan flag flag-ss|são tomé & príncipe flag flag-st|el salvador flag flag-sv|sint maarten flag flag-sx|syria flag flag-sy|eswatini flag flag-sz|tristan da cunha flag flag-ta|turks & caicos islands flag flag-tc|chad flag flag-td|french southern territories flag flag-tf|togo flag flag-tg|thailand flag flag-th|tajikistan flag flag-tj|tokelau flag flag-tk|timor-leste flag flag-tl|turkmenistan flag flag-tm|tunisia flag flag-tn|tonga flag flag-to|türkiye flag flag-tr|trinidad & tobago flag flag-tt|tuvalu flag flag-tv|taiwan flag flag-tw|tanzania flag flag-tz|ukraine flag flag-ua|uganda flag flag-ug|u.s. outlying islands flag flag-um|united nations flag flag-un|united states flag us flag-us|uruguay flag flag-uy|uzbekistan flag flag-uz|vatican city flag flag-va|st. vincent & grenadines flag flag-vc|venezuela flag flag-ve|british virgin islands flag flag-vg|u.s. virgin islands flag flag-vi|vietnam flag flag-vn|vanuatu flag flag-vu|wallis & futuna flag flag-wf|samoa flag flag-ws|kosovo flag flag-xk|yemen flag flag-ye|mayotte flag flag-yt|south africa flag flag-za|zambia flag flag-zm|zimbabwe flag flag-zw|england flag flag-england|scotland flag flag-scotland|wales flag flag-wales'],\n]\n"],"mappings":"AAAA;AACA;AACA;AACA,OAAO,MAAMA,UAA4D,GAAG,CAC1E,CAAC,SAAS,EAAE,wrFAAwrF,EAAE,kjbAAkjb,CAAC,EACzvgB,CAAC,SAAS,EAAE,gfAAgf,EAAE,ujDAAujD,CAAC,EACtjE,CAAC,MAAM,EAAE,iZAAiZ,EAAE,+jDAA+jD,CAAC,EAC59D,CAAC,YAAY,EAAE,iQAAiQ,EAAE,q9CAAq9C,CAAC,EACxuD,CAAC,QAAQ,EAAE,kqBAAkqB,EAAE,0kIAA0kI,CAAC,EAC1vJ,CAAC,SAAS,EAAE,6zBAA6zB,EAAE,u4HAAu4H,CAAC,EACntJ,CAAC,SAAS,EAAE,8oBAA8oB,EAAE,w4LAAw4L,CAAC,EACriN,CAAC,OAAO,EAAE,i2CAAi2C,EAAE,mzMAAmzM,CAAC,CAClqP","ignoreList":[]}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/** The built-in emoji tabs, in their default order. */
|
|
2
|
+
export type EmojiCategoryKey = 'smileys' | 'animals' | 'food' | 'activities' | 'travel' | 'objects' | 'symbols' | 'flags';
|
|
3
|
+
export declare const EMOJI_CATEGORY_KEYS: EmojiCategoryKey[];
|
|
4
|
+
export interface EmojiCategory {
|
|
5
|
+
key: EmojiCategoryKey;
|
|
6
|
+
emojis: string[];
|
|
7
|
+
}
|
|
8
|
+
/** The built-in tabs with their emojis, optionally limited to `keys` (in that order). */
|
|
9
|
+
export declare const getEmojiCategories: (keys?: EmojiCategoryKey[]) => EmojiCategory[];
|
|
10
|
+
/** Every emoji whose name or short names contain all the words of `query`. */
|
|
11
|
+
export declare const searchEmojis: (query: string, limit?: number) => string[];
|
|
12
|
+
export declare const SKIN_TONES: string[];
|
|
13
|
+
export declare const takesSkinTone: (emoji: string) => boolean;
|
|
14
|
+
/**
|
|
15
|
+
* The emoji with a skin tone (0-4) applied, or as it is for `null`. The modifier goes after the
|
|
16
|
+
* first code point, replacing a variation selector there; the data script marks only emojis for
|
|
17
|
+
* which that gives Unicode's sequence.
|
|
18
|
+
*/
|
|
19
|
+
export declare const withSkinTone: (emoji: string, tone: number | null) => string;
|
|
20
|
+
/** The base emoji of a toned one, for looking up its tab and its remembered tone. */
|
|
21
|
+
export declare const withoutSkinTone: (emoji: string) => string;
|
|
22
|
+
export declare const DEFAULT_RECENT_EMOJIS: string[];
|
|
23
|
+
export declare const MAX_RECENT_EMOJIS = 48;
|
|
24
|
+
export declare const DEFAULT_RECENTS_STORAGE_KEY = "@kesha-antonov/react-native-chat/emoji";
|
|
25
|
+
type Listener = () => void;
|
|
26
|
+
/**
|
|
27
|
+
* Recents: a use count per emoji, at most 48, the least used dropped when a new one
|
|
28
|
+
* comes in. The list is sorted by count only when a keyboard opens (`sortEmoji`), so it does not
|
|
29
|
+
* reshuffle under the finger while you type. Kept in memory, and in async storage when
|
|
30
|
+
* `@react-native-async-storage/async-storage` is installed.
|
|
31
|
+
*/
|
|
32
|
+
declare class EmojiRecentsStore {
|
|
33
|
+
private history;
|
|
34
|
+
private order;
|
|
35
|
+
private tones;
|
|
36
|
+
private loadedKey;
|
|
37
|
+
private loading;
|
|
38
|
+
private listeners;
|
|
39
|
+
private storageKey;
|
|
40
|
+
private isPersisted;
|
|
41
|
+
private saveTimer;
|
|
42
|
+
constructor();
|
|
43
|
+
private seed;
|
|
44
|
+
private getStorage;
|
|
45
|
+
/** Where (and whether) to persist. Loads the stored state on the first call for a key. */
|
|
46
|
+
configure({ storageKey, isPersisted }: {
|
|
47
|
+
storageKey?: string;
|
|
48
|
+
isPersisted?: boolean;
|
|
49
|
+
}): Promise<void>;
|
|
50
|
+
load(): Promise<void>;
|
|
51
|
+
subscribe(listener: Listener): () => void;
|
|
52
|
+
private emit;
|
|
53
|
+
/** The recents in the order last sorted. */
|
|
54
|
+
getRecents(): string[];
|
|
55
|
+
/** Re-sort by use count; done each time the panel opens. */
|
|
56
|
+
sort(): void;
|
|
57
|
+
/**
|
|
58
|
+
* Count one more use, evicting the least used when full. The shown
|
|
59
|
+
* order changes only on the next `sort`.
|
|
60
|
+
*/
|
|
61
|
+
add(emoji: string): void;
|
|
62
|
+
getTone(emoji: string): number | null;
|
|
63
|
+
setTone(emoji: string, tone: number | null): void;
|
|
64
|
+
private scheduleSave;
|
|
65
|
+
/** @internal Tests only. */
|
|
66
|
+
reset(): void;
|
|
67
|
+
}
|
|
68
|
+
export declare const emojiRecents: EmojiRecentsStore;
|
|
69
|
+
export {};
|
|
70
|
+
//# sourceMappingURL=emojiStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emojiStore.d.ts","sourceRoot":"","sources":["../../src/emoji/emojiStore.ts"],"names":[],"mappings":"AAQA,uDAAuD;AACvD,MAAM,MAAM,gBAAgB,GACxB,SAAS,GACT,SAAS,GACT,MAAM,GACN,YAAY,GACZ,QAAQ,GACR,SAAS,GACT,SAAS,GACT,OAAO,CAAA;AAEX,eAAO,MAAM,mBAAmB,EAAE,gBAAgB,EAEjD,CAAA;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,gBAAgB,CAAA;IACrB,MAAM,EAAE,MAAM,EAAE,CAAA;CACjB;AAkCD,yFAAyF;AACzF,eAAO,MAAM,kBAAkB,GAAI,OAAO,gBAAgB,EAAE,KAAG,aAAa,EAQ3E,CAAA;AAED,8EAA8E;AAC9E,eAAO,MAAM,YAAY,GAAI,OAAO,MAAM,EAAE,cAAW,KAAG,MAAM,EA0B/D,CAAA;AAGD,eAAO,MAAM,UAAU,UAAoE,CAAA;AAE3F,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,YAAgC,CAAA;AAE3E;;;;GAIG;AACH,eAAO,MAAM,YAAY,GAAI,OAAO,MAAM,EAAE,MAAM,MAAM,GAAG,IAAI,KAAG,MASjE,CAAA;AAED,qFAAqF;AACrF,eAAO,MAAM,eAAe,GAAI,OAAO,MAAM,KAAG,MAY/C,CAAA;AAOD,eAAO,MAAM,qBAAqB,UAIjC,CAAA;AAED,eAAO,MAAM,iBAAiB,KAAK,CAAA;AAEnC,eAAO,MAAM,2BAA2B,2CAA2C,CAAA;AASnF,KAAK,QAAQ,GAAG,MAAM,IAAI,CAAA;AAE1B;;;;;GAKG;AACH,cAAM,iBAAiB;IACrB,OAAO,CAAC,OAAO,CAAiC;IAChD,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,KAAK,CAAiC;IAC9C,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,UAAU,CAA8B;IAChD,OAAO,CAAC,WAAW,CAAO;IAC1B,OAAO,CAAC,SAAS,CAA6C;;IAM9D,OAAO,CAAC,IAAI;IAMZ,OAAO,CAAC,UAAU;IAQlB,0FAA0F;IAC1F,SAAS,CAAE,EAAE,UAAU,EAAE,WAAW,EAAE,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE;IAWtF,IAAI,IAAK,OAAO,CAAC,IAAI,CAAC;IAuCtB,SAAS,CAAE,QAAQ,EAAE,QAAQ;IAO7B,OAAO,CAAC,IAAI;IAIZ,4CAA4C;IAC5C,UAAU,IAAK,MAAM,EAAE;IAIvB,4DAA4D;IAC5D,IAAI;IAOJ;;;OAGG;IACH,GAAG,CAAE,KAAK,EAAE,MAAM;IAWlB,OAAO,CAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAItC,OAAO,CAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAS3C,OAAO,CAAC,YAAY;IAiBpB,4BAA4B;IAC5B,KAAK;CAUN;AAED,eAAO,MAAM,YAAY,mBAA0B,CAAA"}
|
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The emoji keyboard's data: the tabs from the generated table, search, the recents and
|
|
3
|
+
* the remembered skin tones. Everything is built on first use, not when the library loads, and
|
|
4
|
+
* shared by every keyboard and reactions panel in the app.
|
|
5
|
+
*/
|
|
6
|
+
import { getAsyncStorage } from '../optional';
|
|
7
|
+
import { EMOJI_DATA } from './emojiData';
|
|
8
|
+
|
|
9
|
+
/** The built-in emoji tabs, in their default order. */
|
|
10
|
+
|
|
11
|
+
export const EMOJI_CATEGORY_KEYS = ['smileys', 'animals', 'food', 'activities', 'travel', 'objects', 'symbols', 'flags'];
|
|
12
|
+
let index = null;
|
|
13
|
+
const getIndex = () => {
|
|
14
|
+
if (index) return index;
|
|
15
|
+
const toned = new Set();
|
|
16
|
+
const words = [];
|
|
17
|
+
const categories = EMOJI_DATA.map(([key, chars, searchWords]) => {
|
|
18
|
+
const wordList = searchWords.split('|');
|
|
19
|
+
const emojis = chars.split(' ').map((entry, i) => {
|
|
20
|
+
const isToned = entry.endsWith('~');
|
|
21
|
+
const emoji = isToned ? entry.slice(0, -1) : entry;
|
|
22
|
+
if (isToned) toned.add(emoji);
|
|
23
|
+
words.push([emoji, wordList[i] ?? '']);
|
|
24
|
+
return emoji;
|
|
25
|
+
});
|
|
26
|
+
return {
|
|
27
|
+
key: key,
|
|
28
|
+
emojis
|
|
29
|
+
};
|
|
30
|
+
});
|
|
31
|
+
index = {
|
|
32
|
+
categories,
|
|
33
|
+
toned,
|
|
34
|
+
words
|
|
35
|
+
};
|
|
36
|
+
return index;
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
/** The built-in tabs with their emojis, optionally limited to `keys` (in that order). */
|
|
40
|
+
export const getEmojiCategories = keys => {
|
|
41
|
+
const {
|
|
42
|
+
categories
|
|
43
|
+
} = getIndex();
|
|
44
|
+
if (!keys) return categories;
|
|
45
|
+
return keys.map(key => categories.find(category => category.key === key)).filter(category => !!category);
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
/** Every emoji whose name or short names contain all the words of `query`. */
|
|
49
|
+
export const searchEmojis = (query, limit = 200) => {
|
|
50
|
+
const needles = query.trim().toLowerCase().split(/\s+/).filter(Boolean);
|
|
51
|
+
if (needles.length === 0) return [];
|
|
52
|
+
const {
|
|
53
|
+
words
|
|
54
|
+
} = getIndex();
|
|
55
|
+
// An emoji named exactly the query ("fire" is 🔥) comes first, then those with a word that
|
|
56
|
+
// starts with it, then the rest.
|
|
57
|
+
const exact = [];
|
|
58
|
+
const matches = [];
|
|
59
|
+
const later = [];
|
|
60
|
+
const first = needles[0];
|
|
61
|
+
for (const [emoji, text] of words) {
|
|
62
|
+
if (!needles.every(needle => text.includes(needle))) continue;
|
|
63
|
+
if (text === first || text.endsWith(` ${first}`) && !text.slice(0, -first.length - 1).includes(' ')) exact.push(emoji);else if (text.startsWith(first) || text.includes(` ${first}`)) matches.push(emoji);else later.push(emoji);
|
|
64
|
+
if (exact.length + matches.length >= limit) break;
|
|
65
|
+
}
|
|
66
|
+
return [...exact, ...matches, ...later].slice(0, limit);
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
// The five Fitzpatrick modifiers, lightest first.
|
|
70
|
+
export const SKIN_TONES = ['\u{1F3FB}', '\u{1F3FC}', '\u{1F3FD}', '\u{1F3FE}', '\u{1F3FF}'];
|
|
71
|
+
export const takesSkinTone = emoji => getIndex().toned.has(emoji);
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* The emoji with a skin tone (0-4) applied, or as it is for `null`. The modifier goes after the
|
|
75
|
+
* first code point, replacing a variation selector there; the data script marks only emojis for
|
|
76
|
+
* which that gives Unicode's sequence.
|
|
77
|
+
*/
|
|
78
|
+
export const withSkinTone = (emoji, tone) => {
|
|
79
|
+
if (tone == null || !takesSkinTone(emoji)) return emoji;
|
|
80
|
+
const points = Array.from(emoji);
|
|
81
|
+
const rest = points.slice(1);
|
|
82
|
+
if (rest[0] === '️') rest.shift();
|
|
83
|
+
return [points[0], SKIN_TONES[tone], ...rest].join('');
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
/** The base emoji of a toned one, for looking up its tab and its remembered tone. */
|
|
87
|
+
export const withoutSkinTone = emoji => {
|
|
88
|
+
const points = Array.from(emoji);
|
|
89
|
+
const toneIndex = points.findIndex(point => SKIN_TONES.includes(point));
|
|
90
|
+
if (toneIndex < 0) return emoji;
|
|
91
|
+
const base = [...points.slice(0, toneIndex), ...points.slice(toneIndex + 1)].join('');
|
|
92
|
+
if (takesSkinTone(base)) return base;
|
|
93
|
+
// The data keeps the variation selector the tone replaced.
|
|
94
|
+
const withSelector = [...points.slice(0, toneIndex), '️', ...points.slice(toneIndex + 1)].join('');
|
|
95
|
+
return takesSkinTone(withSelector) ? withSelector : base;
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
/* ------------------------------------------------------------------------------------------ */
|
|
99
|
+
/* Recents and skin tones */
|
|
100
|
+
/* ------------------------------------------------------------------------------------------ */
|
|
101
|
+
|
|
102
|
+
// The recents a fresh install starts with.
|
|
103
|
+
export const DEFAULT_RECENT_EMOJIS = ['😂', '😘', '❤️', '😍', '😊', '😁', '👍', '☺️', '😔', '😄', '😭', '💋', '😒', '😳', '😜', '🙈', '😉', '😃', '😢', '😝', '😱', '😡', '😏', '😞', '😅', '😚', '🙊', '😌', '😀', '😋', '😆', '👌', '😐', '😕'];
|
|
104
|
+
export const MAX_RECENT_EMOJIS = 48;
|
|
105
|
+
export const DEFAULT_RECENTS_STORAGE_KEY = '@kesha-antonov/react-native-chat/emoji';
|
|
106
|
+
/**
|
|
107
|
+
* Recents: a use count per emoji, at most 48, the least used dropped when a new one
|
|
108
|
+
* comes in. The list is sorted by count only when a keyboard opens (`sortEmoji`), so it does not
|
|
109
|
+
* reshuffle under the finger while you type. Kept in memory, and in async storage when
|
|
110
|
+
* `@react-native-async-storage/async-storage` is installed.
|
|
111
|
+
*/
|
|
112
|
+
class EmojiRecentsStore {
|
|
113
|
+
history = new Map();
|
|
114
|
+
order = [];
|
|
115
|
+
tones = new Map();
|
|
116
|
+
loadedKey = null;
|
|
117
|
+
loading = null;
|
|
118
|
+
listeners = new Set();
|
|
119
|
+
storageKey = DEFAULT_RECENTS_STORAGE_KEY;
|
|
120
|
+
isPersisted = true;
|
|
121
|
+
saveTimer = null;
|
|
122
|
+
constructor() {
|
|
123
|
+
this.seed();
|
|
124
|
+
}
|
|
125
|
+
seed() {
|
|
126
|
+
this.history = new Map(DEFAULT_RECENT_EMOJIS.map((emoji, i) => [emoji, DEFAULT_RECENT_EMOJIS.length - i]));
|
|
127
|
+
this.order = [...DEFAULT_RECENT_EMOJIS];
|
|
128
|
+
this.tones = new Map();
|
|
129
|
+
}
|
|
130
|
+
getStorage() {
|
|
131
|
+
if (!this.isPersisted) return null;
|
|
132
|
+
const module = getAsyncStorage();
|
|
133
|
+
const storage = module?.default ?? module;
|
|
134
|
+
return storage?.getItem && storage?.setItem ? storage : null;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
/** Where (and whether) to persist. Loads the stored state on the first call for a key. */
|
|
138
|
+
configure({
|
|
139
|
+
storageKey,
|
|
140
|
+
isPersisted
|
|
141
|
+
}) {
|
|
142
|
+
const key = storageKey ?? DEFAULT_RECENTS_STORAGE_KEY;
|
|
143
|
+
this.isPersisted = isPersisted !== false;
|
|
144
|
+
if (key !== this.storageKey) {
|
|
145
|
+
this.storageKey = key;
|
|
146
|
+
this.loadedKey = null;
|
|
147
|
+
this.loading = null;
|
|
148
|
+
}
|
|
149
|
+
return this.load();
|
|
150
|
+
}
|
|
151
|
+
load() {
|
|
152
|
+
if (this.loadedKey === this.storageKey) return Promise.resolve();
|
|
153
|
+
if (this.loading) return this.loading;
|
|
154
|
+
const storage = this.getStorage();
|
|
155
|
+
if (!storage) {
|
|
156
|
+
this.loadedKey = this.storageKey;
|
|
157
|
+
return Promise.resolve();
|
|
158
|
+
}
|
|
159
|
+
const key = this.storageKey;
|
|
160
|
+
this.loading = Promise.resolve().then(() => storage.getItem(key)).then(raw => {
|
|
161
|
+
if (key !== this.storageKey) return;
|
|
162
|
+
this.loadedKey = key;
|
|
163
|
+
if (!raw) return;
|
|
164
|
+
const parsed = JSON.parse(raw);
|
|
165
|
+
if (parsed.history && Object.keys(parsed.history).length > 0) {
|
|
166
|
+
this.history = new Map(Object.entries(parsed.history));
|
|
167
|
+
this.sort();
|
|
168
|
+
}
|
|
169
|
+
if (parsed.tones) this.tones = new Map(Object.entries(parsed.tones));
|
|
170
|
+
this.emit();
|
|
171
|
+
}).catch(() => {
|
|
172
|
+
this.loadedKey = key;
|
|
173
|
+
}).finally(() => {
|
|
174
|
+
this.loading = null;
|
|
175
|
+
});
|
|
176
|
+
return this.loading;
|
|
177
|
+
}
|
|
178
|
+
subscribe(listener) {
|
|
179
|
+
this.listeners.add(listener);
|
|
180
|
+
return () => {
|
|
181
|
+
this.listeners.delete(listener);
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
emit() {
|
|
185
|
+
this.listeners.forEach(listener => listener());
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
/** The recents in the order last sorted. */
|
|
189
|
+
getRecents() {
|
|
190
|
+
return this.order;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
/** Re-sort by use count; done each time the panel opens. */
|
|
194
|
+
sort() {
|
|
195
|
+
this.order = [...this.history.entries()].sort((a, b) => b[1] - a[1]).map(([emoji]) => emoji).slice(0, MAX_RECENT_EMOJIS);
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
/**
|
|
199
|
+
* Count one more use, evicting the least used when full. The shown
|
|
200
|
+
* order changes only on the next `sort`.
|
|
201
|
+
*/
|
|
202
|
+
add(emoji) {
|
|
203
|
+
const count = this.history.get(emoji) ?? 0;
|
|
204
|
+
if (count === 0 && this.history.size >= MAX_RECENT_EMOJIS) {
|
|
205
|
+
const evicted = this.order[this.order.length - 1];
|
|
206
|
+
if (evicted !== undefined) this.history.delete(evicted);
|
|
207
|
+
}
|
|
208
|
+
this.history.set(emoji, count + 1);
|
|
209
|
+
this.scheduleSave();
|
|
210
|
+
}
|
|
211
|
+
getTone(emoji) {
|
|
212
|
+
return this.tones.get(emoji) ?? null;
|
|
213
|
+
}
|
|
214
|
+
setTone(emoji, tone) {
|
|
215
|
+
if (tone == null) this.tones.delete(emoji);else this.tones.set(emoji, tone);
|
|
216
|
+
this.scheduleSave();
|
|
217
|
+
this.emit();
|
|
218
|
+
}
|
|
219
|
+
scheduleSave() {
|
|
220
|
+
const storage = this.getStorage();
|
|
221
|
+
if (!storage) return;
|
|
222
|
+
if (this.saveTimer) clearTimeout(this.saveTimer);
|
|
223
|
+
// Batched: a run of taps writes once.
|
|
224
|
+
this.saveTimer = setTimeout(() => {
|
|
225
|
+
this.saveTimer = null;
|
|
226
|
+
const state = {
|
|
227
|
+
history: Object.fromEntries(this.history),
|
|
228
|
+
tones: Object.fromEntries(this.tones)
|
|
229
|
+
};
|
|
230
|
+
Promise.resolve(storage.setItem(this.storageKey, JSON.stringify(state))).catch(() => {});
|
|
231
|
+
}, 500);
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
/** @internal Tests only. */
|
|
235
|
+
reset() {
|
|
236
|
+
this.seed();
|
|
237
|
+
this.loadedKey = null;
|
|
238
|
+
this.loading = null;
|
|
239
|
+
this.storageKey = DEFAULT_RECENTS_STORAGE_KEY;
|
|
240
|
+
this.isPersisted = true;
|
|
241
|
+
if (this.saveTimer) clearTimeout(this.saveTimer);
|
|
242
|
+
this.saveTimer = null;
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
export const emojiRecents = new EmojiRecentsStore();
|
|
246
|
+
//# sourceMappingURL=emojiStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emojiStore.js","names":["getAsyncStorage","EMOJI_DATA","EMOJI_CATEGORY_KEYS","index","getIndex","toned","Set","words","categories","map","key","chars","searchWords","wordList","split","emojis","entry","i","isToned","endsWith","emoji","slice","add","push","getEmojiCategories","keys","find","category","filter","searchEmojis","query","limit","needles","trim","toLowerCase","Boolean","length","exact","matches","later","first","text","every","needle","includes","startsWith","SKIN_TONES","takesSkinTone","has","withSkinTone","tone","points","Array","from","rest","shift","join","withoutSkinTone","toneIndex","findIndex","point","base","withSelector","DEFAULT_RECENT_EMOJIS","MAX_RECENT_EMOJIS","DEFAULT_RECENTS_STORAGE_KEY","EmojiRecentsStore","history","Map","order","tones","loadedKey","loading","listeners","storageKey","isPersisted","saveTimer","constructor","seed","getStorage","module","storage","default","getItem","setItem","configure","load","Promise","resolve","then","raw","parsed","JSON","parse","Object","entries","sort","emit","catch","finally","subscribe","listener","delete","forEach","getRecents","a","b","count","get","size","evicted","undefined","set","scheduleSave","getTone","setTone","clearTimeout","setTimeout","state","fromEntries","stringify","reset","emojiRecents"],"sources":["../../src/emoji/emojiStore.ts"],"sourcesContent":["/**\n * The emoji keyboard's data: the tabs from the generated table, search, the recents and\n * the remembered skin tones. Everything is built on first use, not when the library loads, and\n * shared by every keyboard and reactions panel in the app.\n */\nimport { getAsyncStorage } from '../optional'\nimport { EMOJI_DATA } from './emojiData'\n\n/** The built-in emoji tabs, in their default order. */\nexport type EmojiCategoryKey =\n | 'smileys'\n | 'animals'\n | 'food'\n | 'activities'\n | 'travel'\n | 'objects'\n | 'symbols'\n | 'flags'\n\nexport const EMOJI_CATEGORY_KEYS: EmojiCategoryKey[] = [\n 'smileys', 'animals', 'food', 'activities', 'travel', 'objects', 'symbols', 'flags',\n]\n\nexport interface EmojiCategory {\n key: EmojiCategoryKey\n emojis: string[]\n}\n\ninterface EmojiIndex {\n categories: EmojiCategory[]\n /** Emojis that take a skin tone. */\n toned: Set<string>\n /** [emoji, search words] for every emoji, for search. */\n words: Array<readonly [string, string]>\n}\n\nlet index: EmojiIndex | null = null\n\nconst getIndex = (): EmojiIndex => {\n if (index)\n return index\n\n const toned = new Set<string>()\n const words: Array<readonly [string, string]> = []\n const categories = EMOJI_DATA.map(([key, chars, searchWords]) => {\n const wordList = searchWords.split('|')\n const emojis = chars.split(' ').map((entry, i) => {\n const isToned = entry.endsWith('~')\n const emoji = isToned ? entry.slice(0, -1) : entry\n if (isToned)\n toned.add(emoji)\n words.push([emoji, wordList[i] ?? ''])\n return emoji\n })\n return { key: key as EmojiCategoryKey, emojis }\n })\n index = { categories, toned, words }\n return index\n}\n\n/** The built-in tabs with their emojis, optionally limited to `keys` (in that order). */\nexport const getEmojiCategories = (keys?: EmojiCategoryKey[]): EmojiCategory[] => {\n const { categories } = getIndex()\n if (!keys)\n return categories\n\n return keys\n .map(key => categories.find(category => category.key === key))\n .filter((category): category is EmojiCategory => !!category)\n}\n\n/** Every emoji whose name or short names contain all the words of `query`. */\nexport const searchEmojis = (query: string, limit = 200): string[] => {\n const needles = query.trim().toLowerCase().split(/\\s+/).filter(Boolean)\n if (needles.length === 0)\n return []\n\n const { words } = getIndex()\n // An emoji named exactly the query (\"fire\" is 🔥) comes first, then those with a word that\n // starts with it, then the rest.\n const exact: string[] = []\n const matches: string[] = []\n const later: string[] = []\n const first = needles[0]\n for (const [emoji, text] of words) {\n if (!needles.every(needle => text.includes(needle)))\n continue\n\n if (text === first || text.endsWith(` ${first}`) && !text.slice(0, -first.length - 1).includes(' '))\n exact.push(emoji)\n else if (text.startsWith(first) || text.includes(` ${first}`))\n matches.push(emoji)\n else\n later.push(emoji)\n if (exact.length + matches.length >= limit)\n break\n }\n return [...exact, ...matches, ...later].slice(0, limit)\n}\n\n// The five Fitzpatrick modifiers, lightest first.\nexport const SKIN_TONES = ['\\u{1F3FB}', '\\u{1F3FC}', '\\u{1F3FD}', '\\u{1F3FE}', '\\u{1F3FF}']\n\nexport const takesSkinTone = (emoji: string) => getIndex().toned.has(emoji)\n\n/**\n * The emoji with a skin tone (0-4) applied, or as it is for `null`. The modifier goes after the\n * first code point, replacing a variation selector there; the data script marks only emojis for\n * which that gives Unicode's sequence.\n */\nexport const withSkinTone = (emoji: string, tone: number | null): string => {\n if (tone == null || !takesSkinTone(emoji))\n return emoji\n\n const points = Array.from(emoji)\n const rest = points.slice(1)\n if (rest[0] === '️')\n rest.shift()\n return [points[0], SKIN_TONES[tone], ...rest].join('')\n}\n\n/** The base emoji of a toned one, for looking up its tab and its remembered tone. */\nexport const withoutSkinTone = (emoji: string): string => {\n const points = Array.from(emoji)\n const toneIndex = points.findIndex(point => SKIN_TONES.includes(point))\n if (toneIndex < 0)\n return emoji\n\n const base = [...points.slice(0, toneIndex), ...points.slice(toneIndex + 1)].join('')\n if (takesSkinTone(base))\n return base\n // The data keeps the variation selector the tone replaced.\n const withSelector = [...points.slice(0, toneIndex), '️', ...points.slice(toneIndex + 1)].join('')\n return takesSkinTone(withSelector) ? withSelector : base\n}\n\n/* ------------------------------------------------------------------------------------------ */\n/* Recents and skin tones */\n/* ------------------------------------------------------------------------------------------ */\n\n// The recents a fresh install starts with.\nexport const DEFAULT_RECENT_EMOJIS = [\n '😂', '😘', '❤️', '😍', '😊', '😁', '👍', '☺️', '😔', '😄', '😭', '💋',\n '😒', '😳', '😜', '🙈', '😉', '😃', '😢', '😝', '😱', '😡', '😏', '😞',\n '😅', '😚', '🙊', '😌', '😀', '😋', '😆', '👌', '😐', '😕',\n]\n\nexport const MAX_RECENT_EMOJIS = 48\n\nexport const DEFAULT_RECENTS_STORAGE_KEY = '@kesha-antonov/react-native-chat/emoji'\n\ninterface StoredEmojiState {\n /** Use count per emoji. */\n history: Record<string, number>\n /** The tone picked per base emoji. */\n tones: Record<string, number>\n}\n\ntype Listener = () => void\n\n/**\n * Recents: a use count per emoji, at most 48, the least used dropped when a new one\n * comes in. The list is sorted by count only when a keyboard opens (`sortEmoji`), so it does not\n * reshuffle under the finger while you type. Kept in memory, and in async storage when\n * `@react-native-async-storage/async-storage` is installed.\n */\nclass EmojiRecentsStore {\n private history: Map<string, number> = new Map()\n private order: string[] = []\n private tones: Map<string, number> = new Map()\n private loadedKey: string | null = null\n private loading: Promise<void> | null = null\n private listeners = new Set<Listener>()\n private storageKey = DEFAULT_RECENTS_STORAGE_KEY\n private isPersisted = true\n private saveTimer: ReturnType<typeof setTimeout> | null = null\n\n constructor () {\n this.seed()\n }\n\n private seed () {\n this.history = new Map(DEFAULT_RECENT_EMOJIS.map((emoji, i) => [emoji, DEFAULT_RECENT_EMOJIS.length - i]))\n this.order = [...DEFAULT_RECENT_EMOJIS]\n this.tones = new Map()\n }\n\n private getStorage () {\n if (!this.isPersisted)\n return null\n const module = getAsyncStorage()\n const storage = module?.default ?? module\n return storage?.getItem && storage?.setItem ? storage : null\n }\n\n /** Where (and whether) to persist. Loads the stored state on the first call for a key. */\n configure ({ storageKey, isPersisted }: { storageKey?: string, isPersisted?: boolean }) {\n const key = storageKey ?? DEFAULT_RECENTS_STORAGE_KEY\n this.isPersisted = isPersisted !== false\n if (key !== this.storageKey) {\n this.storageKey = key\n this.loadedKey = null\n this.loading = null\n }\n return this.load()\n }\n\n load (): Promise<void> {\n if (this.loadedKey === this.storageKey)\n return Promise.resolve()\n if (this.loading)\n return this.loading\n\n const storage = this.getStorage()\n if (!storage) {\n this.loadedKey = this.storageKey\n return Promise.resolve()\n }\n\n const key = this.storageKey\n this.loading = Promise.resolve()\n .then(() => storage.getItem(key))\n .then((raw: string | null) => {\n if (key !== this.storageKey)\n return\n this.loadedKey = key\n if (!raw)\n return\n const parsed = JSON.parse(raw) as Partial<StoredEmojiState>\n if (parsed.history && Object.keys(parsed.history).length > 0) {\n this.history = new Map(Object.entries(parsed.history))\n this.sort()\n }\n if (parsed.tones)\n this.tones = new Map(Object.entries(parsed.tones))\n this.emit()\n })\n .catch(() => {\n this.loadedKey = key\n })\n .finally(() => {\n this.loading = null\n })\n return this.loading\n }\n\n subscribe (listener: Listener) {\n this.listeners.add(listener)\n return () => {\n this.listeners.delete(listener)\n }\n }\n\n private emit () {\n this.listeners.forEach(listener => listener())\n }\n\n /** The recents in the order last sorted. */\n getRecents (): string[] {\n return this.order\n }\n\n /** Re-sort by use count; done each time the panel opens. */\n sort () {\n this.order = [...this.history.entries()]\n .sort((a, b) => b[1] - a[1])\n .map(([emoji]) => emoji)\n .slice(0, MAX_RECENT_EMOJIS)\n }\n\n /**\n * Count one more use, evicting the least used when full. The shown\n * order changes only on the next `sort`.\n */\n add (emoji: string) {\n const count = this.history.get(emoji) ?? 0\n if (count === 0 && this.history.size >= MAX_RECENT_EMOJIS) {\n const evicted = this.order[this.order.length - 1]\n if (evicted !== undefined)\n this.history.delete(evicted)\n }\n this.history.set(emoji, count + 1)\n this.scheduleSave()\n }\n\n getTone (emoji: string): number | null {\n return this.tones.get(emoji) ?? null\n }\n\n setTone (emoji: string, tone: number | null) {\n if (tone == null)\n this.tones.delete(emoji)\n else\n this.tones.set(emoji, tone)\n this.scheduleSave()\n this.emit()\n }\n\n private scheduleSave () {\n const storage = this.getStorage()\n if (!storage)\n return\n if (this.saveTimer)\n clearTimeout(this.saveTimer)\n // Batched: a run of taps writes once.\n this.saveTimer = setTimeout(() => {\n this.saveTimer = null\n const state: StoredEmojiState = {\n history: Object.fromEntries(this.history),\n tones: Object.fromEntries(this.tones),\n }\n Promise.resolve(storage.setItem(this.storageKey, JSON.stringify(state))).catch(() => {})\n }, 500)\n }\n\n /** @internal Tests only. */\n reset () {\n this.seed()\n this.loadedKey = null\n this.loading = null\n this.storageKey = DEFAULT_RECENTS_STORAGE_KEY\n this.isPersisted = true\n if (this.saveTimer)\n clearTimeout(this.saveTimer)\n this.saveTimer = null\n }\n}\n\nexport const emojiRecents = new EmojiRecentsStore()\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA,SAASA,eAAe,QAAQ,aAAa;AAC7C,SAASC,UAAU,QAAQ,aAAa;;AAExC;;AAWA,OAAO,MAAMC,mBAAuC,GAAG,CACrD,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CACpF;AAeD,IAAIC,KAAwB,GAAG,IAAI;AAEnC,MAAMC,QAAQ,GAAGA,CAAA,KAAkB;EACjC,IAAID,KAAK,EACP,OAAOA,KAAK;EAEd,MAAME,KAAK,GAAG,IAAIC,GAAG,CAAS,CAAC;EAC/B,MAAMC,KAAuC,GAAG,EAAE;EAClD,MAAMC,UAAU,GAAGP,UAAU,CAACQ,GAAG,CAAC,CAAC,CAACC,GAAG,EAAEC,KAAK,EAAEC,WAAW,CAAC,KAAK;IAC/D,MAAMC,QAAQ,GAAGD,WAAW,CAACE,KAAK,CAAC,GAAG,CAAC;IACvC,MAAMC,MAAM,GAAGJ,KAAK,CAACG,KAAK,CAAC,GAAG,CAAC,CAACL,GAAG,CAAC,CAACO,KAAK,EAAEC,CAAC,KAAK;MAChD,MAAMC,OAAO,GAAGF,KAAK,CAACG,QAAQ,CAAC,GAAG,CAAC;MACnC,MAAMC,KAAK,GAAGF,OAAO,GAAGF,KAAK,CAACK,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAGL,KAAK;MAClD,IAAIE,OAAO,EACTb,KAAK,CAACiB,GAAG,CAACF,KAAK,CAAC;MAClBb,KAAK,CAACgB,IAAI,CAAC,CAACH,KAAK,EAAEP,QAAQ,CAACI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;MACtC,OAAOG,KAAK;IACd,CAAC,CAAC;IACF,OAAO;MAAEV,GAAG,EAAEA,GAAuB;MAAEK;IAAO,CAAC;EACjD,CAAC,CAAC;EACFZ,KAAK,GAAG;IAAEK,UAAU;IAAEH,KAAK;IAAEE;EAAM,CAAC;EACpC,OAAOJ,KAAK;AACd,CAAC;;AAED;AACA,OAAO,MAAMqB,kBAAkB,GAAIC,IAAyB,IAAsB;EAChF,MAAM;IAAEjB;EAAW,CAAC,GAAGJ,QAAQ,CAAC,CAAC;EACjC,IAAI,CAACqB,IAAI,EACP,OAAOjB,UAAU;EAEnB,OAAOiB,IAAI,CACRhB,GAAG,CAACC,GAAG,IAAIF,UAAU,CAACkB,IAAI,CAACC,QAAQ,IAAIA,QAAQ,CAACjB,GAAG,KAAKA,GAAG,CAAC,CAAC,CAC7DkB,MAAM,CAAED,QAAQ,IAAgC,CAAC,CAACA,QAAQ,CAAC;AAChE,CAAC;;AAED;AACA,OAAO,MAAME,YAAY,GAAGA,CAACC,KAAa,EAAEC,KAAK,GAAG,GAAG,KAAe;EACpE,MAAMC,OAAO,GAAGF,KAAK,CAACG,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC,CAACpB,KAAK,CAAC,KAAK,CAAC,CAACc,MAAM,CAACO,OAAO,CAAC;EACvE,IAAIH,OAAO,CAACI,MAAM,KAAK,CAAC,EACtB,OAAO,EAAE;EAEX,MAAM;IAAE7B;EAAM,CAAC,GAAGH,QAAQ,CAAC,CAAC;EAC5B;EACA;EACA,MAAMiC,KAAe,GAAG,EAAE;EAC1B,MAAMC,OAAiB,GAAG,EAAE;EAC5B,MAAMC,KAAe,GAAG,EAAE;EAC1B,MAAMC,KAAK,GAAGR,OAAO,CAAC,CAAC,CAAC;EACxB,KAAK,MAAM,CAACZ,KAAK,EAAEqB,IAAI,CAAC,IAAIlC,KAAK,EAAE;IACjC,IAAI,CAACyB,OAAO,CAACU,KAAK,CAACC,MAAM,IAAIF,IAAI,CAACG,QAAQ,CAACD,MAAM,CAAC,CAAC,EACjD;IAEF,IAAIF,IAAI,KAAKD,KAAK,IAAIC,IAAI,CAACtB,QAAQ,CAAC,IAAIqB,KAAK,EAAE,CAAC,IAAI,CAACC,IAAI,CAACpB,KAAK,CAAC,CAAC,EAAE,CAACmB,KAAK,CAACJ,MAAM,GAAG,CAAC,CAAC,CAACQ,QAAQ,CAAC,GAAG,CAAC,EACjGP,KAAK,CAACd,IAAI,CAACH,KAAK,CAAC,MACd,IAAIqB,IAAI,CAACI,UAAU,CAACL,KAAK,CAAC,IAAIC,IAAI,CAACG,QAAQ,CAAC,IAAIJ,KAAK,EAAE,CAAC,EAC3DF,OAAO,CAACf,IAAI,CAACH,KAAK,CAAC,MAEnBmB,KAAK,CAAChB,IAAI,CAACH,KAAK,CAAC;IACnB,IAAIiB,KAAK,CAACD,MAAM,GAAGE,OAAO,CAACF,MAAM,IAAIL,KAAK,EACxC;EACJ;EACA,OAAO,CAAC,GAAGM,KAAK,EAAE,GAAGC,OAAO,EAAE,GAAGC,KAAK,CAAC,CAAClB,KAAK,CAAC,CAAC,EAAEU,KAAK,CAAC;AACzD,CAAC;;AAED;AACA,OAAO,MAAMe,UAAU,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,CAAC;AAE3F,OAAO,MAAMC,aAAa,GAAI3B,KAAa,IAAKhB,QAAQ,CAAC,CAAC,CAACC,KAAK,CAAC2C,GAAG,CAAC5B,KAAK,CAAC;;AAE3E;AACA;AACA;AACA;AACA;AACA,OAAO,MAAM6B,YAAY,GAAGA,CAAC7B,KAAa,EAAE8B,IAAmB,KAAa;EAC1E,IAAIA,IAAI,IAAI,IAAI,IAAI,CAACH,aAAa,CAAC3B,KAAK,CAAC,EACvC,OAAOA,KAAK;EAEd,MAAM+B,MAAM,GAAGC,KAAK,CAACC,IAAI,CAACjC,KAAK,CAAC;EAChC,MAAMkC,IAAI,GAAGH,MAAM,CAAC9B,KAAK,CAAC,CAAC,CAAC;EAC5B,IAAIiC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EACjBA,IAAI,CAACC,KAAK,CAAC,CAAC;EACd,OAAO,CAACJ,MAAM,CAAC,CAAC,CAAC,EAAEL,UAAU,CAACI,IAAI,CAAC,EAAE,GAAGI,IAAI,CAAC,CAACE,IAAI,CAAC,EAAE,CAAC;AACxD,CAAC;;AAED;AACA,OAAO,MAAMC,eAAe,GAAIrC,KAAa,IAAa;EACxD,MAAM+B,MAAM,GAAGC,KAAK,CAACC,IAAI,CAACjC,KAAK,CAAC;EAChC,MAAMsC,SAAS,GAAGP,MAAM,CAACQ,SAAS,CAACC,KAAK,IAAId,UAAU,CAACF,QAAQ,CAACgB,KAAK,CAAC,CAAC;EACvE,IAAIF,SAAS,GAAG,CAAC,EACf,OAAOtC,KAAK;EAEd,MAAMyC,IAAI,GAAG,CAAC,GAAGV,MAAM,CAAC9B,KAAK,CAAC,CAAC,EAAEqC,SAAS,CAAC,EAAE,GAAGP,MAAM,CAAC9B,KAAK,CAACqC,SAAS,GAAG,CAAC,CAAC,CAAC,CAACF,IAAI,CAAC,EAAE,CAAC;EACrF,IAAIT,aAAa,CAACc,IAAI,CAAC,EACrB,OAAOA,IAAI;EACb;EACA,MAAMC,YAAY,GAAG,CAAC,GAAGX,MAAM,CAAC9B,KAAK,CAAC,CAAC,EAAEqC,SAAS,CAAC,EAAE,GAAG,EAAE,GAAGP,MAAM,CAAC9B,KAAK,CAACqC,SAAS,GAAG,CAAC,CAAC,CAAC,CAACF,IAAI,CAAC,EAAE,CAAC;EAClG,OAAOT,aAAa,CAACe,YAAY,CAAC,GAAGA,YAAY,GAAGD,IAAI;AAC1D,CAAC;;AAED;AACA;AACA;;AAEA;AACA,OAAO,MAAME,qBAAqB,GAAG,CACnC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EACtE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAC3D;AAED,OAAO,MAAMC,iBAAiB,GAAG,EAAE;AAEnC,OAAO,MAAMC,2BAA2B,GAAG,wCAAwC;AAWnF;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,iBAAiB,CAAC;EACdC,OAAO,GAAwB,IAAIC,GAAG,CAAC,CAAC;EACxCC,KAAK,GAAa,EAAE;EACpBC,KAAK,GAAwB,IAAIF,GAAG,CAAC,CAAC;EACtCG,SAAS,GAAkB,IAAI;EAC/BC,OAAO,GAAyB,IAAI;EACpCC,SAAS,GAAG,IAAInE,GAAG,CAAW,CAAC;EAC/BoE,UAAU,GAAGT,2BAA2B;EACxCU,WAAW,GAAG,IAAI;EAClBC,SAAS,GAAyC,IAAI;EAE9DC,WAAWA,CAAA,EAAI;IACb,IAAI,CAACC,IAAI,CAAC,CAAC;EACb;EAEQA,IAAIA,CAAA,EAAI;IACd,IAAI,CAACX,OAAO,GAAG,IAAIC,GAAG,CAACL,qBAAqB,CAACtD,GAAG,CAAC,CAACW,KAAK,EAAEH,CAAC,KAAK,CAACG,KAAK,EAAE2C,qBAAqB,CAAC3B,MAAM,GAAGnB,CAAC,CAAC,CAAC,CAAC;IAC1G,IAAI,CAACoD,KAAK,GAAG,CAAC,GAAGN,qBAAqB,CAAC;IACvC,IAAI,CAACO,KAAK,GAAG,IAAIF,GAAG,CAAC,CAAC;EACxB;EAEQW,UAAUA,CAAA,EAAI;IACpB,IAAI,CAAC,IAAI,CAACJ,WAAW,EACnB,OAAO,IAAI;IACb,MAAMK,MAAM,GAAGhF,eAAe,CAAC,CAAC;IAChC,MAAMiF,OAAO,GAAGD,MAAM,EAAEE,OAAO,IAAIF,MAAM;IACzC,OAAOC,OAAO,EAAEE,OAAO,IAAIF,OAAO,EAAEG,OAAO,GAAGH,OAAO,GAAG,IAAI;EAC9D;;EAEA;EACAI,SAASA,CAAE;IAAEX,UAAU;IAAEC;EAA4D,CAAC,EAAE;IACtF,MAAMjE,GAAG,GAAGgE,UAAU,IAAIT,2BAA2B;IACrD,IAAI,CAACU,WAAW,GAAGA,WAAW,KAAK,KAAK;IACxC,IAAIjE,GAAG,KAAK,IAAI,CAACgE,UAAU,EAAE;MAC3B,IAAI,CAACA,UAAU,GAAGhE,GAAG;MACrB,IAAI,CAAC6D,SAAS,GAAG,IAAI;MACrB,IAAI,CAACC,OAAO,GAAG,IAAI;IACrB;IACA,OAAO,IAAI,CAACc,IAAI,CAAC,CAAC;EACpB;EAEAA,IAAIA,CAAA,EAAmB;IACrB,IAAI,IAAI,CAACf,SAAS,KAAK,IAAI,CAACG,UAAU,EACpC,OAAOa,OAAO,CAACC,OAAO,CAAC,CAAC;IAC1B,IAAI,IAAI,CAAChB,OAAO,EACd,OAAO,IAAI,CAACA,OAAO;IAErB,MAAMS,OAAO,GAAG,IAAI,CAACF,UAAU,CAAC,CAAC;IACjC,IAAI,CAACE,OAAO,EAAE;MACZ,IAAI,CAACV,SAAS,GAAG,IAAI,CAACG,UAAU;MAChC,OAAOa,OAAO,CAACC,OAAO,CAAC,CAAC;IAC1B;IAEA,MAAM9E,GAAG,GAAG,IAAI,CAACgE,UAAU;IAC3B,IAAI,CAACF,OAAO,GAAGe,OAAO,CAACC,OAAO,CAAC,CAAC,CAC7BC,IAAI,CAAC,MAAMR,OAAO,CAACE,OAAO,CAACzE,GAAG,CAAC,CAAC,CAChC+E,IAAI,CAAEC,GAAkB,IAAK;MAC5B,IAAIhF,GAAG,KAAK,IAAI,CAACgE,UAAU,EACzB;MACF,IAAI,CAACH,SAAS,GAAG7D,GAAG;MACpB,IAAI,CAACgF,GAAG,EACN;MACF,MAAMC,MAAM,GAAGC,IAAI,CAACC,KAAK,CAACH,GAAG,CAA8B;MAC3D,IAAIC,MAAM,CAACxB,OAAO,IAAI2B,MAAM,CAACrE,IAAI,CAACkE,MAAM,CAACxB,OAAO,CAAC,CAAC/B,MAAM,GAAG,CAAC,EAAE;QAC5D,IAAI,CAAC+B,OAAO,GAAG,IAAIC,GAAG,CAAC0B,MAAM,CAACC,OAAO,CAACJ,MAAM,CAACxB,OAAO,CAAC,CAAC;QACtD,IAAI,CAAC6B,IAAI,CAAC,CAAC;MACb;MACA,IAAIL,MAAM,CAACrB,KAAK,EACd,IAAI,CAACA,KAAK,GAAG,IAAIF,GAAG,CAAC0B,MAAM,CAACC,OAAO,CAACJ,MAAM,CAACrB,KAAK,CAAC,CAAC;MACpD,IAAI,CAAC2B,IAAI,CAAC,CAAC;IACb,CAAC,CAAC,CACDC,KAAK,CAAC,MAAM;MACX,IAAI,CAAC3B,SAAS,GAAG7D,GAAG;IACtB,CAAC,CAAC,CACDyF,OAAO,CAAC,MAAM;MACb,IAAI,CAAC3B,OAAO,GAAG,IAAI;IACrB,CAAC,CAAC;IACJ,OAAO,IAAI,CAACA,OAAO;EACrB;EAEA4B,SAASA,CAAEC,QAAkB,EAAE;IAC7B,IAAI,CAAC5B,SAAS,CAACnD,GAAG,CAAC+E,QAAQ,CAAC;IAC5B,OAAO,MAAM;MACX,IAAI,CAAC5B,SAAS,CAAC6B,MAAM,CAACD,QAAQ,CAAC;IACjC,CAAC;EACH;EAEQJ,IAAIA,CAAA,EAAI;IACd,IAAI,CAACxB,SAAS,CAAC8B,OAAO,CAACF,QAAQ,IAAIA,QAAQ,CAAC,CAAC,CAAC;EAChD;;EAEA;EACAG,UAAUA,CAAA,EAAc;IACtB,OAAO,IAAI,CAACnC,KAAK;EACnB;;EAEA;EACA2B,IAAIA,CAAA,EAAI;IACN,IAAI,CAAC3B,KAAK,GAAG,CAAC,GAAG,IAAI,CAACF,OAAO,CAAC4B,OAAO,CAAC,CAAC,CAAC,CACrCC,IAAI,CAAC,CAACS,CAAC,EAAEC,CAAC,KAAKA,CAAC,CAAC,CAAC,CAAC,GAAGD,CAAC,CAAC,CAAC,CAAC,CAAC,CAC3BhG,GAAG,CAAC,CAAC,CAACW,KAAK,CAAC,KAAKA,KAAK,CAAC,CACvBC,KAAK,CAAC,CAAC,EAAE2C,iBAAiB,CAAC;EAChC;;EAEA;AACF;AACA;AACA;EACE1C,GAAGA,CAAEF,KAAa,EAAE;IAClB,MAAMuF,KAAK,GAAG,IAAI,CAACxC,OAAO,CAACyC,GAAG,CAACxF,KAAK,CAAC,IAAI,CAAC;IAC1C,IAAIuF,KAAK,KAAK,CAAC,IAAI,IAAI,CAACxC,OAAO,CAAC0C,IAAI,IAAI7C,iBAAiB,EAAE;MACzD,MAAM8C,OAAO,GAAG,IAAI,CAACzC,KAAK,CAAC,IAAI,CAACA,KAAK,CAACjC,MAAM,GAAG,CAAC,CAAC;MACjD,IAAI0E,OAAO,KAAKC,SAAS,EACvB,IAAI,CAAC5C,OAAO,CAACmC,MAAM,CAACQ,OAAO,CAAC;IAChC;IACA,IAAI,CAAC3C,OAAO,CAAC6C,GAAG,CAAC5F,KAAK,EAAEuF,KAAK,GAAG,CAAC,CAAC;IAClC,IAAI,CAACM,YAAY,CAAC,CAAC;EACrB;EAEAC,OAAOA,CAAE9F,KAAa,EAAiB;IACrC,OAAO,IAAI,CAACkD,KAAK,CAACsC,GAAG,CAACxF,KAAK,CAAC,IAAI,IAAI;EACtC;EAEA+F,OAAOA,CAAE/F,KAAa,EAAE8B,IAAmB,EAAE;IAC3C,IAAIA,IAAI,IAAI,IAAI,EACd,IAAI,CAACoB,KAAK,CAACgC,MAAM,CAAClF,KAAK,CAAC,MAExB,IAAI,CAACkD,KAAK,CAAC0C,GAAG,CAAC5F,KAAK,EAAE8B,IAAI,CAAC;IAC7B,IAAI,CAAC+D,YAAY,CAAC,CAAC;IACnB,IAAI,CAAChB,IAAI,CAAC,CAAC;EACb;EAEQgB,YAAYA,CAAA,EAAI;IACtB,MAAMhC,OAAO,GAAG,IAAI,CAACF,UAAU,CAAC,CAAC;IACjC,IAAI,CAACE,OAAO,EACV;IACF,IAAI,IAAI,CAACL,SAAS,EAChBwC,YAAY,CAAC,IAAI,CAACxC,SAAS,CAAC;IAC9B;IACA,IAAI,CAACA,SAAS,GAAGyC,UAAU,CAAC,MAAM;MAChC,IAAI,CAACzC,SAAS,GAAG,IAAI;MACrB,MAAM0C,KAAuB,GAAG;QAC9BnD,OAAO,EAAE2B,MAAM,CAACyB,WAAW,CAAC,IAAI,CAACpD,OAAO,CAAC;QACzCG,KAAK,EAAEwB,MAAM,CAACyB,WAAW,CAAC,IAAI,CAACjD,KAAK;MACtC,CAAC;MACDiB,OAAO,CAACC,OAAO,CAACP,OAAO,CAACG,OAAO,CAAC,IAAI,CAACV,UAAU,EAAEkB,IAAI,CAAC4B,SAAS,CAACF,KAAK,CAAC,CAAC,CAAC,CAACpB,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1F,CAAC,EAAE,GAAG,CAAC;EACT;;EAEA;EACAuB,KAAKA,CAAA,EAAI;IACP,IAAI,CAAC3C,IAAI,CAAC,CAAC;IACX,IAAI,CAACP,SAAS,GAAG,IAAI;IACrB,IAAI,CAACC,OAAO,GAAG,IAAI;IACnB,IAAI,CAACE,UAAU,GAAGT,2BAA2B;IAC7C,IAAI,CAACU,WAAW,GAAG,IAAI;IACvB,IAAI,IAAI,CAACC,SAAS,EAChBwC,YAAY,CAAC,IAAI,CAACxC,SAAS,CAAC;IAC9B,IAAI,CAACA,SAAS,GAAG,IAAI;EACvB;AACF;AAEA,OAAO,MAAM8C,YAAY,GAAG,IAAIxD,iBAAiB,CAAC,CAAC","ignoreList":[]}
|