emoji-picker-react 4.22.2 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (405) hide show
  1. package/README.md +335 -49
  2. package/dist/DomUtils/categoryNameFromDom.d.ts +1 -1
  3. package/dist/DomUtils/classNames.d.ts +24 -23
  4. package/dist/DomUtils/detectEmojyPartiallyBelowFold.d.ts +2 -2
  5. package/dist/DomUtils/elementPositionInRow.d.ts +5 -5
  6. package/dist/DomUtils/eventBelongsToPicker.d.ts +2 -0
  7. package/dist/DomUtils/focusElement.d.ts +5 -5
  8. package/dist/DomUtils/getActiveElement.d.ts +2 -2
  9. package/dist/DomUtils/isJsdom.d.ts +1 -0
  10. package/dist/DomUtils/isRtl.d.ts +1 -0
  11. package/dist/DomUtils/keyboardNavigation.d.ts +7 -8
  12. package/dist/DomUtils/scrollTo.d.ts +4 -5
  13. package/dist/DomUtils/selectors.d.ts +31 -35
  14. package/dist/EmojiPickerReact.d.ts +5 -5
  15. package/dist/Stylesheet/DedupedStyle.d.ts +13 -0
  16. package/dist/Stylesheet/stylesheet.d.ts +40 -37
  17. package/dist/components/ErrorBoundary.d.ts +15 -15
  18. package/dist/components/Layout/Absolute.d.ts +8 -8
  19. package/dist/components/Layout/Flex.d.ts +13 -13
  20. package/dist/components/Layout/Relative.d.ts +8 -8
  21. package/dist/components/Layout/Space.d.ts +7 -7
  22. package/dist/components/Reactions/BtnPlus.d.ts +2 -2
  23. package/dist/components/Reactions/DEFAULT_REACTIONS.d.ts +1 -1
  24. package/dist/components/Reactions/Reactions.d.ts +3 -2
  25. package/dist/components/atoms/Button.d.ts +11 -6
  26. package/dist/components/body/EmojiCategory.d.ts +13 -12
  27. package/dist/components/body/EmojiList.d.ts +7 -4
  28. package/dist/components/body/EmojiVariationPicker.d.ts +2 -2
  29. package/dist/components/body/MeasureEmoji.d.ts +2 -2
  30. package/dist/components/body/listComponents.d.ts +47 -0
  31. package/dist/components/context/ElementRefContext.d.ts +18 -16
  32. package/dist/components/context/PickerConfigContext.d.ts +14 -9
  33. package/dist/components/context/PickerContext.d.ts +57 -25
  34. package/dist/components/context/PickerDataContext.d.ts +23 -17
  35. package/dist/components/emoji/BaseEmojiProps.d.ts +14 -13
  36. package/dist/components/emoji/ClickableEmojiButton.d.ts +23 -15
  37. package/dist/components/emoji/Emoji.d.ts +18 -15
  38. package/dist/components/emoji/EmojiImg.d.ts +11 -11
  39. package/dist/components/emoji/ExportedEmoji.d.ts +11 -11
  40. package/dist/components/emoji/NativeEmoji.d.ts +6 -6
  41. package/dist/components/emoji/ViewOnlyEmoji.d.ts +3 -3
  42. package/dist/components/emoji/emojiStyles.d.ts +6 -1
  43. package/dist/components/footer/Preview.d.ts +7 -7
  44. package/dist/components/header/Header.d.ts +2 -2
  45. package/dist/components/header/Search/BtnClearSearch.d.ts +2 -2
  46. package/dist/components/header/Search/IcnSearch.d.ts +2 -2
  47. package/dist/components/header/Search/Search.d.ts +11 -3
  48. package/dist/components/header/SkinTonePicker/BtnSkinToneVariation.d.ts +12 -12
  49. package/dist/components/header/SkinTonePicker/SkinTonePicker.d.ts +11 -11
  50. package/dist/components/icons/svgIcons.d.ts +4 -0
  51. package/dist/components/main/PickerMainBehaviors.d.ts +4 -0
  52. package/dist/components/main/defaultAppearance.d.ts +12 -0
  53. package/dist/components/main/labelHeight.d.ts +1 -0
  54. package/dist/components/navigation/CategoryButton.d.ts +12 -12
  55. package/dist/components/navigation/CategoryNavIcon.d.ts +4 -4
  56. package/dist/components/navigation/CategoryNavigation.d.ts +19 -2
  57. package/dist/config/categoryConfig.d.ts +34 -34
  58. package/dist/config/cdnUrls.d.ts +2 -2
  59. package/dist/config/compareConfig.d.ts +10 -2
  60. package/dist/config/config.d.ts +166 -64
  61. package/dist/config/customEmojiConfig.d.ts +14 -14
  62. package/dist/config/defaultPickerConfiguration.d.ts +10 -0
  63. package/dist/config/mutableConfig.d.ts +32 -10
  64. package/dist/config/useConfig.d.ts +48 -36
  65. package/dist/data/defaultEmojiData.d.ts +9 -0
  66. package/dist/data/defaultEmojiData.js +40 -0
  67. package/dist/data/emojis-bn.d.mts +39 -0
  68. package/dist/data/emojis-bn.d.ts +38 -2
  69. package/dist/data/emojis-bn.js +25 -2
  70. package/dist/data/emojis-bn.mjs +2 -0
  71. package/dist/data/emojis-da.d.mts +39 -0
  72. package/dist/data/emojis-da.d.ts +38 -2
  73. package/dist/data/emojis-da.js +25 -2
  74. package/dist/data/emojis-da.mjs +2 -0
  75. package/dist/data/emojis-de.d.mts +39 -0
  76. package/dist/data/emojis-de.d.ts +38 -2
  77. package/dist/data/emojis-de.js +25 -2
  78. package/dist/data/emojis-de.mjs +2 -0
  79. package/dist/data/emojis-en-gb.d.mts +39 -0
  80. package/dist/data/emojis-en-gb.d.ts +38 -2
  81. package/dist/data/emojis-en-gb.js +25 -2
  82. package/dist/data/emojis-en-gb.mjs +2 -0
  83. package/dist/data/emojis-en.d.mts +39 -0
  84. package/dist/data/emojis-en.d.ts +38 -2
  85. package/dist/data/emojis-en.js +25 -2
  86. package/dist/data/emojis-en.mjs +2 -0
  87. package/dist/data/emojis-es-mx.d.mts +39 -0
  88. package/dist/data/emojis-es-mx.d.ts +38 -2
  89. package/dist/data/emojis-es-mx.js +25 -2
  90. package/dist/data/emojis-es-mx.mjs +2 -0
  91. package/dist/data/emojis-es.d.mts +39 -0
  92. package/dist/data/emojis-es.d.ts +38 -2
  93. package/dist/data/emojis-es.js +25 -2
  94. package/dist/data/emojis-es.mjs +2 -0
  95. package/dist/data/emojis-et.d.mts +39 -0
  96. package/dist/data/emojis-et.d.ts +38 -2
  97. package/dist/data/emojis-et.js +25 -2
  98. package/dist/data/emojis-et.mjs +2 -0
  99. package/dist/data/emojis-fi.d.mts +39 -0
  100. package/dist/data/emojis-fi.d.ts +38 -2
  101. package/dist/data/emojis-fi.js +25 -2
  102. package/dist/data/emojis-fi.mjs +2 -0
  103. package/dist/data/emojis-fr.d.mts +39 -0
  104. package/dist/data/emojis-fr.d.ts +38 -2
  105. package/dist/data/emojis-fr.js +25 -2
  106. package/dist/data/emojis-fr.mjs +2 -0
  107. package/dist/data/emojis-hi.d.mts +39 -0
  108. package/dist/data/emojis-hi.d.ts +38 -2
  109. package/dist/data/emojis-hi.js +25 -2
  110. package/dist/data/emojis-hi.mjs +2 -0
  111. package/dist/data/emojis-hu.d.mts +39 -0
  112. package/dist/data/emojis-hu.d.ts +38 -2
  113. package/dist/data/emojis-hu.js +25 -2
  114. package/dist/data/emojis-hu.mjs +2 -0
  115. package/dist/data/emojis-it.d.mts +39 -0
  116. package/dist/data/emojis-it.d.ts +38 -2
  117. package/dist/data/emojis-it.js +25 -2
  118. package/dist/data/emojis-it.mjs +2 -0
  119. package/dist/data/emojis-ja.d.mts +39 -0
  120. package/dist/data/emojis-ja.d.ts +38 -2
  121. package/dist/data/emojis-ja.js +25 -2
  122. package/dist/data/emojis-ja.mjs +2 -0
  123. package/dist/data/emojis-ko.d.mts +39 -0
  124. package/dist/data/emojis-ko.d.ts +38 -2
  125. package/dist/data/emojis-ko.js +25 -2
  126. package/dist/data/emojis-ko.mjs +2 -0
  127. package/dist/data/emojis-lt.d.mts +39 -0
  128. package/dist/data/emojis-lt.d.ts +38 -2
  129. package/dist/data/emojis-lt.js +25 -2
  130. package/dist/data/emojis-lt.mjs +2 -0
  131. package/dist/data/emojis-ms.d.mts +39 -0
  132. package/dist/data/emojis-ms.d.ts +38 -2
  133. package/dist/data/emojis-ms.js +25 -2
  134. package/dist/data/emojis-ms.mjs +2 -0
  135. package/dist/data/emojis-nb.d.mts +39 -0
  136. package/dist/data/emojis-nb.d.ts +38 -2
  137. package/dist/data/emojis-nb.js +25 -2
  138. package/dist/data/emojis-nb.mjs +2 -0
  139. package/dist/data/emojis-nl.d.mts +39 -0
  140. package/dist/data/emojis-nl.d.ts +38 -2
  141. package/dist/data/emojis-nl.js +25 -2
  142. package/dist/data/emojis-nl.mjs +2 -0
  143. package/dist/data/emojis-pl.d.mts +39 -0
  144. package/dist/data/emojis-pl.d.ts +38 -2
  145. package/dist/data/emojis-pl.js +25 -2
  146. package/dist/data/emojis-pl.mjs +2 -0
  147. package/dist/data/emojis-pt.d.mts +39 -0
  148. package/dist/data/emojis-pt.d.ts +38 -2
  149. package/dist/data/emojis-pt.js +25 -2
  150. package/dist/data/emojis-pt.mjs +2 -0
  151. package/dist/data/emojis-ru.d.mts +39 -0
  152. package/dist/data/emojis-ru.d.ts +38 -2
  153. package/dist/data/emojis-ru.js +25 -2
  154. package/dist/data/emojis-ru.mjs +2 -0
  155. package/dist/data/emojis-sv.d.mts +39 -0
  156. package/dist/data/emojis-sv.d.ts +38 -2
  157. package/dist/data/emojis-sv.js +25 -2
  158. package/dist/data/emojis-sv.mjs +2 -0
  159. package/dist/data/emojis-th.d.mts +39 -0
  160. package/dist/data/emojis-th.d.ts +38 -2
  161. package/dist/data/emojis-th.js +25 -2
  162. package/dist/data/emojis-th.mjs +2 -0
  163. package/dist/data/emojis-uk.d.mts +39 -0
  164. package/dist/data/emojis-uk.d.ts +38 -2
  165. package/dist/data/emojis-uk.js +25 -2
  166. package/dist/data/emojis-uk.mjs +2 -0
  167. package/dist/data/emojis-vi.d.mts +39 -0
  168. package/dist/data/emojis-vi.d.ts +38 -2
  169. package/dist/data/emojis-vi.js +25 -2
  170. package/dist/data/emojis-vi.mjs +2 -0
  171. package/dist/data/emojis-zh-hant.d.mts +39 -0
  172. package/dist/data/emojis-zh-hant.d.ts +38 -2
  173. package/dist/data/emojis-zh-hant.js +25 -2
  174. package/dist/data/emojis-zh-hant.mjs +2 -0
  175. package/dist/data/emojis-zh.d.mts +39 -0
  176. package/dist/data/emojis-zh.d.ts +38 -2
  177. package/dist/data/emojis-zh.js +25 -2
  178. package/dist/data/emojis-zh.mjs +2 -0
  179. package/dist/data/index.js +1 -0
  180. package/dist/data/registerDefaultEmojiData.d.ts +1 -0
  181. package/dist/data/registerDefaultEmojiData.js +3 -0
  182. package/dist/data-core/pickerData.d.ts +12 -0
  183. package/dist/data-core/prepare.d.ts +23 -0
  184. package/dist/data-core/search.d.ts +13 -0
  185. package/dist/data-core/types.d.ts +23 -0
  186. package/dist/data.d.mts +72 -0
  187. package/dist/data.d.ts +72 -0
  188. package/dist/dataUtils/DataTypes.d.ts +23 -19
  189. package/dist/dataUtils/emojiSelectors.d.ts +15 -16
  190. package/dist/dataUtils/emojiUtils.d.ts +1 -12
  191. package/dist/dataUtils/nativeEmojiSequenceSupport.d.ts +10 -0
  192. package/dist/dataUtils/nativeEmojiSupport.d.ts +40 -0
  193. package/dist/dataUtils/parseNativeEmoji.d.ts +1 -1
  194. package/dist/dataUtils/suggested.d.ts +11 -11
  195. package/dist/dataUtils/suggestedEmojis.d.ts +7 -0
  196. package/dist/esm/chunks/chunk-46BUDQLE.mjs +228 -0
  197. package/dist/esm/chunks/chunk-7ZGTUZFB.mjs +16 -0
  198. package/dist/esm/chunks/chunk-FQIJ4HBW.mjs +25 -0
  199. package/dist/esm/chunks/chunk-KQPOIRSC.mjs +9305 -0
  200. package/dist/esm/chunks/chunk-LO4TPPLH.mjs +43 -0
  201. package/dist/esm/chunks/emojis-6L3GRBAP.mjs +9 -0
  202. package/dist/esm/data.mjs +18 -0
  203. package/dist/esm/index.mjs +389 -0
  204. package/dist/esm/primitives/index.mjs +67 -0
  205. package/dist/hooks/preloadEmoji.d.ts +9 -9
  206. package/dist/hooks/useActiveCategoryScrollDetection.d.ts +11 -11
  207. package/dist/hooks/useCategoryHeight.d.ts +6 -5
  208. package/dist/hooks/useCloseAllOpenToggles.d.ts +2 -2
  209. package/dist/hooks/useDataIdentityStabilityWarning.d.ts +13 -0
  210. package/dist/hooks/useDebouncedState.d.ts +1 -1
  211. package/dist/hooks/useDisallowMouseMove.d.ts +4 -4
  212. package/dist/hooks/useDisallowedEmojis.d.ts +2 -3
  213. package/dist/hooks/useEmojiPreviewEvents.d.ts +3 -3
  214. package/dist/hooks/useEmojiVirtualization.d.ts +21 -17
  215. package/dist/hooks/useFilter.d.ts +10 -16
  216. package/dist/hooks/useFocus.d.ts +3 -3
  217. package/dist/hooks/useInitialLoad.d.ts +2 -2
  218. package/dist/hooks/useIsEmojiHidden.d.ts +8 -8
  219. package/dist/hooks/useIsMounted.d.ts +1 -1
  220. package/dist/hooks/useIsSearchMode.d.ts +1 -1
  221. package/dist/hooks/useIsomorphicLayoutEffect.d.ts +2 -2
  222. package/dist/hooks/useKeyboardNavigation.d.ts +3 -1
  223. package/dist/hooks/useMouseDownHandlers.d.ts +8 -4
  224. package/dist/hooks/useOnFocus.d.ts +1 -1
  225. package/dist/hooks/useOnScroll.d.ts +2 -2
  226. package/dist/hooks/useReactionsFocus.d.ts +1 -0
  227. package/dist/hooks/useRegisterRegion.d.ts +24 -0
  228. package/dist/hooks/useResolvedEmojiData.d.ts +37 -0
  229. package/dist/hooks/useScrollCategoryIntoView.d.ts +1 -1
  230. package/dist/hooks/useSearchController.d.ts +17 -0
  231. package/dist/hooks/useSearchResults.d.ts +8 -0
  232. package/dist/hooks/useSetVariationPicker.d.ts +2 -2
  233. package/dist/hooks/useShouldHideCustomEmojis.d.ts +1 -1
  234. package/dist/hooks/useShouldShowSkinTonePicker.d.ts +4 -4
  235. package/dist/index.d.mts +376 -0
  236. package/dist/index.d.ts +376 -9
  237. package/dist/index.js +2 -8
  238. package/dist/primitives/CategoryNav.d.ts +4 -0
  239. package/dist/primitives/Empty.d.ts +6 -0
  240. package/dist/primitives/List.d.ts +4 -0
  241. package/dist/primitives/LoadError.d.ts +8 -0
  242. package/dist/primitives/Loading.d.ts +4 -0
  243. package/dist/primitives/Panel.d.ts +3 -0
  244. package/dist/primitives/Preview.d.ts +3 -0
  245. package/dist/primitives/Reactions.d.ts +2 -0
  246. package/dist/primitives/Root.d.ts +26 -0
  247. package/dist/primitives/Search.d.ts +5 -0
  248. package/dist/primitives/SearchInput.d.ts +3 -0
  249. package/dist/primitives/SkinTone.d.ts +4 -0
  250. package/dist/primitives/Viewport.d.ts +19 -0
  251. package/dist/primitives/appearance.d.ts +3 -0
  252. package/dist/primitives/components.d.ts +27 -0
  253. package/dist/primitives/hooks.d.ts +48 -0
  254. package/dist/primitives/index.d.mts +561 -0
  255. package/dist/primitives/index.d.ts +561 -0
  256. package/dist/primitives/index.js +2 -0
  257. package/dist/primitives/nativeProps.d.ts +15 -0
  258. package/dist/primitives/scope.d.ts +13 -0
  259. package/dist/primitives/structuralStyles.d.ts +16 -0
  260. package/dist/primitives/tokens.d.ts +18 -0
  261. package/dist/primitives/types.d.ts +85 -0
  262. package/dist/state/activeEmojiStore.d.ts +7 -0
  263. package/dist/state/navigationRegistry.d.ts +61 -0
  264. package/dist/state/regionTraversal.d.ts +20 -0
  265. package/dist/typeRefinements/typeRefinements.d.ts +6 -6
  266. package/dist/types/exposedTypes.d.ts +16 -6
  267. package/dist/types/exposedTypes.js +5 -0
  268. package/dist/virtualization/virtualizationHelpers.d.ts +20 -18
  269. package/llms-full.txt +3680 -0
  270. package/llms.txt +66 -476
  271. package/package.json +204 -66
  272. package/src/DomUtils/categoryNameFromDom.ts +1 -1
  273. package/src/DomUtils/classNames.ts +1 -0
  274. package/src/DomUtils/elementPositionInRow.ts +26 -4
  275. package/src/DomUtils/eventBelongsToPicker.ts +17 -0
  276. package/src/DomUtils/getActiveElement.ts +7 -1
  277. package/src/DomUtils/isJsdom.ts +12 -0
  278. package/src/DomUtils/isRtl.ts +5 -0
  279. package/src/DomUtils/keyboardNavigation.ts +105 -149
  280. package/src/DomUtils/scrollTo.ts +18 -16
  281. package/src/DomUtils/selectors.ts +20 -111
  282. package/src/EmojiPickerReact.tsx +155 -48
  283. package/src/Stylesheet/DedupedStyle.tsx +80 -0
  284. package/src/Stylesheet/stylesheet.tsx +128 -59
  285. package/src/components/Layout/Flex.tsx +12 -11
  286. package/src/components/Reactions/BtnPlus.tsx +61 -51
  287. package/src/components/Reactions/Reactions.tsx +113 -55
  288. package/src/components/atoms/Button.tsx +18 -15
  289. package/src/components/body/EmojiCategory.tsx +77 -40
  290. package/src/components/body/EmojiList.tsx +55 -23
  291. package/src/components/body/EmojiVariationPicker.tsx +113 -66
  292. package/src/components/body/MeasureEmoji.tsx +9 -2
  293. package/src/components/body/listComponents.tsx +79 -0
  294. package/src/components/context/ElementRefContext.tsx +46 -35
  295. package/src/components/context/PickerConfigContext.tsx +55 -40
  296. package/src/components/context/PickerContext.tsx +567 -92
  297. package/src/components/context/PickerDataContext.tsx +110 -99
  298. package/src/components/emoji/BaseEmojiProps.ts +5 -4
  299. package/src/components/emoji/ClickableEmojiButton.tsx +148 -63
  300. package/src/components/emoji/Emoji.tsx +24 -2
  301. package/src/components/emoji/EmojiImg.tsx +13 -12
  302. package/src/components/emoji/ExportedEmoji.tsx +5 -4
  303. package/src/components/emoji/NativeEmoji.tsx +19 -16
  304. package/src/components/emoji/ViewOnlyEmoji.tsx +55 -30
  305. package/src/components/emoji/emojiStyles.ts +12 -11
  306. package/src/components/footer/Preview.tsx +86 -91
  307. package/src/components/header/Header.tsx +21 -6
  308. package/src/components/header/Search/BtnClearSearch.tsx +69 -55
  309. package/src/components/header/Search/IcnSearch.tsx +21 -21
  310. package/src/components/header/Search/Search.tsx +77 -137
  311. package/src/components/header/SkinTonePicker/BtnSkinToneVariation.tsx +99 -62
  312. package/src/components/header/SkinTonePicker/SkinTonePicker.tsx +84 -46
  313. package/src/components/icons/svgIcons.ts +17 -0
  314. package/src/components/main/PickerMainBehaviors.tsx +163 -0
  315. package/src/components/main/defaultAppearance.tsx +188 -0
  316. package/src/components/main/labelHeight.ts +5 -0
  317. package/src/components/navigation/CategoryButton.tsx +83 -57
  318. package/src/components/navigation/CategoryNavIcon.tsx +73 -194
  319. package/src/components/navigation/CategoryNavigation.tsx +118 -46
  320. package/src/config/categoryConfig.ts +7 -3
  321. package/src/config/cdnUrls.ts +11 -21
  322. package/src/config/compareConfig.ts +128 -30
  323. package/src/config/config.ts +228 -24
  324. package/src/config/defaultPickerConfiguration.ts +7 -0
  325. package/src/config/mutableConfig.ts +44 -20
  326. package/src/config/useConfig.ts +130 -37
  327. package/src/data/defaultEmojiData.ts +49 -0
  328. package/src/data/registerDefaultEmojiData.ts +8 -0
  329. package/src/data-core/pickerData.ts +173 -0
  330. package/src/data-core/prepare.ts +178 -0
  331. package/src/data-core/search.ts +122 -0
  332. package/src/data-core/types.ts +36 -0
  333. package/src/data.ts +10 -0
  334. package/src/dataUtils/DataTypes.ts +4 -0
  335. package/src/dataUtils/emojiSelectors.ts +58 -63
  336. package/src/dataUtils/emojiUtils.ts +17 -74
  337. package/src/dataUtils/nativeEmojiSequenceSupport.ts +116 -0
  338. package/src/dataUtils/nativeEmojiSupport.ts +160 -0
  339. package/src/dataUtils/suggested.ts +8 -4
  340. package/src/dataUtils/suggestedEmojis.ts +92 -0
  341. package/src/env.d.ts +4 -0
  342. package/src/hooks/preloadEmoji.ts +3 -3
  343. package/src/hooks/useActiveCategoryScrollDetection.ts +10 -1
  344. package/src/hooks/useCategoryHeight.ts +82 -8
  345. package/src/hooks/useDataIdentityStabilityWarning.ts +86 -0
  346. package/src/hooks/useDebouncedState.ts +13 -1
  347. package/src/hooks/useDisallowedEmojis.ts +26 -42
  348. package/src/hooks/useEmojiPreviewEvents.ts +43 -10
  349. package/src/hooks/useEmojiVirtualization.tsx +38 -4
  350. package/src/hooks/useFilter.ts +85 -127
  351. package/src/hooks/useFocus.ts +14 -24
  352. package/src/hooks/useIsEmojiHidden.ts +10 -6
  353. package/src/hooks/useKeyboardNavigation.ts +322 -429
  354. package/src/hooks/useMouseDownHandlers.ts +91 -16
  355. package/src/hooks/useOnFocus.ts +12 -3
  356. package/src/hooks/useOnScroll.ts +18 -2
  357. package/src/hooks/useReactionsFocus.ts +118 -0
  358. package/src/hooks/useRegisterRegion.ts +92 -0
  359. package/src/hooks/useResolvedEmojiData.ts +200 -0
  360. package/src/hooks/useScrollCategoryIntoView.ts +74 -12
  361. package/src/hooks/useSearchController.ts +369 -0
  362. package/src/hooks/useSearchResults.ts +51 -0
  363. package/src/hooks/useSetVariationPicker.ts +4 -1
  364. package/src/index.tsx +67 -5
  365. package/src/primitives/CategoryNav.tsx +40 -0
  366. package/src/primitives/Empty.tsx +68 -0
  367. package/src/primitives/List.tsx +61 -0
  368. package/src/primitives/LoadError.tsx +38 -0
  369. package/src/primitives/Loading.tsx +60 -0
  370. package/src/primitives/Panel.tsx +47 -0
  371. package/src/primitives/Preview.tsx +38 -0
  372. package/src/primitives/Reactions.tsx +2 -0
  373. package/src/primitives/Root.tsx +398 -0
  374. package/src/primitives/Search.tsx +41 -0
  375. package/src/primitives/SearchInput.tsx +110 -0
  376. package/src/primitives/SkinTone.tsx +76 -0
  377. package/src/primitives/Viewport.tsx +204 -0
  378. package/src/primitives/appearance.tsx +7 -0
  379. package/src/primitives/components.tsx +30 -0
  380. package/src/primitives/hooks.ts +165 -0
  381. package/src/primitives/index.ts +94 -0
  382. package/src/primitives/nativeProps.ts +90 -0
  383. package/src/primitives/scope.tsx +109 -0
  384. package/src/primitives/structuralStyles.tsx +133 -0
  385. package/src/primitives/tokens.ts +149 -0
  386. package/src/primitives/types.ts +192 -0
  387. package/src/state/activeEmojiStore.ts +39 -0
  388. package/src/state/navigationRegistry.ts +209 -0
  389. package/src/state/regionTraversal.ts +116 -0
  390. package/src/svg.d.ts +2 -2
  391. package/src/types/exposedTypes.ts +28 -1
  392. package/src/virtualization/virtualizationHelpers.ts +20 -6
  393. package/dist/components/body/Body.d.ts +0 -2
  394. package/dist/components/main/PickerMain.d.ts +0 -7
  395. package/dist/dataUtils/alphaNumericEmojiIndex.d.ts +0 -5
  396. package/dist/emoji-picker-react.cjs.development.js +0 -31413
  397. package/dist/emoji-picker-react.cjs.development.js.map +0 -1
  398. package/dist/emoji-picker-react.cjs.production.min.js +0 -2
  399. package/dist/emoji-picker-react.cjs.production.min.js.map +0 -1
  400. package/dist/emoji-picker-react.esm.js +0 -31411
  401. package/dist/emoji-picker-react.esm.js.map +0 -1
  402. package/dist/hooks/useHideEmojisByUniocode.d.ts +0 -1
  403. package/src/components/body/Body.tsx +0 -43
  404. package/src/components/main/PickerMain.tsx +0 -249
  405. package/src/dataUtils/alphaNumericEmojiIndex.ts +0 -21
@@ -1 +0,0 @@
1
- export declare function useIsUnicodeHidden(): (emojiUnified: string) => boolean;
@@ -1,43 +0,0 @@
1
- import * as React from 'react';
2
- import { cx } from 'shipstyles';
3
-
4
- import { ClassNames } from '../../DomUtils/classNames';
5
- import {
6
- commonInteractionStyles,
7
- stylesheet,
8
- } from '../../Stylesheet/stylesheet';
9
- import { MOUSE_EVENT_SOURCE } from '../../config/useConfig';
10
- import { useOnMouseMove } from '../../hooks/useDisallowMouseMove';
11
- import { useMouseDownHandlers } from '../../hooks/useMouseDownHandlers';
12
- import { useOnScroll } from '../../hooks/useOnScroll';
13
- import { useBodyRef } from '../context/ElementRefContext';
14
-
15
- import { EmojiList } from './EmojiList';
16
- import { EmojiVariationPicker } from './EmojiVariationPicker';
17
-
18
- export function Body() {
19
- const BodyRef = useBodyRef();
20
- const scrollTop = useOnScroll(BodyRef);
21
- useMouseDownHandlers(BodyRef, MOUSE_EVENT_SOURCE.PICKER);
22
- useOnMouseMove();
23
-
24
- return (
25
- <div
26
- className={cx(styles.body, commonInteractionStyles.hiddenOnReactions)}
27
- ref={BodyRef}
28
- >
29
- <EmojiVariationPicker />
30
- <EmojiList scrollTop={scrollTop} />
31
- </div>
32
- );
33
- }
34
-
35
- const styles = stylesheet.create({
36
- body: {
37
- '.': ClassNames.scrollBody,
38
- flex: '1',
39
- overflowY: 'scroll',
40
- overflowX: 'hidden',
41
- position: 'relative',
42
- },
43
- });
@@ -1,249 +0,0 @@
1
- import * as React from 'react';
2
- import { cx } from 'shipstyles';
3
-
4
- import { ClassNames } from '../../DomUtils/classNames';
5
- import { stylesheet } from '../../Stylesheet/stylesheet';
6
- import {
7
- useClassNameConfig,
8
- useStyleConfig,
9
- useThemeConfig,
10
- } from '../../config/useConfig';
11
- import useIsSearchMode from '../../hooks/useIsSearchMode';
12
- import { useKeyboardNavigation } from '../../hooks/useKeyboardNavigation';
13
- import { useOnFocus } from '../../hooks/useOnFocus';
14
- import { Theme } from '../../types/exposedTypes';
15
- import { usePickerMainRef } from '../context/ElementRefContext';
16
- import {
17
- PickerContextProvider,
18
- useReactionsModeState,
19
- } from '../context/PickerContext';
20
-
21
- type Props = Readonly<{
22
- children: React.ReactNode;
23
- }>;
24
-
25
- export const DEFAULT_LABEL_HEIGHT = 40;
26
-
27
- export default function PickerMain({ children }: Props) {
28
- return (
29
- <PickerContextProvider>
30
- <PickerRootElement>{children}</PickerRootElement>
31
- </PickerContextProvider>
32
- );
33
- }
34
-
35
- type RootProps = Readonly<{
36
- className?: string;
37
- style?: React.CSSProperties;
38
- children: React.ReactNode;
39
- }>;
40
-
41
- function PickerRootElement({ children }: RootProps) {
42
- const [reactionsMode] = useReactionsModeState();
43
- const theme = useThemeConfig();
44
- const searchModeActive = useIsSearchMode();
45
- const PickerMainRef = usePickerMainRef();
46
- const className = useClassNameConfig();
47
- const style = useStyleConfig();
48
-
49
- useKeyboardNavigation();
50
- useOnFocus();
51
-
52
- const { width, height, ...styleProps } = style || {};
53
-
54
- return (
55
- <aside
56
- className={cx(
57
- styles.main,
58
- styles.baseVariables,
59
- theme === Theme.DARK && styles.darkTheme,
60
- theme === Theme.AUTO && styles.autoThemeDark,
61
- {
62
- [ClassNames.searchActive]: searchModeActive,
63
- },
64
- reactionsMode && styles.reactionsMenu,
65
- className,
66
- )}
67
- ref={PickerMainRef}
68
- style={{
69
- ...styleProps,
70
- ...(!reactionsMode && { height, width }),
71
- }}
72
- >
73
- {children}
74
- </aside>
75
- );
76
- }
77
-
78
- const DarkTheme = {
79
- '--epr-emoji-variation-picker-bg-color':
80
- 'var(--epr-dark-emoji-variation-picker-bg-color)',
81
- '--epr-hover-bg-color-reduced-opacity':
82
- 'var(--epr-dark-hover-bg-color-reduced-opacity)',
83
- '--epr-highlight-color': 'var(--epr-dark-highlight-color)',
84
- '--epr-text-color': 'var(--epr-dark-text-color)',
85
- '--epr-hover-bg-color': 'var(--epr-dark-hover-bg-color)',
86
- '--epr-focus-bg-color': 'var(--epr-dark-focus-bg-color)',
87
- '--epr-search-input-bg-color': 'var(--epr-dark-search-input-bg-color)',
88
- '--epr-category-label-bg-color': 'var(--epr-dark-category-label-bg-color)',
89
- '--epr-picker-border-color': 'var(--epr-dark-picker-border-color)',
90
- '--epr-bg-color': 'var(--epr-dark-bg-color)',
91
- '--epr-reactions-bg-color': 'var(--epr-dark-reactions-bg-color)',
92
- '--epr-search-input-bg-color-active':
93
- 'var(--epr-dark-search-input-bg-color-active)',
94
- '--epr-emoji-variation-indicator-color':
95
- 'var(--epr-dark-emoji-variation-indicator-color)',
96
- '--epr-category-icon-active-color':
97
- 'var(--epr-dark-category-icon-active-color)',
98
- '--epr-category-icon-inactive-color':
99
- 'var(--epr-dark-category-icon-inactive-color)',
100
- '--epr-skin-tone-picker-menu-color':
101
- 'var(--epr-dark-skin-tone-picker-menu-color)',
102
- '--epr-skin-tone-outer-border-color':
103
- 'var(--epr-dark-skin-tone-outer-border-color)',
104
- '--epr-skin-tone-inner-border-color':
105
- 'var(--epr-dark-skin-tone-inner-border-color)',
106
- };
107
-
108
- const styles = stylesheet.create({
109
- main: {
110
- '.': ['epr-main', ClassNames.emojiPicker],
111
- position: 'relative',
112
- display: 'flex',
113
- flexDirection: 'column',
114
- borderWidth: '1px',
115
- borderStyle: 'solid',
116
- borderRadius: 'var(--epr-picker-border-radius)',
117
- borderColor: 'var(--epr-picker-border-color)',
118
- backgroundColor: 'var(--epr-bg-color)',
119
- overflow: 'hidden',
120
- transition: 'height 0.3s ease-in-out, background-color 0.1s ease-in-out',
121
- '*': {
122
- boxSizing: 'border-box',
123
- fontFamily: 'sans-serif',
124
- },
125
- },
126
- baseVariables: {
127
- '--': {
128
- '--epr-highlight-color': '#007aeb',
129
- '--epr-hover-bg-color': '#e5f0fa',
130
- '--epr-hover-bg-color-reduced-opacity': '#e5f0fa80',
131
- '--epr-focus-bg-color': '#e0f0ff',
132
- '--epr-text-color': '#858585',
133
- '--epr-search-input-bg-color': '#f6f6f6',
134
- '--epr-picker-border-color': '#e7e7e7',
135
- '--epr-bg-color': '#fff',
136
- '--epr-reactions-bg-color': '#ffffff90',
137
- '--epr-category-icon-active-color': '#3371B7',
138
- '--epr-category-icon-inactive-color': '#868686',
139
- '--epr-skin-tone-picker-menu-color': '#ffffff95',
140
- '--epr-skin-tone-outer-border-color': '#555555',
141
- '--epr-skin-tone-inner-border-color': 'var(--epr-bg-color)',
142
-
143
- '--epr-horizontal-padding': '10px',
144
-
145
- '--epr-picker-border-radius': '8px',
146
-
147
- /* Header */
148
- '--epr-header-padding': '15px var(--epr-horizontal-padding)',
149
-
150
- /* Skin Tone Picker */
151
- '--epr-active-skin-tone-indicator-border-color':
152
- 'var(--epr-highlight-color)',
153
- '--epr-active-skin-hover-color': 'var(--epr-hover-bg-color)',
154
-
155
- /* Search */
156
- '--epr-search-input-bg-color-active': 'var(--epr-search-input-bg-color)',
157
- '--epr-search-input-padding': '0 30px',
158
- '--epr-search-input-border-radius': '8px',
159
- '--epr-search-input-height': '40px',
160
- '--epr-search-input-text-color': 'var(--epr-text-color)',
161
- '--epr-search-input-placeholder-color': 'var(--epr-text-color)',
162
- '--epr-search-bar-inner-padding': 'var(--epr-horizontal-padding)',
163
- '--epr-search-border-color': 'var(--epr-search-input-bg-color)',
164
- '--epr-search-border-color-active': 'var(--epr-highlight-color)',
165
-
166
- /* Category Navigation */
167
- '--epr-category-navigation-button-size': '30px',
168
-
169
- /* Variation Picker */
170
- '--epr-emoji-variation-picker-height': '45px',
171
- '--epr-emoji-variation-picker-bg-color': 'var(--epr-bg-color)',
172
-
173
- /* Preview */
174
- '--epr-preview-height': '70px',
175
- '--epr-preview-text-size': '14px',
176
- '--epr-preview-text-padding': '0 var(--epr-horizontal-padding)',
177
- '--epr-preview-border-color': 'var(--epr-picker-border-color)',
178
- '--epr-preview-text-color': 'var(--epr-text-color)',
179
-
180
- /* Category */
181
- '--epr-category-padding': '0 var(--epr-horizontal-padding)',
182
-
183
- /* Category Label */
184
- '--epr-category-label-bg-color': '#ffffffe6',
185
- '--epr-category-label-text-color': 'var(--epr-text-color)',
186
- '--epr-category-label-padding': '0 var(--epr-horizontal-padding)',
187
- '--epr-category-label-height': `${DEFAULT_LABEL_HEIGHT}px`,
188
-
189
- /* Emoji */
190
- '--epr-emoji-size': '30px',
191
- '--epr-emoji-padding': '5px',
192
- '--epr-emoji-fullsize':
193
- 'calc(var(--epr-emoji-size) + var(--epr-emoji-padding) * 2)',
194
- '--epr-emoji-hover-color': 'var(--epr-hover-bg-color)',
195
- '--epr-emoji-variation-indicator-color': 'var(--epr-picker-border-color)',
196
- '--epr-emoji-variation-indicator-color-hover': 'var(--epr-text-color)',
197
-
198
- /* Z-Index */
199
- '--epr-header-overlay-z-index': '3',
200
- '--epr-emoji-variations-indictator-z-index': '1',
201
- '--epr-category-label-z-index': '2',
202
- '--epr-skin-variation-picker-z-index': '5',
203
- '--epr-preview-z-index': '6',
204
-
205
- /* Dark Theme Variables */
206
- '--epr-dark': '#000',
207
- '--epr-dark-emoji-variation-picker-bg-color': 'var(--epr-dark)',
208
- '--epr-dark-highlight-color': '#c0c0c0',
209
- '--epr-dark-text-color': 'var(--epr-highlight-color)',
210
- '--epr-dark-hover-bg-color': '#363636f6',
211
- '--epr-dark-hover-bg-color-reduced-opacity': '#36363680',
212
- '--epr-dark-focus-bg-color': '#474747',
213
- '--epr-dark-search-input-bg-color': '#333333',
214
- '--epr-dark-category-label-bg-color': '#222222e6',
215
- '--epr-dark-picker-border-color': '#151617',
216
- '--epr-dark-bg-color': '#222222',
217
- '--epr-dark-reactions-bg-color': '#22222290',
218
- '--epr-dark-search-input-bg-color-active': 'var(--epr-dark)',
219
- '--epr-dark-emoji-variation-indicator-color': '#444',
220
- '--epr-dark-category-icon-active-color': '#6AA9DD',
221
- '--epr-dark-category-icon-inactive-color': '#C0C0BF',
222
- '--epr-dark-skin-tone-picker-menu-color': '#22222295',
223
- '--epr-dark-skin-tone-outer-border-color':
224
- 'var(--epr-dark-picker-border-color)',
225
- '--epr-dark-skin-tone-inner-border-color': '#00000000',
226
- },
227
- },
228
- autoThemeDark: {
229
- '.': ClassNames.autoTheme,
230
- '@media (prefers-color-scheme: dark)': {
231
- '--': DarkTheme,
232
- },
233
- },
234
- darkTheme: {
235
- '.': ClassNames.darkTheme,
236
- '--': DarkTheme,
237
- },
238
- reactionsMenu: {
239
- '.': 'epr-reactions',
240
- height: '50px',
241
- display: 'inline-flex',
242
- backgroundColor: 'var(--epr-reactions-bg-color)',
243
- // @ts-ignore - backdropFilter is not recognized.
244
- backdropFilter: 'blur(8px)',
245
- '--': {
246
- '--epr-picker-border-radius': '50px',
247
- },
248
- },
249
- });
@@ -1,21 +0,0 @@
1
- import { DataEmoji } from './DataTypes';
2
- import { emojiNames, emojiUnified } from './emojiUtils';
3
-
4
- export const alphaNumericEmojiIndex: BaseIndex = {};
5
-
6
- type BaseIndex = Record<string, Record<string, DataEmoji>>;
7
-
8
- export function indexEmoji(emoji: DataEmoji): void {
9
- const joinedNameString = emojiNames(emoji)
10
- .flat()
11
- .join('')
12
- .toLowerCase()
13
- .replace(/[^a-zA-Z\d]/g, '')
14
- .split('');
15
-
16
- joinedNameString.forEach((char) => {
17
- alphaNumericEmojiIndex[char] = alphaNumericEmojiIndex[char] ?? {};
18
-
19
- alphaNumericEmojiIndex[char][emojiUnified(emoji)] = emoji;
20
- });
21
- }